Index: APPS/Verpakking/OrgaluxBonOptimizer.cls.xml =================================================================== diff -u -r72361 -r72367 --- APPS/Verpakking/OrgaluxBonOptimizer.cls.xml (.../OrgaluxBonOptimizer.cls.xml) (revision 72361) +++ APPS/Verpakking/OrgaluxBonOptimizer.cls.xml (.../OrgaluxBonOptimizer.cls.xml) (revision 72367) @@ -116,6 +116,11 @@ 1 + +%ListOfDataTypes +1 + + DoosFactory:APPS.Verpakking.DoosFactory="",DoosAanvuller:APPS.Verpakking.DoosAanvuller="",Optimizer:APPS.Verpakking.Optimizer="",CubeIQRequestBuilder:APPS.Verpakking.CubeIQRequestBuilder 1 @@ -132,6 +137,7 @@ Set ..DoosAanvuller = $$$Inject(DoosAanvuller, ##class(APPS.Verpakking.DoosAanvuller).%New()) Set ..Optimizer = $$$Inject(Optimizer, ##class(APPS.Verpakking.Optimizer).%New()) Set ..CubeIQRequestBuilder = $$$Inject(CubeIQRequestBuilder, ##class(APPS.Verpakking.CubeIQRequestBuilder).%New()) + Set ..TeGroepoerenVolumes = ##class(TECH.ListUtils).ListbuildToList($ListBuild("TAOR indelingen||Verzameldoos voor losse elastieken||1", "TAOR indelingen||Verzameldoos voor LEDERverdeling||1", "TAOR indelingen||Verzameldoos voor Viltclips||1", "TAOR indelingen||Verzameldoos voor leder siliconen banden||1", "TAOR indelingen||verzameldoos voor ringen||1")) Quit $$$OK ]]> @@ -335,8 +341,8 @@ Set NummerDoos = NummerDoos + 1 } - If (BoxDataId = "OL||Antislipmat groep||1") { - Do ..MaakSnijDataVoorGegroepeerdeMatten(OrigineleBoxDataLijst, SnijDataDoos, OptiDataDoos) + If ((BoxDataId = "OL||Antislipmat groep||1") || (##class(TECH.ListUtils).Contains(..TeGroepoerenVolumes, BoxDataId))) { + Do ..MaakSnijDataVoorGegroepeerdeProducten(OrigineleBoxDataLijst, SnijDataDoos, OptiDataDoos, BoxDataId) Set NummerDoos = NummerDoos + 1 } } Else { @@ -455,26 +461,28 @@ #dim Product As DOM.PM.Product = $Select(..ProductAPI.BestaatProduct(ProductId)= $$$False: "", 1: ..ProductAPI.GeefProduct(ProductId)) Set OptiData = ..MaakOptiData(BoxDataMetID, Product, OptiDataParent, OptiDataBoxParent) #dim SnijData As DS.Prod.OptiBox.SnijData = ..MaakSnijData(BoxDataMetID, Sequentie, OptiData, Product, SnijDataParent, SnijDataBoxParent, ProductAantal, AfbeeldingCode) - #dim SnijDef As DS.Prod.OptiBox.sub.emSnijDef = ..MaakSnijDef(BoxDataMetID) - Do SnijData.SnijDefs.SetAt(SnijDef, ##class(APPS.Verpakking.enu.MachineID).VH()) - #dim SaveStatus As %Status = SnijData.%Save() - Do ##class(TECH.Exceptions.StatusException).ThrowIndienNietOK(SaveStatus,"Het bewaren van SnijData voor de overdozen is niet gelukt.") - + If ($$$Not(##class(TECH.ListUtils).Contains(..TeGroepoerenVolumes, SnijData.BoxData.%Id()))) { + #dim SnijDef As DS.Prod.OptiBox.sub.emSnijDef = ..MaakSnijDef(BoxDataMetID) + Do SnijData.SnijDefs.SetAt(SnijDef, ##class(APPS.Verpakking.enu.MachineID).VH()) + + #dim SaveStatus As %Status = SnijData.%Save() + Do ##class(TECH.Exceptions.StatusException).ThrowIndienNietOK(SaveStatus,"Het bewaren van SnijData voor de overdozen is niet gelukt.") + } Quit SnijData ]]> - -BoxDataLijst:%ListOfObjects,ParentSnijData:DS.Prod.OptiBox.BoxData,OptiDataParent:DS.Prod.OptiBox.OptiData + +BoxDataLijst:%ListOfObjects,ParentSnijData:DS.Prod.OptiBox.BoxData,OptiDataParent:DS.Prod.OptiBox.OptiData,Groep:%String 1 + +BoxDataLijst:%ListOfObjects,Groep:%String +1 +DS.Prod.OptiBox.BoxDataMetID + + + Overdoos:APPS.Verpakking.dto.CubeIQ.Response.LoadedContainer,MinimumAantalPallettenVoorBon:%Integer 1 @@ -927,24 +966,26 @@ #dim BoxData As DS.Prod.OptiBox.BoxDataMetID = BoxDataIterator.Next() Set BoxData = ..CopyBoxData(BoxData) - If (BoxData.Meta.BoxSelect.GetAt(1).Naam = "OL WRAPAROUND BUFFER") - { - If (BoxData.Params.GetAt("LT").WaardeExec = 0) { - If (BoxData.Params.GetAt("LS").Waarde > 0) { - Set BoxData.Breedte = BoxData.Breedte + BoxData.Params.GetAt("LS").Waarde - } Else { //Default - Set BoxData.Breedte = BoxData.Breedte + 60 + If $$$Not(BoxData.Meta.ProductGroep = "TAOR indelingen") { //Heeft geen boxselect + If (BoxData.Meta.BoxSelect.GetAt(1).Naam = "OL WRAPAROUND BUFFER") + { + If (BoxData.Params.GetAt("LT").WaardeExec = 0) { + If (BoxData.Params.GetAt("LS").Waarde > 0) { + Set BoxData.Breedte = BoxData.Breedte + BoxData.Params.GetAt("LS").Waarde + } Else { //Default + Set BoxData.Breedte = BoxData.Breedte + 60 + } } - } - - If (BoxData.Params.GetAt("RT").WaardeExec = 0) { - If (BoxData.Params.GetAt("RS").Waarde > 0) { - Set BoxData.Breedte = BoxData.Breedte + BoxData.Params.GetAt("RS").Waarde - } Else { //Default - Set BoxData.Breedte = BoxData.Breedte + 60 + + If (BoxData.Params.GetAt("RT").WaardeExec = 0) { + If (BoxData.Params.GetAt("RS").Waarde > 0) { + Set BoxData.Breedte = BoxData.Breedte + BoxData.Params.GetAt("RS").Waarde + } Else { //Default + Set BoxData.Breedte = BoxData.Breedte + 60 + } } } - } + } Do GegroepeerdeBoxDataLijst.Insert(BoxData) } @@ -1014,12 +1055,21 @@ Do GegroepeerdeBoxDataLijst.Insert(BoxDataVoorGegroepeerdeMatten) } + #dim GroepenIterator As TECH.Iterator = ##class(TECH.ListIterator).%New(..TeGroepoerenVolumes) + While GroepenIterator.HasNext() { + #dim Groep As %String = GroepenIterator.Next() + #dim BoxDataVoorGegroep As DS.Prod.OptiBox.BoxDataMetID = ..GeefBoxDataVoorGroep(BoxDataLijst, Groep) + If (BoxDataVoorGegroep.Aantal > 0) { + Do GegroepeerdeBoxDataLijst.Insert(BoxDataVoorGegroep) + } + } + While BoxDataIterator.HasNext() { #dim BoxData As DS.Prod.OptiBox.BoxDataMetID = BoxDataIterator.Next() If $$$Not(BoxData.VolumeVan = "") { - If $$$Not(BoxData.VolumeVan.%Id() = "OL||Antislipmat groep||1") { + If ($$$Not(##class(TECH.StringUtils).Equals(BoxData.VolumeVan.%Id(), "OL||Antislipmat groep||1")) && $$$Not(##class(TECH.ListUtils).Contains(..TeGroepoerenVolumes, BoxData.VolumeVan.%Id()))) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.UnimplementedException).%New("Groepering "_ BoxData.VolumeVan.%Id() _"' is nog niet geïmplementeerd bij de optimalisatie van de verpakking van de orgalux bonnen. Dit zorgt voor problemen bij bon " _..BonId _".")) } } Else { Index: vhUnitTest/APPS/Verpakking/OrgaluxBonOptimizer/Test.cls.xml =================================================================== diff -u -r72361 -r72367 --- vhUnitTest/APPS/Verpakking/OrgaluxBonOptimizer/Test.cls.xml (.../Test.cls.xml) (revision 72361) +++ vhUnitTest/APPS/Verpakking/OrgaluxBonOptimizer/Test.cls.xml (.../Test.cls.xml) (revision 72367) @@ -77,6 +77,22 @@ ]]> + + + +