Index: BL/MB/UGLYPicking/OrderReservatieImpl.cls.xml
===================================================================
diff -u -r29059 -r58667
--- BL/MB/UGLYPicking/OrderReservatieImpl.cls.xml (.../OrderReservatieImpl.cls.xml) (revision 29059)
+++ BL/MB/UGLYPicking/OrderReservatieImpl.cls.xml (.../OrderReservatieImpl.cls.xml) (revision 58667)
@@ -28,7 +28,7 @@
-
+
%Status
+QtyRes) && (+QtyPcs > 0)) {
-
- If (##class(Prod.Product).GetMagViaOpslagzone(LocM) '= "CONS") {
- #Dim InsertTime As %String = ResultSetFPallets.Data("InsertTime")
- #Dim IsFull As %Boolean = ResultSetFPallets.Data("IsFull")
- #Dim LocID As %String = ResultSetFPallets.Data("LocID")
- #Dim Sectie As %String = ResultSetFPallets.Data("Sectie")
- #Dim LLocM As %Integer = ResultSetFPallets.Data("LLocM")
- #Dim LocG As %Integer = ResultSetFPallets.Data("LocG")
- #Dim LocX As %Integer = ResultSetFPallets.Data("LocX")
- #Dim LocY As %Integer = ResultSetFPallets.Data("LocY")
- #Dim LocZ As %Integer = ResultSetFPallets.Data("LocZ")
- #Dim State As %String = ResultSetFPallets.Data("State")
- #Dim Batch As %String = ResultSetFPallets.Data("Batch")
- #Dim Quality As %String = ResultSetFPallets.Data("Quality")
- #Dim Owner As %String = ResultSetFPallets.Data("Owner")
- #Dim TransLoc As %String = ResultSetFPallets.Data("TransLoc")
- #Dim IsPickbaar As %Boolean = ResultSetFPallets.Data("IsPickbaar")
-
- #Dim IDList As %String
- #Dim InsertDate As %String
- #Dim PLNode As %List
- #Dim PalletIndex As %Integer
+ If ((+QtyPcs > +QtyRes) && (+QtyPcs > 0)) {
- If '($DATA(IDList(LocID))) { // Vermijden van dubbels
- Set IDList(LocID) = "" //Lijst bijhouden van Ids
-
- Set InsertDate = $ZDATEH($EXTRACT(InsertTime, 1, 10), 3)
-
- Do ..PostProcessPalletInfo(.InsertTime, .IsFull, TransLoc, IsPickbaar)
-
- Set PLNode = $LISTBUILD(Sectie, QtyPcs, QtyRes, LLocM, LocG, LocX, LocY, LocZ, State, InsertDate, IsFull, Batch, Quality, Owner, LocID, ProdNr, 0) //0: QtyBooked, wo later ingevuld
-
- Set PalletIndex = $INCREMENT(PalletIndex)
- Set Pallet(PalletIndex) = $LISTBUILD(LocID _ "." _ Sectie, PLNode) //Volgende arrays worden gebruikt bij picking algorithms (exact, approx, ...)
-
- If (IsFull) {
- //Grouping wordt enkel gebruikt bij FULL PALLET algo
- Set PalletGroup(+QtyPcs-QtyRes) = $GET(PalletGroup(+QtyPcs-QtyRes)) _ $LISTBUILD(LocID _ "." _ Sectie)
- }
+ If (##class(Prod.Product).GetMagViaOpslagzone(LocM) '= "CONS") {
+ #Dim InsertTime As %String = ResultSetFPallets.Data("InsertTime")
+ #Dim IsFull As %Boolean = ResultSetFPallets.Data("IsFull")
+ #Dim Sectie As %String = ResultSetFPallets.Data("Sectie")
+ #Dim LLocM As %Integer = ResultSetFPallets.Data("LLocM")
+ #Dim LocG As %Integer = ResultSetFPallets.Data("LocG")
+ #Dim LocX As %Integer = ResultSetFPallets.Data("LocX")
+ #Dim LocY As %Integer = ResultSetFPallets.Data("LocY")
+ #Dim LocZ As %Integer = ResultSetFPallets.Data("LocZ")
+ #Dim State As %String = ResultSetFPallets.Data("State")
+ #Dim Batch As %String = ResultSetFPallets.Data("Batch")
+ #Dim Quality As %String = ResultSetFPallets.Data("Quality")
+ #Dim Owner As %String = ResultSetFPallets.Data("Owner")
+ #Dim TransLoc As %String = ResultSetFPallets.Data("TransLoc")
+ #Dim IsPickbaar As %Boolean = ResultSetFPallets.Data("IsPickbaar")
+
+ #Dim IDList As %String
+ #Dim InsertDate As %String
+ #Dim PLNode As %List
+ #Dim PalletIndex As %Integer
+
+ If '($DATA(IDList(LocID))) { // Vermijden van dubbels
+ Set IDList(LocID) = "" //Lijst bijhouden van Ids
+
+ Set InsertDate = $ZDATEH($EXTRACT(InsertTime, 1, 10), 3)
+
+ Do ..PostProcessPalletInfo(.InsertTime, .IsFull, TransLoc, IsPickbaar)
+
+ Set PLNode = $LISTBUILD(Sectie, QtyPcs, QtyRes, LLocM, LocG, LocX, LocY, LocZ, State, InsertDate, IsFull, Batch, Quality, Owner, LocID, ProdNr, 0) //0: QtyBooked, wo later ingevuld
+
+ Set PalletIndex = $INCREMENT(PalletIndex)
+ Set Pallet(PalletIndex) = $LISTBUILD(LocID _ "." _ Sectie, PLNode) //Volgende arrays worden gebruikt bij picking algorithms (exact, approx, ...)
+
+ If (IsFull) {
+ //Grouping wordt enkel gebruikt bij FULL PALLET algo
+ Set PalletGroup(+QtyPcs-QtyRes) = $GET(PalletGroup(+QtyPcs-QtyRes)) _ $LISTBUILD(LocID _ "." _ Sectie)
+ }
+ }
}
}
}
@@ -189,7 +191,6 @@
Set Query = Query _ "WHERE product = ? "
Set Query = Query _ "AND I.loc_m < 5 AND NOT (L.loc_m = 4 AND L.loc_g = 2 and L.loc_x = 1 and L.loc_y = 1) "
Set Query = Query _ "ORDER BY IsPickbaar DESC, IsFull ASC, InsertTime ASC "
-
Quit ..QueryAPI.GetDynamicResultSet(Query, $LISTBUILD(ProductID))
]]>
Index: vhUnitTest/BL/MB/UGLYPicking/OrderReservatie.cls.xml
===================================================================
diff -u -r44393 -r58667
--- vhUnitTest/BL/MB/UGLYPicking/OrderReservatie.cls.xml (.../OrderReservatie.cls.xml) (revision 44393)
+++ vhUnitTest/BL/MB/UGLYPicking/OrderReservatie.cls.xml (.../OrderReservatie.cls.xml) (revision 58667)
@@ -5,10 +5,13 @@
1
vhUnitTest.APPS.MAG.Inventaris.Base
-
-%String
-I
-
+
+
+
+
+0
+
+
+
1
Index: vhUnitTest/APPS/MAG/UGLYPicking/TestUglyPickingService.cls.xml
===================================================================
diff -u -r46321 -r58667
--- vhUnitTest/APPS/MAG/UGLYPicking/TestUglyPickingService.cls.xml (.../TestUglyPickingService.cls.xml) (revision 46321)
+++ vhUnitTest/APPS/MAG/UGLYPicking/TestUglyPickingService.cls.xml (.../TestUglyPickingService.cls.xml) (revision 58667)
@@ -338,6 +338,57 @@
]]>
+
+
+
+
+
+
+
+
ConsolidatieNr:%Integer,PalletID:%String,ProductObjectID:%Integer,AantalTePicken:%Integer,AantalOpPallet:%Integer
1
@@ -366,26 +417,41 @@
-ID:%Integer
+ID:%Integer,KlantNr:%String="1000"
%Status
+
+PalletNummer:%String
+
+
+
+
+
+
+
%Status
1
-ProdNr:%Library.Integer
+ProdNr:%Library.Integer,ConsolidatiePalletten:%ListOfDataTypes=##class(%ListOfDataTypes).%New()
cache
0
%Library.Status
@@ -416,7 +416,7 @@
New Impl
#Dim Impl As BL.MB.UGLYPicking.OrderReservatieImpl = ##class(BL.MB.UGLYPicking.OrderReservatieImpl).%New()
- Quit Impl.BuildPalletsPerProdNr(ProdNr, .PalletList, .Pallet, .PalletGroup, .PalletGroupCnt, .PalletGroupSom)
+ Quit Impl.BuildPalletsPerProdNr(ProdNr, .PalletList, .Pallet, .PalletGroup, .PalletGroupCnt, .PalletGroupSom, ConsolidatiePalletten)
]]>
@@ -565,7 +565,7 @@
1
-ConsolidatieNr:%Library.Integer,Magazijn:%Library.String,ProductNr:%Library.String,AantalTePicken:%Library.Integer,AssociatedZeroPalletID:%String
+ConsolidatieNr:%Library.Integer,Magazijn:%Library.String,ProductNr:%Library.String,AantalTePicken:%Library.Integer,AssociatedZeroPalletID:%String,ConsolidatiePalletten:%ListOfDataTypes=##class(%ListOfDataTypes).%New()
cache
0
%Library.String
@@ -580,7 +580,7 @@
Set MAXReserveCount=5
For Quit:(ReserveSuccess || (ReserveCount=MAXReserveCount) || (tmpResult'="")) Do
- . Set tmpResult=..FPalletsPerProdNr(ProductNr) //Creatie PalletList met palletten bevattende product (met ProductNr)
+ . Set tmpResult=..FPalletsPerProdNr(ProductNr,ConsolidatiePalletten) //Creatie PalletList met palletten bevattende product (met ProductNr)
. If $$$ISERR(tmpResult) Do Quit
.. Set tmpResult=$$ParseStatus^vhLib(tmpResult)
. Else Do
@@ -686,20 +686,29 @@
New ProdLoop,tmpStatus,AantalTePicken,ZeroPalletID,ErrorOccured
#Define tmpAantalTePicken 1
#Define tmpZeroPalletID 2
+ ; Bepaal mogelijke palleten via EWPAL, picking producten van de juiste order
+ New ConsolidatiePalletten
+ Set ConsolidatiePalletten = ..GeefPallettenVoorConsolidatie(ConsNr)
Set ProdLoop="", ErrorOccured=0
For Set ProdLoop=$O(ZeroPallets(ProdLoop)) Quit:(ProdLoop="") Do
. Set AantalTePicken=$LI(ZeroPallets(ProdLoop),$$$tmpAantalTePicken)
. Quit:(AantalTePicken=0)
. Set ZeroPalletID=$LI(ZeroPallets(ProdLoop),$$$tmpZeroPalletID)
- . Set tmpStatus=..FStartReservePallets(ConsNr,Magazijn,ProdLoop,AantalTePicken,ZeroPalletID)
+ . Set tmpStatus=..FStartReservePallets(ConsNr,Magazijn,ProdLoop,AantalTePicken,ZeroPalletID,ConsolidatiePalletten)
. If tmpStatus'="" Do //Indien '="" is er een fout opgetreden
- .. Set ErrorOccured=1
- .. $$$WriteToLog("ERROR: "_tmpStatus)
- .. Do ##class(Flow.OrderWMS.PalletReservatie).SetReservationIsDone(ConsNr,Magazijn,ProdLoop,0,tmpStatus)
+ . . $$$WriteToLog("################### reservatie niet gelukt met info uit EWPAL, fallback hier nodig ########################")
+ . . Set tmpStatus=..FStartReservePallets(ConsNr,Magazijn,ProdLoop,AantalTePicken,ZeroPalletID) ; om fallback te activeren, laatste parameter laten defaulten.
+ . . If tmpStatus'="" Do //Indien '="" is er een fout opgetreden
+ . . . $$$WriteToLog("################### fallback ook mislukt ########################")
+ . . . Set ErrorOccured=1
+ . . . $$$WriteToLog("ERROR: "_tmpStatus)
+ . . . Do ##class(Flow.OrderWMS.PalletReservatie).SetReservationIsDone(ConsNr,Magazijn,ProdLoop,0,tmpStatus)
+ . . Else Do
+ . . . Do ##class(Flow.OrderWMS.PalletReservatie).SetReservationIsDone(ConsNr,Magazijn,ProdLoop,1) //Reservation=OK
. Else Do
- .. Do ##class(Flow.OrderWMS.PalletReservatie).SetReservationIsDone(ConsNr,Magazijn,ProdLoop,1) //Reservation=OK
-
+ . . Do ##class(Flow.OrderWMS.PalletReservatie).SetReservationIsDone(ConsNr,Magazijn,ProdLoop,1) //Reservation=OK
+
$$$WriteToLog("ProcessUnFinishedZeroPalletIDs "_$S(ErrorOccured:"failed",1:"success")_".")
Quit 'ErrorOccured
@@ -803,6 +812,38 @@
Quit ErrStr
]]>
+
+
+1
+ConsolidatieNr:%String
+%ListOfDataTypes
+
+