Index: APPS/Verpakking/OrgaluxBonOptimizer.cls.xml =================================================================== diff -u -r73253 -r73825 --- APPS/Verpakking/OrgaluxBonOptimizer.cls.xml (.../OrgaluxBonOptimizer.cls.xml) (revision 73253) +++ APPS/Verpakking/OrgaluxBonOptimizer.cls.xml (.../OrgaluxBonOptimizer.cls.xml) (revision 73825) @@ -37,6 +37,11 @@ 730 + +%Integer +1165 + + %String @@ -498,7 +503,9 @@ #dim Product As DOM.PM.Product = $Select(..ProductAPI.BestaatProduct(BoxDataMetID.ObjRef)= $$$False: "", 1: ..ProductAPI.GeefProduct(BoxDataMetID.ObjRef)) #dim OptiData As DS.Prod.OptiBox.OptiData = ..MaakOptiData(BoxDataMetID, Product, OptiDataParent) For Index=1:1:BoxDataMetID.Aantal { - #dim SnijDataMat As DS.Prod.OptiBox.SnijData = ..MaakSnijData(BoxDataMetID, "", OptiData, Product, ParentSnijData, ParentSnijData, 1) + If ((Groep = "OL||Antislipmat groep||1") && (BoxDataMetID.Breedte <= (..#MaximumBreedteInlegmat + 5))) { // +5 (zit in snijdefs) + #dim SnijDataMat As DS.Prod.OptiBox.SnijData = ..MaakSnijData(BoxDataMetID, "", OptiData, Product, ParentSnijData, ParentSnijData, 1) + } } } } @@ -846,10 +853,16 @@ While BoxDataIterator.HasNext() { #dim BoxData As DS.Prod.OptiBox.BoxDataMetID = BoxDataIterator.Next() If (($$$Not(BoxData.VolumeVan = "") && (BoxData.VolumeVan.%Id() = "OL||Antislipmat groep||1"))) { - Set GroeperingdoosHoogte = GroeperingdoosHoogte + (BoxData.Hoogte * BoxData.Aantal) - Set GroeperingdoosBreedte = ##class(TECH.Math).Max(GroeperingdoosBreedte, ##class(TECH.Math).Max(BoxData.Breedte, BoxData.Diepte)) - Set GroeperingdoosDiepte = ##class(TECH.Math).Max(GroeperingdoosDiepte, ##class(TECH.Math).Min(BoxData.Breedte, BoxData.Diepte)) - Set BoxDataGegroepeerdeMatten.Aantal = 1 + Set MaxBreedte = ##class(TECH.Math).Max(GroeperingdoosBreedte, ##class(TECH.Math).Max(BoxData.Breedte, BoxData.Diepte)) + + If (MaxBreedte <= ..#MaximumBreedteInlegmat) { + Set GroeperingdoosHoogte = GroeperingdoosHoogte + (BoxData.Hoogte * BoxData.Aantal) + Set GroeperingdoosBreedte = MaxBreedte + Set GroeperingdoosDiepte = ##class(TECH.Math).Max(GroeperingdoosDiepte, ##class(TECH.Math).Min(BoxData.Breedte, BoxData.Diepte)) + Set BoxDataGegroepeerdeMatten.Aantal = 1 + } Else { + Do ..Logger.Debug("Optimaliseer bon orgalux", "Er is een mat met breedte " + MaxBreedte + " die niet wordt meegerekend in de doos voor de matten. De doos voor deze mat moet manueel aangemaakt worden door de operator. Dit wil ook zeggen dat de overdoos manueel zal moeten worden gemaakt gezien er een extra doos in moet.") + } } } Set BoxDataGegroepeerdeMatten.Hoogte = GroeperingdoosHoogte