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 @@
]]>
+
+
+
+