DCFAKT ;AFDRUKKEN FAKTUREN [ 11/17/2003 9:39 AM ] ; ; Het afdrukken van een faktuur kan met volgende oproep --> Do PRINT^DCFAKT(FANr) ; VERWERK(FromNr,Sessie,SortKey) New R,FANr,FaktProf,KLNr,LandCode,KlKey Do INIT Set SortKey=$G(SortKey,"P") Do:SortKey="P" ; Gerangschikt per factuur .Set FANr=$S(FromNr:FromNr-1,1:FromNr) .For Set FANr=$O(^HULP($J,"P",Sessie,FANr)) Quit:FANr="" Do ..Set FaktProf=^HULP($J,"P",Sessie,FANr) ..If FaktProf="P" Do PRINT^DCFAKTP(FANr,$S(Sessie="X":"K",1:Sessie),1) Quit ..Do PRINT(FANr,$S(Sessie="X":"K",1:Sessie),1) Do:SortKey="L" ; Gerangschikt per land per factuur .Set FANr=$S(FromNr:FromNr-1,1:FromNr) .For Set FANr=$O(^HULP($J,"P",Sessie,FANr)) Quit:FANr="" Do ..Set FaktProf=^HULP($J,"P",Sessie,FANr),R=@("^KFA"_$S(FaktProf="P":"P",1:"")_"(""F"",FANr,0,0)"),KLNr=$P(R,D) ..Set R=^KKL(^KK1(KLNr),0),LandCode=$P(R,D,8),^HULP($J,"L",Sessie,LandCode,FANr)=FaktProf .Set LandCode="" .For Set LandCode=$O(^HULP($J,"L",Sessie,LandCode)) Quit:LandCode="" Do ..Set FANr="" ..For Set FANr=$O(^HULP($J,"L",Sessie,LandCode,FANr)) Quit:FANr="" Do ...Set FaktProf=^HULP($J,"L",Sessie,LandCode,FANr) ...If FaktProf="P" Do PRINT^DCFAKTP(FANr,$S(Sessie="X":"K",1:Sessie),1) Quit ...Do PRINT(FANr,$S(Sessie="X":"K",1:Sessie),1) Do:SortKey="K" ; Gerangschikt per land per klant .Set FANr=$S(FromNr:FromNr-1,1:FromNr) .For Set FANr=$O(^HULP($J,"P",Sessie,FANr)) Quit:FANr="" Do ..Set FaktProf=^HULP($J,"P",Sessie,FANr),R=@("^KFA"_$S(FaktProf="P":"P",1:"")_"(""F"",FANr,0,0)"),KLNr=$P(R,D) ..Set KlKey=^KK1(KLNr),R=^KKL(KlKey,0),LandCode=$P(R,D,8),^HULP($J,"K",Sessie,LandCode,KlKey,FANr)=FaktProf .Set LandCode="" .For Set LandCode=$O(^HULP($J,"K",Sessie,LandCode)) Quit:LandCode="" Do ..Set KlKey="" ..For Set KlKey=$O(^HULP($J,"K",Sessie,LandCode,KlKey)) Quit:KlKey="" Do ...Set FANr="" ...For Set FANr=$O(^HULP($J,"K",Sessie,LandCode,KlKey,FANr)) Quit:FANr="" Do ....Set FaktProf=^HULP($J,"K",Sessie,LandCode,KlKey,FANr) ....If FaktProf="P" Do PRINT^DCFAKTP(FANr,$S(Sessie="X":"K",1:Sessie),1) Quit ....Do PRINT(FANr,$S(Sessie="X":"K",1:Sessie),1) Quit ; FN(Number,Fraction,Format) Quit $$FN^DCALG(Number,Fraction,$G(Format)) ; PASTEB(R,AddBlank) New NewPage Set NewPage="Do FOOTER^"_$ZN_",TITEL^"_$ZN_",HEADER^"_$ZN Do PASTEB^DCALG(R,NewPage,$G(AddBlank)) Quit ; BLOCK(R) Do BLOCK^DCALG(R) Quit ; CACHE(R) Do CACHE^DCALG(R) Quit ; PASTE(Page,Line,Text,BPos,EPos,Attr) Do PASTE^DCALG(Page,Line,Text,BPos,EPos,Attr) Quit ; ; Afdruk body BODY New B,R,BCount,BONNr,BonInd,BonDat,LevAdr,OLNr,GloRef New ORDNr,OrdDat,OrdRef,BonRef,Port,Paste,VerzWijz,LeverVw,OrgalRef If IsOrgal Do .Do CACHE(L("B","B")) .Set T=$$TXT("Orgal") .Do PASTE(PCount,LCount,T,3,"","B") Set BonInd="U",BCount=0 For Set BonInd=$O(^KFA("F",FANr,BonInd)) Quit:BonInd="" Do .Set BONNr=$E(BonInd,2,9) .Set R=^KFA("F",FANr,BonInd,1),BonDat=$TR($P(R,D,2),".","-"),BonRef=$P(R,D,3) .Set VerzWijz=$P($P(R,D,7),"#"),Port=$P($P(R,D,13),"#",1,2),LeverVw=$P(R,D,21) .If Sessie="K" Do ..If $E(VerzWijz,$L(VerzWijz))'=" " Set VerzWijz=VerzWijz_" " ..If $E(VerzWijz,1,2)="EX",$D(^HULP($J,"x",FANr)) Set ^HULP($J,"EXTRAS","E",FANr)=KLNr ..Else If VerzWijz=$P(^KBA(176),D) Set ^HULP($J,"EXTRAS","S",FANr)=KLNr .If 'CashECar Do ..Set R=^KFA("F",FANr,BonInd,3),LevAdr=$P(R,D,2) If $L(LevAdr),$L($P(R,D,7)) Set LevAdr=LevAdr_" - " ..Set LevAdr=LevAdr_$P(R,D,7) If $L(LevAdr),$L($P(R,D,5)) Set LevAdr=LevAdr_" - " ..Set LevAdr=LevAdr_$P(R,D,5) ..Do BONREF ..If $L(LevAdr) Do LEVADR .If CashECar Do ORDREF(BONNr,BonRef) .Set GloRef="^KFA(""F"",FANr,BonInd)" .Xecute:$L($T(@("SORT"_KLNr))) "Set GloRef=$$SORT"_KLNr_"(FANr,BonInd)" .Set OLNr=100 .For Set OLNr=$O(@GloRef@(OLNr)) Quit:OLNr="" Do ..Set Paste=$$FAKTUUR^DCDETAIL(FANr,BONNr,$S(OLNr:OLNr,1:$P(OLNr,"~",3)),IsOrgal) ..If Paste Do PASTEB(L("B","B"),1) .If $D(B) Do PASTEB(L("B","B"),1) .If +Port,$P(Port,"#",2) Do PORT,PASTEB(L("B","B")) .Kill ^HULP($J,"SORT","F",BonInd) Quit ; ; Afdruk bonreferentie BONREF Set R=$$TXT("Bon")_" "_$$FN(BONNr,0)_$$TXT("Bon",3)_" "_BonDat Set R=P("U",1)_R_P("U",0)_$J("",48-$L(R))_"`3`42`C" Do BLOCK(R) Quit ; ; Afdruk leveringsadres LEVADR Set R=$$TXT("LevAdr")_" "_LevAdr,R=$E(R,1,47) Set R=R_$J("",48-$L(R))_"`3`42`C" Do BLOCK(R) Quit ; ; Afdruk orderreferentie ORDREF(ORDNr,OrdRef,OrgalRef) New KlantInd Set R=$$TXT("Order")_" "_$$FN(ORDNr,0) If $L(OrdRef) Set R=R_"- "_OrdRef If '$D(B) Set R=P("U",1)_R_P("U",0)_$J("",48-$L(R))_"`3`42`C" Else Set R=R_$J("",48-$L(R))_"`3`42`C" Do BLOCK(R) Do:$L($G(OrgalRef)) .Set OrgalRef=$S(IsOrgal:"",1:"Comm: ")_OrgalRef,R=OrgalRef_$J("",48-$L(OrgalRef))_"`3`42`C" .Do BLOCK(R) Do BLOCK("") If BonBijv,Sessie="K" Do .Set KlantInd=^KK1(KLNr) .Set ^HULP($J,"EXTRAS","B",KlantInd_ORDNr)=KLNr_D_$P(^KKL(KlantInd,0),D,2)_D_ORDNr_D_OrdRef Quit ; ; Afdruk port PORT Set R=$$TXT("Port")_"`3\"_$$FN(+Port,2)_"``78" Do BLOCK(R) Quit ; ; Afdruk hoofding HEADER New T If $D(VPerfoT) New VPerfo Set VPerfo=VPerfoT Do CACHE(L("B","F")) Do CACHE(L("B","B")) Set T=$$TXT("Art") Do PASTE(PCount,LCount,T,3,"","") Set T=$$TXT("Aant") Do PASTE(PCount,LCount,T,"",50,"") Set T=$$TXT("Prijs")_" "_FaktMunt Do PASTE(PCount,LCount,T,"",63,"") Set T=$$TXT("Bedr")_" "_FaktMunt Do PASTE(PCount,LCount,T,"",77,"") If NetBrutP Do .Do CACHE(L("B","B")) .Set T=$$TXT("Kort") .Do PASTE(PCount,LCount,T,"",63,"") If $D(L("B","S")) Do CACHE(L("B","S")) Quit ; ; Afdruk titel (volgende blazijden) TITEL New FaktDat,KlantInd,R,T,Blank,Titel,Allign,VPerfo New Aanspr,Naam,Woonpl Do PPRINT Set PCount=PCount+1,LCount=0 Set R=^KFA("F",FANr,0,0),FaktDat=$TR($P(R,D,6),".","-") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) Set Naam=$P(R,D,2),Aanspr=$P(R,D,4),Woonpl=$P(R,D,7) For Blank=1:1:6 Do CACHE("") Set T=$$FIRMANM^DCALG("K",KLNr) Do PASTE(PCount,Blank-1,T,40,"","") Do PASTE(PCount,Blank,Woonpl,40,"","") If FaktTyp="F" Set Titel=$$TXT("Fakt") Else Set Titel=$$TXT("Kred") Set Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank,T,2,"","") Do PASTE(PCount,Blank,FaktDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(FANr,","),",",".") Do PASTE(PCount,Blank-1,T,2,"","B") If PCount>1 Do .Set T=$$TXT("Vervg")_" ("_(PCount-1)_")" .Do PASTE(PCount,Blank,T,"",79,"") Quit ; ; Afdruk titel (eerste blad) FTITEL New FaktDat,KlantInd,R,T,Blank,Titel,Allign,VPerfo New Aanspr,Naam,Toenaam,Straat,PostNr,Woonpl,Land,BtwNr Set PCount=PCount+1,LCount=0 Set R=^KFA("F",FANr,0,0),FaktDat=$TR($P(R,D,6),".","-") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) Set Naam=$P(R,D,2),Toenaam=$P(R,D,3),Aanspr=$P(R,D,4) Set Straat=$P(R,D,5),PostNr=$P(R,D,6),Woonpl=$P(R,D,7) Set Land=$$LAND^vhRtn1($P(R,D,8)),BtwNr=$$BTWNR^DCALG($P(R,D,16)) Do VHPB^DCALG(PCount,.Blank) If $L(BtwNr) Do .Do PASTE(PCount,AdresPos-5,BtwNr,48,"","") .Set T=$$TXT("BtwNr") .Do PASTE(PCount,AdresPos-5,T,40,"","") Set T=$$FIRMANM^DCALG("K",KLNr) If KLNr=8545,$L(T),$L(Toenaam) Set R=T,T=Toenaam,Toenaam=R Do PASTE(PCount,AdresPos,T,40,"","") If '$L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Straat,40,"","") .Do PASTE(PCount,AdresPos+3,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+4,$$LAND^vhRtn1(Land,2,Taal),40,"","") If $L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Toenaam,40,"","") .Do PASTE(PCount,AdresPos+2,Straat,40,"","") .Do PASTE(PCount,AdresPos+4,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+5,$$LAND^vhRtn1(Land,2,Taal),40,"","") If FaktTyp="F" Set Titel=$$TXT("Fakt") Else Set Titel=$$TXT("Kred") Set Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank-1,T,2,"","") Do PASTE(PCount,Blank-1,FaktDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(FANr,","),",",".") Do PASTE(PCount,Blank-3,T,2,"","B") If CashECar Do PASTE(PCount,Blank-3,"*",1,"","") Do VHPD^DCALG(PCount,.Blank,.VH) Quit ; ; Afdruk afsluiting (eerste bladzijden) FOOTER ;Set C(PCount,LCount)=C(PCount,LCount)_P("D",0) For I=LCount+1:1:MaxLines-1 Do CACHE(L("B","B")) Do CACHE(L("B","L")) Set T=" "_$$TXT("Vervt")_" " Do PASTE(PCount,LCount,T,"",77,"") ;Set C(PCount,LCount)=P("D",1)_C(PCount,LCount) Quit ; ; Afdruk afsluiting (laatste blad) LFOOTER New R,T,Goederen,Port,KontKrt,Basis,%Btw,Btw,TeBet,VervDag,FaktDat,KlantInd,TermKontKrt,KontKrtVervDag,LFType Set LFType=$$LFTYPE(FANr) Set R=^KFA("F",FANr,0,0),FaktDat=$P(R,D,6),Goederen=$P(R,D,7),Basis=$P(R,D,8),Btw=$P(R,D,9) Set TeBet=$P(R,D,12),KontKrt=$P(R,D,13),Port=$P($P(R,D,17),"#",2) Set VervDag=$TR($P(R,D,3),".","-") Set R=^KFA("F",FANr,0,1),%Btw=+R Set Goederen=Goederen-Port Do CACHE(L("A","F")) If $E(LFType)="K" Do ; Kontantkorting . Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,2),TermKontKrt=$P(R,D,2) . Set R=$$EXTDATE^vhDTyp($$INTDATE^vhDTyp(FaktDat)+1,"DKP")_D_TermKontKrt . Do ^cA104 . Set KontKrtVervDag=$TR(R,".","-") . Set:$$INTDATE^vhDTyp(KontKrtVervDag)>$$INTDATE^vhDTyp(VervDag) KontKrtVervDag=VervDag . If $E(LFType,2)="B" Do ; Btw . . Do LFLijn("Goederen","BetKort") . . Do LFLijn("Port","BetKortTerm") . . Do LFLijn("Basis","SepL") . . Do LFLijn("Btw(""B"")","VervDag") . . Do LFLijn(,"FaktTot") . Else If $E(LFType,2)="I" Do ; Intracommunautair . . Do LFLijn("Goederen","BetKort") . . Do LFLijn("Port","BetKortTerm") . . Do LFLijn("Btw(""I"")","SepL") . . Do LFLijn(,"VervDag") . . Do LFLijn(,"FaktTot") . Else If $E(LFType,2)="E" Do ; Export . . Do LFLijn("Goederen","BetKort") . . Do LFLijn("Port","BetKortTerm") . . Do LFLijn("Btw(""E"")","SepL") . . Do LFLijn(,"VervDag") . . Do LFLijn(,"FaktTot") Else Do . If $E(LFType,2)="B" Do ; Btw . . Do LFLijn("Goederen") . . Do LFLijn("Port") . . Do LFLijn("Basis","VervDag") . . Do LFLijn("Btw(""B"")","FaktTot") . Else If $E(LFType,2)="I" Do ; Intracommunautair . . Do LFLijn("Goederen") . . Do LFLijn("Port","VervDag") . . Do LFLijn("Btw(""I"")","FaktTot") . Else If $E(LFType,2)="E" Do ; Export . . Do LFLijn("Goederen") . . Do LFLijn("Port","VervDag") . . Do LFLijn("Btw(""E"")","FaktTot") Do CACHE(L("A","L")) Quit ; LFLijn(Kolom1,Kolom2) Set Kolom1=$G(Kolom1),Kolom2=$G(Kolom2) Do CACHE(L("A",$S(Kolom2="SepL":"SS",1:"B"))) Do:$L(Kolom1) @("LF"_Kolom1) Do:$L(Kolom2) . If Kolom2="SepL",FaktTyp="F" Quit . Do @("LF"_Kolom2) Quit ; LFGoederen Do .New VPerfo .Set T=$$TXT("Goed") .Do PASTE(PCount,LCount,T,3,"","") Do PASTE(PCount,LCount,$$FN(Goederen,2),"",34,"") Quit ; LFPort Do .New VPerfo .Set T=$$TXT("Port") .Do PASTE(PCount,LCount,T,3,"","") Do PASTE(PCount,LCount,$$FN(Port,2),"",34,"") Quit ; LFBasis Do .New VPerfo .Set T=$$TXT("Basis") .Do PASTE(PCount,LCount,T,3,"","") Do PASTE(PCount,LCount,$$FN(Basis,2),"",34,"") Quit ; LFBtw(Type) Do .New VPerfo .Set T=$$TXT("Btw") Set:Type="B" T=T_" "_BtwVoet(%Btw) .Do PASTE(PCount,LCount,T,3,"","") If Type'="B" Do .Set T=$$TXT($S(Type="I":"IntCom",1:"Export")) .Do PASTE(PCount,LCount,T,"",33,"") Else Do PASTE(PCount,LCount,$$FN(Btw,2),"",34,"") Quit ; LFBetKort Set T=$$TXT("KortK") Do PASTE(PCount,LCount,T,37,"","") Do PASTE(PCount,LCount,$$FN(KontKrt,2),"",74,"") Do PASTE(PCount,LCount,FaktMunt,75,"","") Quit ; LFBetKortTerm Set T=$$TXT("KortT") Do PASTE(PCount,LCount,T,37,"","") Do PASTE(PCount,LCount,KontKrtVervDag,70,"","") Quit ; LFFaktTotFax Do PASTE(PCount,LCount,FaktMunt,75,"","B") Do PASTE(PCount,LCount,$$FN(TeBet,2),"",74,"B") If FaktTyp="F" Set T=$$TXT("TeBet") Else Set T=$$TXT("TeGoed") Do PASTE(PCount,LCount,T,37,"","B") Quit ; LFFaktTot Goto LFFaktTotFax:$G(MetFax) New ExtraSpace Set ExtraSpace=$G(VPerfo,$G(VPerfoT)) Set:ExtraSpace ExtraSpace=ExtraSpace-1 Do PASTE(PCount,LCount,FaktMunt,75,"","B") If FaktTyp="F" Set T=$$TXT("TeBet") Else Set T=$$TXT("TeGoed") Do PASTE(PCount,LCount,T,37,"","B") Set T=$J($$FN(TeBet,2),45+ExtraSpace) Set C(PCount,LCount)=P("E",1)_P("C",1)_P("B",1)_T_P("B",0)_P("C",0)_P("E",0)_$C(13)_$J("",ExtraSpace)_C(PCount,LCount) Quit ; LFVervDag Do PASTE(PCount,LCount,VervDag,70,"","B") Set T=$$TXT("Vervd") Do PASTE(PCount,LCount,T,37,"","B") Quit ; LFSepL If FaktTyp="F" Set T=$$TXT("Fakt") Else Set T=$$TXT("Kred") Set $E(T,2,99)=$$LOCASE^vhRtn1($E(T,2,99)),T=" "_T_" " Do PASTE(PCount,LCount,T,57-($L(T)\2),"","") Quit ; ; Afdruk van de voorwaarden VOORW New B,I,R,R1,T,BCount,TeBet,BedrBhM,BhMunt,Land,Clausule,%KontKrt,TKontKrt,BetVw,Rembours,VoorBet,VPerfoT New LeverVw,Palet,Colli,Karton,Gewicht,LTemp,FaktDat,BonInd,LFType,Incasso Set VPerfoT=VPerfo New VPerfo Set BCount=0 Set R=^KFA("F",FANr,0,0),FaktDat=$P(R,D,6),TeBet=$P(R,D,12),BedrBhM=$P(R,D,14) Set FaktDat=$$INTDATE^vhDTyp(FaktDat),BhMunt=$S($H>58620&(FaktDat<58621):"BEF",1:""),BhMunt=$$MUNT^vhRtn1(BhMunt,1) Set BedrBhM=$$FN(BedrBhM,$$MUNT^vhRtn1(BhMunt,4)) Set R=^KFA("F",FANr,0,3),Palet=$P($P(R,D,21),"#"),Colli=$P($P(R,D,21),"#",2),Incasso=$P(R,D,26) Set Karton=$P($P(R,D,21),"#",3),Gewicht=$P(R,D,22),BonInd="U" For Set BonInd=$O(^KFA("F",FANr,BonInd)) Quit:BonInd="" Do Quit:$L(LeverVw) .Set R=^KFA("F",FANr,BonInd,1),LeverVw=$P(R,D,21) Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Land=$$LAND^vhRtn1($P(R,D,8)),Clausule=$P(R,D,12),%KontKrt=$P(R,D,17),BetVw=$P(R,D,18) Set R=^KKL(KlantInd,2),TKontKrt=$P(R,D,2) Set R=^KKL(KlantInd,3),Rembours=$P(R,D),VoorBet=$P(R,D,2) Set:LeverVw="" LeverVw=$P(R,D,3) If Clausule,$D(^KBA(152,Taal)),$L(^KBA(152,Taal)) Do ; faktuurclausule .Do BLOCK(^KBA(152,Taal)) .Set R=TeBet D @("^KY125"_$S(Taal="F":"F",1:"N")) .Set T=$$MUNT^vhRtn1(FaktMunt,2) .Do BLOCK(R_$S($L(R1):"",1:T)) .If $L(R1) Do BLOCK(R1) .Do BLOCK("") Set T="" For Verp="Palet","Colli","Karton" If @Verp Do ; Verpakking .If $L(T) Set T=T_" + " .If @Verp Set T=T_@Verp_" "_$$TXT(Verp) .If Verp="Colli",@Verp=1 Set T=T_$$TXT(Verp,4) .If @Verp>1 Set T=T_$$TXT(Verp,3) If Gewicht Set Gewicht=$$FN(Gewicht,1) Set:$L(T) T=T_" - " Set T=T_$$TXT("Gew")_" : "_Gewicht_"kg" If $L(T) Do BLOCK(T),BLOCK("") If Land'="BE" Do .Set LFType=$$LFTYPE(FANr) .Set T=$$TXT("FaktW") .Set T=T_D_BedrBhM_BhMunt_"`"_($L(T)+4) .Do BLOCK(T) .Set T=$$TXT($S($E(LFType,2)="I":"VrijIc",1:"VrijEx")) .Do BLOCK(T),BLOCK("") Set R=$$LEVVW^KLANT(LeverVw,Taal) ; Leveringsvoorwaarde If $L(R) Do .Set T=$$TXT("LevVw") .Set R=T_"`3``U\:`"_($L(T)+3)_D_R .For I=1:1:$L(R,"#") Set $P(R,"#",I)=$P(R,"#",I)_"`"_($L(T)+5) .For I=1:1:$L(R,"#") Do BLOCK($P(R,"#",I)) .Do BLOCK("") If FaktTyp="F" Do ; Betalingsvoorwaarde .Set T=$$TXT("BetVw") .Set R=$$BETVW^KLANT(BetVw,%KontKrt,TKontKrt,Rembours,VoorBet,Taal) .Set R=T_"`3``U\:`"_($L(T)+3)_D_R .For I=1:1:$L(R,"#") Set $P(R,"#",I)=$P(R,"#",I)_"`"_($L(T)+5) .For I=1:1:$L(R,"#") Do BLOCK($P(R,"#",I)) .Do BLOCK("") If 0,Land="NL",FaktTyp="F" Do ; Deze voorwaarde is niet meer nodig afgedrukt .Do BLOCK($P($T(TVwNl1),U,2)),BLOCK($P($T(TVwNl2),U,2)),BLOCK("") ; Export Do MEMO^DCALG("F") Set T="" For I=1:1:4 If $D(^KBA(151,Taal,I)),$L(^KBA(151,Taal,I)) Set T=^KBA(151,Taal,I) Do BLOCK(T_"`3``BT") ; Faktuurtekst If $L(T) Do BLOCK("") If B(BCount)="" Kill B(BCount) Set BCount=BCount-1 Set LTemp=L("B","S") If P("Type")="CA"!(P("Type")="BL")!(P("Type")="TK") Kill L("B","S") If LCount+BCount+3+LFooterLines>MaxLines Do FOOTER,TITEL,HEADER Set L("B","S")=LTemp ;Set C(PCount,LCount)=C(PCount,LCount)_P("D",0) If P("Type")'="CA",P("Type")'="BL",P("Type")'="TK" For I=LCount+1:1:MaxLines-3-LFooterLines-BCount Do CACHE(L("B","B")) Do CACHE(L("V","F")) ;Set C(PCount,LCount)=P("D",1)_C(PCount,LCount) Do PASTEB(L("V","B")) Quit ; ; Afdruk van de voorwaarden - via proxy objects - Added by WimV on 12/05/2005 VOORWPROXY(FANr,Cache,Taal) ; Cache als .local doorgeven --> wordt opgevuld met teksten New B,I,R,R1,T,KLNr,BCount,Btw,TeBet,BedrBhM,BhMunt,Land,Clausule,%KontKrt,TKontKrt,BetVw,Rembours,VoorBet New LeverVw,Palet,Colli,Karton,Gewicht,LTemp,FaktDat,BonInd,FaktMunt,BtwType,Incasso,DocumentVerzendenNaar Set BCount=0 Set R=^KFA("F",FANr,0,0),KLNr=$P(R,D),FaktTyp=$P(R,D,2) Set FaktMunt=$$MUNT^vhRtn1($P(R,D,5),1),FaktDat=$P(R,D,6),Btw=$P(R,D,9),TeBet=$P(R,D,12),BedrBhM=$P(R,D,14) Set FaktDat=$$INTDATE^vhDTyp(FaktDat),BhMunt=$S($H>58620&(FaktDat<58621):"BEF",1:""),BhMunt=$$MUNT^vhRtn1(BhMunt,1) Set BedrBhM=$$FN^DCALG(BedrBhM,$$MUNT^vhRtn1(BhMunt,4)) Set R=^KFA("F",FANr,0,3),Palet=$P($P(R,D,21),"#"),Colli=$P($P(R,D,21),"#",2),Incasso=$P(R,D,26) Set Karton=$P($P(R,D,21),"#",3),Gewicht=$P(R,D,22),BonInd="U" For Set BonInd=$O(^KFA("F",FANr,BonInd)) Quit:BonInd="" Do Quit:$L(LeverVw) .Set R=^KFA("F",FANr,BonInd,1),LeverVw=$P(R,D,21) Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Land=$$LAND^vhRtn1($P(R,D,8)) Set:($G(Taal)="") Taal=$P(R,D,9) Set:(Taal="") Taal="N" Set Clausule=$P(R,D,12),%KontKrt=$P(R,D,17),BetVw=$P(R,D,18) Set R=^KKL(KlantInd,2),TKontKrt=$P(R,D,2) Set R=^KKL(KlantInd,3),Rembours=$P(R,D),VoorBet=$P(R,D,2) Set:LeverVw="" LeverVw=$P(R,D,3) If Clausule,$D(^KBA(152,Taal)),$L(^KBA(152,Taal)) Do ; faktuurclausule .Set Cache("FACTUURCLAUSULE",1)=^KBA(152,Taal) .Set R=TeBet D @("^KY125"_$S(Taal="F":"F",1:"N")) .Set T=$$MUNT^vhRtn1(FaktMunt,2) .Set Cache("FACTUURCLAUSULE",2)=R_$S($L(R1):"",1:T) .If $L(R1) Set Cache("FACTUURCLAUSULE",3)=R1 Set T="" For Verp="Palet","Colli","Karton" If @Verp Do ; Verpakking .If $L(T) Set T=T_" + " .If @Verp Set T=T_@Verp_" "_$$TXT^DCFAKT(Verp) .If Verp="Colli",@Verp=1 Set T=T_$$TXT^DCFAKT(Verp,4) .If @Verp>1 Set T=T_$$TXT^DCFAKT(Verp,3) Set:$L(T) Cache("VERPAKKING")=T If Gewicht Set Gewicht=$$FN^DCALG(Gewicht,1),Cache("GEWICHT")=$$TXT^DCFAKT("Gew")_" : "_Gewicht_"kg" If Land'="BE",'Btw Do .Set BtwType=$S($L($G(%BtwType)):%BtwType, 1:##class(BL.Flow.Proxy.pxFactuur).BtwTypeFromKlant(KLNr)) .Set T=$$TXT^DCFAKT("FaktW")_" "_BedrBhM_BhMunt_". "_$$TXT^DCFAKT($S(BtwType="I":"VrijIc",1:"VrijEx")) .Set Cache("FACTUURWAARDE",1)=T Set R=$$LEVVW^KLANT(LeverVw,Taal) ; Leveringsvoorwaarde If $L(R) Do .For I=1:1:$L(R,"#") Set Cache("LEVERINGSVOORWAARDE",I)=$P(R,"#",I) If FaktTyp="F" Do ; Betalingsvoorwaarde .Set R=$$BETVW^KLANT(BetVw,%KontKrt,TKontKrt,Rembours,VoorBet,Taal) .For I=1:1:$L(R,"#") Set Cache("BETALINGSVOORWAARDE",I)=$P(R,"#",I) Set DocumentVerzendenNaar=$$DocumentVerzendenNaar^DCFOP(KLNr) If Land="NL",FaktTyp="F" Do .Set Cache("EXPORT",1)=$P($T(TVwNl1^DCFAKT),U,2),Cache("EXPORT",2)=$P($T(TVwNl2^DCFAKT),U,2) ; Export Do MEMOPROXY^DCALG("F",Taal,.Cache) For I=1:1:4 If $L($G(^KBA(151,Taal,I))) Set Cache("FACTUURTEKST",I)=^KBA(151,Taal,I) ; Faktuurtekst Quit ; ; Verwerking kopies KOPIE(KopieAan) New VPerfo If $$TXT("Exped")=KopieAan Do @$S(PCount=1:"FEXPED",1:"EXPED") Set T=$$TXT("Kopie") Set T=$$UPCASE^vhRtn1(T),KopieAan=$$UPCASE^vhRtn1(KopieAan) If PCount=1 Do PASTE(PCount,1,T,40,"","B") Do:$L(KopieAan) PASTE(PCount,1,KopieAan,$L(T)+45,"","B") Quit If Sessie="K" Do PASTE(PCount,5,T,"",82,"") Quit ; ; Kopie expediteur (Volgende bladzijden) EXPED New R,T,Blank,BonInd New Aanspr,Naam,Woonpl,Land Set BonInd="U",R="" For Set BonInd=$O(^KFA("F",FANr,BonInd)) Quit:BonInd="" Set R=^KFA("F",FANr,BonInd,3) Quit:$P(R,D) Quit:'$P(R,D) Set Naam=$P(R,D,2),Aanspr=$P(R,D,4),Woonpl=$P(R,D,7),Land=$P(R,D,8) For Blank=1:1 Quit:C(PCount,Blank)[L("B","F") If Blank>4 Do PASTE(PCount,Blank,$J("",$S(Blank=6:25,1:40)),40,"","") Set Blank=Blank-1 Set T=$$FIRMANM^DCALG("K",,Naam,Aanspr,Land) Do PASTE(PCount,Blank-1,T,44,"","") Do PASTE(PCount,Blank,Woonpl,40,"","") Quit ; ; Kopie expediteur (Eerste blad) FEXPED New R,T,Blank,BonInd New Aanspr,Naam,Toenaam,Straat,PostNr,Woonpl,Land Set BonInd="U",R="" For Set BonInd=$O(^KFA("F",FANr,BonInd)) Quit:BonInd="" Set R=^KFA("F",FANr,BonInd,3) Quit:$P(R,D) Quit:'$P(R,D) Set Naam=$P(R,D,2),Toenaam=$P(R,D,3),Aanspr=$P(R,D,4) Set Straat=$P(R,D,5),PostNr=$P(R,D,6),Woonpl=$P(R,D,7) Set Land=$$LAND^vhRtn1($P(R,D,8)) For Blank=1:1 Quit:C(PCount,Blank)[L("B","F") If Blank>9 Do PASTE(PCount,Blank,$J("",40),40,"","") Set Blank=Blank-1 Set T=$$FIRMANM^DCALG("K",,Naam,Aanspr,Land) Do PASTE(PCount,AdresPos,T,40,"","") If '$L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Straat,40,"","") .Do PASTE(PCount,AdresPos+3,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+4,$$LAND^vhRtn1(Land,2,Taal),40,"","") If $L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Toenaam,40,"","") .Do PASTE(PCount,AdresPos+2,Straat,40,"","") .Do PASTE(PCount,AdresPos+4,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+5,$$LAND^vhRtn1(Land,2,Taal),40,"","") Quit ; ; Afdrukken van een bladzijde PPRINT If $D(KopieAan) Do KOPIE(KopieAan) Do PPRINT^DCPRINT(PCount) Kill C(PCount) Quit ; ; Afdrukken van de faktuur PRINT(FANr,Sessie,Init,MetFax) New KLNr,KlantInd,Taal,ExtraFak,NetBrutP,FaktTyp,FaktMunt,CashECar New Kopie,KopieAan,BonBijv,FCount,IsOrgal,LFooterLines,PDFLink Set R=^KFA("F",FANr,0,3),PDFLink=$P(R,D,18) If 0,$L(PDFLink) Do OneFACT^DCFOP(FANr,Sessie,"DocuColor") Else Do .If '$G(Init) Do INIT .Set R=^KFA("F",FANr,0,0),KLNr=$P(R,D),FaktTyp=$P(R,D,2),FaktMunt=$$MUNT^vhRtn1($P(R,D,5),1) .Set R=^KFA("F",FANr,0,3),CashECar=$P(R,D,23),NetBrutP=$P(R,D,27) .Set LFooterLines=$$LFOOTERL(FANr) .Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Taal=$P(R,D,9) If Taal="" Set Taal="N" .Set R=^KKL(KlantInd,1),ExtraFak=$P(R,D,2),KopieAan=$P(R,D,13),BonBijv=$P(R,D,17) .Write:$$CHKALG^DEFAULTS(KLNr,"DCFAKT","PRINT","NLQ") P("N",1) .If Sessie="K" Do ..If $D(^HULP($J,"P","X",FANr)) Set KopieAan=$$TXT("Exped") Quit ..If $E(KopieAan)'="+" Set KopieAan="" Quit ..Set KopieAan=$e(KopieAan,2,99),ExtraFak=ExtraFak+1 .If Sessie="I" Set ExtraFak=0,KopieAan=$P($T(TKopieI),U,2) .If Sessie="C" Set ExtraFak=0,KopieAan="" .Do PRINT^LOG("FAKT",FANr,$S($G(MetFax):"F",1:"P"),,$S(Sessie="C":"Copie",1:"")) .For FCount=1:1:1+ExtraFak Do ..If FCount>1!(FCount=(ExtraFak+1)&$L(KopieAan))!("CI"[Sessie) Do Quit ...Do FPRINT($S("CI"[Sessie:KopieAan,FCount=(ExtraFak+1):KopieAan,1:"")) ..Do FPRINT() .Write P("N",0) Quit ; ; Opbouwen local C en afdrukken van de faktuur FPRINT(KopieAan) New C,PCount,LCount Set PCount=0 Set IsOrgal=$$ISORGAL^FLOW("F",FANr) Do FTITEL,HEADER,BODY,VOORW,LFOOTER,PPRINT Set:$G(MetFax) Data("Pages")=$G(Data("Pages"))+PCount Set:$P(^KFA("F",FANr,0,3),D,19)="" $P(^KFA("F",FANr,0,3),D,19)=PCount Quit ; ; Initialisatie INIT If '$D(VH) Do VH^DCINIT If '$D(P) Do PINIT^DCINIT If '$D(L) Do LINIT^DCINIT("F") If '$D(BtwVoet) For I=0:1:9 I $D(^KBA(18,I)) Set BtwVoet(I)=$P(^KBA(18,I),D) If '$D(PageLen)!'$D(V) Do FINIT^DCINIT("F") Write P("D",1) Quit ; ; $E(LFType) = "K" -> met kontantkorting ; $E(LFType,2) = "B" -> Belgie ; $E(LFType,2) = "I" -> Intracommunautair ; $E(LFType,2) = "E" -> Export LFTYPE(FANr) New R,LFType,KLNr,KontKrt,Btw Set R=^KFA("F",FANr,0,0),KLNr=$P(R,D),Btw=$P(R,D,9),KontKrt=$P(R,D,13) If Btw Set LFType="B" Else Set LFType=$$LAND^vhRtn1(KLNr,"K",1,2) If LFType'="B" Set LFType=$P("E\I",D,$$LAND^vhRtn1(LFType,"E")+1) Set LFType=$S(KontKrt:"K",1:" ")_LFType Quit LFType ; ; Bepalen aantal lijnen van de afsluiting LFOOTERL(FANr) New LFooterLines,LFType Set LFType=$$LFTYPE(FANr) If $E(LFType)="K" Set LFooterLines=5 Else If $E(LFType,2)="B" Set LFooterLines=4 Else Set LFooterLines=3 Quit LFooterLines ; ; Ophalen taalafhankelijke tekst TXT(Ref,Piece) If '$D(Piece) Set Piece=2 Quit $P($P($T(@("T"_Ref)),U,Piece),D,$F("NFDE",Taal)-1) ; SORT1239(FANr,BonInd) New R,OLNr,KlOLNr,TempKlOL,GroepCnt,SortKey,TextBlock Kill ^HULP($J,"SORT","F",BonInd) Set OLNr=100,GroepCnt=$A("A"),(TempKlOL,TextBlock)="" For Set OLNr=$O(^KFA("F",FANr,BonInd,OLNr)) Quit:'OLNr Do .Set R=^KFA("F",FANr,BonInd,OLNr) .Set KlOLNr=$P(R,D,35) Set:$P(R,D,17)="KF5" GroepCnt=GroepCnt+1 .Do:KlOLNr="" ..If $P($P(R,D,17),"#")="KF11" Set:TextBlock="" TextBlock=$P($P(R,D,18),";") ..Else If $P(R,D,17)="KF5" Set KlOLNr=" " ..Else If $P($P(R,D,17),"#")="KF1925" Set KlOLNr=TempKlOL .Set $P(KlOLNr,".")=$J($P(KlOLNr,"."),3) .Set SortKey=$C(GroepCnt)_"~"_KlOLNr_"~"_OLNr,^HULP($J,"SORT","F",BonInd,SortKey)=R .Set TempKlOL=KlOLNr .If $P($P(R,D,17),"#")="KF11",TextBlock'=$P($P(R,D,18),";") Set GroepCnt=GroepCnt+1 Quit "^HULP($J,""SORT"",""F"",BonInd)" ; Incasso(FANr,Tekst) New IncassoDatum,IncassoBedrag,FactRec,KLNr,VervDat,FactDat,Bedrag,KontKort,Verschil,Aanbieden Set FactRec=^KFA("F",FANr,0,0) Set KLNr=$P(FactRec,D) Set VervDat=$P(FactRec,"\",3) Set FactDat=$P(FactRec,"\",6) Set Bedrag=$P(FactRec,"\",12) Set KontKort=$P(FactRec,"\",13) Set Verschil=Bedrag-KontKort Set Aanbieden=VervDat Set:KontKort Aanbieden=##Class(BL.Flow.Proxy.pxFactuur).KortingGeldigTot(KLNr,FactDat,VervDat) Set IncassoDatum=$TR(Aanbieden,".","-"),IncassoBedrag=$$EXTNUM^vhDTyp(Verschil,0,".",2) For Quit:Tekst'["@" Set Local=$P($P(Tekst,"@",2)," "),Tekst=$P(Tekst,"@"_Local)_@Local_$P(Tekst,"@"_Local,2,99) Quit Tekst ; TFakt ;FACTUUR\FACTURE\RECHNUNG\INVOICE TKred ;CREDITNOTA\NOTE DE CREDIT\KREDITNOTA\CREDITNOTE TContr ;Afname van contract\Prise du contrat\Afname van contract\Afname van contract TDate ;Datum\Date\Datum\Date TBtwNr ;BTW nr.\No. TVA\BTW nr.\VAT nbr TKopie ;Kopie\Copie\Kopie\Copie TKopieI ;intern TVervg ;vervolg\suite\fortsetzung\continue TVervt ;vervolgt\à suivre\fortgesetzt\t.b.continued TArt ;Artikel\Article\Artikel\Article TAant ;Aantal\Quant.\Menge\Quant. TPrijs ;E.Prijs\Prix U\E.Preis\U.Price TBedr ;Bedrag\Montant\Betrag\Amount TKort ;Korting\Remise\Rabat\Discount TGoed ;Goederen\Marchand.\Waren\Goods TPort ;Port\Port\Porto\Postage TKortK ;Betalingskorting\Escompte au comptant\Zahlungsrabatt\Betalingskorting TKortT ;indien betaald voor\payé avant\wenn bezahlt ist vor\indien betaald voor TBasis ;Basis (M.v.H.)\Base (C.d.l.)\Basis (M.v.E.)\Base TBtw ;BTW\TVA\MWST\VAT TIntCom ;Intracommunautair\Intracommunautaire\Innergemeinschaftliche\Intracommunautair TExport ;Export\Export\Export\Export TTeBet ;Factuurtotaal\Montant de facture\Rechnungstotal\To pay TTeGoed ;In uw voordeel\à votre faveur\Ihrem vorteil\Your benefit TVervd ;Vervaldag\Echéance\Faellig\D of mat TPalet ;Palet\Palette\Palette\Palet;ten\s\n\s TColli ;Coll\Coli\Koll\Parcel;o\s\o\o;i\s\i\i TKarton ;Karton\Carton\Paket\Carton;s\s\e\s TGew ;Brutogewicht\Poids brut\Bruttogewicht\brutogewicht TFaktW ;Faktuurwaarde\Valeur de la facture\Warenwert\Faktuurwaarde TVrijIc ;Vrij van Belgische BTW - Intracommunautaire levering\Exemption de TVA belge - Livraison intracommunautaire\Steuerfreie Innergemeinschaftliche Lieferung\Exempt of Belgian VAT - Intracommunity supply TVrijEx ;Vrij van Belgische BTW - Uitvoer\Exemption de TVA belge - Exportation\Steuerfreie Ausfuhrlieferung\Exempt of Belgian VAT - Export TVwNl1 ;Verkopen en leveringen in Nederland volgens BELUNED-condities, gedeponeerd TVwNl2 ;bij de Kamer van Koophandel en Fabrieken te 's Gravenhage onder nummer 1287. TLevVw ;Leveringsvoorwaarde\Conditions de livraison\Lieferbedingung\Betalingsvoorwaarde TBetVw ;Betalingsvoorwaarde\Conditions de paiement\Zahlungsbedingung\Betalingsvoorwaarde TBon ;Leveringsbon nr.\Bon de livraison nr.\Lieferschein nr.\Leveringsbon nr.;van\du\vom\van TLevAdr ;L/A\A/L\L/A\L/A TOrder ;O/order\N/ordre\U/auftr\O/order TKlRef ;Uw ref\Votre ref\Ihre ref\Uw ref TProjRef ;Ref\Ref\Ref\Ref TExped ;Expediteur\Expediteur\Expediteur\Expediteur TOrgal ;ORGALUX\ORGALUX\ORGALUX\ORGALUX