Index: EWORDS.mac.rou =================================================================== diff -u -r48168 -r48730 --- EWORDS.mac.rou (.../EWORDS.mac.rou) (revision 48168) +++ EWORDS.mac.rou (.../EWORDS.mac.rou) (revision 48730) @@ -1,5 +1,4 @@ #include BL.Derde.KlantSpecifiek -#include vhLib.Macro EWORDS ;E'WMS Markeren voor orderpicking [ 12/04/2003 2:20 PM ] ; ;Optie S = auto select @@ -464,124 +463,64 @@ Set:X="-" %SC=1 Quit ; -SAVE(NoAsk) - New R,Ok,Count,VerzW,VerzDat,DOutDate,DOutTime,VerzZ,LevAdr,CONSNr,Send,ORDNr,Check,Rembours,ChkBeletDone,OLU,LijnRec,ReturnLocal - New PickingOpdrachtInfo, PickingOpdrachtInfoLijst, PickingOpdrachtInfoIterator, FilterIterator - - Set Ok = $$$False - - If $D(^HULP(%J,KLNr,"M","A")) { - // Alle onderstaande code 2x uitvoeren: 1x voor ORGALUX, 1x voor niet-ORGALUX. - // De volledige lijst kopi�ren van de M-node naar Mtemp of MVolledig, en daarna uit M de ongewenste killen. En als er niets overschiet, niets doen. - // Merge ^HULP(%J,KLNr,"MVolledig") = ^HULP(%J,KLNr,"M") - Set Ok=$$CHKMUNT(%J,KLNr,$G(NoAsk)) - If Ok,KLNr'=$$$KlantHalux Do AnderTransport^EWORDS5(%J,KLNr) ; altijd uitvoeren niet afhankelijk van NoAsk param, niet voor Halux. - If Ok Set Ok=$G(NoAsk) Set:'Ok Ok=$$^vhTXTPOP("EWORDS","SAVE") - - If (Ok) { - Set R=$G(^HULP(%J,KLNr,"V")) - Set DOutDate=$P($P(R,D,2),","),DOutTime=$P(R,D,3),VerzZ=$P(R,D,4),VerzDat=$P(R,D,5) - Set ORDNr=$O(^HULP(%J,KLNr,"M","A","")) - Set VerzW = ##class(BL.Legacy.EWORDS.Save).GeefVerzendWijze(.KLNr, ORDNr, R) - - // We gaan nagaan of er backorderlijnen moeten gesplitst worden. Indien de 2de piece is ingevuld moet die gebruikt worden als BO aantal. - // Achteraf maken we die piece leeg zodat de rest van de code zijn werk blijft doen. - Set OLU = "" - Set PickingOpdrachtInfoLijst = ##class(%ListOfDataTypes).%New() - - For { - Set OLU=$O(^HULP(%J,KLNr,"M","A",ORDNr,OLU)) - Quit:OLU="" - - New LeverDatum, AantalVoorBackOrder, Aantal - Set LijnRec = ^HULP(%J,KLNr,"M","A",ORDNr,OLU) - Set AantalVoorBackOrder = $Piece(LijnRec,"\",2) - Set LeverDatum = $Piece(LijnRec, "\", 3) // gebruik de ingevulde LevWk - - If (AantalVoorBackOrder > 0) { - // gebruik de BoLevWk indien ingevuld - If $$$Not($Piece(LijnRec, "\", 4) = "") { - Set LeverDatum = $Piece(LijnRec, "\", 4) - } - - Do SPLITOLN^FLOWORD6(,ORDNr,^ORD("IU",ORDNr,OLU),AantalVoorBackOrder,LeverDatum,,.ReturnLocal) - Set $Piece(LijnRec,"\",2)="" - Set $Piece(^KOD(KLNr,"F",ORDNr,^ORD("IU",ORDNr,ReturnLocal("NewOLUNr"))),"\",53) = 1 - Set ^HULP(%J,KLNr,"M","A",ORDNr,OLU) = LijnRec - } - - Set Aantal = $Piece(LijnRec, "\", 1) - - // ^HULP data, aangemaakt v��r aanroepen van SAVE(), bijhouden in PickingOpdrachtInfoLijst - Do PickingOpdrachtInfoLijst.Insert(##class(BL.Legacy.EWORDS.PickingOpdrachtInfo).%New(Aantal, LeverDatum, ORDNr, OLU)) - } - - // Alle bestaande ^HULP-nodes voor opgegeven KlantNummer en OrderNummer verwijderen - Kill ^HULP(%J, KLNr, "M", "A", ORDNr) - - If 'DOutTime do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.GeneralErrorException).%New("DOutTime mag niet null zijn")) - - Set LevAdr=^HULP(%J,KLNr,"C","LA") - Set FilterIterator = ##class(TECH.ListIterator).%New(##class(BL.Legacy.EWORDS.Save).GeefFilters()) - - While (FilterIterator.HasNext()) { - Set CONSNr = $$GETNUM^FLOW("KUL","KU1") - Set PickingOpdrachtInfoIterator = ##class(BL.Legacy.EWORDS.PickingOpdrachtInfoIterator).%New(PickingOpdrachtInfoLijst, FilterIterator.Next()) - - // Enkel uitvoeren als er PickingOpdrachten zijn die voldoen aan de Filter - If (PickingOpdrachtInfoIterator.HasNext()) { - While (PickingOpdrachtInfoIterator.HasNext()) { - Set PickingOpdrachtInfo = PickingOpdrachtInfoIterator.Next() - Set ^HULP(%J, KLNr, "M", "A", PickingOpdrachtInfo.GeefOrderNummer(), PickingOpdrachtInfo.GeefOrderLijnNummer()) = PickingOpdrachtInfo.GeefData() - } - - Do BLDCONS^EWORDS2(KLNr,$NA(^HULP(%J,KLNr,"M")),CONSNr,$P(VerzW,";"),VerzDat,DOutDate_","_DOutTime,VerzZ,LevAdr,.ChkBeletDone) ; Creatie suborderlijnen - Do STORE^LOG("ORDW", CONSNr, "O", ##class(BL.Legacy.EWORDS.Save).GeefOrderNummers(CONSNr)) - - Set ChkBeletDone=$G(ChkBeletDone) - Do VERWERK^EWORDSS(CONSNr) ; Eventueel opsplitsen in groepen - - If $D(^ORDW("D",CONSNr)) { - ; Kan bij terugname niet meer bestaan - Do ShowKennisAnker^EWORDS5(KLNr,CONSNr,1) - Do:$$ChkTRANSPORT(CONSNr) TRANSPORT(CONSNr) - - Set R=^ORDW("D",CONSNr) - - Quit:$P(R,D,20)="K" Quit:$P(R,D,20)="B" Quit:$P(R,D,20)="C" Quit:ChkBeletDone="B" - - Set:ChkBeletDone="" Check=$$CHECK^EWORDS3(CONSNr,1),Rembours=$P(Check,D,2) - If ChkBeletDone="",'Check!Rembours Do BELET^EWORDS3(CONSNr) Quit - - Quit:'$$MagazijnBeschikbaar(CONSNr) - - Set Send=$S($G(DOutSend)="L":0,1:1) - - If Send,DOutDate>$H { - Set Send=$S(DOutSend="V":1,1:"") - Set:Send="" Send=$$^vhTXTPOP("EWORDS","SENDWMS",,$$EXTNUM^vhLib.DataTypes(CONSNr,0,".",0),$$EXTDATE^vhLib.DataTypes(DOutDate))="V" - } - - If Send { - ; Doorsturen naar WMS - Set Send=$$WMSACTIV^EWRECS() - Do:Send SEND^EWORDSW(CONSNr) - } - } - } - - Do PickingOpdrachtInfoIterator.Reset() - - While (PickingOpdrachtInfoIterator.HasNext()) { - Set PickingOpdrachtInfo = PickingOpdrachtInfoIterator.Next() - Kill ^HULP(%J, KLNr, "M", "A", PickingOpdrachtInfo.GeefOrderNummer(), PickingOpdrachtInfo.GeefOrderLijnNummer()) - } - } - - Kill ^HULP(%J,KLNr,"C") - } - } - +SAVE(NoAsk) + New R,Ok,Count,VerzW,VerzDat,DOutDate,DOutTime,VerzZ,LevAdr,CONSNr,Send,ORDNr,ORDNrs,Check,Rembours,ChkBeletDone,OLU,LijnRec,ReturnLocal + Set Ok=0 + If $D(^HULP(%J,KLNr,"M","A")) Do + . // Alle onderstaande code 2x uitvoeren: 1x voor ORGALUX, 1x voor niet-ORGALUX. + . // De volledige lijst kopi�ren van de M-node naar Mtemp of MVolledig, en daarna uit M de ongewenste killen. En als er niets overschiet, niets doen. + . // Merge ^HULP(%J,KLNr,"MVolledig") = ^HULP(%J,KLNr,"M") + .Set Ok=$$CHKMUNT(%J,KLNr,$G(NoAsk)) + .If Ok,KLNr'=$$$KlantHalux Do AnderTransport^EWORDS5(%J,KLNr) ; altijd uitvoeren niet afhankelijk van NoAsk param, niet voor Halux. + .If Ok Set Ok=$G(NoAsk) Set:'Ok Ok=$$^vhTXTPOP("EWORDS","SAVE") + .Quit:'Ok + .Set CONSNr=$$GETNUM^FLOW("KUL","KU1") ; Tijdelijk + .Set R=$G(^HULP(%J,KLNr,"V")) + .Set VerzW=$P(R,D),DOutDate=$P($P(R,D,2),","),DOutTime=$P(R,D,3),VerzZ=$P(R,D,4),VerzDat=$P(R,D,5) + .Set ORDNr=$O(^HULP(%J,KLNr,"M","A","")) + .If VerzW="" Do + ..Set VerzW=$$DEFAULT^KLVERZW(,KLNr,ORDNr) + ..Do ##class(vhLib.Logger).%New().Warning("Order doorsturen voor picking", "Verzendwijze was leeg bij order '" _ ORDNr _ "', en wordt ingesteld op '" _ VerzW _ "'.") + .Set OLU = "" + . // We gaan nagaan of er backorderlijnen moeten gesplitst worden. Indien de 2de piece is ingevuld moet die gebruikt worden als BO aantal. + . // Achteraf maken we die piece leeg zodat de rest van de code zijn werk blijft doen. + .For Set OLU=$O(^HULP(%J,KLNr,"M","A",ORDNr,OLU)) Quit:OLU="" Do + ..New LeverDatum, AantalVoorBackOrder + ..Set LijnRec = ^HULP(%J,KLNr,"M","A",ORDNr,OLU) + ..Set AantalVoorBackOrder = $Piece(LijnRec,"\",2) + ..If (AantalVoorBackOrder > 0) Do + ...Set LeverDatum = $Piece(LijnRec,"\",3) /// gebruik eerst de LevWk die werd ingevuld. + ...If $Piece(LijnRec,"\",4)'= "" Do /// nagaan of de BoLevWk was ingevuld en anders die gebruiken. + .... Set LeverDatum = $Piece(LijnRec,"\",4) /// dan gebruik de BoLevWk die was ingevuld. + ...Do SPLITOLN^FLOWORD6(,ORDNr,^ORD("IU",ORDNr,OLU),AantalVoorBackOrder,LeverDatum,,.ReturnLocal) + ...Set $Piece(LijnRec,"\",2)="" + ...Set $Piece(^KOD(KLNr,"F",ORDNr,^ORD("IU",ORDNr,ReturnLocal("NewOLUNr"))),"\",53) = 1 + ...Set ^HULP(%J,KLNr,"M","A",ORDNr,OLU) = LijnRec + .If 'DOutTime do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.GeneralErrorException).%New("DOutTime mag niet null zijn")) + .Set LevAdr=^HULP(%J,KLNr,"C","LA") + .Do BLDCONS^EWORDS2(KLNr,$NA(^HULP(%J,KLNr,"M")),CONSNr,$P(VerzW,";"),VerzDat,DOutDate_","_DOutTime,VerzZ,LevAdr,.ChkBeletDone) ; Creatie suborderlijnen + .Set (ORDNr,ORDNrs)="" + .For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Set ORDNrs=ORDNrs_";"_ORDNr + .Set $E(ORDNrs)="" + .Do STORE^LOG("ORDW",CONSNr,"O",ORDNrs) + .Set ChkBeletDone=$G(ChkBeletDone) + .Do VERWERK^EWORDSS(CONSNr) ; Eventueel opsplitsen in groepen + .If $D(^ORDW("D",CONSNr)) Do ; Kan bij terugname niet meer bestaan + ..Do ShowKennisAnker^EWORDS5(KLNr,CONSNr,1) + ..Do:$$ChkTRANSPORT(CONSNr) TRANSPORT(CONSNr) + ..Set R=^ORDW("D",CONSNr) + ..Quit:$P(R,D,20)="K" Quit:$P(R,D,20)="B" Quit:$P(R,D,20)="C" Quit:ChkBeletDone="B" + ..Set:ChkBeletDone="" Check=$$CHECK^EWORDS3(CONSNr,1),Rembours=$P(Check,D,2) + ..If ChkBeletDone="",'Check!Rembours Do BELET^EWORDS3(CONSNr) Quit + ..Quit:'$$MagazijnBeschikbaar(CONSNr) + ..Set Send=$S($G(DOutSend)="L":0,1:1) + ..If Send,DOutDate>$H Do + ...Set Send=$S(DOutSend="V":1,1:"") + ...Set:Send="" Send=$$^vhTXTPOP("EWORDS","SENDWMS",,$$EXTNUM^vhLib.DataTypes(CONSNr,0,".",0),$$EXTDATE^vhLib.DataTypes(DOutDate))="V" + ..If Send Do ; Doorsturen naar WMS + ...Set Send=$$WMSACTIV^EWRECS() + ...Do:Send SEND^EWORDSW(CONSNr) + .Kill ^HULP(%J,KLNr,"C") Quit Ok ; ; Controle van de facturatiemunt @@ -1045,3 +984,5 @@ For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Set MagazijnBeschikbaar=$$MagazijnBeschikbaar^EWORDS6(ORDNr,0) Quit:'MagazijnBeschikbaar Quit MagazijnBeschikbaar ; + + Index: EWORDS6.mac.rou =================================================================== diff -u -r48611 -r48730 --- EWORDS6.mac.rou (.../EWORDS6.mac.rou) (revision 48611) +++ EWORDS6.mac.rou (.../EWORDS6.mac.rou) (revision 48730) @@ -1,110 +1,88 @@ #include BL.Derde.LevSpecifiek -#include vhLib.Macro EWORDS6 ;E'WMS Automatisch markeren voor orderpicking [ 10/28/2003 10:26 AM ] - /* - ============================================================================================================================ + /* + + ============================================================================================================================ BELANGRIJK : ============ De controles om te mogen groeperen ("Cumuleer Order" of kortere naam ... ) moeten in 2 routines in sync gehouden worden !!! - EWORDS3 : manueel markeren (via Admin-scherm, UI met vhTXTPOP-meldingen) - EWORDS6 : automatisch markeren (via background job, cfr. IsVoorVandaagOfMorgen) - ============================================================================================================================ + ============================================================================================================================ + */ + ; WMS verwerking en eventueel doorsturen naar Egemin software indien voor vandaag SendWMS(ORDNr) - New %J,I,R,PRNr,Aantal,OLUNr,LeverDag,VerzDat,DOutDate,DOutTime,VerzW,VerzZ,LevAdr,ChkBeletDone,ORDNrs,CumulORDNr,WaitORDNrs - New LandCode,PostCode - New PickingDag, KlantNummer, Filters, FilterIterator, IsVoorVandaag, ConsolidatieNummer - New OrderApi, OrderLijn, OrderLijnIterator - New PickingOpdrachtInfo, PickingOpdrachtInfoIterator, PickingOpdrachtInfoLijst - - #dim PickingDag As BL.Legacy.EWORDS6.enu.PickingDag = ##class(BL.Legacy.EWORDS6).PickingVoorVandaagVolgendeArbeidsdagOfAndereDag(ORDNr) - - Do ##class(BL.Legacy.EWORDS6.InfoMelder).%New().Controleer(ORDNr) - - If ($$$Not(PickingDag = ##class(BL.Legacy.EWORDS6.enu.PickingDag).Andere())) { - #dim KlantNummer As %String = ##class(BL.Legacy.EWORDS6).GeefKlantNummer(ORDNr, D) - - Set ORDNrs = $$Cumul(ORDNr) - Set WaitORDNrs = $$WachtendeOrders(KlantNummer) - - For I=$Length(WaitORDNrs,";"):-1:1 { - Set CumulORDNr = $Piece(WaitORDNrs,";",I) - If ORDNrs [ CumulORDNr - Else If $$CheckCumul(ORDNr,CumulORDNr) Set ORDNrs = ORDNrs _ ";" _ CumulORDNr - Else Continue - Set $Piece(WaitORDNrs,";",I) = $Piece(WaitORDNrs,";",I+1,99) - } - - Quit:$$$Not($$Lock(ORDNrs)) - - #dim OrderApi As DOM.VKP.impl.DataM.DataMOrderAPI = ##class(DOM.VKP.impl.DataM.DataMOrderAPI).%New() - #dim PickingOpdrachtInfoLijst As %ListOfDataTypes = ##class(%ListOfDataTypes).%New() - - For I=1:1:$Length(ORDNrs,";") { - Set CumulORDNr = $Piece(ORDNrs,";",I) - Quit:$$$Not(CumulORDNr) - - #dim OrderLijnIterator As TECH.Iterator = OrderApi.GeefOrder(CumulORDNr).GeefOrderLijnIterator() - - While (OrderLijnIterator.HasNext()) { - #dim OrderLijn As DOM.VKP.ProductOrderlijn = OrderLijnIterator.Next() - - If (OrderLijn.%IsA("DOM.VKP.impl.DataM.DataMProductOrderlijn") && $$$Not(OrderLijn.GeefProductID() = "")) { - Do PickingOpdrachtInfoLijst.Insert(##class(BL.Legacy.EWORDS.PickingOpdrachtInfo).%New(OrderLijn.GeefAantal(), OrderLijn.GeefLeverdag(), OrderLijn.GeefOrderID(), OrderLijn.GeefID())) - } - } - } - - #dim Filters As %ListOfDataTypes = ##class(%ListOfDataTypes).%New() - Do Filters.Insert(##class(BL.Legacy.EWORDS.PickingOpdrachtInfoIterator.Filter.OrgaluxFilter).%New()) - Do Filters.Insert(##class(BL.Legacy.EWORDS.PickingOpdrachtInfoIterator.Filter.NietOrgaluxFilter).%New()) - - #dim IsVoorVandaag As %Boolean = (PickingDag = ##class(BL.Legacy.EWORDS6.enu.PickingDag).Vandaag()) - #dim FilterIterator As TECH.Iterator = ##class(TECH.ListIterator).%New(Filters) - - Set %J = $$%J^vhRtn1() - Kill ^HULP(%J) - - While (FilterIterator.HasNext()) { - #dim ConsolidatieNummer As %String = $$GETNUM^FLOW("KUL", "KU1") - #dim PickingOpdrachtInfoIterator As TECH.Iterator = ##class(BL.Legacy.EWORDS.PickingOpdrachtInfoIterator).%New(PickingOpdrachtInfoLijst, FilterIterator.Next()) - - While (PickingOpdrachtInfoIterator.HasNext()) { - #dim PickingOpdrachtInfo As BL.Legacy.EWORDS.PickingOpdrachtInfo = PickingOpdrachtInfoIterator.Next() - - Set ^HULP(%J, KlantNummer, "M", "A", PickingOpdrachtInfo.GeefOrderNummer(), PickingOpdrachtInfo.GeefOrderLijnNummer()) = PickingOpdrachtInfo.GeefData() - } - - Do INITDOMVKP^FLOWORD2(KlantNummer, ORDNr) - - Set VerzW = $$DEFAULT^KLVERZW(, KlantNummer, ORDNr) - Set VerzZone = "" - Set DOutDateTime = $Select(IsVoorVandaag:+$Horolog,1:+$$CALCDATE^vhLib.DataTypes($Horolog,"A",1)) _ "," _ blVerzendWijze.DueOutPickingTime() - Set VerzDat = blLeveringsTermijn.GetVroegsteLeverDag(+DOutDateTime) - Set DOutDateTime = blLeveringsTermijn.GetLaatstePickingsTijdstip(VerzDat) - Set LevAdr = ^KOD(KlantNummer, "F", ORDNr, 3) - - Do BLDCONS^EWORDS2(KlantNummer, $Name(^HULP(%J, KlantNummer, "M")), ConsolidatieNummer, $Piece(VerzW, ";"), VerzDat, DOutDateTime, VerzZone, LevAdr, .ChkBeletDone) ; Creatie suborderlijnen - - If ($$WMSIsActief() && IsVoorVandaag) { - Do SEND^EWORDSW(ConsolidatieNummer) - } - - Kill ^HULP(%J, KlantNummer) - } - - Kill ^HULP(%J) - For I=1:1:$L(ORDNrs,";") Set CumulORDNr=$P(ORDNrs,";",I) Kill ^ORDW("AUTO",CumulORDNr) - Do UnLock(ORDNrs) - } - - Quit + New %J,I,R,KLNr,PRNr,Aantal,OLUNr,LeverDag,CONSNr,VerzDat,DOutDate,DOutTime,VerzW,VerzZ,LevAdr,ChkBeletDone,IsVoorVandaagOfMorgen,IsVoorVandaag,ORDNrs,CumulORDNr,WaitORDNrs + New LandCode,PostCode,Info + Set IsVoorVandaagOfMorgen=##class(BL.Legacy.EWORDS6).PickingVoorVandaagVolgendeArbeidsdagOfAndereDag(ORDNr) + #dim Info As %String = "OrderKanWordenDoorgestuurd : "_##class(APPS.OrderUitvoering.DoorsturenOrderPickingService).%New().OrderKanWordenDoorgestuurd(ORDNr) + Set Info = Info_$C(13,10) _ "OrderStaatVolledigBijVanHoecke : "_##class(BL.Legacy.EWTOE).OrderStaatVolledigBijVanHoecke(ORDNr) + + If ('##class(APPS.OrderUitvoering.DoorsturenOrderPickingService).%New().OrderKanWordenDoorgestuurd(ORDNr) || '##class(BL.Legacy.EWTOE).OrderStaatVolledigBijVanHoecke(ORDNr)) + { + // N.B. NOT OrderStaatVolledigBijVanHoecke is uitzonderlijk mogelijk, want bij manueel doorsturen kan + // men kiezen om toch de orders met producten bij Halux al door te sturen. + Set Info = "Order toch doorgestuurd ondanks : "_$C(13,10)_Info + Do ##class(vhLib.Logger).%New("EWMS").WarningMail("SendWMS automatisch doorsturen is in de war",Info) + } + + If IsVoorVandaagOfMorgen { + // Heel het volgende stuk 2x uitvoeren: 1x voor ORGALUX en 1x voor niet-ORGALUX. + Set ORDNrs=$$Cumul(ORDNr) + Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) + Set WaitORDNrs=$$WachtendeOrders(KLNr) + For I=$L(WaitORDNrs,";"):-1:1 { + Set CumulORDNr=$P(WaitORDNrs,";",I) + If ORDNrs[CumulORDNr + Else If $$CheckCumul(ORDNr,CumulORDNr) Set ORDNrs=ORDNrs_";"_CumulORDNr + Else Continue + Set $P(WaitORDNrs,";",I)=$P(WaitORDNrs,";",I+1,99) + } + Quit:'$$Lock(ORDNrs) + Set IsVoorVandaag=IsVoorVandaagOfMorgen=1 + Set %J=$$%J^vhRtn1() + Kill ^HULP(%J) + Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) + For I=1:1:$L(ORDNrs,";") { + Set CumulORDNr=$P(ORDNrs,";",I) + Quit:'CumulORDNr + Set OLNr=100 + For { + Set OLNr=$O(^KOD(KLNr,"F",CumulORDNr,OLNr)) + Quit:'OLNr + Set R=^KOD(KLNr,"F",CumulORDNr,OLNr),PRNr=$P(R,D,2),Aantal=$P(R,D,3),OLUNr=$P(R,D,15),LeverDag=$P(R,D,25) + Continue:'PRNr + Set R=Aantal_D_D_LeverDag + Set ^HULP(%J,KLNr,"M","A",CumulORDNr,OLUNr)=R + } + } + Set CONSNr=$$GETNUM^FLOW("KUL","KU1") ; Tijdelijk + + Do INITDOMVKP^FLOWORD2(KLNr,ORDNr) + Set VerzW=$$DEFAULT^KLVERZW(,KLNr,ORDNr) + Set VerzZone="" + Set DOutDateTime=$S(IsVoorVandaag:+$H,1:+$$CALCDATE^vhLib.DataTypes($H,"A",1))_","_blVerzendWijze.DueOutPickingTime() + Set VerzDat=blLeveringsTermijn.GetVroegsteLeverDag(+DOutDateTime) + Set DOutDateTime=blLeveringsTermijn.GetLaatstePickingsTijdstip(VerzDat) + + Set LevAdr=^KOD(KLNr,"F",ORDNr,3) + Do BLDCONS^EWORDS2(KLNr,$NA(^HULP(%J,KLNr,"M")),CONSNr,$P(VerzW,";"),VerzDat,DOutDateTime,VerzZone,LevAdr,.ChkBeletDone) ; Creatie suborderlijnen + + If $$WMSIsActief(),IsVoorVandaag Do SEND^EWORDSW(CONSNr) ; Indien voor vandaag -> doorsturen + + Kill ^HULP(%J) + For I=1:1:$L(ORDNrs,";") Set CumulORDNr=$P(ORDNrs,";",I) Kill ^ORDW("AUTO",CumulORDNr) + Do UnLock(ORDNrs) + } + Quit + ; WMS is actief? WMSIsActief() New WMSIsActief @@ -472,7 +450,7 @@ Set Q="K",D="\",U=";",Horolog=$H If $$AutoSendIsActief() { Lock +^ORDW("AUTO"):30 - Quit:$$$Not($Test) + Quit:'$T Set KLNr=0 For { Set KLNr=$O(^KOD(KLNr))