EWORDST4 ;E'WMS Status orderpicking [ 06/23/2003 4:04 PM ] ; FETCH(%J,Node) New %TC,D,R,KLNr,CONSNr,KritF Set D="\" For Do ADD^vhLock("^HULP(%J,Node)") Quit:%TC Merge KritF=^HULP(%J,"SF") Set CONSNr="" Kill ^HULP(%J,Node) For Set CONSNr=$O(^ORDW("D",CONSNr)) Quit:CONSNr="" Do .Quit:$D(^HULP(%J,Node,CONSNr)) .Set R=^ORDW("D",CONSNr),KLNr=$P(R,D) .Quit:'$$CHKCUST($NA(KritF),KLNr) .Quit:'$$CHKCONS($NA(KritF),CONSNr) .Do FETCUST(KLNr,Node) Set:'$D(^HULP(%J,Node)) ^HULP(%J,Node)="" Do REMOVE^vhLock("^HULP(%J,Node)") Quit ; FETCUST(KLNr,Node) New D,R,CONSNr Set D="\" Set CONSNr="" For Set CONSNr=$O(^ORDW("IK",KLNr,CONSNr)) Quit:CONSNr="" Do .Quit:$D(^HULP(%J,Node,CONSNr)) .Do FETCHDTL(%J,CONSNr,Node) Quit ; FETCHDTL(%J,CONSNr,Node) New D,R,ORDNr,OLUNr,SOLNr,PRNr,OLNr,TPalId,TPalCnt,PalId,PalCnt,VwTyp,KritF Set D="\" Merge KritF=^HULP(%J,"SF") Set R=^ORDW("D",CONSNr) If $P(R,D,20)="B",'$$CHKCONS($NA(KritF),CONSNr) Quit If $P(R,D,20)="B" Do FETCHBON(%J,CONSNr,Node) Quit Set ORDNr="",TPalCnt=0 For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .Set R=^ORDW("D",CONSNr),KLNr=$P(R,D) .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),VwTyp=$P(R,D,14),OLUNr=$P(R,D,15) ..Quit:'PRNr Quit:'OLUNr ..If $G(^ORDW("IO",ORDNr,OLUNr))=CONSNr Do ...Set TPalCnt=TPalCnt+1 ...Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr) ...Set:$P(R,D,4)<0 $P(R,D,3)="T" Set:VwTyp["Z" $P(R,D,3)="Z" Set:'$$MAGHANDEL^PRODUKT2(PRNr) $P(R,D,3)="Z" ...Set PalCnt=0 ...Kill PalId ...Set SOLNr="" ...For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do ....Set SOLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr) ....Set PalId=$P(SOLRec,D,5) ....If $L(PalId),'$D(PalId(PalId)) Do .....Set PalCnt=PalCnt+1 .....Set PalId(PalId)="" ....If $L(PalId),'$D(TPalId(PalId)) Do .....;Set TPalCnt=TPalCnt+1 .....Set TPalId(PalId)="" ...Set $P(R,D,10)=PalCnt ..Else Set R=PRNr_"\-\-\"_$P(R,D,3) ..Set ^HULP(%J,Node,CONSNr,"D",ORDNr,OLUNr)=R Set R=^ORDW("D",CONSNr) Set $P(R,D,10)=TPalCnt Set $P(R,D,11)=$$LEVADR($G(^ORDW("D",CONSNr,"A")),20) Set ^HULP(%J,Node,CONSNr)=R Quit ; FETCHBON(%J,CONSNr,Node) New D,R,ORDNr,OLUNr,SOLNr,PRNr,OLNr,TPalId,TPalCnt,PalId,PalCnt,VwTyp,KritF Set D="\" Merge KritF=^HULP(%J,"SF") Set R=^ORDW("D",CONSNr) If $P(R,D,20)="B",'$$CHKCONS($NA(KritF),CONSNr) Quit Set ORDNr="",TPalCnt=0 For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .Set R=^ORDW("D",CONSNr),KLNr=$P(R,D),OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr) ..Set:$P(R,D,4)<0 $P(R,D,3)="T" ..Set PalCnt=0 ..Kill PalId ..Set SOLNr="" ..For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do ...Set SOLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr) ...Set PalId=$P(SOLRec,D,5) ...If $L(PalId),'$D(PalId(PalId)) Do ....Set PalCnt=PalCnt+1 ....Set PalId(PalId)="" ...If $L(PalId),'$D(TPalId(PalId)) Do ....Set TPalCnt=TPalCnt+1 ....Set TPalId(PalId)="" ..Set $P(R,D,10)=PalCnt ..Set ^HULP(%J,Node,CONSNr,"D",ORDNr,OLUNr)=R Set R=^ORDW("D",CONSNr) Set $P(R,D,10)=TPalCnt Set $P(R,D,11)=$$LEVADR($G(^ORDW("D",CONSNr,"A")),20) Set ^HULP(%J,Node,CONSNr)=R Quit ; LEVADR(LevRec,Len) New L,LevAdr Set LevAdr="" If $TR(LevRec,D,"")'="" Do .Set L=$$LAND^vhRtn1($P(LevRec,D,8)) .Set:L'="BE" LevAdr=L_" " .Set LevAdr=$E(LevAdr_$P(LevRec,D,7),1,Len*2\3) .Set LevAdr=LevAdr_";"_$P(LevRec,D,5) .Set:$TR(LevAdr,";","")="" LevAdr="" Quit LevAdr ; CHKCUST(KritRef,KLNr) New D,R,Ok,Kriteria Set D="\",Ok=0 If $D(^ORDW("IK",KLNr)) Do .Set Kriteria="",Ok=1 .For Set Kriteria=$O(@KritRef@("K",Kriteria)) Quit:Kriteria="" Do Quit:'Ok ..Set R=@KritRef@("K",Kriteria) ..Quit:R="" ..Set Ok=$$CHKKRIT(Kriteria,KLNr,R) Quit Ok ; CHKCONS(KritRef,CONSNr) New D,R,Ok,Kriteria Set D="\" Set Kriteria="",Ok=1 Quit:'$D(^ORDW("D",CONSNr)) 0 ; bestaat niet meer If '$G(@KritRef@("O","CONSNR")),'$D(@KritRef@("O","STAT")) Set R=^ORDW("D",CONSNr) Set:($P(R,D,20)="B") Ok=0 If Ok For Set Kriteria=$O(@KritRef@("O",Kriteria)) Quit:Kriteria="" Do Quit:'Ok .Set R=@KritRef@("O",Kriteria) .Quit:R="" .Set Ok=$$CHKKRIT(Kriteria,CONSNr,R) Quit Ok ; CHKKRIT(Kriteria,RefNr,Value) New R,Ok If "\KLNR\CONSNR\"[(D_Kriteria_D) Set Ok=RefNr=Value If Kriteria="ORDNR" Set Ok=''$D(^ORDW("D",RefNr,"D",Value)) If Kriteria="DVRZ" Do .New PickDate,PickTime .Set Ok=1 .If $L(Value) Do ..Set R=$P(^ORDW("D",RefNr),D,23),PickDate=$P(R,","),PickTime=$P(R,",",2) ..If PickDate=$P(Value,",") Quit:'$P(Value,",",2) Quit:PickTime'>$P(Value,",",2) ..Set Ok=0 If Kriteria="DOUT" Do .New DOutDate,DOutTime .Set Ok=1 .If $L(Value) Do ..Set R=$P(^ORDW("D",RefNr),D,3),DOutDate=$P(R,","),DOutTime=$P(R,",",2) ..If DOutDate=$P(Value,",") Quit:'$P(Value,",",2) Quit:DOutTime'>$P(Value,",",2) ..Set Ok=0 If Kriteria="VERZ" Do .New VerzW .Set VerzW=$P(^ORDW("D",RefNr),D,2) .Set:VerzW="" VerzW=$P(^KKL(^KK1(KLNr),2),D,16) Set:VerzW="" VerzW="OD" .Set Ok=","_Value_","[(","_VerzW_",") .Set:'Ok Ok=","_Value_","[(","_$E(VerzW,1,2)_",") If Kriteria="STAT" Do .New EWStat,EWProb,TempVal .Set Ok=1,R=^ORDW("D",RefNr),EWStat=$P(R,D,20),EWProb=$P(R,D,21) .If EWStat="B",Value="" Set Ok=0 Quit .If $L(Value) Do ..Set TempVal="" ..For Quit:Value="" Do ...Set R=$P(^RES("EWORDST","PI","STATUS","D",$P(Value,",")),"`",3) ...Set TempVal=TempVal_","_$S($L(R):R,1:$P(Value,",")),Value=$P(Value,",",2,99) ..Set $E(TempVal)="",Value=TempVal ..Set Value=$TR(Value,"Z","") ..Set Ok=","_Value_","[(","_EWStat_",") ..If 'Ok,$L(EWProb) Set Ok=","_Value_","[(","_EWProb_",") Quit Ok ; ; Controle (en eventuele wijziging) van de leverdatum met daaraan gekoppeld het DueOut tijdstip van een consolidatie bij vrijgave door de boekhouding CHKLEVT(CONSNr) New R,KLNr,KlantId,Klant,VerzendWijze,LandCode,PostCode,Dagen,DOutTime,VerzDate,OldDate,blVerzendWijze,blLeveringsTermijn Set R=^ORDW("D",CONSNr),KLNr=$P(R,D),VerzendWijze=$P(R,D,2),(VerzDate,OldDate)=$P(R,D,5) Set Dagen=$H-VerzDate Do:Dagen>0 . Set LandCode=$P($G(^ORDW("D",CONSNr,"A")),D,8) Set:LandCode LandCode=$$LAND^vhRtn1(LandCode) ; Leveringsadres . Set:LandCode="" LandCode=$$LAND^vhRtn1(KLNr,"K") . Set PostCode=$P($G(^ORDW("D",CONSNr,"A")),D,6) ; Leveringsadres . Set:PostCode="" PostCode=$P(^KKL(^KK1(KLNr),0),D,6) . Set blVerzendWijze=##class(APPS.VKP.VerzendWijze).%New(KLNr,VerzendWijze,LandCode,PostCode) . Set blLeveringsTermijn=##class(APPS.VKP.LeveringsTermijn).%New(+$H,blVerzendWijze) . Set VerzDate=blLeveringsTermijn.GetVroegsteLeverDag(+$H) . Set KlantId=^KK1(KLNr),R=^KKL(KlantId,0),Klant=KLNr_" "_$P(R,D,2) . Set Dagen=$S(Dagen=1:"gisteren",1:Dagen_" dagen terug") . Quit:'$$^vhTXTPOP("EWORDST","CHKLEVT","",$$EXTDATE^vhLib.DataTypes(VerzDate),$$EXTNUM^vhLib.DataTypes(CONSNr,0,".",0),Klant,$$EXTDATE^vhLib.DataTypes(OldDate),Dagen) . Set DOutTime=blLeveringsTermijn.GetLaatstePickingsTijdstip(VerzDate) . Set R=^ORDW("D",CONSNr),$P(R,D,3)=DOutTime,$P(R,D,5)=VerzDate,^ORDW("D",CONSNr)=R Quit