Index: BL/PPS/TBX/Sequencer.cls.xml
===================================================================
diff -u -r1074 -r1323
--- BL/PPS/TBX/Sequencer.cls.xml (.../Sequencer.cls.xml) (revision 1074)
+++ BL/PPS/TBX/Sequencer.cls.xml (.../Sequencer.cls.xml) (revision 1323)
@@ -55,56 +55,63 @@
s bl=##class(BL.PPS.TBX.Sequencer).Instantiate() d bl.Init(2168),bl.BldLeanV1SequenceNew() ]]>
TOENr
- Set Sequence=0
- Set ToeVolgNr=""
- Set QtyLade=0
- For BatchSeq=1:1:$LL(lbTOENrs) Do
- . Kill Sort
- . Set TOENr=$LI(lbTOENrs,BatchSeq)
- . Set KLNr=$P($G(^KTO($$$LevHalux,TOENr,1)),"\",8)
- . Set TLNr=100
- . For Set TLNr=$O(^KTO($$$LevHalux,TOENr,TLNr)) Quit:TLNr="" Do
- . . Set LRec=$G(^KTO($$$LevHalux,TOENr,TLNr))
- . . Set TLUNr=$P(LRec,D,15)
- . . Set PRNr=$P(LRec,D,2)
- . . Quit:$P(LRec,D,3)<1
- . . Quit:PRNr'?4.7N
- . . Quit:$P(LRec,D,3)<1
- . . Set SortKey=..SequenceKey(PRNr)
- . . Quit:SortKey=""
- . . ;Quit:(KLNr=..#Assenti)&&((..IsSpoel(PRNr))||($P(^KPR(PRNr,0),"\")[("*"_..#Assenti_"*"))) ;klant Assenti -> zonder spoelbak
- . . Set SortKey=SortKey_"-"_TOENr_"-"_TLUNr
- . . Set $P(LRec,D)=TLUNr
- . . Set Sort(SortKey)=LRec
- . Set SortKey=""
- . For Set SortKey=$O(Sort(SortKey),1) Quit:SortKey="" Do
- . . Set LRec=Sort(SortKey)
- . . Set Qty=$P(LRec,D,3)
- . . Set PRNr=$P(LRec,D,2)
- . . Quit:PRNr'?4.7N
- . . Set TLUNr=$P(LRec,D,1)
- . . For I=1:1:Qty Do
- . . . Set oQ=##class(DS.PPS.TBX.Queue).%New()
- . . . Do oQ.ProductSetObjectId(PRNr)
- . . . Do oQ.KlantSetObjectId(KLNr)
- . . . Set oQ.TOENr=TOENr
- . . . Set oQ.TLUNr=TLUNr
- . . . Set oQ.DOSNr=$P(^KPR(PRNr,"G"),D) ; Dossier
- . . . Set oQ.Sequence=$I(Sequence)
- . . . Set oQ.TotaalAantal=Qty
- . . . Set oQ.DeelAantal=I
- . . . Set oQ.BatchID=..BatchID
- . . . Set oQ.Status=$$$tsWachtend
- . . . Set oQ.WPVerpak=##class(WPVerpak).Create(KLNr,TOENr,TLUNr,PRNr,Qty)
- . . . Set oQ.WPLosOnderdeel=##class(WPLosOnderdeel).Create(KLNr,TOENr,TLUNr,PRNr,Qty)
- . . . Set oQ.WPPers=##class(WPPers).Create(KLNr,TOENr,TLUNr,PRNr,Qty)
- . . . Set Status=oQ.%Save() D:$$$ISERR(Status) WE^vhDBG(Status,"PPSTBX AddBatch")
- . . . Set QtyLade=QtyLade+1
- . . If Status=$$$OK Set X=$$MARKPR^HADOPV($$FABKEYT^HADOPV(TOENr,TLUNr),"B",Qty,Qty,$H) ; HADPR invullen met status "B"
+
+ Set SequenceNr = 0
+
+ Set Batch = ##class(APPS.Halux.common.BatchService).%New().GeefBatch(..BatchID)
+ Set ToeleveringIterator = Batch.GeefToeleveringIterator()
+ While (ToeleveringIterator.HasNext())
+ {
+ Set Toelevering = ToeleveringIterator.Next()
+
+ Set ProductLijnen = ##class(%ListOfObjects).%New()
+ Set ProductLijnIterator = Toelevering.GeefTypeToeleveringLijnIterator(##class(DOM.LEV.enu.ToeleveringLijnType).Product())
+ While (ProductLijnIterator.HasNext())
+ {
+ Do ProductLijnen.Insert(ProductLijnIterator.Next())
+ }
+
+ Do ##class(TECH.Algo.Sort.InsertionSort).Sort(ProductLijnen,##class(BL.PPS.TBX.ZaagVolgordeComparator).%New())
+
+ Set ProductLijnIterator = ##class(TECH.ListIterator).%New(ProductLijnen)
+ While (ProductLijnIterator.HasNext())
+ {
+ Set ProductLijn = ProductLijnIterator.Next()
+
+ Set Tandembox = ProductLijn.GeefProduct()
+
+ Set KlantNr = ""
+ If ($IsObject(Toelevering.GeefOrder()))
+ {
+ Set KlantNr = Toelevering.GeefOrder().GeefKlantNr()
+ }
+
+ For i=1:1:ProductLijn.GeefAantal()
+ {
+ Set SequenceNr = SequenceNr + 1
+ Set QueueItem=##class(DS.PPS.TBX.Queue).%New()
+ Do QueueItem.ProductSetObjectId(Tandembox.GeefPRNr())
+ Do QueueItem.KlantSetObjectId(KlantNr)
+ Set QueueItem.TOENr = Toelevering.GeefToeNr()
+ Set QueueItem.TLUNr = ProductLijn.GeefUniekLijnNr()
+ Set QueueItem.DOSNr = $P(^KPR(Tandembox.GeefPRNr(),"G"),D) ; Dossier
+ Set QueueItem.Sequence = SequenceNr
+ Set QueueItem.TotaalAantal = ProductLijn.GeefAantal()
+ Set QueueItem.DeelAantal = i
+ Set QueueItem.BatchID = ..BatchID
+ Set QueueItem.Status = $$$tsWachtend
+ Set QueueItem.WPVerpak = ##class(BL.PPS.TBX.WPVerpak).Create(KlantNr,Toelevering.GeefToeNr(),ProductLijn.GeefUniekLijnNr(),Tandembox.GeefPRNr(),ProductLijn.GeefAantal())
+ Set QueueItem.WPLosOnderdeel=##class(BL.PPS.TBX.WPLosOnderdeel).Create(KlantNr,Toelevering.GeefToeNr(),ProductLijn.GeefUniekLijnNr(),Tandembox.GeefPRNr(),ProductLijn.GeefAantal())
+ Set QueueItem.WPPers=##class(BL.PPS.TBX.WPPers).Create(KlantNr,Toelevering.GeefToeNr(),ProductLijn.GeefUniekLijnNr(),Tandembox.GeefPRNr(),ProductLijn.GeefAantal())
+ Set Status=QueueItem.%Save() D:$$$ISERR(Status) WE^vhDBG(Status,"PPSTBX AddBatch")
+ If Status=$$$OK Set X=$$MARKPR^HADOPV($$FABKEYT^HADOPV(Toelevering.GeefToeNr(),ProductLijn.GeefUniekLijnNr()),"B",ProductLijn.GeefAantal(),ProductLijn.GeefAantal(),$H) ; HADPR invullen met status "B"
+ }
+ }
+ }
+
+ Set QtyLade = SequenceNr
+
set blPrebuild=##class(BL.PPS.TBX.Prebuild).Instantiate()
Do blPrebuild.Init(..BatchID)
Do blPrebuild.ChkStock("+")