Index: BL/PPS/OL/Inpak.cls.xml
===================================================================
diff -u -r31391 -r31455
--- BL/PPS/OL/Inpak.cls.xml (.../Inpak.cls.xml) (revision 31391)
+++ BL/PPS/OL/Inpak.cls.xml (.../Inpak.cls.xml) (revision 31455)
@@ -105,49 +105,6 @@
-
-BL.PPS.OL.Inpak.MultiCountBepaler
-1
-1
-
-
-
-TECH.String
-1
-1
-
-
-
-DOM.PM.ProductTypeAPI
-1
-1
-
-
-
-DOM.VKP.VerkoopAPI
-1
-1
-
-
-
-DOM.VKP.impl.BonTypeAPI
-1
-
-
-
-1
-1
-%Status
-1
-
-
-
Open : Initialiseren van object (properties + ophalen sequentie)
@@ -156,8 +113,13 @@
-1
0)&&(..CurID >= ..SequenceList.Count())) $$$pxStatusErrorEx("Kan pointer niet verder voorwaarts verplaatsen", "..CurID="_..CurID_" ..SequenceList.Count()="_..SequenceList.Count()_" Dir="_pDir)
Quit:((pDir<1)&&(..CurID <= 1)) $$$pxStatusErrorEx("Kan pointer niet verder achterwaarts verplaatsen", "..CurID="_..CurID_" Dir="_pDir)
- Do ..BepaalOutput(pxInpakInfo.PRNr)
-
// pointer incrementeren (of decrementeren)
Set ..CurID=$S(pDir>0:..CurID+1,1:..CurID-1)
@@ -268,6 +227,10 @@
// van die doos, die mag ook gesneden worden
// - Een product mag gesneden worden (als minstens 1 item is waarbij HasSnijDef=true
+
+
+
+
If ($LI(SnijItem,$$$lbPosType) = "O") {
Do ..PrintAllEtiket()
Do ..PrintAlleEtikettenOpnieuwIndienNodigOpOverdoosVoorKlant( pxInpakInfo )
@@ -300,7 +263,7 @@
pxInpakInfo:BL.PPS.OL.pxInpakInfo
-1
BL.Sys.Proxy.pxStatus
PRNr:%String,LijnSep:%String,KolomSep:%String
-1
+
+pObjRef:%String,pObjType:%String,pPPSSubgroep:%String,pBoxDeelVan:%String
+
+
+
Forced:%Boolean
-1
+
+BonID:%String
+1
+%Boolean
+
+
+
Etiket(ten) printen voor 1 product zonder bijkomende controle)[ Private ]
@@ -795,7 +788,6 @@
BonID:%String,ProductID:%String,Aantal:%Integer
-1
BL.Sys.LabelPrinter
BonID:%String,ProductID:%String,Aantal:%Integer
-1
%ListOfObjects
ELEMENTTYPE="BL.Sys.pxLabel"
1 {
#dim Step As %Integer
For Step=1:1:MultiCount {
@@ -843,49 +834,86 @@
]]>
-
-ProductID:TECH.String
-1
-
-
-
BonID:%String,ProductID:%String,Aantal:%Integer
-1
BL.Sys.pxLabel
1 Set pxLabel.MultiDeel="x"_Aantal, pxLabel.Aantal=1
+ Set pxLabel.Aantal = Aantal
+ If Aantal > 1 Set pxLabel.MultiDeel="x"_Aantal, pxLabel.Aantal=1
+
+ Set pxLabel.Device=..LabelDev()
+ If ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI().IsTAORIndelingProduct(ProductID) {
+ Set pxLabel.Layout = ..#LabelProductTAORIndeling
+ }Else{
+ Set pxLabel.Layout = ..#LabelProductOrgalux
+ }
+ Set pxLabel.Layout = pxLabel.Layout_##class(BL.Sys.LabelPrinter).PrinterLabelSize(pxLabel.Device)
+ }
+ Quit pxLabel
+]]>
+
- Set pxLabel.Device=..LabelDev()
- If ..ProductTypeAPI.IsTAORIndelingProduct(ProductID) {
- Set pxLabel.Layout = ..#LabelProductTAORIndeling
- }Else{
- Set pxLabel.Layout = ..#LabelProductOrgalux
+
+
+bepalen of er meer dan 1 doos is voor dit product
+EN bepalen of er meer dan 1 product in de doos zit
+ProductID:%String
+%Integer
+
+
+
+
+pxLabel:BL.Sys.pxLabel,PRNr:%String
+BL.Sys.pxLabel
+
PRNr:%String,pxLabel:BL.Sys.pxLabel
-1
1
-
-IsTAORIndeling:%Boolean,BONNr:%String
-1
-TECH.String
-
-
-
-
-1
+BONNr:%String,pxLabel:BL.Sys.pxLabel
LabelPrinter is afhankelijk van de werkpost bepaalt door property Output
-1
Output
-
-BonTypeAPI
-
Index: BL/Legacy/EWORDSW.cls.xml
===================================================================
diff -u -r31358 -r31455
--- BL/Legacy/EWORDSW.cls.xml (.../EWORDSW.cls.xml) (revision 31358)
+++ BL/Legacy/EWORDSW.cls.xml (.../EWORDSW.cls.xml) (revision 31455)
@@ -1,20 +1,20 @@
-TECH.RegisteredObject
+%RegisteredObject
1
CONSNr:%String
%List
@@ -23,117 +23,18 @@
ProductID:%String
%List
-
-
-
-Bepaalt in welke pickingzone (aka "SoftwareVerwerking"; "softmag") een product gepicked moet worden.
-1
-PRNr:%String,KLNr:%String,Qty:%Integer,lbProductTypesInConsolidatie:%List,Force:%Boolean
-APPS.MAG.enu.Magazijn
- : lijst van soorten producten die in de consolidatie zitten. Dit dient om bvb ORGALUX en TA'OR Cubics kindproducten in de juiste Ugly-rubriek te krijgen.
- #dim Mag,MagList,PALNr,Rec2 As %String
- #dim Magazijn As APPS.MAG.enu.Magazijn = ##class(APPS.MAG.enu.Magazijn).EWMS()
- If '$G(Force),'$G(^EWREC("P","UPSEND")) Quit Magazijn ; UglyPicking niet actief
- ; Controle of er een pallet bestaat in de auto en of ugly mag.
- Set PALNr="",MagList=""
- For { Set PALNr=$O(^EWPAL("D",PRNr,PALNr)) Quit:PALNr=""
- continue:+$P($G(^EWPAL("D",PRNr,PALNr)),"\",1)<1
- Set Mag=+$E($P($G(^EWPAL("D",PRNr,PALNr)),"\",2),1,3)
- Set:Mag=1&(MagList'[##class(APPS.MAG.enu.Magazijn).TandemAventos()) MagList=MagList_##class(APPS.MAG.enu.Magazijn).TandemAventos()
- Set:Mag>1&(Mag<5)&(MagList'[##class(APPS.MAG.enu.Magazijn).Ugly()) MagList=MagList_##class(APPS.MAG.enu.Magazijn).Ugly()
- Set MagList($P($G(^EWPAL("D",PRNr,PALNr)),"\",2)_" ")=""
- }
-
- Set Rec2=$G(^KPR(PRNr,2)) Set:Rec2="" Rec2=$G(^KPRO(PRNr,2)) ; wordt ook opgeroepen door Rendab (historiek)
- Set:$P(Rec2,"\",15)=3 Magazijn = ##class(APPS.MAG.enu.Magazijn).LangGoed() ; Langgoed
- Set:($P(Rec2,"\",15)=2 && ($$$Not(MagList = ##class(APPS.MAG.enu.Magazijn).TandemAventos()))) Magazijn = ##class(APPS.MAG.enu.Magazijn).Ugly() ; UglyPicking (behalve indien alle palletten in auto.mag
- Set:($P(Rec2,"\",15)=1 && (MagList = ##class(APPS.MAG.enu.Magazijn).Ugly())) Magazijn = ##class(APPS.MAG.enu.Magazijn).Ugly() ; UglyPicking (goederen bedoeld voor automatisch mag. maar alle palletten staan in ugly
-
- // N.B. Bij het sluiten van een order, worden eventuele ORGALUX-lijnen sowieso afgesplitst naar een gekoppeld ORGALUX-order, en idem voor TA'OR cubics.
- // Daarom is het correct om te stellen dat een product in het ugly-magazijn bij ORGALUX (of TA'OR cubics) moet gepicked worden, als het een dergelijk order/consolidatie betreft.
- If ..IsInUglyEnBevat(MagList,Magazijn,lbProductTypesInConsolidatie,##class(BL.Legacy.enu.ProductBevatType).Orgalux()) {
- Set Magazijn = ##class(APPS.MAG.enu.Magazijn).Orgalux()
- }ElseIf ..IsInUglyEnBevat(MagList,Magazijn,lbProductTypesInConsolidatie,##class(BL.Legacy.enu.ProductBevatType).TaorIndeling()) {
- Set Magazijn = ##class(APPS.MAG.enu.Magazijn).TAORIndeling()
- }ElseIf ..KomtVanHaluxEnGeenPalletInAutomatischMagazijn(MagList,PRNr) {
- Set Magazijn = ##class(APPS.MAG.enu.Magazijn).Halux()
- }
-
- If ((Magazijn'=##class(APPS.MAG.enu.Magazijn).Orgalux()) && (Magazijn'=##class(APPS.MAG.enu.Magazijn).TAORIndeling())){
- If ((Magazijn=##class(APPS.MAG.enu.Magazijn).Ugly()||(Magazijn=##class(APPS.MAG.enu.Magazijn).Halux()))&&($$Is^PRODUKT2(PRNr,"TA")||$$Is^PRODUKT2(PRNr,"AV"))){ ; Groep tandembox en Aventos
- Set Magazijn = ##class(APPS.MAG.enu.Magazijn).TandemAventos()
- }
- If ((Magazijn'=##class(APPS.MAG.enu.Magazijn).LangGoed()) && ..SmallQtyInUgly(.MagList,PRNr,Qty)){
- If $LF(lbProductTypesInConsolidatie,"KADERD"){ ; Klein aantal beslag voor kaderdeur -> Halux
- Set Magazijn = ##class(APPS.MAG.enu.Magazijn).Halux()
- }ElseIf $LF(lbProductTypesInConsolidatie,"AVENTOS"){ ; Klein aantal beslag behorende bij Aventos -> Tandem/Aventos
- Set Magazijn = ##class(APPS.MAG.enu.Magazijn).TandemAventos()
- }
- }
- }
- Quit Magazijn
-]]>
-
-
-
-1
-MagList:%String,Magazijn:APPS.MAG.enu.Magazijn,lbProductTypesInConsolidatie:%List,ItemTeBevatten:BL.Legacy.enu.ProductBevatType
-1
-%Boolean
-
-
-
-
-1
-MagList:%String,Magazijn:APPS.MAG.enu.Magazijn
-1
-%Boolean
-
-
-
-
-1
-MagList:%String,PRNr:%String
-1
-%Boolean
-
-
-
-
-1
-MagList:%String,PRNr:%String,Qty:%Integer
-1
-%Boolean
-10 Verpak=$P(RecJ,"\",15) ; Normverpakking indien voldoende aantal (>10) in verpakking anders grootverpakking
- Quit:Qty'12)&&(+$E(MagSmall,7,9)<25) Quit 1
- Quit 0
-]]>
-
FishEye: Tag 31455 refers to a dead (removed) revision in file `vhUnitTest/BL/PPS/OL/DummyInpak.cls.xml'.
FishEye: No comparison available. Pass `N' to diff?
FishEye: Tag 31376 refers to a dead (removed) revision in file `vhUnitTest/BL/PPS/OL/TestInpakSphinxUitzondering.cls.xml'.
FishEye: No comparison available. Pass `N' to diff?
Index: EWORDSW.mac.rou
===================================================================
diff -u -r31363 -r31455
--- EWORDSW.mac.rou (.../EWORDSW.mac.rou) (revision 31363)
+++ EWORDSW.mac.rou (.../EWORDSW.mac.rou) (revision 31455)
@@ -198,8 +198,7 @@
.For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do
..Set OLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr)
..Set ProductID = $Piece(OLRec,"\",1)
- ..Set lbBevat = $$Bevat(CONSNr)
- ..Set lbBevat = $Select(($LL(lbBevat)=2)&&$LF(lbBevat,##class(BL.Legacy.enu.ProductBevatType).TaorIndeling())&&$LF(lbBevat,##class(BL.Legacy.enu.ProductBevatType).Orgalux()):lbBevat,1:##class(BL.Legacy.EWORDSW).GeefProductBevatTypeList(ProductID))
+ ..Set lbBevat = ##class(BL.Legacy.EWORDSW).GeefProductBevatTypeList(ProductID)
..Quit:$P(OLRec,D,2)'="" ; Reeds verwerkt (doorgestuurd), terugname, manueel of zonder WMS
..For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do
...Set SOLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)
@@ -241,10 +240,77 @@
Quit
-SOFTV(PRNr, KLNr,Qty,lbProductTypesInConsolidatie ,Force=0) ; SoftwareVerwerking
- Quit ##class(BL.Legacy.EWORDSW).SOFTV(PRNr,KLNr,Qty,lbProductTypesInConsolidatie,Force)
+SOFTV(PRNr, KLNr,Qty,lbBevat,Force) ; SoftwareVerwerking
+ // Bepaalt in welke pickingzone (aka "SoftwareVerwerking"; "softmag") een product gepicked moet worden.
+ // lbBevat As %List : lijst van soorten producten die in de consolidatie zitten. Dit dient om bvb ORGALUX en TA'OR Cubics kindproducten in de juiste Ugly-rubriek te krijgen.
+ // Result: APPS.MAG.enu.Magazijn
+ New Result,PALNr,MagList,Mag,Rec2
+ Set Result = ##class(APPS.MAG.enu.Magazijn).EWMS()
+ If '$G(Force),'$G(^EWREC("P","UPSEND")) Quit Result ; UglyPicking niet actief
+ ; Controle of er een pallet bestaat in de auto en of ugly mag.
+ Set PALNr="",MagList=""
+ For Set PALNr=$O(^EWPAL("D",PRNr,PALNr)) Quit:PALNr="" Do
+ . Quit:+$P($G(^EWPAL("D",PRNr,PALNr)),D,1)<1
+ . Set Mag=+$E($P($G(^EWPAL("D",PRNr,PALNr)),D,2),1,3)
+ . Set:Mag=1&(MagList'["A") MagList=MagList_"A"
+ . Set:Mag>1&(Mag<5)&(MagList'["U") MagList=MagList_"U"
+ . Set MagList($P($G(^EWPAL("D",PRNr,PALNr)),D,2)_" ")=""
+ Set Rec2=$G(^KPR(PRNr,2)) Set:Rec2="" Rec2=$G(^KPRO(PRNr,2)) ; wordt ook opgeroepen door Rendab (historiek)
+ Set:$P(Rec2,D,15)=3 Result = ##class(APPS.MAG.enu.Magazijn).LangGoed() ; Langgoed
+ Set:$P(Rec2,D,15)=2&&(MagList'="A") Result = ##class(APPS.MAG.enu.Magazijn).Ugly() ; UglyPicking (behalve indien alle palletten in auto.mag
+ Set:$P(Rec2,D,15)=1&&(MagList="U") Result = ##class(APPS.MAG.enu.Magazijn).Ugly() ; UglyPicking (goederen bedoeld voor automatisch mag. maar alle palletten staan in ugly
+ // N.B. Bij het sluiten van een order, worden eventuele ORGALUX-lijnen sowieso afgesplitst naar een gekoppeld ORGALUX-order, en idem voor TA'OR cubics.
+ // Daarom is het correct om te stellen dat een product in het ugly-magazijn bij ORGALUX (of TA'OR cubics) moet gepicked worden, als het een dergelijk order/consolidatie betreft.
+ If $$IsInUglyEnBevat(MagList,Result,lbBevat,"ORGALUX") {
+ Set Result = ##class(APPS.MAG.enu.Magazijn).Orgalux()
+ }ElseIf $$IsInUglyEnBevat(MagList,Result,lbBevat,"TAORINDELING") {
+ Set Result = ##class(APPS.MAG.enu.Magazijn).TAORIndeling()
+ }ElseIf $$KomtVanHaluxEnGeenPalletInAutomatischMagazijn(MagList,PRNr) {
+ Set Result = ##class(APPS.MAG.enu.Magazijn).Halux()
+ }
+
+ If ((Result'=##class(APPS.MAG.enu.Magazijn).Orgalux()) && (Result'=##class(APPS.MAG.enu.Magazijn).TAORIndeling())){
+ If ((Result=##class(APPS.MAG.enu.Magazijn).Ugly()||(Result=##class(APPS.MAG.enu.Magazijn).Halux()))&&($$Is^PRODUKT2(PRNr,"TA")||$$Is^PRODUKT2(PRNr,"AV"))){ ; Groep tandembox en Aventos
+ Set Result = ##class(APPS.MAG.enu.Magazijn).TandemAventos()
+ }
+ If ((Result'=##class(APPS.MAG.enu.Magazijn).LangGoed()) && $$SmallQtyInUgly(.MagList,PRNr)){
+ If $LF(lbBevat,"KADERD"){ ; Klein aantal beslag voor kaderdeur -> Halux
+ Set Result = ##class(APPS.MAG.enu.Magazijn).Halux()
+ }ElseIf $LF(lbBevat,"AVENTOS"){ ; Klein aantal beslag behorende bij Aventos -> Tandem/Aventos
+ Set Result = ##class(APPS.MAG.enu.Magazijn).TandemAventos()
+ }
+ }
+ }
+
+ Quit Result
+
+IsInUglyEnBevat(MagList, Result, lbBevat, ItemTeBevatten)
+ New IsInUglyEnBevat
+ Set IsInUglyEnBevat = ($LF(lbBevat,ItemTeBevatten)&&((MagList["U")||(Result="U")))
+ Quit IsInUglyEnBevat
+
+KomtVanHaluxEnGeenPalletInAutomatischMagazijn(MagList,PRNr)
+ New Waarde
+ Set Waarde = (($D(^KPR(PRNr,"J6332"))||$D(^KPRO(PRNr,"J6332")))&&(MagList'="A"))
+ Quit Waarde
+
+ ; controleert of er een klein aantal moet gepickt worden in Ugly
+SmallQtyInUgly(MagList,PRNr)
+ ; MagList via .Local
+ New RecJ,Verpak,MagSmall
+ Quit:MagList'["U" 0 ; Komt niet voor in Ugly magazijn
+ ; Controle op verpakkingshoeveelheid
+ Set RecJ=$S($E($O(^KPR(PRNr,"J")))="J":^KPR(PRNr,$O(^KPR(PRNr,"J"))),1:"")
+ Set:RecJ="" RecJ=$S($E($O(^KPRO(PRNr,"J")))="J":^KPRO(PRNr,$O(^KPRO(PRNr,"J"))),1:"") ; wordt ook gebruikt voor historieken of simulaties
+ Set Verpak=$P(RecJ,D,16) ; Grootverpakking
+ Set:$P(RecJ,D,15)>10 Verpak=$P(RecJ,D,15) ; Normverpakking indien voldoende aantal (>10) in verpakking anders grootverpakking
+ Quit:Qty'12)&&(+$E(MagSmall,7,9)<25) Quit 1
+ Quit 0
+
BLDOL(KLNr,CONSNr,ORDNr,OLUNr,lbBevat,SoftV)
; SoftV : via .Local
; Verwerken van een orderlijn met eventuele opslitsing in verschillende kindproducten
Index: vhUnitTest/BL/PPS/OL/TestInpak.cls.xml
===================================================================
diff -u -r31379 -r31455
--- vhUnitTest/BL/PPS/OL/TestInpak.cls.xml (.../TestInpak.cls.xml) (revision 31379)
+++ vhUnitTest/BL/PPS/OL/TestInpak.cls.xml (.../TestInpak.cls.xml) (revision 31455)
@@ -195,7 +195,7 @@
Do $$$AssertEquals(Inpak.BONNr,..Bon.GeefID())
Do $$$AssertEquals(Inpak.KlantNaam,"UNITTEST CONSUMENT")
- Do $$$AssertEquals(Inpak.Output,1, "Output is gedefault omdat deze per product moet wijzigen")
+ Do $$$AssertEquals(Inpak.Output,InpakTafelNr)
Do $$$AssertEquals(Inpak.Count,1,"Aantal overdozen ??")
Do $$$AssertEquals(Inpak.SequenceList.Count(),2)
@@ -207,14 +207,15 @@