Index: BL/Legacy/EWORDS6.cls.xml =================================================================== diff -u -r55372 -r72053 --- BL/Legacy/EWORDS6.cls.xml (.../EWORDS6.cls.xml) (revision 55372) +++ BL/Legacy/EWORDS6.cls.xml (.../EWORDS6.cls.xml) (revision 72053) @@ -23,6 +23,17 @@ if ##class(TECH.DateTime).IsVandaag(PickDatum) { set VandaagOfMorgen=$select( ##class(TECH.DateTime).HorologToTime($Horolog) < ..GeefKantelPuntDoorsturenPicking(ORDNr):$$$Vandaag, 1:$$$Morgen) } elseif ..IsVolgendeArbeidsdag(PickDatum) { set VandaagOfMorgen = $$$Morgen } + + + If (VandaagOfMorgen=$$$Morgen) && $$VerzendwDD1^EWORDS6(ORDNr) ; Indien verzendwijze is DD1 maar moet normaal pas morgen vertrekken dan toch vandaag laten vertrekken - PV 02 05 2023 + { + Set VandaagOfMorgen=$$$Vandaag + } + If (VandaagOfMorgen=$$$Morgen) && ($P($H,",",2)/3600<18) && '$G(OLNr) ; Pas na 18 uur mogen de opdrachten voor de volgende werkdag actief worden - PV 02 05 2023 + { + Set VandaagOfMorgen=$$$AndereDag + } + Quit VandaagOfMorgen ]]> 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 Index: EWORDS6.mac.rou =================================================================== diff -u -r69296 -r72053 --- EWORDS6.mac.rou (.../EWORDS6.mac.rou) (revision 69296) +++ EWORDS6.mac.rou (.../EWORDS6.mac.rou) (revision 72053) @@ -98,8 +98,10 @@ If (PickingOpdrachtInfoIterator.HasNext()) { While (PickingOpdrachtInfoIterator.HasNext()) { #dim PickingOpdrachtInfo As BL.Legacy.EWORDS.PickingOpdrachtInfo = PickingOpdrachtInfoIterator.Next() - - Set ^HULP(%J, KlantNummer, "M", "A", PickingOpdrachtInfo.GeefOrderNummer(), PickingOpdrachtInfo.GeefOrderLijnNummer()) = PickingOpdrachtInfo.GeefData() + If '$D(^ORDW("IO",PickingOpdrachtInfo.GeefOrderNummer(), PickingOpdrachtInfo.GeefOrderLijnNummer())) + { + Set ^HULP(%J, KlantNummer, "M", "A", PickingOpdrachtInfo.GeefOrderNummer(), PickingOpdrachtInfo.GeefOrderLijnNummer()) = PickingOpdrachtInfo.GeefData() + } } Do INITDOMVKP^FLOWORD2(KlantNummer, ORDNr) @@ -114,7 +116,8 @@ Do BLDCONS^EWORDS2(KlantNummer, $Name(^HULP(%J, KlantNummer, "M")), ConsolidatieNummer, $Piece(VerzW, ";"), VerzDat, DOutDateTime, VerzZone, LevAdr, .ChkBeletDone) ; Creatie suborderlijnen Do ##class(vhLib.Logger).%New().Info("Klaarzetten voor picking", "Bon '" _ ConsolidatieNummer _ "' is automatisch aangemaakt, WMSActief:"_$$WMSIsActief()_", IsVoorVandaag:"_IsVoorVandaag ) - + Set ^BONLog(ConsolidatieNummer,+$H)=$LB("A",IsVoorVandaag,$zdt($H,8)) + If ($$WMSIsActief() && IsVoorVandaag) { Do SEND^EWORDSW(ConsolidatieNummer) } @@ -140,7 +143,7 @@ AutoSendIsActief() New AutoSendIsActief Set AutoSendIsActief=+$G(^ORDW("AUTO")) - Set AutoSendIsActief=$S($P($H,",",2)<25200:0,$P($H,",",2)>68400:0,1:AutoSendIsActief) ; Enkel tussen 07:00 en 19:00 + Set AutoSendIsActief=$S($P($H,",",2)<19800:0,$P($H,",",2)>68400:0,1:AutoSendIsActief) ; Enkel tussen 05:30 en 19:00 - aangepast PV - 31/5/2023 Quit AutoSendIsActief ; Controle of het order (en alle eventueel gelinkte orders) voor dezelfde leverdag zijn. @@ -214,7 +217,7 @@ ; Deze routine verwerkt alle orders verzameld in de wachtrij door 'FetchAutoSend' ; Opgestartom de 15 minuten -AutoSend +AutoSend ; Orders die in de wachtrij staan klaarzetten voor picking New Set Q="K",D="\",U=";",QU(1)=0 If $$AutoSendIsActief() { @@ -267,7 +270,7 @@ // Deze niet meer rechtstreeks aanroepen, maar wel via de classmethod ##class(BL.Legacy.EWORDS6).CheckAutoSend(...) -CheckAutoSend(ORDNr) +CheckAutoSend(ORDNr) New Check,fc Set Check=$$SendWMSStatus(ORDNr)="A" ; Status i.v.m. het doorsturen is automatisch ;w:$G(io)=1015 0,Check," " @@ -525,7 +528,7 @@ ; De orders voor vandaag of morgen opzoeken in ^KOD en in de wachtrij plaatsen voor 'AutoSend' ; Elke minuut opgestart -FetchAutoSend +FetchAutoSend ;Orders die klaargezet kunnen worden in een wachtrij plaatsen New Set Q="K",D="\",U=";",Horolog=$H If $$AutoSendIsActief() {