#include BL.Derde.KlantSpecifiek #include vhLib.Macro EWORDS ;E'WMS Markeren voor orderpicking [ 12/04/2003 2:20 PM ] ; ;Optie S = auto select ;Optie A = alle klanten ;Optie F = volledig overzicht ;Optie T = temp klant ;Optie L = link menu niet aktief ; ALL Kill NewSel,DOutSend Do INIT Do SELECT(%J) If %SC Do Goto ALL:$G(NewSel) .If $G(^HULP(%J,"S","K","KLNR")) Do ..Set KLNr=^HULP(%J,"S","K","KLNR") ..Set ^HULP(%J,"Q",1)=KLNr ..Do VERWERK(KLNr,,,%J) .Else If $G(^HULP(%J,"S","O","ORDNR")) Do ..Set ORDNr=^HULP(%J,"S","O","ORDNR") ..Do VERWERK(,ORDNr) .Else Do ..Do NEXTKL^EWORDS(%J) ..Set FP=2201 ..Write @FCH,@F,@F1 ..Set FP=160 ..Write @F,@FMTK,"*** I'm thinking ***",@FMTk ..For Quit:$D(^HULP(%J,"Q",1)) Hang 1 ..Write @FCS ..Set FP=160 ..Write @F,@F2 ..If ^HULP(%J,"Q",1)="EOF" Do ...Set R=$$^vhTXTPOP("EWORDS","NOCUSTS"),NewSel=1 ..Else Do VERWERK(,,"A",%J) Kill ^HULP(%J) Quit ; HALUX New NewSel,DOutSend,Macro,KLNr Do INIT Set Macro=7587 Do MACRO(Macro) Set KLNr=Kriteria("K","KLNR") Do SELEDIT(Macro) Kill ^HULP(%J) Quit ; SELECT(%J,Macro) New R,KritTyp Set Macro=$G(Macro,$S($H#7=1:1,1:$H-2#7)) Do MACRO(Macro) Do DISPLAY^vhScherm("EWORDS") Do EDIT^vhScherm("EWORDSS",,,,,1) Set KritTyp="" For Set KritTyp=$O(Kriteria(KritTyp)) Quit:KritTyp="" Do .Set Kriteria="" .For Set Kriteria=$O(Kriteria(KritTyp,Kriteria)) Quit:Kriteria="" Do ..Set R=Kriteria(KritTyp,Kriteria) ..Quit:R="" ..Set ^HULP(%J,"S",KritTyp,Kriteria)=R Kill Kriteria Quit ; SELEDIT(Macro) New %SC,R,Kriteria,KritTyp Set Macro=$G(Macro) If $D(^HULP(%J,KLNr,"M","A")) Quit:$$SAVE()="" Do UNLOCK,CLEAN Do:$L(Macro) INITKR,MACRO(Macro) If $D(Kriteria) Set %SC=1 Else Do .Do INITKR .Merge Kriteria=^HULP(%J,"S") .Do DISPLAY^vhScherm("EWORDS") .Do EDIT^vhScherm("EWORDSS",,,,,1) If %SC Do .For Lock +^HULP(%J,"Q"):0 Quit:$T .Kill ^HULP(%J) .Set ^HULP(%J,"MAXCOUNT")=3 .Set KritTyp="" .For Set KritTyp=$O(Kriteria(KritTyp)) Quit:KritTyp="" Do ..Set Kriteria="" ..For Set Kriteria=$O(Kriteria(KritTyp,Kriteria)) Quit:Kriteria="" Do ...Set R=Kriteria(KritTyp,Kriteria) ...Quit:R="" ...Set ^HULP(%J,"S",KritTyp,Kriteria)=R .Lock -^HULP(%J,"Q") .If $G(^HULP(%J,"S","K","KLNR")) Do ..Set KLNr=^HULP(%J,"S","K","KLNR") ..Set ^HULP(%J,"Q",1)=KLNr ..Do VERWERK(KLNr,,,%J) .Else If $G(^HULP(%J,"S","O","ORDNR")) Do ..Set ORDNr=^HULP(%J,"S","O","ORDNR") ..Do VERWERK(,ORDNr) .Else Do ..Do NEXTKL^EWORDS(%J) ..;Job NEXTKL^EWORDS(%J) ..Set FP=2201 ..Write @FCH,@F,@F1 ..Set FP=160 ..Write @F,@FMTK,"*** I'm thinking ***",@FMTk ..For Quit:$D(^HULP(%J,"Q",1)) Hang 1 ..Write @FCS ..Set FP=160 ..Write @F,@F2 ..If ^HULP(%J,"Q",1)="EOF" Do ...Set R=$$^vhTXTPOP("EWORDS","NOCUSTS"),Input="S" ..Else Do ...Set Count=1,KLNr=^HULP(%J,"Q",Count) ...Do REFRESH(KLNr) Else Do REFRESH(KLNr) Quit ; VERWERK(KLNr,ORDNr,Optie,%J) New R,zb,Last,Count,DefInp,PrevInp,Hulp Set KLNr=$G(KLNr),ORDNr=$G(ORDNr),Optie=$G(Optie),%J=$G(%J),Count=1 If %J,'KLNr Set KLNr=^HULP(%J,"Q",1) Do INITVW,FETCH(KLNr,ORDNr,Optie) If "()"'[$G(DefInp)!'$L($G(DefInp)) Do HOOFDING Do INIT^vhLIST("EWORDS","LIJST",.LD) If ORDNr Do .For LD("SELECT")=1:1 Quit:'$D(^HULP(%J,KLNr,"O",LD("SELECT"))) Quit:$P(^HULP(%J,KLNr,"O",LD("SELECT")),D)=ORDNr .If '$D(^HULP(%J,KLNr,"O",LD("SELECT"))) Set LD("SELECT")=1 .Else Set:Optie["S" DefInp="ENTER" Do WRITE^vhLIST(.LD) If '$D(^HULP(%J,KLNr,"O")) Do .If Optie["A",$L($G(DefInp)),"()"[DefInp Quit .Set R=$$NOORDS(KLNr) Kill Hulp Set Hulp(KLNr)="",R=$$WAARDIG^KREDIET(KLNr,,,,,.Hulp) For Set Input=$S($D(DefInp):DefInp,1:$$SCROLL^vhLIST(.LD)) Do Quit:Input="CANC" .Kill DefInp .Set PrevInp=Input .;Do REFRVERZ .If Input="COM" Set Input="" Do CALL^vhMenu("EWORDS") .If Input="SAVE" Do CLOSE Quit .If Input="(",Optie["A",Optie'["T",Count=1 Write *7 Quit .If Input=")",Optie["A",Optie'["T",$O(^HULP(%J,"Q",Count)),^($O(^HULP(%J,"Q",Count)))="EOF" Write *7 Quit .Do EXEC^vhMenu("EWORDS",.Input) .If '$D(Hulp(KLNr)) Kill Hulp Set Hulp(KLNr)="",R=$$WAARDIG^KREDIET(KLNr,,,,,.Hulp) If Optie'["A",Optie'["T" Kill ^HULP(%J) Quit ; FETCH(KLNr,ORDNr,Optie) New R,Count,OLNr,MarkOrd,OLUNr,EwmsVerw,VerzW,Lock,VerzZ,GewGemWv,PRNr,Beloofd,IsTBX,StockNiveauService,VkpKinderen New LevTerm,BufferW,Week,DynTheoS,KomOrd,StockUpd,FysStock,PraStock,TeoStock,Aantal,ResWMS,Order,OrderStaatVolledigBijVanHoecke Set KLNr=$G(KLNr),ORDNr=$G(ORDNr),Optie=$G(Optie),VerzW="",(Beloofd,IsTBX)=0 If ORDNr Set KLNr=$P(^KO1(ORDNr,"F"),D),VerzW=$$DEFVERZW(KLNr,ORDNr),Beloofd=$$Beloofd(KLNr,ORDNr),IsTBX=$$ISTBX^FLOWCHK("O",ORDNr) Kill ^HULP(%J,KLNr) For I=0,1 Set ^HULP(%J,KLNr,"K",I)=^KKL(^KK1(KLNr),I) Set Count=0,MarkOrd=ORDNr,ORDNr="" For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do Quit:$G(Lock)="K" .Quit:'$$CHKORD^EWORDS5(%J,KLNr,ORDNr,Optie) .Set Lock=$$LOCK(KLNr,ORDNr) .If 'Lock Do Quit ..Quit:Lock'="K" ..If "()"[$G(PrevInp)!'$L($G(PrevInp)) Set DefInp=$S('$L($G(PrevInp)):")",1:PrevInp) ..Kill ^HULP(%J,KLNr,"O") .Set:'Beloofd Beloofd=$$Beloofd(KLNr,ORDNr) .Set:'IsTBX IsTBX=$$ISTBX^FLOWCHK("O",ORDNr) .Set R("O",1)=^KOD(KLNr,"F",ORDNr,1),R("O",3)=^KOD(KLNr,"F",ORDNr,3) .Set:$P(R("O",1),D,7)="" $P(R("O",1),D,7)=$$DEFVERZW(KLNr) .Set:VerzW="" VerzW=$P(R("O",1),D,7) .Set R=ORDNr,$P(R,D,2,3)=$P(R("O",1),D,2,3),$P(R,D,4)=$$LEVADR(R("O",3),20) .Set $P(R,D,5)=$P(R("O",1),D,25),$P(R,D,7)=$P(R("O",1),D,7),$P(R,D,8)=$P(R("O",1),D,16) .Set Count=Count+1,^HULP(%J,KLNr,"O",Count)=R,OLNr=100 .Set Order = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefOrder(ORDNr) .Set OrderStaatVolledigBijVanHoecke = ##class(BL.Legacy.EWTOE).OrderStaatVolledigBijVanHoecke(ORDNr) .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ..Set R("O","L")=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R("O","L"),D,2) ..Quit:'PRNr ..If '$P(R("O","L"),D,15) Do ...Do BUILDORD^FLOWORD3(KLNr,ORDNr,OLNr) ...Set R("O","L")=^KOD(KLNr,"F",ORDNr,OLNr) ..Set OLUNr=$P(R("O","L"),D,15),KomOrd=$P(R("O","L"),D,27) Set:'KomOrd KomOrd=$L($P(R("O","L"),D,28)) ..Set EwmsVerw=$D(^ORDW("IO",ORDNr,OLUNr)) ..If EwmsVerw,Optie'["F" Quit ..Set StockUpd=$P(R("O","L"),D,14)'["S" Set:StockUpd StockUpd=$P(R("O","L"),D,14)'["Z" ..If PRNr,'$$MAGHANDEL^PRODUKT2(PRNr) Set StockUpd=0,$P(R("O","L"),D,14)="Z" ..Set R("P",0)=^KPR(PRNr,0),R("P",1)=^KPR(PRNr,1),GewGemWv=$P(R("P",1),D,23),BufferW=$P(R("P",1),D,17) .. ; New ..Set R=$O(^KPR(PRNr,"J")),DynTheoS="",WVTekort="" ..Set LevTerm=6 ..If $E(R)="J" Do ...Quit:$P(R("O","L"),D,3)<0 Quit:'StockUpd ...Set R=^KPR(PRNr,R),LevTerm=$P(R,D,7) ...Set WeekDat=(LevTerm+BufferW)*7+$H ...Set WVStock=$$CV2MAG^MRP(PRNr,$P($G(^PRSTOCK("D",PRNr)),D,5)) Set:WVStock<0 WVStock=0 ...If $$GeenMaatWerkCheck(PRNr) Do ;het maatwerk is gemaakt, niet meer op de kinderen controleren ....Set VkpKinderen = "0\0\0" ...else Do ....Set VkpKinderen = "0\0\0" ;$$VerkoopKinderen^PRODUKT4(PRNr,WeekDat) ;reeds door AX gedaan. ...Set WVRes=$$CV2MAG^MRP(PRNr,$P(VkpKinderen,"\",2)) ...Set WVTekort=$S(KLNr=$$$KlantHalux:"",WVStock1 Count=Count-1 Quit Quit:$$SAVE()="" Do UNLOCK,CLEAN Set KLNr=^HULP(%J,"Q",Count) Do FETCH(KLNr,,Optie) If "()"'[$G(DefInp)!'$L($G(DefInp)) Do HOOFDING Do INIT^vhLIST("EWORDS","LIJST",.LD),WRITE^vhLIST(.LD) If '$D(^HULP(%J,KLNr,"O")) Do .If Optie["A",$L($G(DefInp)),"()"[DefInp Quit .Set R=$$NOORDS(KLNr) Do:$O(^HULP(%J,"Q",Count-1+MaxCount))="" NEXTKL^EWORDS(%J) ;Job:$O(^HULP(%J,"Q",Count-1+MaxCount))="" NEXTKL^EWORDS(%J) Quit ; VWPREV New R If $O(^HULP(%J,"Q",Count),-1)="" Write *7 Quit Quit:$$SAVE()="" Do UNLOCK,CLEAN Set Count=$O(^HULP(%J,"Q",Count),-1),KLNr=^HULP(%J,"Q",Count) If KLNr="EOF" Set Input="-" Quit Do FETCH(KLNr,,Optie) If "()"'[$G(DefInp)!'$L($G(DefInp)) Do HOOFDING Do INIT^vhLIST("EWORDS","LIJST",.LD),WRITE^vhLIST(.LD) If '$D(^HULP(%J,KLNr,"O")) Do .If Optie["A",$L($G(DefInp)),"()"[DefInp Quit .Set R=$$NOORDS(KLNr) Quit ; NEXTKL(%J,MaxCount) New D,I,Count,KLNr,KlantInd,Kriteria Lock +^HULP(%J,"Q"):0 Else Quit Merge Kriteria=^HULP(%J,"S") Set MaxCount=$G(MaxCount,$G(^HULP(%J,"MAXCOUNT"),1)) Set D="\",Count=+$O(^HULP(%J,"Q",""),-1),MaxCount=MaxCount+Count If Count Do Goto NEXTKL1:KLNr="EOF" .Set KLNr=^HULP(%J,"Q",Count) ;.Set:KLNr'="EOF" KlantInd=^KK1(KLNr) Else Set KLNr=1 ;niet blanco, anders 0 node die geen data bevat. For Set KLNr=$O(^KOD(KLNr)) Quit:KLNr="" Do Quit:Count=MaxCount .If '$D(^HULP(%J)) Set Count=MaxCount Quit .;Set KLNr=$P(^KKL(KlantInd,0),D) .Quit:'$$CHKORD^EWORDS5(%J,KLNr) .If '$D(^HULP(%J)) Set Count=MaxCount Quit .Set Count=Count+1,^HULP(%J,"Q",Count)=KLNr Set:KLNr="" Count=Count+1,^HULP(%J,"Q",Count)="EOF" NEXTKL1 Lock -^HULP(%J,"Q") Quit ; NEXTKLOrg(%J,MaxCount) New D,I,Count,KLNr,KlantInd,Kriteria Lock +^HULP(%J,"Q"):0 Else Quit Merge Kriteria=^HULP(%J,"S") Set MaxCount=$G(MaxCount,$G(^HULP(%J,"MAXCOUNT"),1)) Set D="\",Count=+$O(^HULP(%J,"Q",""),-1),MaxCount=MaxCount+Count If Count Do Goto NEXTKL1Org:KLNr="EOF" .Set KLNr=^HULP(%J,"Q",Count) .Set:KLNr'="EOF" KlantInd=^KK1(KLNr) Else Set KlantInd=0 For Set KlantInd=$O(^KKL(KlantInd)) Quit:KlantInd="" Do Quit:Count=MaxCount .If '$D(^HULP(%J)) Set Count=MaxCount Quit .Set KLNr=$P(^KKL(KlantInd,0),D) .Quit:'$$CHKORD^EWORDS5(%J,KLNr) .If '$D(^HULP(%J)) Set Count=MaxCount Quit .Set Count=Count+1,^HULP(%J,"Q",Count)=KLNr Set:KlantInd="" Count=Count+1,^HULP(%J,"Q",Count)="EOF" NEXTKL1Org Lock -^HULP(%J,"Q") Quit ; DISPTOER(ToerRef) If $L(ToerRef) Do .If $D(^RES("EWORDS","PI","TOER","D",ToerRef)) Do ..Set ToerRef=$P(^RES("EWORDS","PI","TOER","D",ToerRef),"`",2) .Else Set ToerRef=$TR(ToerRef,";",",") Quit ToerRef ; INIT Set %J=$$%J^vhRtn1(),DOutSend=$G(DOutSend,"?") Kill ^HULP(%J) Set ^HULP(%J,"MAXCOUNT")=3 Do INITKR Quit ; INITKR Set Kriteria("K","KLNR")="" Set Kriteria("K","TOER")="" Set Kriteria("O","ORDNR")="" Set Kriteria("O","WEEK")="" Set Kriteria("O","DAG")="" Set Kriteria("O","LEVNR")="" Set Kriteria("O","VERZ")="" Set Kriteria("O","VERH")="" Set Kriteria("O","OTYP")="" Set Kriteria("O","MAGAZIJN")="Van Hoecke" Quit ; INITVW Do:'%J INIT Do:ORDNr .Set:Kriteria("O","OTYP")="" Kriteria("O","OTYP")="+T",^HULP(%J,"S","O","OTYP")="+T" .Set:'KLNr KLNr=$P(^KO1(ORDNr,"F"),D) Quit ; INITSCREEN(Screen) New Rubriek,Rubrieken Do:Screen="S" ; selectiekriteria .Do:$G(Kriteria("K","KLNR"))=7587 ..Set Rubrieken="KLANT\TOER\ORDER\WEEK\DAG\LEVERANC\VERZENDING\VERHOUDING\ORDTYP" ..For Quit:Rubrieken="" Do ...Do PUTATTR^vhScherm($P(Rubrieken,D),"D","D") ...Set Rubrieken=$P(Rubrieken,D,2,99) Quit ; HOOFDING Goto HOOFDING^EWORDS4 ; CHKMENU(Menu,Aktie) Quit $$CHKMENU^EWORDS3(Menu,$G(Aktie)) ; GeefMarkering(R) New ORDNr,OLNr,OLUNr,DoorstuurType,Markering Set Markering = "" Set ORDNr=$P(R,D),OLNr=$P(R,D,11),OLUNr=$P(R,D,19) Set DoorstuurType = $P(R,D,37) If $D(^HULP(%J,KLNr,"M","A",ORDNr,OLUNr)){ Set Markering = "--->" } ElseIf (DoorstuurType = ##class(DOM.VKP.enu.OrderDoorstuurType).WachtOpAnderOrder()){ Set Markering = "WACHT" } Quit Markering ; RPLKL(KLNr,Screen) Goto RPLKL^EWORDS4 ; RPLPR(Screen) Goto RPLPR^EWORDS4 ; MODORD Goto MODORD^EWORDS4 ; MODTOE Goto MODTOE^EWORDS4 ; RUBREXEC New RubrName,TempKrit If $E(X)="M" Do MACRO($E(X,2,99),1) Quit Set RubrName=$S(X:$$EDITID^vhScherm(X),1:"") If $L(RubrName) Do .Merge TempKrit=Kriteria .If RubrName="KLANT" Do ..New KLNr ..Set X="",KLNr=$$SELECT^KLANT6() ..Quit:'KLNr ..Set Kriteria("K","KLNR")=KLNr,X="-" ..Set:$D(TempKrit("O","OTYP")) Kriteria("O","OTYP")=TempKrit("O","OTYP") ..If $G(DOutSend)'="V",$G(DOutSend)'="L" ; Versturen WMS = vragen indien nodig ..Else Do ... Set Kriteria("O","DAG")=TempKrit("O","DAG") .If RubrName="ORDER" Do ..New ORDNr,KLNr ..Set X="" ..For Set ORDNr=$$SELECT^FLOW("KOD","KO1",1,1) Quit:'ORDNr Set KLNr=$P($G(^KO1(ORDNr,"F")),D) If KLNr Quit:$D(^KOD(KLNr,"F",ORDNr)) ..Quit:'ORDNr ..Kill Kriteria ..Set Kriteria("O","ORDNR")=ORDNr,X="-" 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 New OnvolledigOrderPopup, PopupDetail, KKLNode3 Set Ok = $$$False If $Data(^HULP(%J,KLNr,"M","A")) { Set Ok=$$CHKMUNT(%J,KLNr,$Get(NoAsk)) If Ok,KLNr'=$$$KlantHalux Do AnderTransport^EWORDS5(%J,KLNr) ; altijd uitvoeren niet afhankelijk van NoAsk param, niet voor Halux. If Ok Set Ok=$Get(NoAsk) Set:'Ok Ok=$$^vhTXTPOP("EWORDS","SAVE") If (Ok) { Set R = $Get(^HULP(%J,KLNr,"V")) Set DOutDate = $Piece($Piece(R,D,2),",") Set DOutTime = $Piece(R,D,3) Set VerzZ = $Piece(R,D,4) Set VerzDat = $Piece(R,D,5) Set ORDNr = $Order(^HULP(%J,KLNr,"M","A","")) Set VerzW = ##class(BL.Legacy.EWORDS.Save).GeefVerzendWijze(.KLNr, ORDNr, R) Do ##class(vhLib.Logger).%New("SAVE^EWORDS").Debug("Start opmaken pickingopdracht", "ORDNr='"_ORDNr_"' --> " _ $Get(VerzW)) // 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() Set ORDNr="" For { Set ORDNr=$Order(^HULP(%J,KLNr,"M","A",ORDNr)) Quit:(""=ORDNr) Set KKLNode3=^KKL(^KK1(KLNr),3) Set Rembours=$P(KKLNode3,"\") If (Rembours && ($$$Not(##class(CHUI.VKP.OrderIngave.OrderControle).%New().IsOrderVolledigGemarkeerd(%J,KLNr,ORDNr)))) { Set PopupDetail = "Omdat het remboursbedrag van deelleveringen niet kan berekend worden, is het niet toegelaten om orders gedeeltelijk door te sturen voor picking. " Set PopupDetail = PopupDetail_"U kan in AX het order splitsen in 2 en dan 1 van die delen doorsturen voor picking." Set OnvolledigOrderPopup = $$Boodschap^vhTXTPOP(PopupDetail) Kill ^HULP(%J, KLNr, "M", "A") Quit } Else { For { Set OLU=$Order(^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") If $$$Not(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 ##class(vhLib.Logger).%New("SAVE^EWORDS").Debug("Lijn registreren in ^HULP", "OrderLijnNummer='"_PickingOpdrachtInfo.GeefOrderLijnNummer()_"'") } Do ##class(vhLib.Logger).%New("SAVE^EWORDS").Debug("Start opmaken pickingopdracht", "BLCONS voor "_ CONSNr _ "met VerzW " _ VerzW ) Do BLDCONS^EWORDS2(KLNr,$Name(^HULP(%J,KLNr,"M")),CONSNr,$Piece(VerzW,";"),VerzDat,DOutDate_","_DOutTime,VerzZ,LevAdr,.ChkBeletDone) ; Creatie suborderlijnen Do STORE^LOG("ORDW", CONSNr, "O", ##class(BL.Legacy.EWORDS.Save).GeefOrderNummers(CONSNr)) Set ChkBeletDone = $Get(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:$Piece(R,D,20)="K" Quit:$Piece(R,D,20)="B" Quit:$Piece(R,D,20)="C" Quit:ChkBeletDone="B" Set:ChkBeletDone="" Check=$$CHECK^EWORDS3(CONSNr,1),Rembours=$Piece(Check,D,2) If ChkBeletDone="",'Check!Rembours Do BELET^EWORDS3(CONSNr) Quit Quit:'$$MagazijnBeschikbaar(CONSNr) Set Send=$Select($Get(DOutSend)="L":0,1:1) If Send,DOutDate>$H { Set Send=$Select(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") } } Quit Ok ; ; Controle van de facturatiemunt CHKMUNT(%J,KLNr,NoAsk) New R,Ok,ORDNr,OLUNr,OLNr,ChkMunt,OrdMunt Set (ORDNr,ChkMunt)="",Ok=1 For Set ORDNr=$O(^HULP(%J,KLNr,"M","A",ORDNr)) Quit:ORDNr="" Do .Set R=^KOD(KLNr,"F",ORDNr,1),OrdMunt=$P(R,D,18) .Set:ChkMunt="" ChkMunt=OrdMunt If ChkMunt'=OrdMunt Do .Set Ok=0 .Quit:$G(NoAsk) .Set R=$$^vhTXTPOP("EWORDS","CHKMUNT") Quit Ok ; CLEAN Kill ^HULP(%J,KLNr) Quit ; BEWAAR(Ref) New R,sRec If $D(^HULP(%J,KLNr,"M","A")) Do .Set:$G(Ref) sRec=^HULP(%J,KLNr,"O",Ref) .Set R=$$SAVE(1) .Do UNLOCK,CLEAN .Do FETCH(KLNr,,Optie),INIT^vhLIST("EWORDS","LIJST",.LD) .If $L(sRec) For Ref=1:1 Quit:sRec[$G(^HULP(%J,KLNr,"O",Ref)) .Set LD("SELECT")=Ref .Do WRITE^vhLIST(.LD) Quit ; CLOSE New R Set R=$$SAVE(),Input="" If $L(R) Do .Do UNLOCK,CLEAN .Set Input="CANC" Quit ; VIEW(View) New R If $D(^HULP(%J,KLNr,"M","A")) Quit:$$SAVE()="" Do UNLOCK,CLEAN Set Optie=$TR(Optie,"F","")_$G(View) Do FETCH(KLNr,,Optie),INIT^vhLIST("EWORDS","LIJST",.LD),WRITE^vhLIST(.LD) Quit ; MACRO(Macro,Repaint) New zb,KritTyp,Count Quit:Macro'?.N If Macro="" Do .Set FP=2201 .Write @F,@F1 .Set Macro=$$SELMACRO() If $L(Macro) Do .If Macro'=0,'$D(^EWSEL("ORDS","M"_Macro)) Quit .Set KritTyp="" .For Set KritTyp=$O(Kriteria(KritTyp)) Quit:KritTyp="" Do ..Set Kriteria="" ..For Set Kriteria=$O(Kriteria(KritTyp,Kriteria)) Quit:Kriteria="" Do ...Set R="" ...if $data(^EWSEL("ORDS","M"_Macro,KritTyp,Kriteria)) do .... Set R=^EWSEL("ORDS","M"_Macro,KritTyp,Kriteria) .... If $L(R),"""$"[$E(R) Xecute "Set R="_R .... Set Kriteria(KritTyp,Kriteria)=R .Do:$G(Repaint) REPAINT^vhScherm("") Quit ; SELMACRO() New zb,Macro,Count Set Macro="" For Set Macro=$O(^EWSEL("ORDS",Macro)) Quit:Macro="" Do .Set Macro("F",$E(Macro,2,99))=$P(^EWSEL("ORDS",Macro),"`") Set Macro="",Count=0 For Set Macro=$O(Macro("F",Macro)) Quit:Macro="" Do .Set R=Macro("F",Macro) .If $L(R),"""$"[$E(R) Xecute "Set R="_R .Set R=Macro_"`"_R,Count=Count+1,Macro(Count)=R Kill Macro("F") Set Macro=$$WILD^vhPOPUP("C;C","OK1-","",.Macro) If 'Macro,zb'="CANC" Set Macro=0 Quit Macro ; GETMACRO(Select) New Macro If $G(Select) Do .Set Macro=$$SELMACRO() Else Do .Set Macro=$$SCROLL^vhLIST(.LD,,2) If $L(Macro),$D(^EWSEL("ORDS","M"_Macro))!(Macro=0) Do .Do:$P(^EWSEL("ORDS","M"_Macro),"`",2) ; Macro moet editeerbaar zijn ..Do INITKR,MACRO(Macro) ..Kill ^HULP(%J,"S") ..Merge ^HULP(%J,"S")=Kriteria ..Set Macro="" .Do SELEDIT(Macro) .Set Input="" Else Set Input=Macro Set:Input="-" Input="CANC" Quit ; MODAANT(Ref,ChkKred,Leveren,BackOrd,BoLevWk) New %SC,R,ORDNr,OLNr,Aantal,OLUNr,Quit,Display,LevWk New PRNr,FysStock,ResWMS,KlOLNr,InGroep,BackGrnd,Faktor Quit:'$$CUMORD^EWORDS3(.Ref) Set ChkKred=$G(ChkKred,1),BackGrnd=$D(Leveren) Set R=^HULP(%J,KLNr,"O",Ref),ORDNr=$P(R,D),OLNr=$P(R,D,11) Set PRNr=$P(R,D,12),Aantal=$P(R,D,13),FysStock=$P(R,D,14),OLUNr=$P(R,D,19),LevWk=$P(R,D,18) Set KlOLNr=$P(R,D,35),Faktor=$P(R,D,36) Set:'Faktor Faktor=1 Set ResWMS=$$RESWMS(%J,KLNr,PRNr) Set FysStock=FysStock+$P(^KPR(PRNr,0),D,9)-ResWMS+$P($G(^HULP(%J,KLNr,"M","A",ORDNr,OLUNr)),D) Set R=$G(^HULP(%J,KLNr,"M","A",ORDNr,OLUNr)) Set:'BackGrnd Leveren=$P(R,D),BoLevWk=$P(R,D,4) Set:$L($P(R,D,3)) LevWk=$P(R,D,3) Set:BoLevWk="" BoLevWk=LevWk Set:'Leveren Leveren=Aantal Set Quit=0 Do STORE^vhTERMINA() If ChkKred,'$D(^HULP(%J,KLNr,"M")) Do .Do STORE^vhTERMINA() .Set R=$$WAARDIG^KREDIET(KLNr,,1) .Do REFRESH^vhTERMINA() If 'BackGrnd Do .Quit:'$P(KlOLNr,".",2) .Quit:'$$INGROEP^EWORDS5(ORDNr,KlOLNr) .Quit:'$$CHKGRP^EWORDS5(Ref) .Set InGroep=$$^vhTXTPOP("EWORDS","ALSGROEP","",$P(^KPR(PRNr,0),D))="G" If BackGrnd Do .Set %SC=1,Leveren=Leveren*Faktor .If BackOrd,LeverenFysStock:Leveren,1:FysStock),%SC=0 Else If '$P(KlOLNr,".",2) Do .Set:X'?.N sEr="Foutieve numerieke ingave" .Set:X'>0&$L(X) sEr=$S(Leveren'>0:"",1:"Minimum 1") .Set:X>FysStock sEr="Maximum "_FysStock_" (fys stock)" .Set:(X>Leveren)&&(Leveren>0) sEr="Aantal mag niet groter zijn dan orderaantal "_Leveren_" !" Else Do .New SLFaktor .Set SLFaktor=Faktor .If X#Faktor Set sEr="Moet een veelvoud zijn van "_Faktor .Else Do ..New I,R,ORDNr,KlOLNr,Faktor,FysStock,PRNr ..Set sEr="" ..Set R=^HULP(%J,KLNr,"O",Ref),ORDNr=$P(R,D),FysStock=$P(R,D,14) ..Set KlOLNr=$P(R,D,35),Faktor=$P(R,D,36) Set:'Faktor Faktor=1 ..For I=1:1 Quit:'$D(^HULP(%J,KLNr,"O",I)) Do Quit:$L(sEr) ...Set R=^HULP(%J,KLNr,"O",I),PRNr=$P(R,D,12),FysStock=$P(R,D,14),Faktor=$P(R,D,36) Set:'Faktor Faktor=1 ...Quit:$P(R,D)'=ORDNr ...Quit:$P($P(R,D,35),".")'=$P(KlOLNr,".") ...Quit:$P($P(R,D,35),".",3)'=$P(KlOLNr,".",3) ...Set FysStock=FysStock\Faktor*Faktor ...If X#Faktor Set sEr="Moet een veelvoud zijn van "_Faktor ...Else Do ....New KlOLNr ....Set X=X/SLFaktor*Faktor,KlOLNr="" ....Do CHKAANT ....Set X=X*SLFaktor/Faktor ...If sEr["Maximum ",sEr[" (fys stock)" Do ....Set sEr="Maximum "_(FysStock*SLFaktor/Faktor) ....Set sEr=sEr_" (fys stock van """_$P(^KPR(PRNr,0),D)_""" is "_FysStock_")" Quit ; TEMPCUST If $D(^HULP(%J,KLNr,"M","A")) Quit:$$SAVE()="" Do UNLOCK,CLEAN Do .New KLNr,Input .Set KLNr=$$SELECT^KLANT6() .Do:KLNr VERWERK(KLNr,,$TR(Optie,"A","")_"T",%J) Do FETCH(KLNr,,Optie) If "()"'[$G(DefInp)!'$L($G(DefInp)) Do HOOFDING Do INIT^vhLIST("EWORDS","LIJST",.LD),WRITE^vhLIST(.LD) Quit ; MODVERZW(VerzendWijze) New sdVerzendWijze set sdVerzendWijze=^HULP(%J,KLNr,"V") ; kijken wat er in de temp global zit If $L($G(VerzendWijze)) Do . Do SETVERZW(KLNr,,VerzW) . Set GewenstePickDatum = $piece(sdVerzendWijze,D,2) . ; onderstaande lijn niet meer gebruiken zie [ict-5848] . ;If VerzendWijze?1(1"DD1",1"DI1") Set GewenstePickDatum=$$GetPickDatum^EWORDS6(ORDNr) ; aangepast PV 18/01/2022 - voortrekken toelaten met het behouden van de gewenste verzenddatum. In comment 04/04/23 vanwege PV . Do VulInVerzendWijzeInHoedjeHulp(KLNr,ORDNr, GewenstePickDatum,VerzW) . Do DISPLAY^vhScherm("EWORDSH",,,,"VERZWIJZE;GERAAPT;VERZZONE;VERZDATUM") Else DO MANMODVERZW quit VulInVerzendWijzeInHoedjeHulp(KLNr, ORDNr, GewenstePickDatum,VerzendingWijze) New blLeveringsTermijn,blVerzendWijze,IsVoorVandaag,DOutDateTime,VerzDat,LaatstePickingTijdstip,sdVerzendWijze set sdVerzendWijze=^HULP(%J,KLNr,"V") ; kijken wat er in de temp global zit Do INITDOMVKP^FLOWORD2(KLNr,ORDNr) Set DueOutTime = blLeveringsTermijn.GetDueOutPickingTime() If (+GewenstePickDatum = ##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentDate()) { Set IsVoorVandaag = (##class(BL.Legacy.EWORDS6).PickingVoorVandaagVolgendeArbeidsdagOfAndereDag(ORDNr)=1) Set GewenstePickDatum = $S(IsVoorVandaag:+$H,1:+$$CALCDATE^vhLib.DataTypes($H,"A",1)) } Set VerzDat=blLeveringsTermijn.GetVroegsteLeverDag(+GewenstePickDatum) Set LaatstePickingTijdstip = blLeveringsTermijn.GetLaatstePickingsTijdstip(VerzDat) Set $P(sdVerzendWijze,D,1) = VerzendingWijze Set $P(sdVerzendWijze,D,2) = LaatstePickingTijdstip Set $P(sdVerzendWijze,D,3) = DueOutTime Set $P(sdVerzendWijze,D,5) = blLeveringsTermijn.GetVroegsteLeverDag(+LaatstePickingTijdstip) Set ^HULP(%J,KLNr,"V")=sdVerzendWijze Set ^HULP(%J,"V","V")=sdVerzendWijze Quit MANMODVERZW new %SC , sdVerzendWijze , VerzendWijze set %SC=1 set sdVerzendWijze=^HULP(%J,KLNr,"V") set VerzendWijze= $P(sdVerzendWijze,D,1) if '$L(VerzendWijze) set VerzendWijze = $P($$DEFAULT^KLVERZW(,KLNr),";") set $piece(sdVerzendWijze,D,1) = VerzendWijze Do EDIT^vhScherm("EWORDSV",,,,,,3) If %SC Do . Set ^HULP(%J,KLNr,"V")=sdVerzendWijze . Set ^HULP(%J,"V","V")=sdVerzendWijze Do DISPLAY^vhScherm("EWORDSH",,,,"VERZWIJZE;GERAAPT;VERZZONE;VERZDATUM") quit MORGEN New %SC,R,sdVerzendWijze,VerzW,DOutTime Set R=^HULP(%J,KLNr,"V"),VerzW=$P($P($P(R,D),"`"),";") Set DOutTime=$P(^RES("KLANT","PI","VERZENDWIJZE","D",VerzW),"`",4) If $P(R,D,2)=+$H!'$P(R,D,2) Do .Set $P(R,D,2)=$$CALCDATE^vhLib.DataTypes(,"A",1) .Set:$$EXTDATE^vhLib.DataTypes(,"DWN")=4 $P(R,D,3)=$P($$CALCTIME^vhLib.DataTypes(+$H_","_$P(R,D,3),"M",-30),",",2) .Set:'DOutTime $P(R,D,3)=$$INTTIME^vhLib.DataTypes("06:00") .Set $P(R,D,5)=$$CALCZDAT($P(R,D),$P(R,D,2)) .Set ^HULP(%J,KLNr,"V")=R .Set sdVerzendWijze = ^HULP(%J,KLNr,"V") .Do DISPLAY^vhScherm("EWORDSH",,,,"GERAAPT;VERZDATUM") Quit ; CALCDOUT(VerzW,KLNr,Beloofd,IsTBX) New R,DOutDate,DOutTime,TimeLim,Land Set R=^RES("KLANT","PI","VERZENDWIJZE","D",$P(VerzW,";")),DOutDate=0,DOutTime=$P(R,"`",4),TimeLim=$P(R,"`",5) If $G(Beloofd),'$G(IsTBX),$P(R,"`",13) Set DOutTime=$P(R,"`",13) If $E(VerzW,1,3)="DI1",$$LAND^vhRtn1($G(KLNr),"K")="NL" Set DOutTime=DOutTime-600 Set:TimeLim TimeLim=TimeLim-600 ; 10 minuten vervroegen voor GLS Nederland If $E(VerzW,1,2)="AF",VerzW'="AFW" Set DOutTime=3600 ; Afhalingen op een uur 's nachts zodat deze steeds overal voorkomen If TimeLim Set DOutDate=$P($H,",") Set:$P($H,",",2)>TimeLim DOutDate=$$CALCDATE^vhLib.DataTypes($H,"A",1) If $G(DOutSend)="L" Set R=$$CALCDATE^vhLib.DataTypes($H,"A",1) Set:R>DOutDate DOutDate=R Set:$G(DOutSend)="V" DOutDate=+$H Quit DOutDate_","_DOutTime ; CALCZDAT(VerzW,DOutDate) New VerzDat Set DOutDate=$P($G(DOutDate,$$CALCDOUT(VerzW)),",") Set VerzDat=$P(^RES("KLANT","PI","VERZENDWIJZE","D",$P(VerzW,";")),"`",7) Set VerzDat=$$CALCDATE^vhLib.DataTypes($S(DOutDate:DOutDate,1:$H),"A",VerzDat) Quit VerzDat ; VERZZ(VerzZ,Display) New Position If '$G(Display) Do .Set FP=2201 .Write @F,@F1 .Set Position=$P(sFR,"`",5) Set:$L(VerzZ) Position=Position-$P(^RES("EWORDS","PI","VERZENDZONE","D",VerzZ),"`") .Set Position=Position+17_";"_$P(sFR,"`",6) .Set VerzZ=$$PI^vhPOPUP(Position,"O1-","Verzendzone","EWORDS","VERZENDZONE",VerzZ) Else Set:$L(VerzZ) VerzZ=$P(^RES("EWORDS","PI","VERZENDZONE","D",VerzZ),"`",2) Quit VerzZ ; DEFVERZW(KLNr,ORDNr) New I,R,Default,Kriteria,VerzW,DagNr,DagNrVoorwerken Set Default=$$DEFAULT^KLVERZW(,$G(KLNr),$G(ORDNr)) Merge Kriteria=^HULP(%J,"S","O") Set R="`"_$G(Kriteria("VERZ")) D:R["`OD;" ; Indien "OD;d" alle verzendwijzen "OD" ophalen voor dag 'd' . Set DagNr=$E(R,$F(R,"`OD;")),VerzW="OD" . For Set VerzW=$O(^RES("KLANT","PI","VERZENDWIJZE","D",VerzW)) Quit:$E(VerzW,1,2)'="OD" If $E(VerzW,3)?.N,R'[("`"_VerzW_";"_DagNr) Set R=R_"`"_VerzW_";"_DagNr . Set $E(R)="",Kriteria("VERZ")=R Set VerzW="",DagNr=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"A",1),"DWN") Set DagNrVoorwerken=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"A",2),"DWN") If $L($G(Kriteria("VERZ"))) For I=1:1:$L(Default,"`") Do Quit:$L(VerzW) .Quit:"`"_Kriteria("VERZ")_"`"'[("`"_$P(Default,"`",I)_"`") .Set VerzW=$P(Default,"`",I) If VerzW="",$L(Default,"`")=1 Set VerzW=Default If VerzW="" For I=1:1:$L(Default,"`") If $P($P(Default,"`",I),";",2)=DagNr Set VerzW=$P(Default,"`",I) Quit ;picking op dag voor verzending If VerzW="" For I=1:1:$L(Default,"`") If $P($P(Default,"`",I),";",2)=DagNrVoorwerken Set VerzW=$P(Default,"`",I) Quit ; 1 dag voorwerken? ;Set:VerzW="" VerzW="OD"_";"_DagNr ;-> dit was helemaal fout ("OD" op zich bestaat niet (meer) ) Set:VerzW="" VerzW=$p(Default,"`",1) ;1e verzendwijze van order, betere fallback dan 'OD' Quit VerzW ; NOORDS(KLNr) New KlNaam Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) Quit $$^vhTXTPOP("EWORDS","NOORDS","",KlNaam) ; LOCK(KLNr,ORDNr) New %TC,Device,User,Wait,NextDir,DevUser Set FP=501,Wait=0 Write @F,@F1 For Do Quit:'Wait .Do ADD^vhLock("^KOD(KLNr,""F"",ORDNr)") .If %TC Set Wait=0 Quit .Do:'Wait HOOFDING .Set Device=$$LOCKDEV^vhLock("^KOD(KLNr,""F"",ORDNr)") .Quit:Device=0 .Set User=$P($$USER^vhRtn1(Device),D) .Set DevUser=Device_$S(User=Device:"",1:" - "_User) .If Optie["A" Do ..Set NextDir="Volgende" Set:$G(PrevInp)="(" NextDir="Vorige" ..Set %TC=$$^vhTXTPOP("EWORDS","LOCKALLORD","",$$EXTNUM^vhLib.DataTypes(ORDNr,0,".",0),DevUser,NextDir) .Else Do ..Set %TC=$$^vhTXTPOP("EWORDS","LOCKORD","",$$EXTNUM^vhLib.DataTypes(ORDNr,0,".",0),DevUser) .Set Wait=%TC="W" Quit %TC ; UNLOCK Lock Quit ; ACTIVATE Do:$P($$ACTIVATE^EWRECS(),D,2) DISPLAY^vhScherm("EWORDS",,,,,1),HOOFDING Quit ; ; Kan een consolidatie opgenomen worden in een transport ChkTRANSPORT(CONSNr) New R,Ok,KLNr,VerzW,VervRef Quit 0 ; Test transport afgesloten Set R=^ORDW("D",CONSNr),KLNr=$P(R,D),VerzW=$P(R,D,2),Ok=VerzW="EX" Do:Ok ; Indien de verzendwijze ok, is er dan een order reeds op transport . Set ORDNr="" . For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:'Ok . . Set Ok=$P($G(^KOD(KLNr,"F",ORDNr,1)),D,12)="" Quit Ok ; ; Opnemen van een consolidatie in een transport TRANSPORT(CONSNr) New R,KLNr,VerzW,ORDNr,VervRef,GroepNr Do:$$ChkTRANSPORT(CONSNr) . Set R=^ORDW("D",CONSNr),KLNr=$P(R,D),VerzW=$P(R,D,2) . Set VerzW=VerzW_"#"_^RES("KLANT","PI","VERZENDWIJZE","D",VerzW,"N") . Do:$$^vhTXTPOP("EWORDS","TRANSPORT","",$P(VerzW,"#",2),CONSNr,$P(^KKL(^KK1(KLNr),0),D,2)) . . If $D(^KU1(CONSNr)) Do . . Else Do . . . Set (ORDNr,VervRef)="" . . . For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:$L(VervRef) . . . . Set R=$G(^KOD(KLNr,"F",ORDNr,1)) . . . . Quit:$P(R,D,7)'=$P(VerzW,"#") . . . . Do ##class(BL.Flow.Cons.TransportFlow).AddOrder(ORDNr) . . . . Set R=^KOD(KLNr,"F",ORDNr,1),VervRef=$P($P(R,D,12),";"),GroepNr=$P($P(R,D,12),";",2) . . . Quit:'VervRef . . . ; Alle orders worden aan het transport gekoppeld . . . Set ORDNr="" . . . For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do . . . . Set R=^KOD(KLNr,"F",ORDNr,1) . . . . Quit:$L($P(R,D,12)) ; Order reeds gekoppeld aan het transport . . . . Do ##class(BL.Flow.Cons.TransportData).AddOrder(ORDNr,VervRef,GroepNr) Quit ; ; Is een order beloofd Beloofd(KLNr,ORDNr) New Beloofd Set:'$G(KLNr) KLNr=$P(^KO1(ORDNr,"F"),D) Set Beloofd=$P(^KOD(KLNr,"F",ORDNr,1),D,16) Set:'Beloofd Beloofd=$$AUTOBEL^EWBON4(KLNr) Quit Beloofd ; ; Bereken de leverdag van een toer DateToer(Toer) New Dag,DateToer Set Dag=$$EXTDATE^vhLib.DataTypes(,"DWN") Set DateToer=$H+(Toer-Dag) Set:Dag'$H,Kriteria("O","DAG")'>($H+7) Set Kriteria("K","TOER")=$$EXTDATE^vhLib.DataTypes(Kriteria("O","DAG"),"DWN") . Do DISPVAL^vhScherm("TOER") Quit ; SelectMagazijn new arMagazijnen,SelectedItems,Magazijnen set FP=2201 write @F,@F1 set arMagazijnen(1)="Van Hoecke`Van Hoecke" set arMagazijnen(2)="HALUX`HALUX" set SelectedItems = Kriteria("O","MAGAZIJN") set Magazijnen=$translate($$WILD^vhPOPUP("C;C","VMO-1","Magazijn",.arMagazijnen,.SelectedItems),";","`") If (zb'="CANC"),(Magazijnen'=Kriteria("O","MAGAZIJN")) Do . Set (Kriteria("O","MAGAZIJN"),X)=Magazijnen,sEr=-1 Quit ; Zijn alle magazijnen voor alle orders van deze consolidatie beschikbaar? MagazijnBeschikbaar(CONSNr) New MagazijnBeschikbaar,ORDNr Set MagazijnBeschikbaar=1,ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Set MagazijnBeschikbaar=$$MagazijnBeschikbaar^EWORDS6(ORDNr,0) Quit:'MagazijnBeschikbaar Quit MagazijnBeschikbaar ;