KFO ;ORDERVERWERKING (SELEKTEER MODULE) [ 12/16/93 2:13 PM ] ; If K="D" Goto ^KF15 If K="H" Goto ^KF13 If K="T" Goto ^KF11 If K="V" Goto ^KF1 If K="W" Goto ^KF2 If K="S" Goto ^KFSO If K="K" Goto ^KFKYW If K="R" Goto ^KFRO If K="X" Goto ^KFO16 If K="L" Goto ^KF2 If K="P" Goto ^KF2 If K="A" Goto ^KF2 If K="C" Goto ^KFPAK If K="I" Goto ^KF2 If K="Q" Goto ^KFCOL If K="O" Goto OFF^KFCOPY If K="N" Goto ^KFRPLKL If K="F" Goto ^KFCRED Goto ^KF0 ; ; Aanduiding fax automatisch versturen bij het sluiten van een order DisplayAutoFax New FaxNr,Closed,U2 Set Closed=$P($G(B(1)),D,22) If $G(AutoMb) Set FaxNr=$P($G(^MBLOG("T",KC,AutoMb)),D,9) Else Set FaxNr=$P($G(B(1)),D,10) Set:FaxNr="" FaxNr=$G(B(110)) Set U2="" For Set U2=$O(A(U2)) Quit:U2="" If $P(A(U2),U,16)=102 Quit Set:$L(U2) U2=A(U2) Do:$P(U2,U,16)=102 .Set FP=$P(U2,U,5)*100+$P(U2,U,6)+8 .Write @F," " .If 'Closed,$L(FaxNr) Write @F,@FMTB,@FMTK,"fx",@FMTb,@FMTk Quit ; ; Automatisch doorfaxen aanzetten SetAutoFax(ORDNr,Display) New A,B,KLNr,FaxNr,AutoMb Set Display=$G(Display,1),KLNr=$P(^KO1(ORDNr,"F"),D),FaxNr=$P(^KKL(^KK1(KLNr),1),D,24) Do:$L(FaxNr) .Set B=100 .For Set B=$O(^KOD(0,"F",B)) Quit:B="" Quit:B'?.N Set A($O(A(""),-1)+1)=^(B) .Set B(1)=^KOD(KLNr,"F",ORDNr,1),$P(B(1),D,10)=FaxNr,^KOD(KLNr,"F",ORDNr,1)=B(1) .Do:Display DisplayAutoFax Quit ; ; Automatisch doorfaxen afzetten RemAutoFax(ORDNr,Display) New A,B,KLNr,FaxNr,AutoMb Set Display=$G(Display,1),KLNr=$P(^KO1(ORDNr,"F"),D),FaxNr=$P(^KOD(KLNr,"F",ORDNr,1),D,10) Do:$L(FaxNr) .Set B=100 .For Set B=$O(^KOD(0,"F",B)) Quit:B="" Quit:B'?.N Set A($O(A(""),-1)+1)=^(B) .Set B(1)=^KOD(KLNr,"F",ORDNr,1),$P(B(1),D,10)="",^KOD(KLNr,"F",ORDNr,1)=B(1) .Do:Display DisplayAutoFax Quit ; ; Beheer de koppeling van een order met andere orders OrderLink(ORDNr) New I,R,RRL,ORL,KLNr,TxtLoc,ButLoc,OrdRec,OrdLink,LinkORDNr,LinkActie,LinkedORDNrs Set KLNr=$P($G(^KO1(ORDNr,"F")),D) Do:KLNr . Set LinkedORDNrs=$$GetOrderLink(ORDNr) . Set (ButLoc,LinkORDNr)=0 . For Set LinkORDNr=$O(^KOD(KLNr,"F",LinkORDNr)) Quit:LinkORDNr="" Do Quit:ButLoc . . If LinkORDNr'=ORDNr,";"_LinkedORDNrs_";"'[(";"_LinkORDNr_";") Set ButLoc=ButLoc+1,ButLoc(ButLoc)="Koppelen&K" . Set OrdRec=^KOD(KLNr,"F",ORDNr,1),OrdLink=$P(OrdRec,D,41) . Set:$L(OrdLink) ButLoc=ButLoc+1,ButLoc(ButLoc)="Ontkoppelen&O" . Set ButLoc=ButLoc+1,ButLoc(ButLoc)="Annuleer&A*",TxtLoc=0 . Set TxtLoc=TxtLoc+1,TxtLoc(TxtLoc)="Order "_$$EXTNUM^vhDTyp(ORDNr,0,".T",0)_"van "_$P(^KKL(^KK1(KLNr),0),D,2) . Set (LinkORDNr,RRL,ORL)="" . For I=1:1:$L(OrdLink,";") Set LinkORDNr=$P(OrdLink,";",I) Quit:LinkORDNr="" If LinkORDNr'=ORDNr,$D(^KOD(KLNr,"F",LinkORDNr)) Set RRL=RRL_", "_LinkORDNr . For I=1:1:$L(LinkedORDNrs,";") Set LinkORDNr=$P(LinkedORDNrs,";",I) Quit:LinkORDNr="" If LinkORDNr'=ORDNr,";"_OrdLink_";"'[(";"_LinkORDNr_";") Set ORL=ORL_", "_LinkORDNr . Do:$L(RRL) . . Set $E(RRL,1,2)="" . . For Set RRL($O(RRL(""),-1)+1)=$P(RRL,",",1,7),$P(RRL,",",1,7)="",$E(RRL,1,2)="" Quit:RRL="" . . Set RRL="RRL" . . Set TxtLoc=TxtLoc+1,TxtLoc(TxtLoc)="is gekoppeld aan volgend"_$S($L(OrdLink,";")>1:"e",1:"")_" order"_$S($L(OrdLink,";")>1:"s",1:"")_":" . . Set TxtLoc=TxtLoc+1,TxtLoc(TxtLoc)="&WRRL" . . Quit:ORL="" . . Set $E(ORL,1,2)="" . . For Set ORL($O(ORL(""),-1)+1)=$P(ORL,",",1,7),$P(ORL,",",1,7)="",$E(ORL,1,2)="" Quit:ORL="" . . Set ORL="ORL" . . Set TxtLoc=TxtLoc+1,TxtLoc(TxtLoc)="en onrechtstreeks gekoppeld aan:" . . Set TxtLoc=TxtLoc+1,TxtLoc(TxtLoc)="&WORL" . If ButLoc=1 Set TxtLoc=TxtLoc+1,TxtLoc(TxtLoc)="kan niet gekoppeld worden.",ButLoc(1)="Ok&A*" . Set LinkActie=$$WILD^vhTXTPOP("","","TxtLoc","ButLoc",3) . Do:LinkActie="K" AddOrderLink(ORDNr) Do:LinkActie="O" RemoveOrderLink(ORDNr) Quit ; ; Koppel een order aan andere orders AddOrderLink(ORDNr) New I,R,KLNr,KC,NoLinkORDNrs,LinkORDNr,Derde Set KLNr=$P($G(^KO1(ORDNr,"F")),D) Do:KLNr . Set NoLinkORDNrs=$$GetOrderLink(ORDNr) . For I=1:1:$L(NoLinkORDNrs,";") Set R=$P(NoLinkORDNrs,";",I) Set:$L(R) NoLinkORDNrs(R)="" . Set NoLinkORDNrs(ORDNr)="",Derde("K")=KLNr . Set LinkORDNr=$$SELECT^FLOW("KOD","KO1",1,.NoLinkORDNrs,.Derde,1,0) . If $L(LinkORDNr) For I=1:1:$L(LinkORDNr,D) Do:'$$CheckOrderLink(ORDNr,$P(LinkORDNr,D,I)) SetOrderLink(ORDNr,$P(LinkORDNr,D,I)) Quit ; ; Verwijder een koppeling tussen orders RemoveOrderLink(ORDNr) New I,KLNr,OrdRec,OrdLink,LinkORDNr,Count,zb Set KLNr=$P($G(^KO1(ORDNr,"F")),D) Do:KLNr . Set OrdRec=^KOD(KLNr,"F",ORDNr,1),OrdLink=$P(OrdRec,D,41) . Quit:'$L(OrdLink) . Set Count=0 . For I=1:1:$L(OrdLink,";") Set LinkORDNr=$P(OrdLink,";",I) Set:$D(^KOD(KLNr,"F",LinkORDNr)) Count=Count+1,OrdLink(Count)=LinkORDNr_"`"_$P(^KOD(KLNr,"F",LinkORDNr,1),D,3) . Quit:'Count . If Count=1 Set LinkORDNr=$P(OrdLink(1),"`") . Else Set LinkORDNr=$$WILD^vhPOPUP("C;C","MOK1-","Ontkoppelen van",.OrdLink) Set:zb="CANC" LinkORDNr="" . If $L(LinkORDNr) For I=1:1:$L(LinkORDNr,";") Do KillOrderLink(ORDNr,$P(LinkORDNr,";",I)) Quit ; ; Plaatsen van een koppeling tussen twee orders SetOrderLink(ORDNr1,ORDNr2) New KLNr,OrdRec,OrdLink Set KLNr=$P($G(^KO1(ORDNr1,"F")),D) If ORDNr1'=ORDNr2,KLNr,KLNr=$P($G(^KO1(ORDNr2,"F")),D) Do . Set OrdRec=^KOD(KLNr,"F",ORDNr1,1),OrdLink=$P(OrdRec,D,41) . If ";"_OrdLink_";"'[(";"_ORDNr2_";") Set OrdLink=OrdLink_$S($L(OrdLink):";",1:"")_ORDNr2,$P(^KOD(KLNr,"F",ORDNr1,1),D,41)=OrdLink . Set OrdRec=^KOD(KLNr,"F",ORDNr2,1),OrdLink=$P(OrdRec,D,41) . If ";"_OrdLink_";"'[(";"_ORDNr1_";") Set OrdLink=OrdLink_$S($L(OrdLink):";",1:"")_ORDNr1,$P(^KOD(KLNr,"F",ORDNr2,1),D,41)=OrdLink Quit ; ; Verbreken van de koppeing tussen twee orders KillOrderLink(ORDNr1,ORDNr2) New KLNr,OrdRec,OrdLink Set KLNr=$P($G(^KO1(ORDNr1,"F")),D) If KLNr,KLNr=$P($G(^KO1(ORDNr2,"F")),D) Do . Set OrdRec=^KOD(KLNr,"F",ORDNr1,1),OrdLink=$P(OrdRec,D,41) . Do:";"_OrdLink_";"[(";"_ORDNr2_";") . . Set OrdLink=$P(OrdLink,ORDNr2)_$P(OrdLink,ORDNr2,2) . . Set:$E(OrdLink)=";" $E(OrdLink)="" . . Set:OrdLink[";;" OrdLink=$P(OrdLink,";;")_";"_$P(OrdLink,";;",2) . . Set:$E(OrdLink,$L(OrdLink))=";" $E(OrdLink,$L(OrdLink))="" . . Set $P(^KOD(KLNr,"F",ORDNr1,1),D,41)=OrdLink . Set OrdRec=^KOD(KLNr,"F",ORDNr2,1),OrdLink=$P(OrdRec,D,41) . Do:";"_OrdLink_";"[(";"_ORDNr1_";") . . Set OrdLink=$P(OrdLink,ORDNr1)_$P(OrdLink,ORDNr1,2) . . Set:$E(OrdLink)=";" $E(OrdLink)="" . . Set:OrdLink[";;" OrdLink=$P(OrdLink,";;")_";"_$P(OrdLink,";;",2) . . Set:$E(OrdLink,$L(OrdLink))=";" $E(OrdLink,$L(OrdLink))="" . . Set $P(^KOD(KLNr,"F",ORDNr2,1),D,41)=OrdLink Quit ; ; Controle of twee orders gekoppeld zijn (rechtstreeks of via andere orders) CheckOrderLink(ORDNr1,ORDNr2,NoCheckWMS) New ORDNrs Quit ";"_$$GetOrderLink(ORDNr1,,$G(NoCheckWMS))_";"[(";"_ORDNr2_";") ; ; Geef alle orders gekoppeld aan een bepaald order GetOrderLink(ORDNr,ORDNrs,NoCheckWMS) New I,KLNr,OrdRec,OrdLink,LinkORDNr Set ORDNrs=$G(ORDNrs),KLNr=$P($G(^KO1(ORDNr,"F")),D) Do:KLNr . Set OrdRec=$G(^KOD(KLNr,"F",ORDNr,1)),OrdLink=$P(OrdRec,D,41) . For I=1:1:$L(OrdLink,";") Set LinkORDNr=$P(OrdLink,";",I) Do . . Quit:'LinkORDNr . . Quit:";"_ORDNrs_";"[(";"_LinkORDNr_";") . . Quit:LinkORDNr=ORDNr . . Quit:$D(ORDNrs(ORDNr,LinkORDNr)) . . Quit:$D(ORDNrs(LinkORDNr,ORDNr)) . . Quit:'$D(^KOD(KLNr,"F",LinkORDNr)) . . If '$G(NoCheckWMS) Quit:$D(^ORDW("IO",LinkORDNr)) ; Order in WMS dus link verbroken . . Set:$L(ORDNrs) ORDNrs=ORDNrs_";" Set ORDNrs=ORDNrs_LinkORDNr . . Set ORDNrs(LinkORDNr,ORDNr)="",ORDNrs(ORDNr,LinkORDNr)="" . . Set ORDNrs=$$GetOrderLink(LinkORDNr,.ORDNrs) Quit ORDNrs ; ; Aanduiding order aan andere gekoppeld is DisplayOrderLink New A,B,U2,OrdLink Set OrdLink=$$GetOrderLink(UR) Set B=100 For Set B=$O(^KOD(0,"F",B)) Quit:B="" Quit:B'?.N Set A($O(A(""),-1)+1)=^(B) Set U2="" For Set U2=$O(A(U2)) Quit:U2="" If $P(A(U2),U,16)="UR" Quit Set:$L(U2) U2=A(U2) Do:$P(U2,U,16)="UR" .Set FP=$P(U2,U,5)*100+$P(U2,U,6)+7 .Write @F," " .If $L(OrdLink) Write @F,@FMTB,@FMTK,"~",@FMTb,@FMTk Quit ; LOL(KLNr) New ORDNr,OrdLink Write !!,KLNr,! Set ORDNr="" For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do . Set OrdLink=$P(^KOD(KLNr,"F",ORDNr,1),D,41) . If $L(OrdLink) Write !,ORDNr," -> ",OrdLink Write !! Quit ; ; Instelling voor het doorsturen naar het WMS SendWMS(ORDNr,Display) New zb,KLNr,SendWMSOrd,SendWMSCust,SendWMS Set Display=$G(Display,1),KLNr=$P(^KO1(ORDNr,"F"),D),(SendWMSOrd,SendWMS)=$P(^KOD(KLNr,"F",ORDNr,1),D,26) Set SendWMSCust=$E($P(^KKL(^KK1(KLNr),2),D,8)) Set:SendWMSCust'="M" SendWMSCust="A" Set:SendWMS="" SendWMS=SendWMSCust Set SendWMS=$$PI^vhPOPUP("C;C","-1O","Doorsturen WMS","FLOWORD","SENDWMS",SendWMS) Set:SendWMS=SendWMSCust SendWMS="" If zb'="CANC",SendWMS'=SendWMSOrd Do . Set $P(^KOD(KLNr,"F",ORDNr,1),D,26)=SendWMS . Do:Display DisplaySendWMS(ORDNr) Quit ; CBASendWMS(Pop) For Pop=1:1:Pop Do . Quit:$P(Pop(Pop),"`")="W" . Set Pop(Pop)=$TR(Pop(Pop),".","") . Set:$P(Pop(Pop),"`")=SendWMSCust Pop(Pop)=Pop(Pop)_"(instelling klant)" Quit ; ; Aanduiding voor het doorsturen naar het WMS in de orderhoofding DisplaySendWMS(ORDNr) New KLNr,SendWMS Set KLNr=$P($G(^KO1(ORDNr,"F")),D) Set:KLNr SendWMS=$P(^KOD(KLNr,"F",ORDNr,1),D,26) Set FP=UD-2*100+76 Write @F," " If $L($G(SendWMS)) Write @F,@FMTb,"WMS-",@FMTK,SendWMS,@FMTb,@FMTk Quit ;