Index: EWORDS2.mac.rou =================================================================== diff -u -r70863 -r72053 --- EWORDS2.mac.rou (.../EWORDS2.mac.rou) (revision 70863) +++ EWORDS2.mac.rou (.../EWORDS2.mac.rou) (revision 72053) @@ -6,7 +6,13 @@ ; @MarkRef bevat voor de verschillende Orders en OLUNrs het aantal (piece 1) voor het WMS en of er een BackOrder moet gekreeerd worden (piece 2). ; Het BackOrder mag een markering B dan is BOQty=OLQty-MarkedQty, of het mag het Backorder aantal zelf zijn. New ORDNr,OLNr,OLUNr,OLCnt,AutoCons,CredCnt,OLRec,Qty,BOQty,Sort,ManOpsl,BOLwk,Check,Rembours,MagHandeling - Lock +^ORDW("D",CONSNr) + + Quit:'$D(@MarkRef@("A")) + Quit:'$$LockAll(KLNr,CONSNr,MarkRef) ; Op voorhand alles of niets locken - PV 26/05/2023 + + Quit:$$IsReedsInORDW(KLNr,CONSNr,MarkRef) ; Controle of er door gelijktijdigheid van het manueel en automatisch doorsturen dezelfde orderlijnen werden geselecteerd - PV 13/09/2023 + + ;Lock +^ORDW("D",CONSNr) ; Consolidatie hoofding Set:'VerzDat VerzDat=+$H Set CONSRec="" @@ -28,7 +34,7 @@ Set (ORDNr,OLUNr)="" Set (OLCnt,AutoCons,CredCnt)=0 For Set ORDNr=$O(@MarkRef@("A",ORDNr)) Quit:ORDNr="" Do - .Lock +^KOD(KLNr,"F",ORDNr) + .;Lock +^KOD(KLNr,"F",ORDNr) .Kill ^ORDW("AUTO",ORDNr) .For Set OLUNr=$O(@MarkRef@("A",ORDNr,OLUNr)) Quit:OLUNr="" Do ..Set OLNr=^ORD("IU",ORDNr,OLUNr) @@ -64,8 +70,47 @@ Set Status=blOrderEvents.ConsolidatieOpgesteld(CONSNr) If Status'=1 Do WARN^vhTXTPOP($$ParseStatus^vhLib(Status),"Fout bij invullen bakken voor aventosproducten") Lock -^ORDW("D",CONSNr) + Set ^BONLog(CONSNr,+$H)=$LB("M",,$zdt($H,8)) Quit +IsReedsInORDW(KLNr,CONSNr,MarkRef) + New ORDNr,OLUNr,IsReedsInORDW + Set (ORDNr,OLUNr)="" + Set IsReedsInORDW=0 + For Set ORDNr=$O(@MarkRef@("A",ORDNr)) Quit:ORDNr="" Do + . For Set OLUNr=$O(@MarkRef@("A",ORDNr,OLUNr)) Quit:OLUNr="" Do + . . Set:$D(^ORDW("IO",ORDNr,OLUNr)) IsReedsInORDW=1 + + If IsReedsInORDW Do + . Set ORDNr="" + . For Set ORDNr=$O(@MarkRef@("A",ORDNr)) Quit:ORDNr="" Do + . . Kill ^ORDW("AUTO",ORDNr) ; verwijderen uit het automatisch doorsturen (wachten op volgende automatische vrijgave) + . . Lock -^KOD(KLNr,"F",ORDNr) ; LockAll werd hiervoor opgeroepen, dus unlock + . Lock -^ORDW("D",CONSNr) + + Quit IsReedsInORDW + +LockAll(KLNr,CONSNr,MarkRef) + New AllLocked,ORDNr,MemORDNr + Set AllLocked=1 + Lock +^ORDW("D",CONSNr):0 + Else Set AllLocked=0 + If AllLocked Do + . Set ORDNr="" + . For Set ORDNr=$O(@MarkRef@("A",ORDNr)) Quit:(ORDNr="")||('AllLocked) Do + . . Lock +^KOD(KLNr,"F",ORDNr):0 + . . Else Do ; unlock allen die reeds gelocked zijn + . . . Set AllLocked=0 + . . . Set MemORDNr=ORDNr + . . . Lock -^ORDW("D",CONSNr) + . . . Set ORDNr="" + . . . For Set ORDNr=$O(@MarkRef@("A",ORDNr)) Quit:ORDNr="" Quit:ORDNr=MemORDNr Do + . . . . Lock -^KOD(KLNr,"F",ORDNr) + . . . Set ORDNr="" + . . . For Set ORDNr=$O(@MarkRef@("A",ORDNr)) Quit:ORDNr="" Do ; verwijderen uit het automatisch doorsturen (wachten op volgende automatische vrijgave) + . . . . Kill ^ORDW("AUTO",ORDNr) + Quit AllLocked + BLDAOL(KLNr,CONSNr,ORDNr,OLUNr,Qty) ; Terugnames, zonder WMS en manueel krijgen onmiddellijk status afgewerkt. New OLNr,OLRec,PRNr,KPRNr,ZndSt,LinkPRNr