Index: APPS/Verpakking/Optimizer.cls.xml =================================================================== diff -u -r71202 -r72341 --- APPS/Verpakking/Optimizer.cls.xml (.../Optimizer.cls.xml) (revision 71202) +++ APPS/Verpakking/Optimizer.cls.xml (.../Optimizer.cls.xml) (revision 72341) @@ -3,15 +3,15 @@ TECH.Mockable - + Geen swap Swap = 1 -> Breedte en diepte worden sowieso geswapt Swap = 2 -> Conditionele swap: enkel swappen indien de plano te breed is voor het breedste karton Sommige recepten hebben zowel swap 0 als 1 beschikbaar, in deze situatie moet worden gekekend welk recept het minste karton verbruikt]]> -2400 - +%Integer + APPS.Verpakking.dto.Doos @@ -42,6 +42,7 @@ - + 1 ..#AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 + If (BreedtePlanoRecept > ..AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 Set BreedtePlanoRecept = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + BasisDoos.CardBoardThickness Set DieptePlanoRecept = BasisDoos.Width + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 Set BasisDoos.Swap = 1 @@ -153,14 +160,14 @@ #dim BreedtePlanoAltRecept As %Decimal = BasisDoos.Width + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 #dim DieptePlanoAltRecept As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + + BasisDoos.CardBoardThickness - If (BreedtePlanoAltRecept > ..#AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 + If (BreedtePlanoAltRecept > ..AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 Set BreedtePlanoAltRecept = BasisDoos.Depth + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 Set DieptePlanoAltRecept = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + + BasisDoos.CardBoardThickness Set BasisDoos.AltSwap = 1 } Do ##class(vhLib.Logger).%New("GeefDoos").Info("KAD parameters", BreedtePlanoRecept _ " " _DieptePlanoRecept _ " " _BreedtePlanoAltRecept _ " " _DieptePlanoAltRecept_ " " _ BasisDoos.LogoPrint _ " " _ BasisDoos.CardBoardThickness) - #dim NodigeKartonBreedteRecept = $Select(BreedtePlanoRecept <= ..#AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoRecept, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) - #dim NodigeKartonBreedteAltRecept = $Select(BreedtePlanoAltRecept <= ..#AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoAltRecept, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + #dim NodigeKartonBreedteRecept = $Select(BreedtePlanoRecept <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoRecept, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + #dim NodigeKartonBreedteAltRecept = $Select(BreedtePlanoAltRecept <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoAltRecept, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) #dim OppTotaleKartonRecept As %Decimal = DieptePlanoRecept * NodigeKartonBreedteRecept #dim OppTotaleKartonAltRecept As %Decimal = DieptePlanoAltRecept * NodigeKartonBreedteAltRecept @@ -174,40 +181,65 @@ Set BasisDoos.Swap = BasisDoos.AltSwap } - Set ..BreedtePlano = ..BreedtePlano + 200 //200 als buffer omdat hij soms zijn VH machine zijn koppen niet kan zetten, zie confluence + Set ..BreedtePlano = ..BreedtePlano + 100 //100 als buffer omdat hij soms zijn VH machine zijn koppen niet kan zetten, zie confluence If (..BreedtePlano > 2399) { Set ..BreedtePlano = 2399 } + } ElseIf (MachineTechnologie = ##class(APPS.Verpakking.enu.MachineTechnologie).Panotec()) { + #dim BreedtePlanoVoorSwapRecept209 As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + BasisDoos.CardBoardThickness + 25 //25 marge voor panotec + #dim DieptePlanoVoorSwapRecept209 As %Decimal = BasisDoos.Depth + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 + + #dim NodigeKartonBreedteVoorSwapRecept209 = $Select(BreedtePlanoVoorSwapRecept209 <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoVoorSwapRecept209, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + + #dim OppTotaleKartonVoorSwapRecept209 As %Decimal = DieptePlanoVoorSwapRecept209 * NodigeKartonBreedteVoorSwapRecept209 + + #dim BreedtePlanoVoorSwapRecept219 As %Decimal = BasisDoos.Width + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 + 25 //25 marge voor panotec + #dim DieptePlanoVoorSwapRecept219 As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + + BasisDoos.CardBoardThickness + + #dim NodigeKartonBreedteVoorSwapRecept219 = $Select(BreedtePlanoVoorSwapRecept219 <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoVoorSwapRecept219, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + + #dim OppTotaleKartonVoorSwapRecept219 As %Decimal = DieptePlanoVoorSwapRecept219 * NodigeKartonBreedteVoorSwapRecept219 + + If (OppTotaleKartonVoorSwapRecept209 < OppTotaleKartonVoorSwapRecept219) { + Set ..BreedtePlano = BreedtePlanoVoorSwapRecept209 + Set ..DieptePlano = DieptePlanoVoorSwapRecept209 + Set BasisDoos.Recipe = 209 + } Else { + Set ..BreedtePlano = BreedtePlanoVoorSwapRecept219 + Set ..DieptePlano = DieptePlanoVoorSwapRecept219 + Set BasisDoos.Recipe = 219 + } + Set BasisDoos.Swap = 0 } Else { #dim SwapRecept219IsBeter, SwapRecept209IsBeter As %Boolean = $$$False - #dim BreedtePlanoVoorSwapRecept219 As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + BasisDoos.CardBoardThickness - #dim DieptePlanoVoorSwapRecept219 As %Decimal = BasisDoos.Depth + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 + Set BreedtePlanoVoorSwapRecept219 = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + BasisDoos.CardBoardThickness + Set DieptePlanoVoorSwapRecept219 = BasisDoos.Depth + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 #dim BreedtePlanoNaSwapRecept219 As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + BasisDoos.CardBoardThickness #dim DieptePlanoNaSwapRecept219 As %Decimal = BasisDoos.Width + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 - #dim NodigeKartonBreedteVoorSwapRecept219 = $Select(BreedtePlanoVoorSwapRecept219 <= ..#AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoVoorSwapRecept219, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) - #dim NodigeKartonBreedteNaSwapRecept219 = $Select(BreedtePlanoNaSwapRecept219 <= ..#AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoNaSwapRecept219, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + Set NodigeKartonBreedteVoorSwapRecept219 = $Select(BreedtePlanoVoorSwapRecept219 <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoVoorSwapRecept219, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + #dim NodigeKartonBreedteNaSwapRecept219 = $Select(BreedtePlanoNaSwapRecept219 <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoNaSwapRecept219, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) - #dim OppTotaleKartonVoorSwapRecept219 As %Decimal = DieptePlanoVoorSwapRecept219 * NodigeKartonBreedteVoorSwapRecept219 + Set OppTotaleKartonVoorSwapRecept219 = DieptePlanoVoorSwapRecept219 * NodigeKartonBreedteVoorSwapRecept219 #dim OppTotaleKartonNaSwapRecept219 As %Decimal = DieptePlanoNaSwapRecept219 * NodigeKartonBreedteNaSwapRecept219 If ((OppTotaleKartonNaSwapRecept219 < OppTotaleKartonVoorSwapRecept219)) { Set SwapRecept219IsBeter = $$$True } - #dim BreedtePlanoVoorSwapRecept209 As %Decimal = BasisDoos.Width + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 - #dim DieptePlanoVoorSwapRecept209 As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + + BasisDoos.CardBoardThickness + Set BreedtePlanoVoorSwapRecept209 = BasisDoos.Width + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 + Set DieptePlanoVoorSwapRecept209 = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + + BasisDoos.CardBoardThickness #dim BreedtePlanoNaSwapRecept209 As %Decimal = BasisDoos.Depth + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Depth + 10 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K2 #dim DieptePlanoNaSwapRecept209 As %Decimal = BasisDoos.K1 + BasisDoos.CardBoardThickness + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.Width + 5 + BasisDoos.Height + BasisDoos.CardBoardThickness + BasisDoos.K1 + + BasisDoos.CardBoardThickness - #dim NodigeKartonBreedteVoorSwapRecept209 = $Select(BreedtePlanoVoorSwapRecept209 <= ..#AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoVoorSwapRecept209, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) - #dim NodigeKartonBreedteNaSwapRecept209 = $Select(BreedtePlanoNaSwapRecept209 <= ..#AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoNaSwapRecept209, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + Set NodigeKartonBreedteVoorSwapRecept209 = $Select(BreedtePlanoVoorSwapRecept209 <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoVoorSwapRecept209, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) + #dim NodigeKartonBreedteNaSwapRecept209 = $Select(BreedtePlanoNaSwapRecept209 <= ..AfmetingBreedsteKarton: ..KartonRepository.GeefKartonBreedte(BasisDoos.CardBoardThickness, BreedtePlanoNaSwapRecept209, BasisDoos.LogoPrint, ..MachineId), 1: 9999999) - #dim OppTotaleKartonVoorSwapRecept209 As %Decimal = DieptePlanoVoorSwapRecept209 * NodigeKartonBreedteVoorSwapRecept209 + Set OppTotaleKartonVoorSwapRecept209 = DieptePlanoVoorSwapRecept209 * NodigeKartonBreedteVoorSwapRecept209 #dim OppTotaleKartonNaSwapRecept209 As %Decimal = DieptePlanoNaSwapRecept209 * NodigeKartonBreedteNaSwapRecept209 If ((OppTotaleKartonNaSwapRecept209 < OppTotaleKartonVoorSwapRecept209)) { @@ -262,80 +294,41 @@ 1 @@ -344,38 +337,50 @@ 1 @@ -447,22 +453,39 @@ - + 1 ..#AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 - Set BreedtePlanoRecept = BasisDoos.Height + BasisDoos.Width + 35 + BasisDoos.Height - Set DieptePlanoRecept = (BasisDoos.Height * (1-BasisDoos.AG)) + (2 * BasisDoos.CardBoardThickness) + BasisDoos.Height + BasisDoos.Depth + 75 + BasisDoos.Height + (2 * BasisDoos.CardBoardThickness) + (BasisDoos.Height * (1-BasisDoos.AG)) - Set BasisDoos.Swap = 1 - } - - Set ..BreedtePlano = BreedtePlanoRecept - Set ..DieptePlano = DieptePlanoRecept + If (MachineTechnologie = ##class(APPS.Verpakking.enu.MachineTechnologie).Panotec()) { + If (BasisDoos.Swap = 2) { + Set BasisDoos.Swap = 0 + #dim BreedtePlanoRecept As %Decimal = BasisDoos.Height + BasisDoos.Width + 35 + BasisDoos.Height + 100 //Marge voor panotec + #dim DieptePlanoRecept As %Decimal = (BasisDoos.Height * (1-BasisDoos.AG)) + (2 * BasisDoos.CardBoardThickness) + BasisDoos.Height + BasisDoos.Depth + 75 + BasisDoos.Height + (2 * BasisDoos.CardBoardThickness) + (BasisDoos.Height * (1-BasisDoos.AG)) + + If (BreedtePlanoRecept > ..AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 + Set BreedtePlanoRecept = BasisDoos.Height + BasisDoos.Depth + 35 + BasisDoos.Height + Set DieptePlanoRecept = (BasisDoos.Height * (1-BasisDoos.AG)) + (2 * BasisDoos.CardBoardThickness) + BasisDoos.Height + BasisDoos.Width + 75 + BasisDoos.Height + (2 * BasisDoos.CardBoardThickness) + (BasisDoos.Height * (1-BasisDoos.AG)) + Set BasisDoos.Swap = 1 + } + + Set ..BreedtePlano = BreedtePlanoRecept + Set ..DieptePlano = DieptePlanoRecept + } + } Else { + If (BasisDoos.Swap = 2) { + Set BasisDoos.Swap = 0 + Set BreedtePlanoRecept = BasisDoos.Height + BasisDoos.Depth + 35 + BasisDoos.Height + Set DieptePlanoRecept = (BasisDoos.Height * (1-BasisDoos.AG)) + (2 * BasisDoos.CardBoardThickness) + BasisDoos.Height + BasisDoos.Width + 75 + BasisDoos.Height + (2 * BasisDoos.CardBoardThickness) + (BasisDoos.Height * (1-BasisDoos.AG)) + + If (BreedtePlanoRecept > ..AfmetingBreedsteKarton) { //Breedte grootste karton, als het te breed is wordt er geswapt -> Definitie van swap = 2 + Set BreedtePlanoRecept = BasisDoos.Height + BasisDoos.Width + 35 + BasisDoos.Height + Set DieptePlanoRecept = (BasisDoos.Height * (1-BasisDoos.AG)) + (2 * BasisDoos.CardBoardThickness) + BasisDoos.Height + BasisDoos.Depth + 75 + BasisDoos.Height + (2 * BasisDoos.CardBoardThickness) + (BasisDoos.Height * (1-BasisDoos.AG)) + Set BasisDoos.Swap = 1 + } + + Set ..BreedtePlano = BreedtePlanoRecept + Set ..DieptePlano = DieptePlanoRecept + } } ]]>