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("+")