#include BL.Derde.KlantSpecifiek REMBOURS ;VERWERKING REMBOURS [ 03/25/2003 11:26 AM ] ; ISREMB(KLNr,BONNr) New R,KlKey,IsRemb,Node If '$G(KLNr),$G(BONNr) Set KLNr=$P(^KU1(BONNr,"F"),D) Set KlKey=^KK1(KLNr),R=^KKL(KlKey,3),IsRemb=$P(R,D) Do:$G(BONNr) .For Node="F","G","M" Quit:$D(^KUL(KLNr,Node,BONNr)) .Set R=^KUL(KLNr,Node,BONNr,1) .If IsRemb Set:$P(R,D,25)="M"!($P(R,D,25)="P") IsRemb=0 .Set:'IsRemb IsRemb=''$P($P(R,D,11),"#") .Set:IsRemb IsRemb=$$BON(BONNr)>0 Quit IsRemb ; INPEXTRA(B,SendMail) New R,X,KLNr,Extra,DevNr Set KLNr=$P(B(1),D) Do:$$ASK^vhWACHTW("BOEKHOUD.","","",0) .Set Extra=$$GETEXTRA(KLNr) .If $$ISVERS6^vhRtn1() Do ..Set K=$P(K,";") Set:K<0 K=-K_"-" ..Do ^cAN100 .Else Do READ^RUBRIEK("") .Set:K=0 K="" .Do ..If $L(K)>1,$E(K,$L(K))="-" Set K=-K ..If $L(K),'K Quit ..Quit:+K=+$P(Extra,";") ..Set SendMail=$G(SendMail,1),DevNr=$$IO^cQ5 ..If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) ..Do PUTEXTRA(KLNr,K,SendMail) Set K=$$GETEXTRA(KLNr) Quit ; GETEXTRA(KLNr,Clear) New R,KlKey,Extra Set KlKey=^KK1(KLNr),R=^KKL(KlKey,3),Extra=$P(R,D,6) If Extra,$G(Clear) Set $P(R,D,6)="",^KKL(KlKey,3)=R Quit Extra ; PUTEXTRA(KLNr,Extra,SendMail) New R,KlKey,DevNr,Next,MailId,Txt,Ref,IDate,TUserId,Munt,OldExtra,IUserId,IDate If Extra Do .Set SendMail=$G(SendMail,1),DevNr=$$IO^cQ5 .If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) .Set OldExtra=$$GETEXTRA(KLNr) .Quit:Extra=$P(OldExtra,";") .If OldExtra,'Extra Do DELEXTRA(KLNr,0) .Set Extra=Extra_";"_CUserId_"#"_DevNr_"#"_$H .Set KlKey=^KK1(KLNr),R=^KKL(KlKey,3),$P(R,D,6)=Extra,^KKL(KlKey,3)=R .Set Munt=$$MUNT^KLANT(KLNr,1),R=$S(OldExtra:"W",1:"I")_D_Extra,$P(R,D,5)=Munt .Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R .Quit:'SendMail .Set TUserId=30 .Quit:TUserId=CUserId .If OldExtra Do ..Set IUserId=$P($P(OldExtra,";",2),"#"),IDate=$P($P(OldExtra,";",2),"#",3) ..Set Txt(1)="Een extra te betalen bedrag van "_$P(OldExtra,";")_" "_Munt ..Set Txt(2)="~ingesteld door "_$$USERNAME^vhUSER(IUserId)_" op "_$$FMTDT^vhDTyp(IDate) ..Set Txt(3)="~is gewijzigd door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp() ..Set Txt(4)="~en bedraagd nu "_$P(Extra,";")_" "_Munt .Else Do ..Set Txt(1)="Een extra te betalen bedrag van "_$P(Extra,";")_" "_Munt ..Set Txt(2)="~is ingesteld door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp() .Set Ref(1)="KL\"_KLNr_"\R\2" .Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,"Extra te betalen",TUserId,.Txt,.Ref,1,1) Else Do DELEXTRA(KLNr,$G(SendMail,1)) Quit ; DELEXTRA(KLNr,SendMail) New R,KlKey,DevNr,Extra,Next,MailId,Txt,Ref,IUserId,IDate,TUserId,Munt Set Extra=$$GETEXTRA(KLNr) Do:Extra .Set SendMail=$G(SendMail,1),DevNr=$$IO^cQ5 .If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) .Set IUserId=$P($P(Extra,";",2),"#"),IDate=$P($P(Extra,";",2),"#",3) .Set KlKey=^KK1(KLNr),R=^KKL(KlKey,3),$P(R,D,6)="",^KKL(KlKey,3)=R .Set Extra=$P(Extra,";")_";"_CUserId_"#"_DevNr_"#"_$H .Set Munt=$$MUNT^KLANT(KLNr,1),R="V\"_Extra,$P(R,D,5)=Munt .Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R .Quit:'SendMail .Set TUserId=30 .Quit:TUserId=CUserId .Set Txt(1)="Een extra te betalen bedrag van "_$P(Extra,";")_" "_Munt .Set Txt(2)="~ingesteld door "_$$USERNAME^vhUSER(IUserId)_" op "_$$FMTDT^vhDTyp(IDate) .Set Txt(3)="~is verwijderd door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp()_"!" .Set Ref(1)="KL\"_KLNr_"\R\2" .Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,"Extra te betalen",TUserId,.Txt,.Ref,1,1) Quit ; BONEXTRA(KLNr,BONNr,SendMail) New R,BonRec,DevNr,Extra,Next,MailId,Txt,Ref,IUserId,IDevNr,IDate,TUserId,Munt,BonBedr,RestCred,IsRemb Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) Set BonRec=^KUL(KLNr,"F",BONNr,1) Do:$P(BonRec,D,11)="" .Quit:$$ISTERUGN^FLOWBON5(BONNr) ; Niet voor terugnames .Set Extra=$$GETEXTRA(KLNr,1) .Quit:'Extra .Set SendMail=$G(SendMail,1),DevNr=$$IO^cQ5 .If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) .Set IsRemb=$$ISREMB(KLNr),RestCred=0,BonBedr="" .Do:Extra<0!IsRemb ..Set R=$$BON(BONNr),BonBedr=$P(R,D) ..Quit:Extra>0 ..Set RestCred=Extra+BonBedr ..Set:RestCred>0 RestCred=0 .Set IUserId=$P($P(Extra,";",2),"#"),IDevNr=$P($P(Extra,";",2),"#",2),IDate=$P($P(Extra,";",2),"#",3) .Set Extra=$P(Extra,";")_";"_CUserId_"#"_DevNr_"#"_$H .Set $P(BonRec,D,11)=Extra,^KUL(KLNr,"F",BONNr,1)=BonRec .Set Extra=$P(Extra,";")_";"_IUserId_"#"_IDevNr_"#"_IDate_";"_$P(Extra,";",2) .Set Munt=$P(BonRec,D,18) Set:Munt="" Munt=$$FADEF^vhRtn1() Set Munt=$$MUNT^vhRtn1(Munt,1) .Set R="B\"_Extra_D_BONNr_D_BonBedr_D_Munt .Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R .Do:RestCred PUTEXTRA(KLNr,RestCred,SendMail) .Quit:'SendMail .Set TUserId=30 .Quit:TUserId=CUserId .Set Txt(1)="Een extra te betalen bedrag van "_$P(Extra,";")_" "_Munt .Set Txt(2)="~ingesteld door "_$$USERNAME^vhUSER(IUserId)_" op "_$$FMTDT^vhDTyp(IDate) .Set Txt(3)="~is opgenomen in bon "_BONNr_" door " .Set Txt(3)=Txt(3)_$S('CUserId:"het wms",1:$$USERNAME^vhUSER(CUserId)) .Set Txt(3)=Txt(3)_" op "_$$FMTDT^vhDTyp()_"!" .Set Ref(1)="KL\"_KLNr_"\R\L" .Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,"Extra te betalen",TUserId,.Txt,.Ref,1,1) Quit ; ENDEXTRA(KLNr,BONNr,SendMail) New R,BonRec,DevNr,Next,MailId,Txt,Ref,IUserId,IDate,BUserId,BDate,TUserId,TeBet,BonBedr,Extra,Munt Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) Set BonRec=^KUL(KLNr,"F",BONNr,1) Do:$P(BonRec,D,11)'="" .Quit:$$ISTERUGN^FLOWBON5(BONNr) ; Niet voor terugnames .Set SendMail=$G(SendMail,1),DevNr=$$IO^cQ5 .If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) .Set R=$$BON(BONNr),TeBet=$P(R,D),Extra=$P(R,D,6),Munt=$P(R,D,7),BonBedr=TeBet-Extra .Set:$P(Extra,";",2)="" $P(Extra,";",2)=CUserId_"#"_DevNr_"#"_$H .Set:$P(Extra,";",3)="" $P(Extra,";",3)=$P(Extra,";",2) .Set IUserId=$P($P(Extra,";",2),"#"),IDate=$P($P(Extra,";",2),"#",3) .Set BUserId=$P($P(Extra,";",3),"#"),BDate=$P($P(Extra,";",3),"#",3) .Set $P(Extra,";",4)=CUserId_"#"_DevNr_"#"_$H .Set R="A\"_Extra_D_BONNr_D_BonBedr_D_Munt .Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R .Quit:'SendMail .If IUserId=BUserId,IDate=BDate Quit .Set TUserId=30 .Quit:TUserId=CUserId .Set Txt(1)="Een extra te betalen bedrag van "_$P(Extra,";")_" "_Munt .Set Txt(2)="~ingesteld door "_$$USERNAME^vhUSER(IUserId)_" op "_$$FMTDT^vhDTyp(IDate) .Set Txt(3)="~opgenomen in bon "_BONNr_" door " .Set Txt(3)=Txt(3)_$S('BUserId:"het wms",1:$$USERNAME^vhUSER(BUserId)) .Set Txt(3)=Txt(3)_" op "_$$FMTDT^vhDTyp(BDate) .Set Txt(4)="~is afgesloten door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp() .Set Ref(1)="KL\"_KLNr_"\R\L" .Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,"Extra te betalen",TUserId,.Txt,.Ref,1,1) Quit ; REMBBON(KLNr,BONNr) New R,DevNr,Extra,Next,TeBet,Munt Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) Do:$$ISREMB(KLNr) .Quit:$$ISTERUGN^FLOWBON5(BONNr) ; Niet voor terugnames .Set DevNr=$$IO^cQ5 .If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) .Set R=$$BON(BONNr),TeBet=$P(R,D),Munt=$P(R,D,7) .Set Extra=";;"_CUserId_"#"_DevNr_"#"_$H .Set R="B\"_Extra_D_BONNr_D_TeBet_D_Munt .Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R Quit ; REMBFAKT(KLNr,BONNr) New R,DevNr,Next,TeBet,Extra,Munt Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) Do:$$ISREMB(KLNr) .Quit:$$ISTERUGN^FLOWBON5(BONNr) ; Niet voor terugnames .Set DevNr=$$IO^cQ5 .If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) .Set R=$$BON(BONNr),TeBet=$P(R,D),Munt=$P(R,D,7) .Set Next="" .For Set Next=$O(^REMBOURS(KLNr,Next),-1) Quit:Next="" Do Quit:Quit ..Set R=^REMBOURS(KLNr,Next) ..Set Quit=$P(R,D,3)=BONNr ..Set:Quit Extra=$P(R,D,2) .Set $P(Extra,";",4)=CUserId_"#"_DevNr_"#"_$H .Set:$P(Extra,";",3)="" $P(Extra,";",3)=$P(Extra,";",4) .Set R="A\"_Extra_D_BONNr_D_TeBet_D_Munt .Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R Quit ; MODBON(KLNr,BONNr,SendMail) New %SC,R,BonRec,DevNr,Extra,Next,MailId,Txt,Ref,IUserId,IDevNr,IDate New TUserId,Munt,BonBedr,Rembours,Aktie,VervRef Do:$$ASK^vhWACHTW("BOEKHOUD.","","",0) .Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) .Set SendMail=$G(SendMail,1) .Set R=^KUL(KLNr,"F",BONNr,1),VervRef=$P($P(R,D,8),";") .If VervRef Do Quit ..Set R=$G(^TRANSP("D",VervRef)) ..Quit:R="" ..Set R=$$^vhTXTPOP("REMBOURS","TRANSP"_$S('$P(R,D,11)&'$P(R,D,12):"",1:"CLO"),"",BONNr,VervRef) .Set Rembours=$$CALCBON^FLOWBON5(BONNr) .Set TeBet=$P(Rembours,D),Extra=$P(Rembours,D,6),Munt=$P(Rembours,D,7),BonBedr=TeBet-Extra .Set IUserId=$P($P(Extra,";",2),"#"),IDevNr=$P($P(Extra,";",2),"#",2),IDate=$P($P(Extra,";",2),"#",3),Extra=+Extra .Do NIEUW^vhScherm("REMBOPVWB","","","","","",3) .Do:%SC ..Set BonRec=^KUL(KLNr,"F",BONNr,1) ..Set SendMail=$G(SendMail,1),DevNr=$$IO^cQ5 ..If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER(DevNr) ..Set:Extra Extra=Extra_";"_CUserId_"#"_DevNr_"#"_$H ..Set $P(BonRec,D,11)=Extra,^KUL(KLNr,"F",BONNr,1)=BonRec ..Set Next="" ..For Set Next=$O(^REMBOURS(KLNr,Next),-1) Quit:Next="" Set R=^REMBOURS(KLNr,Next) Quit:$P(R,D,3)=BONNr ..Set Aktie=$S(Extra:$S(Next:"W",1:"B"),1:"V") ..If Aktie="B" Do ...Set IUserId=CUserId,IDevNr=DevNr,IDate=$H ...Set R="I\"_Extra_D_BONNr_D_BonBedr_D_Munt ...Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R ..If 'Extra Set Extra=$P($P(Rembours,D,6),";")_";"_CUserId_"#"_DevNr_"#"_$H ..Else Set Extra=$P(Extra,";")_";"_IUserId_"#"_IDevNr_"#"_IDate_";"_$P(Extra,";",2) ..Set R=Aktie_"\"_Extra_D_BONNr_D_BonBedr_D_Munt ..Set Next=$O(^REMBOURS(KLNr,""),-1)+1,^REMBOURS(KLNr,Next)=R ..Quit:'SendMail ..Set TUserId=30 ..Quit:TUserId=CUserId ..If Aktie="B" Do ...Set Txt(1)="Een extra te betalen bedrag van "_$P(Extra,";")_" "_Munt ...Set Txt(2)="~is opgenomen in bon "_BONNr_" door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp()_"!" ..Else If Aktie="W" Do ...Set Txt(1)="Een extra te betalen bedrag van "_$P($P(Rembours,D,6),";")_" "_Munt ...Set Txt(2)="~opgenomen in bon "_BONNr_" door "_$$USERNAME^vhUSER(IUserId)_" op "_$$FMTDT^vhDTyp(IDate)_"!" ...Set Txt(3)="~is gewijzigd door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp() ...Set Txt(4)="~en bedraagd nu "_$P(Extra,";")_" "_Munt ..Else Do ...Set Txt(1)="Een extra te betalen bedrag van "_$P(Extra,";")_" "_Munt ...Set Txt(2)="~ingesteld door "_$$USERNAME^vhUSER(IUserId)_" op "_$$FMTDT^vhDTyp(IDate) ...Set Txt(3)="~is verwijderd door "_$$USERNAME^vhUSER(CUserId)_" op "_$$FMTDT^vhDTyp()_"!" ..Set Ref(1)="KL\"_KLNr_"\R\L" ..Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,"Extra te betalen",TUserId,.Txt,.Ref,1,1) Quit ; CHKEXTRA New Set Q="K" Do ^cA604,INIT^vhTERMINA Set KlKey=0 For Set KlKey=$o(^KKL(KlKey)) Quit:KlKey="" Do .Set R=^KKL(KlKey,0),KLNr=$P(R,D) .Quit:'$D(^KK1(KLNr)) .Set IsRemb=$$ISREMB(KLNr),Extra=$$GETEXTRA(KLNr) .Quit:'Extra .Set Extra(KlKey)=IsRemb_D_$TR(Extra,";#","\\") Do:$O(Extra(""))'="" .Set (TCount,RCount)=0 .Set TCount=TCount+1,Txt(TCount)="Nog niet in verwerking genomen bedragen." .Set TCount=TCount+1,Txt(TCount)="~~ªUKlant | Bedrag | Ingesteld | Op datum ªu" .Set KlKey="" .For Set KlKey=$O(Extra(KlKey),-1) Quit:KlKey="" Do ..Set R=^KKL(KlKey,0),KLNr=$P(R,D),KlName=$P(R,D,2),Munt=$$MUNT^KLANT(KLNr,1) ..Set R=Extra(KlKey) ..Set Bedrag=$$EXTNUM^vhDTyp($P(R,D,2),0,".T",2),IUserId=$P(R,D,3),IDate=$P(R,D,5) ..Set TCount=TCount+1,Txt(TCount)="~"_$E(KlName,1,25)_$J("",26-$L($E(KlName,1,25)))_" |"_$J(Bedrag,11)_Munt_" | " ..Set R=$$USERNAME^vhUSER(IUserId),Txt(TCount)=Txt(TCount)_$E(R,1,9)_$J("",9-$L($E(R,1,9)))_" | "_$$FMTDT^vhDTyp(IDate) ..Set RCount=RCount+1,Ref(RCount)="KL\"_KLNr_"\R\2" .Set TUserId=30 .Set MailId=$$SYSTEM^vhMAIL("","Klanten","Extra te betalen",TUserId,.Txt,.Ref,1,1) Quit ; CALC(DocNr) Quit $S($D(^KU1(DocNr,"F")):$$BON(DocNr),1:$$WMS(DocNr)) ; BON(BONNr) New I,R,KLNr,Goederen,Port,KontKrt,Btw New TeBet,Munt,Node,Extra,Next,Quit Set KLNr=$P(^KU1(BONNr,"F"),D) For Node="F","G","M" Quit:$D(^KUL(KLNr,Node,BONNr)) Set R=^KUL(KLNr,Node,BONNr,1),Extra=$P(R,D,11) If $P(R,D,25)'="M",$P(R,D,25)'="P",$$ISREMB(KLNr) Do .Set R=$$CALCBON^FLOWBON5(BONNr) .Set Goederen=$P(R,D,2),KontKrt=$P(R,D,3),Btw=$P(R,D,4),Port=$P(R,D,5),Munt=$P(R,D,7) .Set TeBet=Goederen-KontKrt+Btw Else Set (TeBet,Goederen,KontKrt,Btw,Port)=0,Munt=$$MUNT^KLANT(KLNr,1) Do:Extra .Set Next="" .For Set Next=$O(^REMBOURS(KLNr,Next),-1) Quit:Next="" Do Quit:Quit ..Set R=^REMBOURS(KLNr,Next) ..Set Quit=$P(R,D,3)=BONNr ..If Quit,$P($P(R,D,2),";")=$P(Extra,";"),$P($P(R,D,2),";",3)=$P(Extra,";",2) Set Extra=$P(R,D,2) Set TeBet=TeBet+Extra Quit TeBet_D_Goederen_D_KontKrt_D_Btw_D_Port_D_Extra_D_Munt ; WMS(CONSNr) Quit "" ; OPVOLG(KLNr) New %J,%SC,R,FromDate,ToDate,Akties,Opv,Input,OneCust,Sort Set (KLNr,OneCust)=$G(KLNr),%J=$$%J^vhRtn1(),Sort="K" If 'KLNr Do .Set FromDate=$H,ToDate=$H,(Akties,VerzWs,KLNr)="" .Set R=$$MODOPV(FromDate,ToDate,,,Sort),%SC=$P(R,D),FromDate=$P(R,D,2),ToDate=$P(R,D,3),Sort=$P(R,D,4) Else Do .Do STORE^vhTERMINA() .Set FromDate=$$CALCDATE^vhDTyp(,"J",-1),ToDate=$H,(Akties,VerzWs)="",%SC=1 .Do DISPLAY^vhScherm("REMBOPV") Do:%SC .Do INIT^vhLIST("REMBOURS","OPVOLG",.Opv) .Do FETCHOPV(FromDate,ToDate,Akties,VerzWs,KLNr,Sort) .Do WRITE^vhLIST(.Opv) .For Set Input=$$SCROLL^vhLIST(.Opv) Do Quit:Input="CANC" ..Do:Input="COM" CALL^vhMenu("REMBOPV") ..Do EXEC^vhMenu("REMBOPV",.Input) Do:OneCust REFRESH^vhTERMINA() Kill ^HULP(%J) Quit ; SELOPV New R,%SC Set R=$$MODOPV(FromDate,ToDate,1,3,$G(Sort,"K")),%SC=$P(R,D),FromDate=$P(R,D,2),ToDate=$P(R,D,3),Sort=$P(R,D,4) Do:%SC .Do INIT^vhLIST("REMBOURS","OPVOLG",.Opv) .Do FETCHOPV(FromDate,ToDate,Akties,VerzWs,KLNr,Sort) .Do WRITE^vhLIST(.Opv) Quit ; FETCHOPV(FromDate,ToDate,Akties,VerzWs,KLNr,Sort) New R,TempKLNr,KlKey,Next,Extra,BONNr,Rembours,Munt,VerzW,IExtra,BExtra,AExtra,UserId,Date,Node,Count,OneCust,SortKey Set Sort=$G(Sort,"K") Set OneCust="" Set:KLNr KLNr=$O(^REMBOURS(KLNr),-1),OneCust=1 Kill ^HULP(%J) For Set KLNr=$O(^REMBOURS(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set KlKey=^KK1(KLNr),Next="" .For Set Next=$O(^REMBOURS(KLNr,Next),-1) Quit:Next="" Do ..Set R=^REMBOURS(KLNr,Next),Aktie=$P(R,D),Extra=$P(R,D,2),BONNr=$P(R,D,3),Rembours=$P(R,D,4),Munt=$P(R,D,5) ..If $L(Akties),";"_Akties_";"'[(";"_Aktie_";") Quit ..Set IExtra=$P(Extra,";",2),BExtra=$P(Extra,";",3),AExtra=$P(Extra,";",4),Extra=$P(Extra,";") ..Set UserId=$P(AExtra,"#") ..If UserId="",$L(BExtra) Set UserId=$P(BExtra,"#") ..Else If UserId="",$L(IExtra) Set UserId=$P(IExtra,"#") ..Set Date=$P(AExtra,"#",3) Set:Date="" Date=$P(BExtra,"#",3) Set:Date="" Date=$P(IExtra,"#",3) ..Quit:DateToDate ..Set VerzW="" ..If BONNr For Node="F","G","M" Set R=$G(^KUL(KLNr,Node,BONNr,1)),VerzW=$P(R,D,7) Quit:$L(R) ..If $L(VerzWs),";"_VerzWs_";"'[(";"_$E(VerzW,1,2)_";") Quit ..Set R=KLNr_D_Rembours_D_Extra_D_Munt_D_Aktie_D_UserId_D_Date_D_BONNr_D_VerzW ..Set SortKey=$S(Sort="D":$P(Date,","),1:"")_KlKey ..Set ^HULP(%J,"S",SortKey,Next)=R Set (KlKey,TempKLNr)="",Count=0 For Set KlKey=$O(^HULP(%J,"S",KlKey)) Quit:KlKey="" Do .Set Next="" .For Set Next=$O(^HULP(%J,"S",KlKey,Next),-1) Quit:Next="" Do ..Set R=^HULP(%J,"S",KlKey,Next),KLNr=$P(R,D) ..If KLNr=TempKLNr Set $P(R,D)="" ..Else Set TempKLNr=KLNr ..Set Count=Count+1,^HULP(%J,Count)=R Kill ^HULP(%J,"S") Quit ; MODOPV(FromDate,ToDate,NoClear,Refresh,Sort) New %SC Set NoClear=$G(NoClear),Refresh=$G(Refresh),Sort=$G(Sort,"K") Do EDIT^vhScherm("REMBOPV",,,,,NoClear,Refresh) Do .New %SC .Do DISPLAY^vhScherm("REMBOPV",,,,,NoClear) Quit %SC_D_FromDate_D_ToDate_D_Sort ; CUMOPV(%J) New %J2,R,Rembours,Extra,Next,Rembours,Extra,Munt,TempMunt,Aktie,SortKey,Totaal,Count,CumOpv Set %J2=$$%J^vhRtn1() Kill ^HULP(%J2) Merge Aktie=^RES("REMBOURS","PI","AKTIE","D") Set Next="" For Set Next=$O(^HULP(%J,Next)) Quit:Next="" Do .Set R=^HULP(%J,Next),Rembours=$P(R,D,2),Extra=$P(R,D,3),Munt=$P(R,D,4),Aktie=$P(R,D,5) .Set SortKey=$P(Aktie(Aktie),"`"),R=$G(^HULP(%J2,Munt,SortKey)),$P(R,D)=Aktie .Set $P(R,D,2)=$P(R,D,2)+Rembours,$P(R,D,3)=$P(R,D,3)+Extra,$P(R,D,4)=$P(R,D,4)+Rembours+Extra .Set ^HULP(%J2,Munt,SortKey)=R Set Munt="",Count=0 Set Count=Count+1,CumOpv(Count)="ªUMnt | Aktie | Rembours | Extra | Totaalªu" For Set (Munt,TempMunt)=$O(^HULP(%J2,Munt)) Quit:Munt="" Do .Set SortKey="" .For Set SortKey=$O(^HULP(%J2,Munt,SortKey)) Quit:SortKey="" Do ..Set R=^HULP(%J2,Munt,SortKey),Aktie=$P(R,D),Rembours=$P(R,D,2),Extra=$P(R,D,3),Totaal=$P(R,D,4) ..Set R=TempMunt_$J("",3-$L(TempMunt))_" | "_$P(Aktie(Aktie),"`",2)_$J("",12-$L($P(Aktie(Aktie),"`",2))) ..Set R=R_"|"_$J($$EXTNUM^vhDTyp(Rembours,0,".T0",2),12) ..Set R=R_"|"_$J($$EXTNUM^vhDTyp(Extra,0,".T0",2),12) ..Set R=R_"|"_$J($$EXTNUM^vhDTyp(Totaal,1,".T0",2),12) ..Set Count=Count+1,CumOpv(Count)=R,TempMunt="" Set CumOpv="CumOpv",R=$$WILD^vhTXTPOP("C;C","",.CumOpv) Kill ^HULP(%J2) Quit ; RPLBON(KLNr,BONNr,NoMod) New R,Extra,Munt,BonBedr,Rembours,KlNaam,Datum,VerzW Set NoMod=$G(NoMod) Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) Set R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) Set R=$G(^KUL(KLNr,"F",BONNr,1)) If $L(R) Do .Set Datum=$P(R,D,2),Rembours=$$CALCBON^FLOWBON5(BONNr) Else Do .Set R=^ORDW("D",BONNr),VerzW=$P(R,D,2),VerzW=$P(^RES("KLANT","PI","VERZENDWIJZE","D",VerzW),"`",2) .Set Datum=$$EXTDATE^vhDTyp($P(R,D,5),"DKP"),Rembours=$$CALCWMS^FLOWBON5(BONNr) .Set KlNaam=KlNaam_" ªB("_VerzW_")ªb" Set TeBet=$P(Rembours,D),Extra=+$P(Rembours,D,6),Munt=$P(Rembours,D,7),BonBedr=TeBet-Extra Set TeBet=$$EXTNUM^vhDTyp(TeBet,13,".T",2) Set Extra=$$EXTNUM^vhDTyp(Extra,13,".T",2) Set BonBedr=$$EXTNUM^vhDTyp(BonBedr,13,".T",2) Set R=$$^vhTXTPOP("REMBOURS","RPLBON","",KLNr,KlNaam,BONNr,Datum,BonBedr,Extra,TeBet,Munt,'NoMod) Do:R="W" MODBON(KLNr,BONNr) Quit ; ; Remboursoverzicht (OV) REMBOVZ(KLNr) New zb,%TC,I,R,SI2,BONNr,ORDNr,OLUNr,BonIntDate,BonExtDate,VerzW,Afgehandeld,UserId,Count,Rembours New RembOvz,Input,Tebetalen,Select,Exit,TerugName,OudeLev,OrdExtDate,OrdIntDate,Order Set (zb,ORDNr)="" For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do . Set OLUNr=$O(^ORDW("IO",ORDNr,"")) . If OLUNr Do ; Order in het WMS . . Set BONNr=^ORDW("IO",ORDNr,OLUNr) . . Set R=^ORDW("D",BONNr),VerzW=$P(R,D,2) . . Set BonIntDate=$P(R,D,5),BonExtDate=$$EXTDATE^vhDTyp(BonIntDate,"DKP") . . Set Afgehandeld=$P(R,D,8),$P(Afgehandeld,"#",2)=$P(Afgehandeld,"#",2) . . Set R=$$CALCWMS^FLOWBON5(BONNr) . . Set Select=$L(Afgehandeld)=1,SI2="H" ; Nog niet afgehandeld . . Set:BonIntDate<$H SI2="V" ; Vervallen . . Set:$P(R,D)<0 Select=0,SI2="T" ; Terugname . . Set R=Select_D_BONNr_"\W\"_BonIntDate_D_VerzW_D_R,$P(R,D,12,99)=$TR(Afgehandeld,"#",D) . . Set Rembours("S",SI2,'Select,BonIntDate,BONNr)=R . Else Do ; Nog op order . . Set R=^KOD(KLNr,"F",ORDNr,1),Afgehandeld=$P(R,D,37) . . Quit:'Afgehandeld . . Set OrdExtDate=$P(R,D,2),OrdIntDate=$$INTDATE^vhDTyp(OrdExtDate,"DKP") . . Set VerzW=$$DEFAULT^KLVERZW(,KLNr,ORDNr) . . Set R="0\"_ORDNr_"\O\"_OrdIntDate_D_$P(VerzW,";")_D_$P(Afgehandeld,"#",3),$P(R,D,12,99)=$TR(Afgehandeld,"#",D) . . Set Rembours("S","O",1,OrdIntDate,ORDNr)=R Set BONNr="" For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do . Set R=^KUL(KLNr,"F",BONNr,1),BonExtDate=$P(R,D,2),VerzW=$P($P(R,D,7)," ") . Set Afgehandeld=$P(R,D,37),$P(Afgehandeld,"#",2)=$P(Afgehandeld,"#",2) . Set BonIntDate=$$INTDATE^vhDTyp(BonExtDate) . Set R=$$CALCBON^FLOWBON5(BONNr) . Quit:$TR(R,"0\","")="" . Set Select=$L(Afgehandeld)=1,SI2="H" ; Nog niet afgehandeld . Set:BonIntDate<$H Select=0,SI2="V" ; Vervallen . Set:$P(R,D)<0 Select=0,SI2="T" ; Terugname . Set R=Select_D_BONNr_"\B\"_BonIntDate_D_VerzW_D_R_D,$P(R,D,12,99)=$TR(Afgehandeld,"#",D) . Set Rembours("S",SI2,'Select,BonIntDate,BONNr)=R Do:$D(Rembours) . Do STORE^vhTERMINA() . Set SI2="",(Afgehandeld,TeBetalen,Order,TerugName,OudeLev,Count)=0 . For Set SI2=$O(Rembours("S",SI2)) Quit:SI2="" Do . . Set:SI2'="H" Count=Count+1,Rembours(Count)="&S&C "_$S(SI2="T":"Terugname",SI2="V":"Oude leveringen",SI2="O":"Orders",1:"")_" " . . Set Select="" . . For Set Select=$O(Rembours("S",SI2,Select)) Quit:Select="" Do . . . Set BonIntDate="" . . . For Set BonIntDate=$O(Rembours("S",SI2,Select,BonIntDate),-1) Quit:BonIntDate="" Do . . . . Set BONNr="" . . . . For Set BONNr=$O(Rembours("S",SI2,Select,BonIntDate,BONNr),-1) Quit:BONNr="" Do . . . . . Set R=Rembours("S",SI2,Select,BonIntDate,BONNr) . . . . . Set Count=Count+1,Rembours(Count)=R . . . . . If SI2="T" Set TerugName=TerugName+$P(R,D,6) . . . . . Else If SI2="O" Set Order=Order+$P(R,D,6) . . . . . Else Set:'$P(R,D) Afgehandeld=Afgehandeld+$P(R,D,6) Set:$P(R,D) TeBetalen=TeBetalen+$P(R,D,6) . . . . . Set:SI2="V" OudeLev=OudeLev+$P(R,D,6) . Kill Rembours("S") . Do INIT^vhLIST("REMBOURS","REMBOVZ",.RembOvz) . Do WRITE^vhLIST(.RembOvz) . Do ADD^vhLock("REMBOURS("_KLNr_")") . If '%TC Do . . Do WARN^vhLock("REMBOURS("_KLNr_")","X") . Else Do . . Set Exit=0 . . For Set Input=$$SCROLL^vhLIST(.RembOvz) Quit:Input="A" Do Quit:Exit . . . If Input="G" Set Exit=1 Do MarkeerBons(KLNr,.Rembours) Quit . . . If Input="P" Do PRINT Quit . . . If Input="T" Do TELEFOON^KONTAKT("K",KLNr) Quit . . Do REMOVE^vhLock("REMBOURS("_KLNr_")") . Do REFRESH^vhTERMINA() Quit $G(Input) ; ; Markeren de leveringen waarvoor gebeld is en eventueel doorsturen naar het WMS MarkeerBons(KLNr,Rembours) New R,Afgehandeld,Count,BONNr,WMSStat,DOutDate Set Afgehandeld=$G(QU(1)) Set:'Afgehandeld Afgehandeld=$$USERID^vhUSER($G(QU)) Set:'Afgehandeld Afgehandeld=$P($$DEVUSER^vhUSER(),";") Set Afgehandeld=Afgehandeld_"#"_$H For Count=1:1 Set R=$G(Rembours(Count)) Quit:R="" Do . Quit:'$P(R,D) . Set BONNr=$P(R,D,2) . If $P(R,D,3)="W" Do Quit . . Set R=^ORDW("D",BONNr),WMSStat=$P(R,D,20) . . Quit:WMSStat'="K" . . Set $P(R,D,20)="",^ORDW("D",BONNr)=R,DOutDate=$P($P(R,D,3),",") . . Do:DOutDate'>$H SEND^EWORDSW(BONNr) ; Doorsturen naar WMS . . Set $P(^ORDW("D",BONNr),D,8)=Afgehandeld . . Quit:'$G(MailId) . . Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"R",3) . . Kill ^vhMAIL("D",MailId,"R",4),^vhMAIL("D",MailId,"S") . If $P(R,D,3)="B" Do Quit . . Set $P(^KUL(KLNr,"F",BONNr,1),D,37)=Afgehandeld Quit ; ; Afdrukken van de overzichtslijst PRINT New DL,RembOvz,PrintRembOvz Set DL(1)="RembOvz",PrintRembOvz=1 Do INIT^vhLISTO("REMBOURS","REMBOVZ",.RembOvz) Set RembOvz(8)=$P(^RES("REMBOURS","LD","REMBOVZ","HO",5),"`",3) Set RembOvz(10)="CBOVZ^REMBOURS" Set RembOvz(11)="Rembourslijst\"_KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2) Do ^OUTPUT("P") Quit ; ; Print overzichtslijst boekhouding PRINTBH(%J) New R,Dev,Opv Do STORE^vhTERMINA() Do INIT^vhLISTO("REMBOURS","OPVOLG",.Opv) Do PRINT^OUTPUT(.Opv,"PT","S;L") Do REFRESH^vhTERMINA() Quit ; ; Call-back voor het afdrukken van de overzichtslijst CBOVZ(Ref) New Rec Set:$E(Ref,1,8)="Rembours" Rec=@Ref Quit $S($E($G(Rec),1,2)="&S":"BR",1:"") ; ; Tonen te betalen bedrag voor een remboursorder en eventueel afhandelen ORDTEBET(ORDNr) New R,KLNr,Afgehandeld,OldTeBet,NewTeBet,Munt Set KLNr=$P(^KO1(ORDNr,"F"),D) Set R=^KOD(KLNr,"F",ORDNr,1),Afgehandeld=$P(R,D,37),OldTeBet=$P(Afgehandeld,"#",3) Set R=$$CALCORD^FLOWORD5(ORDNr),NewTeBet=$P(R,D),Munt=$P(R,D,7) If NewTeBet'=OldTeBet Do . If 'Afgehandeld Do . . Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) . . For Do Quit:Afgehandeld'="T" . . . Set Afgehandeld=$$^vhTXTPOP("REMBOURS","ORDERTEBET","",KLNr,KlNaam,$$EXTNUM^vhDTyp(ORDNr,0,".T",0),$$EXTNUM^vhDTyp(NewTeBet,0,".",$$MUNT^vhRtn1(Munt,4)),Munt) . . . Do:Afgehandeld="T" TELEFOON^KONTAKT("K",KLNr) . . Quit:'Afgehandeld . . Set R=^KOD(KLNr,"F",ORDNr,1) . . Set $P(R,D,37)=$G(CUserId,$G(QU(1),$P($$DEVUSER^vhUSER(),";")))_"#"_$H_"#"_NewTeBet . . Set ^KOD(KLNr,"F",ORDNr,1)=R . Else Do ChkRembours^FLOWORD4(ORDNr) Else Set R=$$CALC^FLOW("O",ORDNr,1) ; De klant is op de hoogte (afgehandeld) Quit ; ; Controle of een klant volledig afgehandeld is, eventueel een boodschap indien niet afgehandeld Afgehandeld(KLNr,WarnIfNot) New Afgehandeld Set Afgehandeld=1 Do:$$ISREMB(KLNr) . Quit:KLNr=$$$KlantVanHoeckeNV . Quit:KLNr=$$$KlantBVanHoecke . Set ORDNr="" . For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do Quit:'Afgehandeld . . Set OLUNr=$O(^ORDW("IO",ORDNr,"")) . . If OLUNr Do ; Order in het WMS . . . Set BONNr=^ORDW("IO",ORDNr,OLUNr) . . . Set R=^ORDW("D",BONNr) . . . Set Afgehandeld=$P(R,D,8),$P(Afgehandeld,"#",2)=$P(Afgehandeld,"#",2) . . Else Do ; Nog op order . . . Quit:$$ISTERUGN^FLOWORD5(ORDNr) . . . Set R=^KOD(KLNr,"F",ORDNr,1),Afgehandeld=$P(R,D,37) . . . If 'Afgehandeld,$L($P(^KOD(KLNr,"F",ORDNr,1),D,25)) Set Afgehandeld="M"[$P(^KOD(KLNr,"F",ORDNr,1),D,25) . . . Set:'Afgehandeld Afgehandeld='$$CHKVERH^EWORDS5(KLNr,ORDNr,100) ; Indien het order niet 100% uitleverbaar, dan afgehandeld ok . If 'Afgehandeld,$G(WarnIfNot) Do WARN^vhTXTPOP("Rembours voor "_$P(^KKL(^KK1(KLNr),0),D,2)_"~niet volledig afgehandeld.","") Quit Afgehandeld ;