Index: zTryout/PVR/Scrapbook.cls.xml =================================================================== diff -u -r67257 -r71464 --- zTryout/PVR/Scrapbook.cls.xml (.../Scrapbook.cls.xml) (revision 67257) +++ zTryout/PVR/Scrapbook.cls.xml (.../Scrapbook.cls.xml) (revision 71464) @@ -11,6 +11,115 @@ 1 + + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().GeefImageIterator() +CaseID:%String="" +TECH.Iterator +") + } + + #dim PngImageIterator as TECH.Iterator = ..GeefIteratorVanLijstVanBestandNamen("*.png") + + While PngImageIterator.HasNext() { + Do HTMLLijstVanAfbeeldingen.Insert("") + } + + If (HTMLLijstVanAfbeeldingen.Count() = 0) { + Do HTMLLijstVanAfbeeldingen.Insert("

Er zijn geen gekopelde afbeeldingen.

") + } + + Do HTMLLijstIteratorVanAfbeeldingen.Reset() + + Quit HTMLLijstIteratorVanAfbeeldingen +]]>
+
+ + +CaseID:%String="" +TECH.Iterator +"_ BestandNaam _"") + } + + If (HTMLLijstVanMails.Count() = 0) { + Do HTMLLijstVanMails.Insert("

Er zijn geen mails.

") + } + + Do HTMLLijstIteratorVanMails.Reset() + + Quit HTMLLijstIteratorVanMails +]]>
+
+ + +CaseID:%String="" +TECH.Iterator +"_ BestandNaam _"") + } + + If (HTMLLijstVanVideos.Count() = 0) { + Do HTMLLijstVanVideos.Insert("

Er zijn geen video's.

") + } + + Do HTMLLijstIteratorVanVideos.Reset() + + Quit HTMLLijstIteratorVanVideos +]]>
+
+ + +Extensie:%String +TECH.Iterator + + + Do ##class(zTryout.PVR.Scrapbook).%New().DoeIets() @@ -153,6 +262,113 @@ 1 + + + + + +ProductList:%ListOfDataTypes + + + + +ProductStart:%String,ProductStop:%String + + + + +ProductStart:%String,ProductStop:%String + + + + + + + 1 + + +Do ##class(zTryout.PVR.Scrapbook).%New().GlobalRugFix(ProductID) +ProductID:%String + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().GlobalRugFix(ProductID) +ProductID:%String + + + + + +Set Lst = ##class(zTryout.PVR.Scrapbook).%New().GeefLijstTbxProducten() Write Lst.Count(),! +%ListOfDataTypes + 1) + + If (MustRecalcBSS) { + #dim Product As DOM.PM.impl.MaatwerkProductImpl = ProductAPI.GeefProduct(4384493) + #dim ProductAPI As DOM.PM.ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + #dim IngegevenKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken = Product.GeefIngegevenKenmerken() + + Set WS = ##class(WSimpl.PM.Maatwerk.MaatwerkService.DotNet.GeefMaatwerkDetails).%New() + Do WS.GeefMaatwerkDetails(IngegevenKenmerken, "12486", 1) + + + //"KlantID":12486, "ProductData": { "klassenaam":"WSimpl.PM.Maatwerk.MaatwerkService.DotNet.GeefMaatwerkDetails.ProductData", "DossierNummer":"UBFJ", "PRNr":4384493}, "ZijkantLogoData": { "klassenaam":"WSimpl.PM.Maatwerk.MaatwerkService.DotNet.GeefMaatwerkDetails.ZijkantLogoData", "Hoogte":15.9, "IsGratis":false, "Naam":"Fässler"}} + + }*/ + /* + If $Data(^PRBS("BS",ProductId,"RUGX.001")) { + Do LijstProductIds.Insert(ProductId) + } + */ + + If $Data(^PRBS("BS",ProductId,"PRBDHZ.001")) { + ;Do ..GlobalRugFix(ProductId) + Do ..GlobalBodemFix(ProductId) + Do LijstProductIds.Insert(ProductId) + } + + + } + } + ;Do ##class(Tools.Wlip).%New(110).ListOfDataTypes(LijstProductIds) + + + Quit LijstProductIds +]]> + + + + +Alle x38 ruggen +Do ##class(zTryout.PVR.Scrapbook).%New().GeefKorttekstVanProduct() +ProductID:%Integer +TECH.String + 0 { + If $$$Not(##class(TECH.StringUtils).Equals($Piece(^PRBS("BS",PRNr,"RUGX.001"),"\",1),"1719202","1719204")) { + //Do ##class(Tools.Wlip).%New(110).String(PRNr) + + Do DataMProduct.Open(PRNr) + If ($Extract(DataMProduct.GeefKorttekst(),24,25) = "LG") { + Set $Piece(^PRBS("BS",PRNr,"RUGX.001"),"\",1) = "1719202" + } + If ($Extract(DataMProduct.GeefKorttekst(),24,25) = "DG") { + Set $Piece(^PRBS("BS",PRNr,"RUGX.001"),"\",1) = "1719204" + } + + } + } + } +]]> + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().wlipIKTBX(PRNr) +PRNr + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().GenerischProdAanpassen() + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().PairIdMetLengte() +0) LengteProduct = 0 + Write !,"inventTable.VH_Lengte = "_LengteProduct_";" + Write !,"inventTable.update();" + Write !,"}" + Write !,"inventTable = null;" + } +]]> + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().AlleProducten() + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().AlleProductenAX() + + + + + 1) + ;Set MustRecalcBSS = ($Data(^Prod.Ken.DataIndexD("TBX","DC","MT",ProductId))) + ;Set MustRecalcBSS = ($Data(^Prod.Ken.DataIndexD("TBX","NMBDS","1",ProductId))) && ($Data(^PRBS("BSS",ProductId,"PRBDSF.001"))) //&& ($Data(^Prod.Ken.DataIndexD("TBX","DC","MT",ProductId))) + ;Set MustRecalcBSS = ($Data(^Prod.Ken.DataIndexD("TBX","BM","TOB",ProductId))) + ;Set MustRecalcBSS = ($Data(^Prod.Ken.DataIndexD("TBX","VERPAK","P",ProductId))) || ($Data(^Prod.Ken.DataIndexD("TBX","VERPAK","A",ProductId))) || ($Data(^Prod.Ken.DataIndexD("TBX","VERPAK","B",ProductId))) ;|| ($Data(^Prod.Ken.DataIndexD("TBX","VERPAK","B",ProductId))) + ;Set MustRecalcBSS = ($Data(^Prod.Ken.DataIndexD("TBX","VERPAK","P",ProductId))) && ($Data(^Prod.Ken.DataIndexD("TBX","LT","B",ProductId))) + ;Set MustRecalcBSS = ($Data(^Prod.Ken.DataIndexD("TBX","BS","INSCHF",ProductId))) + //Set MustRecalcBSS = (..GeefTbxKenmerkWaarde(ProductId, "LT") = "L") && (..GeefTbxKenmerkWaarde(ProductId, "IB") > 660) && (..GeefTbxKenmerkWaarde(ProductId, "FS") = "HS") + + + Set MustRecalcBSS = (..GeefTbxKenmerkWaarde(ProductId, "LT") = "L") && (..GeefTbxKenmerkWaarde(ProductId, "IB") > 660) && ((..GeefTbxKenmerkWaarde(ProductId, "FS") = "A") || (..GeefTbxKenmerkWaarde(ProductId, "FS") = "HS")) + + If (MustRecalcBSS) { + #dim Product As DOM.PM.impl.MaatwerkProductImpl = ProductAPI.GeefProduct(ProductId) + #dim IngegevenKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken = Product.GeefIngegevenKenmerken() + If $$$Not(IngegevenKenmerken.FrontOndersteuningAantal > 0) { + Set MustRecalcBSS = $$$False + } + } + + + ;S MustRecalcBSS = ($Length(..GeefTbxKenmerkWaarde(ProductId, "ASM")) > 1) && (..GeefTbxKenmerkWaarde(ProductId, "NMASM") = 0) && (($G(^PRBS("BSS",ProductId, "MAT.001"))) = "") //&& '(..GeefTbxKenmerkWaarde(ProductId, "KLAS") = "SP2") + + If (MustRecalcBSS) { + #dim Product As DOM.PM.impl.MaatwerkProductImpl = ProductAPI.GeefProduct(ProductId) + #dim IngegevenKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken = Product.GeefIngegevenKenmerken() + + If IngegevenKenmerkenAPI.HeeftGekoppeldeMat(IngegevenKenmerken) { + Set MustRecalcBSS = $$$False + } + } + + ;Set MustRecalcBSS = ($$$HasLength(..GeefTbxKenmerkWaarde(ProductId, "ODSP"))) + ;Set MustRecalcBSS = (ProductId = 99999999) + If MustRecalcBSS { + Do LijstProductIds.Insert(ProductId) + ;Do ..CleanUpSchaduwBouwstenen(ProductId, SubNode) + } + } + } + ;Do ##class(Tools.Wlip).%New(110).ListOfDataTypes(LijstProductIds) + ;Do LijstProductIds.Insert(1715003) ; Hardcoded toevoegen + + + Quit LijstProductIds +} + +Method CleanUpSchaduwBouwstenen(ProductId As %String, SubNode As %String) [ Private, ProcedureBlock = 0 ] +{ + If $G(SubNode) = "" { + Set SubNode = $H + } + Merge ^PRBS.BackupTBX(SubNode,"BS",ProductId) = ^PRBS("BS",ProductId) ; Gewoon voor de info ook de "BS" backuppen + Merge ^PRBS.BackupTBX(SubNode,"BSS",ProductId) = ^PRBS("BSS",ProductId) + #dim NoSa As %String = "S" + + Do ##class(vhLib.OldSchool).InitVars() + Do DELOBJ^PRBS(ProductId,NoSa) +} + +Method VerwerkLijstTbxVoorBSS() [ Private ] +{ + #dim Count,StartTijd + + Set StartTijd=$H + #dim ProductId as %String + #dim PRNr as %String + Set Count=1 + #dim ProductTypeAPI As DOM.PM.ProductTypeAPI = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI() + #dim ProductAPI As DOM.PM.ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set BerekeningServiceProduct = ##class(APPS.PM.Maatwerk.impl.BerekeningServiceProduct).%New() + Set VerkoopAPI = ##class(DOM.VKP.impl.VerkoopAPI).%New() + Set DotNetMaatwerkService = ##class(WSimpl.PM.Maatwerk.MaatwerkService.DotNet.GeefMaatwerkDetails).%New() + Set MaatwerkDetailsConvertor = ##class(WSimpl.PM.Maatwerk.MaatwerkService.DotNet.MaatwerkDetailsFromJsonNaarDomConverter).%New() + + While ..itProduct.HasNext() + { + Set ProductId = ..itProduct.Next() + Set PRNr= ProductId + ;Set ItemID = rs.Data("ItemID") + ;Set ConfigID = $G(rs.Data("ConfigID")) + #dim KlantNrFromRs As %String = "-" ; $G(rs.Data("KlantNr")) + + Write !,"VerwerkLijstTbxVoorBSS in loop : "_ProductId_" ... " + + Do ..CleanUpSchaduwBouwstenen(ProductId) + + Try { + If ((##class(DOM.DomeinContext).Instance().GeefProjectSettingsAPI().IsActiefSchaduwBomBolOmleidingTbxNaarDotNet()) && (ProductAPI.BestaatProduct(PRNr))) { + If ($$$Not(PRNr = "") && (ProductTypeAPI.IsTandemboxProduct(PRNr)) && ($Get(^PRBS("BSS",PRNr)) = "")) { + #dim KLNr As %String = "K||4682" + If (VerkoopAPI.BestaatKlant("K||"_+KlantNrFromRs)) { + Set KLNr = "K||"_+KlantNrFromRs + } + + write !,"hiere" + + #Dim Product As DOM.PM.impl.MaatwerkProductImpl = ProductAPI.GeefProduct(PRNr) + Set ProductData = ##class(DOM.PM.dto.ProductData).%New() + Set ProductData.PRNr = PRNr + Set ProductData.DossierNummer = Product.GeefDossierCode() + + #dim ProductSpecificatie As DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie = Product.GeefProductSpecificatie() + #dim IngegevenKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken = ProductSpecificatie.GeefIngegevenKenmerken() + + If $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LegacyKenmerken.ItemVPK, "O", "C")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.VerpakkingType, "O", "C")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.OpvullijstKleur, "LG")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LegacyKenmerken.ItemKLROPVL, "LG")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LadeKleur, "OG") && $$$Not(IngegevenKenmerken.LadeDiepte = "400")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.Toepassing, "SP2") && $$$Not(IngegevenKenmerken.LadeDiepte = "450")) + && (##class(TECH.StringUtils).Equals(IngegevenKenmerken.LadeVariant, ##class(DOM.PM.enu.Variant).TandemboxMengvorm(), ##class(DOM.PM.enu.Variant).TandemboxAntaro())) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LadeVariant, ##class(DOM.PM.enu.Variant).TandemboxMengvorm()) && ((IngegevenKenmerken.LadeDiepte = "270"))) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.RugwandMateriaal, "Staal") && (##class(TECH.StringUtils).Equals(IngegevenKenmerken.InterneBreedte, "361", "411", "461", "661", "961"))) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.RugwandMateriaal, "Staal") && (IngegevenKenmerken.LadeKleur = "OG")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.RugwandMateriaal, "Staal") && (IngegevenKenmerken.BodemKleur = "WI") && (##class(TECH.StringUtils).Equals(IngegevenKenmerken.InterneBreedte, "278", "368") && (IngegevenKenmerken.PlaatMateriaal = "HA"))) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.Draagkracht, "50")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LegacyKenmerken.ItemDK, "50")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.DwarsverdelingAantal, "2x2")) + && $$$Not(..GeefTbxKenmerkWaarde(PRNr, "ODSP") = "RBF") + && $$$Not((..GeefTbxKenmerkWaarde(PRNr, "BM") = "TOB") && (..GeefTbxKenmerkWaarde(PRNr, "IB") > 1365)) + && $$$Not(##class(TECH.StringUtils).Equals(PRNr, "1206479", "1206477", "1206478", "1206476", "1730845", "943727", "2123385", "943695", "1053871", "552460", "552461", "552464", "552466", "552474", "2743942", "2743941")) { //Product met opvullijst LG , 1730845 is ongeldig, 943727 ongeldige stalen rug, 2123385 spoelbak 450 diep, "943695" rugw staal, 1053871, 552460,552461, 552464, 552466, 552474, stalen rug, 2743941, 2743942 stalen rug voor bodem + + write !,"hiere ook" + Do ..VulAanOntbrekendeTbxKenmerken(IngegevenKenmerken, Product) + + #dim BerekeningsSpecificatie As DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie = ..GeefBerekeningsSpecificatie(KLNr, 1) + #dim HalffabItemsBoom As DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom + #dim KostItem As DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem + + #dim MaatwerkDetails As APPS.PM.Maatwerk.dto.DotNet.MaatwerkDetailsParsedFromJson = DotNetMaatwerkService.GeefMaatwerkDetails(IngegevenKenmerken, KLNr, 1, ProductData) + Set HalffabItemsBoom = MaatwerkDetailsConvertor.GeefHalffabItemsBoom(MaatwerkDetails) + Set KostItem = MaatwerkDetailsConvertor.GeefKostItems(MaatwerkDetails) + + Set BouwsteenCreator = ##class(DOM.PM.impl.DataM.DataMBouwsteenCreator).%New() + Do BouwsteenCreator.Init(PRNr, ProductSpecificatie, BerekeningsSpecificatie, HalffabItemsBoom, KostItem, $$$True) + } + } + } + } + Catch { + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() + Do Exception.VoegToeExtraInfo("ProductId:"_ProductId) + write !,"Log exceptie." + Do ##class(vhLib.Logger).LogExceptie(Exception) + } + + ;Do ..ConverteerOne(ProductID, PRNr, ItemID, ConfigID) + Set Count=Count+1 + Write:-..Debug&(Count#1000=0) !,"Aantal: ",Count," Tijd (in min): ",$$DIFFTIME^vhLib.DataTypes(StartTijd,$H,"M") + } +} + +Method VerwerkSpaceTowers() +{ + #dim SubNode As %String + Set SubNode = $H + + try { + #dim TbxSpaceTowers As %ListOfDataTypes = ##class(%ListOfDataTypes).%New() + #dim TbxProductId As %String = "" + Do TbxSpaceTowers.Insert(2126669) + Do TbxSpaceTowers.Insert(2126664) + Do TbxSpaceTowers.Insert(2127125) + Do TbxSpaceTowers.Insert(2127124) + Do TbxSpaceTowers.Insert(2127126) + Do TbxSpaceTowers.Insert(2126666) + + #dim iterator As TECH.Iterator = ##class(TECH.ListIterator).%New(TbxSpaceTowers) + + While iterator.HasNext() { + #dim KindProductenIterator = ..GeefKindProductenSpaceTowerIterator(iterator.Next()) + While KindProductenIterator.HasNext() { + Set TbxProductId = KindProductenIterator.Next() + Do ..HerberekenIndienNodigSchaduwbouwstenen(TbxProductId,31259) + ;Do ..CleanUpSchaduwBouwstenen(TbxProductId, SubNode) + } + } + + Set TbxSpaceTowers = ##class(%ListOfDataTypes).%New() + Do TbxSpaceTowers.Insert(2079438) + Do TbxSpaceTowers.Insert(2079437) + Do TbxSpaceTowers.Insert(2059106) + Do TbxSpaceTowers.Insert(2551962) + Do TbxSpaceTowers.Insert(2551961) + Do TbxSpaceTowers.Insert(2059108) + Do TbxSpaceTowers.Insert(2059007) + Do TbxSpaceTowers.Insert(2450685) + Do TbxSpaceTowers.Insert(2450691) + Do TbxSpaceTowers.Insert(2059107) + + Set iterator = ##class(TECH.ListIterator).%New(TbxSpaceTowers) + + While iterator.HasNext() { + #dim KindProductenIterator2 = ..GeefKindProductenSpaceTowerIterator(iterator.Next()) + While KindProductenIterator2.HasNext() { + Set TbxProductId = KindProductenIterator2.Next() + Do ..HerberekenIndienNodigSchaduwbouwstenen(TbxProductId,24315) + ;Do ..CleanUpSchaduwBouwstenen(TbxProductId, SubNode) + } + } + } + Catch { + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() + Do Exception.VoegToeExtraInfo("AdminProductNummer:"_TbxProductId) + Do ##class(vhLib.Logger).LogExceptie(Exception) + } +} + +Method GeefKindProductenSpaceTowerIterator(PRNrSpaceTower As %String) As TECH.ListIterator [ Private ] +{ + #dim KindProducten As %ListOfDataTypes = ##class(%ListOfDataTypes).%New() + + Set SPT = ##class(DOM.PM.impl.DataM.SamengesteldProduct).%New(PRNrSpaceTower) + #dim iterator As TECH.Iterator = SPT.GeefKindBouwsteenIterator() + + While iterator.HasNext() + { + #dim BouwsteenID As %String = iterator.Next().GeefID() + Do KindProducten.Insert($Piece(^PRBS("BS",PRNrSpaceTower, BouwsteenID),"\",1)) + } + + Quit ##class(TECH.ListIterator).%New(KindProducten) +} + +Method Verwerk() +{ + lock +SchaduwPrijsCalculate:10 else Quit + + ;Set ..Debug=1 + + + Do ..VerwijderAlles() + Set StartTijd=$H + Do ##class(Tools.Wlip).%New(97).String("In Verwerk: ") + + + + + Write:..Debug !," ***** VOORRAAD (Zonder CachePerVariant of CachePerItem) *****" + Set ..itProduct=##class(AXProductIteratorZonderAdmin).%New() + Do ..VerwerkLijst() + + Write:..Debug !," ***** SETS (CachePerItem) *****" + Set ..itProduct=##class(AXProductIteratorPerItem).%New() + Do ..VerwerkLijst() + + Write:..Debug !," ***** MAATWERK (CachePerVariant) *****" + Set ..itProduct=##class(AXProductIterator).%New() + Do ..VerwerkLijst() + + ;Do ..VerwerkSpaceTowers() + + lock -SchaduwPrijsCalculate:0 + Write:..Debug !,"Verwerkingstijd (in min): ",$$DIFFTIME^vhLib.DataTypes(StartTijd,$H,"M"),! + Read:..Debug "Druk op enter om verder te gaan" K +} + +Method VerwerkLijst() +{ + Set StartTijd=$H + #dim lbProductIDs as %List + #dim ProductID as %String + #dim RecID as %String + #dim PRNr as %String + #dim GenTyp as %String + Set Count=1 + + #dim ProductAPI As DOM.PM.ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + #dim ProductTypeAPI As DOM.PM.ProductTypeAPI = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI() + + While ..itProduct.HasNext() + { + Set rs=..itProduct.Next() + Set ProductID=rs.Data("ProductID") + Set PRNr=$G(rs.Data("AdminProductNummer")) + Set ItemID=rs.Data("ItemID") + Set ConfigID=$G(rs.Data("ConfigID")) + + try { + If ($$$Not(PRNr = "") && (##class(DOM.DomeinContext).Instance().GeefProjectSettingsAPI().IsActiefSchaduwBomBolOmleidingTbxNaarDotNet()) && (ProductAPI.BestaatProduct(PRNr))) { + + Do ..HerberekenIndienNodigSchaduwbouwstenen(PRNr, rs.Data("KlantNr")) + } + } + Catch { + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() + Do Exception.VoegToeExtraInfo("ProductId:"_ProductID_ " AdminProductNummer:"_PRNr) + ;write !,"Log exceptie." + Do ##class(vhLib.Logger).LogExceptie(Exception) + } + + Do ..ConverteerOne(ProductID, PRNr, ItemID, ConfigID) + Set Count=Count+1 + Write:-..Debug&(Count#1000=0) !,"Aantal: ",Count," Tijd (in min): ",$$DIFFTIME^vhLib.DataTypes(StartTijd,$H,"M") + + ;Quit:($G(^LOG.TellerSchaduwTbx(+$H)) > 1) + } +} + +Method HerberekenIndienNodigSchaduwbouwstenen(PRNr As %String, KlantNr As %String) +{ + #dim ProductTypeAPI As DOM.PM.ProductTypeAPI = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI() + #dim ProductAPI As DOM.PM.ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set BerekeningServiceProduct = ##class(APPS.PM.Maatwerk.impl.BerekeningServiceProduct).%New() + Set VerkoopAPI = ##class(DOM.VKP.impl.VerkoopAPI).%New() + Set DotNetMaatwerkService = ##class(WSimpl.PM.Maatwerk.MaatwerkService.DotNet.GeefMaatwerkDetails).%New() + Set MaatwerkDetailsConvertor = ##class(WSimpl.PM.Maatwerk.MaatwerkService.DotNet.MaatwerkDetailsFromJsonNaarDomConverter).%New() + + If ($$$Not(PRNr = "") && (ProductAPI.BestaatProduct(PRNr)) && (ProductTypeAPI.IsTandemboxProduct(PRNr)) && ($Get(^PRBS("BSS",PRNr)) = "")) { + #dim Klnr As %String = "K||4682" + If (VerkoopAPI.BestaatKlant("K||"_+KlantNr)) { + Set Klnr = "K||"_+KlantNr + } + + #Dim Product As DOM.PM.impl.MaatwerkProductImpl = ProductAPI.GeefProduct(PRNr) + Set ProductData = ##class(DOM.PM.dto.ProductData).%New() + Set ProductData.PRNr = PRNr + Set ProductData.DossierNummer = Product.GeefDossierCode() + + #dim ProductSpecificatie As DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie = Product.GeefProductSpecificatie() + #dim IngegevenKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken = ProductSpecificatie.GeefIngegevenKenmerken() + + If ( $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LegacyKenmerken.ItemVPK, "O", "C")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.VerpakkingType, "O", "C")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LadeKleur, "OG") && $$$Not(IngegevenKenmerken.LadeDiepte = "400")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.Toepassing, "SP2") && $$$Not(IngegevenKenmerken.LadeDiepte = "450")) + && (##class(TECH.StringUtils).Equals(IngegevenKenmerken.LadeVariant, ##class(DOM.PM.enu.Variant).TandemboxMengvorm(), ##class(DOM.PM.enu.Variant).TandemboxAntaro())) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LadeVariant, ##class(DOM.PM.enu.Variant).TandemboxMengvorm()) && ((IngegevenKenmerken.LadeDiepte = "270"))) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.RugwandMateriaal, "Staal") && (##class(TECH.StringUtils).Equals(IngegevenKenmerken.InterneBreedte, "361", "411", "461", "661", "961"))) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.RugwandMateriaal, "Staal") && (IngegevenKenmerken.LadeKleur = "OG")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.RugwandMateriaal, "Staal") && (IngegevenKenmerken.BodemKleur = "WI") && (##class(TECH.StringUtils).Equals(IngegevenKenmerken.InterneBreedte, "278", "368") && (IngegevenKenmerken.PlaatMateriaal = "HA"))) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.Draagkracht, "50")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.LegacyKenmerken.ItemDK, "50")) + && $$$Not(##class(TECH.StringUtils).Equals(IngegevenKenmerken.DwarsverdelingAantal, "2x2")) + && $$$Not(..GeefTbxKenmerkWaarde(PRNr, "ODSP") = "RBF") + && $$$Not((..GeefTbxKenmerkWaarde(PRNr, "BM") = "TOB") && (..GeefTbxKenmerkWaarde(PRNr, "IB") > 1365)) + && $$$Not(##class(TECH.StringUtils).Equals(PRNr, "1206479", "1206477", "1206478", "1206476", "1730845", "943727", "2123385", "943695", "1053871", "552460", "552461", "552464", "552466", "552474", "2743942", "2743941"))) { //Product met opvullijst LG , 1730845 is ongeldig, 943727 ongeldige stalen rug, 2123385 spoelbak 450 diep, "943695" rugw staal, 1053871, 552460,552461, 552464, 552466, 552474, 2743941, 2743942 stalen rug + + + Do ..VulAanOntbrekendeTbxKenmerken(IngegevenKenmerken, Product) + + + #dim BerekeningsSpecificatie As DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie = ..GeefBerekeningsSpecificatie(Klnr, 1) + #dim HalffabItemsBoom As DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom + #dim KostItem As DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem + + #dim MaatwerkDetails As APPS.PM.Maatwerk.dto.DotNet.MaatwerkDetailsParsedFromJson = DotNetMaatwerkService.GeefMaatwerkDetails(IngegevenKenmerken, Klnr, 1, ProductData) + Set HalffabItemsBoom = MaatwerkDetailsConvertor.GeefHalffabItemsBoom(MaatwerkDetails) + Set KostItem = MaatwerkDetailsConvertor.GeefKostItems(MaatwerkDetails) + + + Set ^LOG.TellerSchaduwTbx(+$H) = $Get(^LOG.TellerSchaduwTbx(+$H)) +1 + + + Set BouwsteenCreator = ##class(DOM.PM.impl.DataM.DataMBouwsteenCreator).%New() + Do BouwsteenCreator.Init(PRNr, ProductSpecificatie, BerekeningsSpecificatie, HalffabItemsBoom, KostItem, $$$True) + } + } +} + +/// Deze method zouden we kunnen verplaatsen naar de klasse die verantwoordelijk is voor het foutief invullen van de kenmerken, nl. APPS.PM.Maatwerk.TBX.Conversie.KenmerkConvertor +Method VulAanOntbrekendeTbxKenmerken(TbxKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken, TbxProduct As DOM.PM.impl.MaatwerkProductImpl) [ Private ] +{ + #dim ProductId As %String = TbxProduct.GeefID() + + If (TbxKenmerken.GeleiderTechnologie = "") { + Set TbxKenmerken.GeleiderTechnologie = ..GeefTbxKenmerkWaarde(ProductId, "BM") + } + + If ((TbxKenmerken.VerpakkingType = "Z") || (TbxKenmerken.LegacyKenmerken.ItemVPK = "Z")) { + Set TbxKenmerken.VerpakkingType = "S" + } + + If (##class(TECH.StringUtils).Equals(ProductId, "2285815", "2285816")) { + Set TbxKenmerken.BodemKleur = "LG" + } + + + If (ProductId = 2938280) { + Set TbxKenmerken.RugHoogte = "M" + } + + If (ProductId = 2947118) { //Ontbrekende mat + #dim MATKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.MATKenmerken = ##class(DOM.PM.Maatwerk.Calc.Common.impl.MATKenmerken).%New() + + Set MATKenmerken.Breedte = 779 + Set MATKenmerken.Diepte = 373 + Set MATKenmerken.Kleur = "S-AZ" + Set MATKenmerken.Materiaal = "AZ" + Set MATKenmerken.Type = ##class(DOM.PM.enu.MatType).Basis() + Set MATKenmerken.ExplicietGekozenKenmerken = ##class(%ListOfDataTypes).%New() + Set MATKenmerken.NietMeeleveren = ##class(%ListOfDataTypes).%New() + Set MATKenmerken.Onderdelen = ##class(%ListOfDataTypes).%New() + Set MATKenmerken.ProductieWijze = "" + Set MATKenmerken.VersieNr = 0 + + Do TbxKenmerken.GekoppeldeIngegevenKenmerken.SetAt(MATKenmerken, ##class(DOM.PM.Maatwerk.Calc.Common.enu.GekoppeldIKType).MatX()) + } + + + If (ProductId = 2934047) { //Ontbrekende mat + #dim MATKenmerken As DOM.PM.Maatwerk.Calc.Common.impl.MATKenmerken = ##class(DOM.PM.Maatwerk.Calc.Common.impl.MATKenmerken).%New() + + Set MATKenmerken.Breedte = 679 + Set MATKenmerken.Diepte = 473 + Set MATKenmerken.Kleur = "FA" + Set MATKenmerken.Materiaal = "AF" + Set MATKenmerken.Type = ##class(DOM.PM.enu.MatType).Basis() + Set MATKenmerken.ExplicietGekozenKenmerken = ##class(%ListOfDataTypes).%New() + Set MATKenmerken.NietMeeleveren = ##class(%ListOfDataTypes).%New() + Set MATKenmerken.Onderdelen = ##class(%ListOfDataTypes).%New() + Set MATKenmerken.ProductieWijze = "" + Set MATKenmerken.VersieNr = 0 + + Do TbxKenmerken.GekoppeldeIngegevenKenmerken.SetAt(MATKenmerken, ##class(DOM.PM.Maatwerk.Calc.Common.enu.GekoppeldIKType).MatX()) + } + + + If (##class(TECH.StringUtils).Equals(ProductId, "2961220", "2953362", "2989712", "2923957", "2944597", "2952726", "2952726", "2954154", "2954157", "3002851", "2941153", "2979679", "2875878", "2879832")) { + Do TbxKenmerken.NietMeeleveren.Insert("TiponBlumotionSynchronisatieStang") + Do TbxKenmerken.NietMeeleveren.Insert("TiponBlumotionSynchronisatieToebehoren") + Do TbxKenmerken.NietMeeleveren.Insert("TiponBlumotionSet") + } + + If (##class(TECH.StringUtils).Equals(..GeefTbxKenmerkWaarde(ProductId, "NMBDS"), "1")) { + Do TbxKenmerken.NietMeeleveren.Insert("Bodemsteun") + } + + If $$$Not(##class(TECH.StringUtils).Equals(..GeefTbxKenmerkWaarde(ProductId, "ODSP"), "", "X")) { + Set TbxKenmerken.ProductieWijze = ..GeefTbxKenmerkWaarde(ProductId, "ODSP") + } +} + +/// Geeft alleen de eerste waarde van de DataDefinitie +Method GeefTbxKenmerkWaarde(UnID As %String, KenmerkNaam As %String) As %String [ Private ] +{ + #dim GroepID As %String = "TBX" + #dim lbDataDefinitie As %List = ##class(Prod.Kenmerk.DataDefinitie).Get(GroepID, UnID, KenmerkNaam) + Quit $LG(lbDataDefinitie,1) +} + +Method ConverteerOne(ProductID As %String, PRNr As %String, ItemID As %String, ConfigID As %String) +{ + If ..AddOnly&&('##class(SchaduwPrijs).%ExistsId(ProductID)) + { + Do ##class(SchaduwPrijs).%DeleteId(ProductID) + Do ..Add(ProductID, PRNr, ItemID, ConfigID) + } +} + +Method Add(ProductID As %String, PRNr As %String, ItemID As %String, ConfigID As %String) +{ + If 'PRNr,ProductID'[":" ; Alleen Identnr zonder configuratie + { + Set PRNr=..Translator.GeefPRNrForAdmin(ProductID) + } + + If PRNr && $D(^KPR(PRNr,0)) && $D(^KPR(PRNr,1)) && ($E($$$PRGet($$$KortTekst),1,3)'="GEN") && $D(^PRBS("BS",PRNr)) + { + Set Q="K", D="\",U=";" + Set SchaduwPrijs=##class(SchaduwPrijs).%New() + Set SchaduwPrijs.ProductID=ProductID + Set SchaduwPrijs.ItemID=ItemID + Set SchaduwPrijs.ConfigID=ConfigID + Do SchaduwPrijs.AdminProductSetObjectId(PRNr) + Set SchaduwPrijs.FutureCostPrice=+$J($$CifPPL^KPRIJS(PRNr,"S"),0,2)*100 + Set SchaduwPrijs.FutureUnitPrice=100 + Set SchaduwPrijs.CurrentCostPrice=+$J($$CifPPL^KPRIJS(PRNr,"N"),0,2)*100 + Set SchaduwPrijs.CurrentUnitPrice=100 + Do SchaduwPrijs.Save() + } +} + +Method GeefBerekeningsSpecificatie(KlantID As DOM.VKP.VanHoeckeKlantID, Aantal As %Integer) As DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie [ Private ] +{ + #dim Personality As DOM.common.impl.Personality = ##class(DOM.common.VanHoeckePersonality).Instance() + + Quit ##class(DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie).%New(Aantal, KlantID, Personality) +} + +} + + + +*/ +]]> + + + + + + + +ProductId:%String,Lengte:%Decimal,Breedte:%Decimal,Hoogte:%Decimal,Gewicht:%Decimal +1 +APPS.TRANSP.Stapeling.impl.ColliOpPalletStapelaar.Optibox.XML.Request.package + + + + +PackageId:%String,Auto:%Decimal,Referentie:%String +APPS.TRANSP.Stapeling.impl.ColliOpPalletStapelaar.Optibox.XML.Request.packagetoload + + + + +ProductId:%String,Lengte:%Decimal,Breedte:%Decimal,Hoogte:%Decimal,Orientations:%ListOfObjects + + + + + + + + +1 + + + + + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().gg() + 1" + + #Dim QueryAPI As TECH.Query.QueryAPI = ##class(TECH.Context).Instance().GeefQueryAPI() + #dim ResultSet As TECH.ResultSet = QueryAPI.GetResultSet(##class(TECH.DynamicQuery).%New(SqlStatement,$LB())) + + If ResultSet.Next() { + Set Afdekkap = ResultSet.GetData(1) + } Else { + Do ##class(TECH.Exceptions.DataNotFoundException).Throw("Geen data gevonden voor '"_SqlStatement_"'.") + } +]]> + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().GeefVolumetrieRequestVoorBon(BonNr) +BonNr:%String +1) { + Set aantal = $P(^KUL(KlantNr, "F", BonNr, teller), "\", 3) + + Write "{",! + Write $Char(34)_"lijnId"_$Char(34)_": " _$Char(34)_teller_$Char(34)_",",! + Write $Char(34)_"pickZone"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"itemId"_$Char(34)_": " _$Char(34)_ProductAPI.GeefIdentNummerVoorProductId(productId)_$Char(34)_",",! + Write $Char(34)_"aantal"_$Char(34)_": " _aantal_",",! + Write $Char(34)_"level"_$Char(34)_": " _"0"_",",! + Write $Char(34)_"configId"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"orderId"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"inventTransId"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"klantId"_$Char(34)_": " _$Char(34)_KlantNr_$Char(34)_",",! + Write $Char(34)_"multiPersonalityId"_$Char(34)_": " _$Char(34)_""_$Char(34),! + + Write "},",! + } + Set teller = teller +1 + } + + If $Data(^KUL(KlantNr, "F", BonNr, teller)) { + Set productId = $P(^KUL(KlantNr, "F", BonNr, teller), "\", 2) + Set aantal = $P(^KUL(KlantNr, "F", BonNr, teller), "\", 3) + + Write "{",! + Write $Char(34)_"lijnId"_$Char(34)_": " _$Char(34)_teller_$Char(34)_",",! + Write $Char(34)_"pickZone"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"itemId"_$Char(34)_": " _$Char(34)_ProductAPI.GeefIdentNummerVoorProductId(productId)_$Char(34)_",",! + Write $Char(34)_"aantal"_$Char(34)_": " _aantal_",",! + Write $Char(34)_"level"_$Char(34)_": " _"0"_",",! + Write $Char(34)_"configId"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"orderId"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"inventTransId"_$Char(34)_": " _$Char(34)_""_$Char(34)_",",! + Write $Char(34)_"klantId"_$Char(34)_": " _$Char(34)_KlantNr_$Char(34)_",",! + Write $Char(34)_"multiPersonalityId"_$Char(34)_": " _$Char(34)_""_$Char(34),! + + Write "}",! + } + Write "],",! + Write $Char(34)_"lijstId"_$Char(34)_": " _$Char(34)_BonNr_$Char(34),! + Write "}",! +]]> + + + +1 orderlijn, voor alle lijnen behalve laatste + Write "{"_$Char(34)_"lijnId"_$Char(34)_": " _$Char(34)_teller_$Char(34)_","_$Char(34)_"pickZone"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"itemId"_$Char(34)_": " _$Char(34)_ProductAPI.GeefIdentNummerVoorProductId(productId)_$Char(34)_","_$Char(34)_"aantal"_$Char(34)_": " _aantal_","_$Char(34)_"level"_$Char(34)_": " _"0"_","_$Char(34)_"configId"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"orderId"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"inventTransId"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"klantId"_$Char(34)_": " _$Char(34)_KlantNr_$Char(34)_","_$Char(34)_"multiPersonalityId"_$Char(34)_": " _$Char(34)_""_$Char(34)_ "},",! + + + //Laatste lijn order + Write "{"_$Char(34)_"lijnId"_$Char(34)_": " _$Char(34)_teller_$Char(34)_","_$Char(34)_"pickZone"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"itemId"_$Char(34)_": " _$Char(34)_ProductAPI.GeefIdentNummerVoorProductId(productId)_$Char(34)_","_$Char(34)_"aantal"_$Char(34)_": " _aantal_","_$Char(34)_"level"_$Char(34)_": " _"0"_","_$Char(34)_"configId"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"orderId"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"inventTransId"_$Char(34)_": " _$Char(34)_""_$Char(34)_","_$Char(34)_"klantId"_$Char(34)_": " _$Char(34)_KlantNr_$Char(34)_","_$Char(34)_"multiPersonalityId"_$Char(34)_": " _$Char(34)_""_$Char(34)_"}" + + + Write "],"_$Char(34)_"lijstId"_$Char(34)_": " _$Char(34)_BonNr_$Char(34)_"}" +} +*/ +]]> + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().StuurVolumetrieRequestVoorOrder2() + + + + + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().SchrijfVertalingenNaarBestand(Taal) +Taal:%String + + + + + +Do ##class(zTryout.PVR.Scrapbook).%New().SchrijfAlleKleurVanTaal() +Taal:%String + + + + + + + + + + + + +Inputjson:%String + + + + +1 +%Net.HttpRequest + + + %Library.CacheStorage ^zTryout.PVR.ScrapbookD