DCHERIN ;AFDRUKKEN HERINNERINGEN [ 08/12/2003 11:15 AM ] ; ; Het afdrukken van een herinnering kan met volgende oproep --> Do PRINT^DCHERIN(KLNr) ; VERWERK(FKlant,TKlant,CheckDat,RefDat,Batch) New %J,KLNr,KlantInd,KCount Set Batch=$G(Batch,"N\"_$TR($H,",",D)) Do INIT Set %J=$$%J^vhRtn1() Kill ^HULP(%J) If $P(Batch,D)="B" Do . New R,Date,Time . Set Date=$P(Batch,D,2),Time=$P(Batch,D,3) . Set R=$G(^PRINTB("H",Date,Time)) . Quit:R="" . Set CheckDat=$P(R,D,8),RefDat=$P(R,D,9),FKlant="" . For Set FKlant=$O(^PRINTB("H",Date,Time,FKlant)) Quit:FKlant="" Do . . Set KLNr=$P(^KKL(FKlant,0),D) . . Quit:'$D(^KK1(KLNr)) . . Do PRINT(KLNr,1,.KCount,.Batch) Else Do . If FKlant="",TKlant="~" Set FKlant=" ",TKlant="zzz" . If '$L(TKlant),'$D(^HULP($J)) For I=1:1 Quit:'$D(^HULP(boot,$J,"KL",I)) Set KlantId=^HULP(boot,$J,"KL",I),^HULP($J,KlantId)="" . If $L(FKlant) Set FKlant=$O(^KKL(FKlant),-1) . For Do Quit:FKlant=""!(FKlant]TKlant&$L(TKlant)) . . If '$L(TKlant) Set FKlant=$O(^HULP($J,FKlant)) Quit:FKlant="" ; specifiek . . Else Set FKlant=$O(^KKL(FKlant)) Quit:FKlant]TKlant!(FKlant="") ; alfabetisch . . Set KLNr=$P(^KKL(FKlant,0),D) . . Quit:'$D(^KK1(KLNr)) . . Do PRINT(KLNr,1,.KCount,.Batch) Set KlantInd="" ;Afdrukken "Intern dokument" achteraan For Set KlantInd=$O(^HULP(%J,KlantInd)) Quit:KlantInd="" Do .Set KLNr=$P(^KKL(KlantInd,0),D) .Do PRINT(KLNr,1,.KCount,.Batch) Do BATCH(.Batch,CheckDat,RefDat) Kill ^HULP(%J) 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,I,K,R,T,BCount,DocNr,Kode,Rapels,Verval,DocDat,VervDat,Munt,Openst,Limiet Set (Kosten(0),Kosten(3),BCount)=0,Kosten(1)=HERNr Set:TotVerv<0!(TotVerv+TotNVerv<0) Kosten(1)=0 For Limiet="0\199999","200000\299999","300000\999999" Do .Set DocNr="" .For Set DocNr=$O(Body(DocNr)) Quit:DocNr="" Do ..If DocNr<$P(Limiet,D)!(DocNr>$P(Limiet,D,2)) Quit ..Set R=Body(DocNr),Verval=$P(R,"#"),R=$P(R,"#",2,99) ..Set Kode=$P(R,D),DocDat=$P(R,D,2),VervDat=$P(R,D,3),Openst=$P(R,D,5) ..If Kode="C" Set Openst=-Openst ..Set Rapels=$P(R,D,8),Munt=$P(R,D,9) Set:Kode'="C" Rapels=Rapels+1 Set:Munt="" Munt=FaMunt ..If $L(Munten,D)-3!$L(Munt) Set Munt=$$MUNT^vhRtn1(Munt,1) ..Set R="" Set:Verval R="*"_Rapels Set R=R_"`3" ..If $E(DocNr,1,2)'=99 Set T=$$TXT($S(Kode="W":"Wissel",Kode="C":"Cred",1:"Fakt")) ..Else Set T=$$TXT("Divers") ..Set R=R_"\"_T_"`6" ..Set R=R_"\"_DocDat_"`19" ..If $E(DocNr,1,2)'=99 Set R=R_"\"_$$FN(DocNr,0)_"``37" ..Set R=R_"\"_VervDat_"`40" ..Set R=R_"\"_Munt_"`50" ..Set R=R_"\"_$$FN(Openst,Decimals)_"``"_(Verval*14+64) ..Do BLOCK(R),PASTEB(L("B","B")) ..Set VervDat=$$INTDATE^vhDTyp(VervDat) ..Set R=Kosten(1) Set:R>3 R=3 Set R=HerKost(R),K=CheckDat-VervDat-$P(R,D,1) ..If K'<0,Kode'="C" For I=0,3 Set Kosten(I)=Kosten(I)+$P(R,D,2+I)+($P(R,D,3+I)*Openst/100)+($P(R,D,4+I)*K*Openst/36500) Quit ; ; Afdruk hoofding (volgende bladzijden) HEADER New T Do CACHE(L("B","F")) Do CACHE(L("B","B")) Set T=$$TXT("Dok") Do PASTE(PCount,LCount,T,5,"","") Set T=$$TXT("Date") Do PASTE(PCount,LCount,T,19,"","") Set T=$$TXT("Nummer") Do PASTE(PCount,LCount,T,"",36,"") Set T=$$TXT("VervD") Do PASTE(PCount,LCount,T,40,"","") Set T=$$TXT("NVerv") Do PASTE(PCount,LCount,T,"",64,"") Set T=$$TXT("Verv") Do PASTE(PCount,LCount,T,"",77,"") Do CACHE(L("B","S")) Quit ; ; Afdruk hoofding (eerste blad) FHEADER New I,R,BCount,LTemp Set BCount=0,LTemp=L("B","F") Set R="" For I=1:1:9 Do ; Openingstekst op herinnering .If $G(^KKH(HERNr,Taal,I))="" Quit .Set R=^KKH(HERNr,Taal,I) .Set R(I)=R Do WRAP^vhRtn1(75,"R(","",.I) If I Do .For I=1:1:I Do BLOCK(I(I)_"`1``T") .Set L("B","F")=L("B","T","F") Do CACHE(L("T","F")),PASTEB(L("T","B")) Do HEADER Set L("B","F")=LTemp Quit ; ; Afdruk titel (volgende blazijden) TITEL New HerDat,KlantInd,R,T,Blank,Titel,Allign New Aanspr,Naam,Woonpl Set PCount=PCount+1,LCount=0 Set HerDat=$TR(RefDat,".","-") 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,"","") Set Titel=$$TXT("Herin")_" "_+HERNr,Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)+11>Allign Allign=$L(T)+11 Do PASTE(PCount,Blank,T,2,"","") Do PASTE(PCount,Blank,HerDat,"",Allign+1,"") Set T=Titel 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 HerDat,KlantInd,R,T,Blank,Titel,Allign New Aanspr,Naam,Toenaam,Straat,PostNr,Woonpl,Land,Telefoon,BhVer,Regio New VPerfo Set VPerfo=0 Set PCount=PCount+1,LCount=0 Set HerDat=$TR(RefDat,".","-") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Telefoon=$P(R,D,13) 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),Regio=$P(R,D,20) Set Land=$$LAND^vhRtn1($P(R,D,8)) Set BhVer=$$GETVERAN^PERS("K",KLNr,"BH") Set:BhVer="" BhVer=$$TXT("BhVer") Do VHPB^DCALG(PCount,.Blank) Do PASTE(PCount,AdresPos-6,KLNr_"-"_Regio,48,"","") Set T=$$TXT("KlantN") Do PASTE(PCount,AdresPos-6,T,40,"","") Do PASTE(PCount,AdresPos-5,Telefoon,48,"","") Set T=$$TXT("TelNr") 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,"","") Set T=$$TXT("Tav")_" "_BhVer If '$L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,T,40,"","U") .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 $L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Toenaam,40,"","") .Do PASTE(PCount,AdresPos+2,T,40,"","U") .Do PASTE(PCount,AdresPos+3,Straat,40,"","") .Do PASTE(PCount,AdresPos+5,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+6,$$LAND^vhRtn1(Land,2,Taal),40,"","") Set Titel=$$TXT("Herin")_" "_+HERNr,Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)+11>Allign Allign=$L(T)+11 Do PASTE(PCount,Blank-1,T,2,"","") Do PASTE(PCount,Blank-1,HerDat,"",Allign+1,"") Set T=Titel Do PASTE(PCount,Blank-3,T,2,"","B") 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,"",78,"") Set C(PCount,LCount)=P("D",1)_C(PCount,LCount) Quit ; ; Afdruk afsluiting (laatste blad) LFOOTER New B,I,R,R1,T,BCount,%KontKrt,TKontKrt,BetVw,LeverVw,LTemp Set BCount=0,LTemp=L("A","L") Set Munten=$L(Munten,D)-3 If 'Munten Set:Kosten(0) Kosten=$J(Kosten(0),0,Decimals) Set:Kosten(3) Intrest=$J(Kosten(3),0,Decimals) If Kosten Do .Set TotVerv=TotVerv+Kosten .Set R=$$TXT("Kosten")_D_$$FN(Kosten,Decimals)_"``"_(78+VPerfo)_D_L("B","B")_"`1``N" .Do BLOCK(R) If Intrest Do .Set TotVerv=TotVerv+Intrest .Set R=$$TXT("Intr")_D_$$FN(Intrest,Decimals)_"``"_(78+VPerfo)_D_L("B","B")_"`1``N" .Do BLOCK(R) Set Kosten(0)=$J(Kosten(0),0,2),Kosten(3)=$J(Kosten(3),0,2) Set R=Kosten(1) Set:R>3 R=0 Set ^KKX(R,KlantInd)=TotNVerv_D_TotVerv_D_Kosten_D_Intrest_D_Decimals_D_Munten_D_HERNr_D Do BLOCK(L("A","F")_"`1``N") Set R="*.= "_$$TXT("Aant1") If 'Munten Do .Set R=R_D_$$FN(TotNVerv+TotVerv,Decimals)_"``"_(48+VPerfo)_D_$$FN(TotNVerv,Decimals) .Set R=R_"``"_(64+VPerfo)_D_$$FN(TotVerv,Decimals)_"``"_(78+VPerfo) Set R=R_D_L("A","B")_"`1``N" Do BLOCK(R) Set R=$$TXT("Aant2")_D_L("A","S")_"`1``N" Do BLOCK(R) Set R=$$TXT("RefDat")_" : "_RefDat_D_$$TXT("Saldo")_"``"_(47+VPerfo)_D_$$TXT("NVerv")_"``"_(64+VPerfo)_D Set R=R_$$TXT($S(TotVerv<0:"TeGoed",1:"TeBet"))_"``"_(77+VPerfo)_D_L("A","B")_"`1``N" Do BLOCK(R) Set R="" For I=11:1:19 Do ; Sluittekst op herinnering .If $G(^KKH(HERNr,Taal,I))="" Quit .Set R=^KKH(HERNr,Taal,I) .Set R(I)=R If Kosten(1)>3!'Kosten(1)!$L(R) Set L("A","L")=L("T","L") Do BLOCK(L("B","T","L")_"`1``N") Set R="" For I=11:1:19 Do .If $G(R(I))="" Quit .Set R=R(I) Do WRAP^vhRtn1(75,"R(","",.I) If I For I=1:1:I Do BLOCK($$C^vhRtn1(10)_"`"_(79+VPerfo)_"``N\"_I(I)_"`3``T\"_$$C^vhRtn1(10)_"`1``N\") If 'Kosten(1)!(Kosten(1)>3)!NoHerin Do .Set R=$P($T(TIntern),U,2),R=$$C^vhRtn1(10)_"`"_(126+(VPerfo-1*VPerfo))_"``N\"_R_"`"_(40-$L(R))_"`132`BE\" .Set R=R_$$C^vhRtn1(10)_"`1``N\" .Do BLOCK(R) .If $D(%J),'$D(^HULP(%J,KlantInd)) Set ^HULP(%J,KlantInd)="",PrintLtr=0 If B(BCount)="" Kill B(BCount) Set BCount=BCount-1 If LCount+BCount+6>MaxLines Do FOOTER,TITEL,HEADER Else If Kosten!Intrest Do CACHE(L("B","B")) Set C(PCount,LCount)=C(PCount,LCount)_P("D",0) ;For I=LCount+1:1:MaxLines-6-BCount Do CACHE(L("B","B")) Set C(PCount,LCount)=P("D",1)_C(PCount,LCount) New VPerfo Do PASTEB("") Do CACHE(L("A","L")) Set L("A","L")=LTemp Quit ; ; Afdruk van de voorwaarden VOORW Quit ; CALCHER New I,R,DocNr,Kode,Verval,VervDat,Munt,Openst Set DocNr=9999,(HERNr,Decimals,Kosten,Intrest,TotVerv,TotNVerv)=0,Munten=D For Set DocNr=$O(^KKL(KlantInd,DocNr)) Quit:DocNr>999999!'DocNr Do .Set R=^KKL(KlantInd,DocNr) .Set Openst=$P(R,D,5) Quit:'Openst .Set Munt=$P(R,D,9) Set:Munt="" (Munt,$P(R,D,9))=FaMunt .Do:Munt'=FaMunt ..For I=4,5,6 Set $P(R,D,I)=$$MUNT^vhRtn1(Munt,5,$P(R,D,I)_"#1") ..Set (Munt,$P(R,D,9))=FaMunt,Openst=$P(R,D,5) .Set Kode=$P(R,D) Set:Kode="C" Openst=-Openst .Set:'Decimals Decimals=$$MUNT^vhRtn1(Munt,4) .If Munten'[(D_Munt_D) Set Munten=Munten_Munt_D .Set VervDat=$$INTDATE^vhDTyp($P(R,D,3)) .Set Verval=0 If VervDat'>CheckDat Set:DocNr>99999!(DocNr<99000) Verval=1 .Set Body(DocNr)=Verval_"#"_R .If 'Verval Set TotNVerv=TotNVerv+Openst .Else Do ..Set TotVerv=TotVerv+Openst ..If Kode'="C",$P(R,D,8)+1>HERNr Set HERNr=$P(R,D,8)+1 Quit ; ; Opbouwen local C en afdrukken van de herinnering PRINT(KLNr,Init,KCount,Batch) New HERNr,KlantInd,Taal,Body,Decimals,Munten,Kosten,Intrest,TotNVerv,TotVerv,NoHerin,FaMunt,PrintLtr New C,PCount,LCount,Date,Time If '$G(Init) Do INIT Set FaMunt=$$FADEF^vhRtn1() Set PCount=0,PrintLtr=1 Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),NoHerin='$P(R,D,10) ;Quit:NoHerin Set Taal=$P(R,D,9) If Taal="" Set Taal="N" Set Date=$P(Batch,D,2),Time=$P(Batch,D,3) If $P(Batch,D)="N" Do . Do CALCHER . If 'HERNr,'TotVerv Quit . Quit ; Voorlopig batches afgesloten . Merge ^PRINTB("H",Date,Time,KlantInd)=Body . Set R=HERNr_D_Decimals_D_TotVerv_D_TotNVerv_D_$TR(Munten,D,";") . Set ^PRINTB("H",Date,Time,KlantInd)=R Else Do . Merge Body=^PRINTB("H",Date,Time,KlantInd) . Set R=$G(^PRINTB("H",Date,Time,KlantInd)) . Set HERNr=$P(R,D),Decimals=$P(R,D,2),TotVerv=$P(R,D,3),TotNVerv=$P(R,D,4),Munten=$TR($P(R,D,5),";",D) . Set (Kosten,Intrest)=0 If 'HERNr,'TotVerv Quit Do FTITEL,FHEADER,BODY,VOORW,LFOOTER If PrintLtr Do . New K . ;Write @F80 ; Initialisatie afgesloten CW 09.03.05 . Set:$ZV'["MSM" K=$$SetIO^%NLS("C850") . Write:$D(Print("LADE")) @(@("FLA"_Print("LADE"))) . Do DPRINT^DCPRINT() . Set KCount=$G(KCount)+1 . Set:$P(Batch,D,4)="" $P(Batch,D,4)=KLNr Set $P(Batch,D,5)=KLNr . If '(KCount#100),$P(Batch,D)="N" Do . . Close Print("DEV") . . Open Print("DEV") . . Use Print("DEV") . . Write @F80 . . Set:$ZV'["MSM" K=$$SetIO^%NLS("C850") . . Write:$D(Print("LADE")) @(@("FLA"_Print("LADE"))) . . Do BATCH(.Batch,CheckDat,RefDat) ;Else Kill:$P(Batch,D)="N" ^PRINTB("H",Date,Time,KlantInd) ; Voorlopig batches afgesloten ;Enkel "Intern dokument" ;If PrintLtr,$D(^HULP(%J,KlantInd)) Do DPRINT^DCPRINT() ; Enkel Intern dokument Quit ; ; Initialisatie INIT If '$D(VH) Do VH^DCINIT If '$D(P) Do PINIT^DCINIT If '$D(L) Do LINIT^DCINIT("H") If '$D(PageLen)!'$D(V) Do FINIT^DCINIT("H") Set:'$D(CheckDat) CheckDat=+$H Set:'$D(RefDat) RefDat=DT If '$D(HerKost) For I=0:1:3 Set HerKost(I)=0 If $D(^KBA(38,I)) Set HerKost(I)=^KBA(38,I) Write P("D",1) Quit ; BATCH(Batch,CheckDat,RefDat) New R,Date,Time Do:$P(Batch,D)="N" . Quit ; Voorlopig batches afgesloten . Set Date=$P(Batch,D,2),Time=$P(Batch,D,3) . Set R=Date_D_Time_D_D_$G(io)_D_$G(QU)_D_$P(Batch,D,4,5)_D_CheckDat_D_RefDat . Set ^PRINTB("H",Date,Time)=R . Hang 1 ; Om geen dubbele batchnummers te creëren . Set Batch="N\"_$TR($H,",",D) Quit ; ; 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) ; THerin ;HERINNERING Nr.\RAPPEL No.\MAHNUNG Nr.\DUNNING LETTER Nbr. TIntern ;INTERN DOKUMENT TDate ;Datum\Date\Datum\Date TKlantN ;Kl. nr.\No. cl.\Ku. nr.\Cu. nbr TTelNr ;Tel nr.\No. tél\Tel nr.\Tel nbr TVervg ;vervolg\suite\fortsetzung\continue TVervt ;vervolgt\à suivre\fortgesetzt\t.b.continued TFakt ;Faktuur\Facture\Rechnung\Invoice TCred ;Kredietnota\Note d.créd\Gutschrift\Creditnote TWissel ;Wissel\Traite\Wechsel\Draft TDivers ;Diversen\Divers\Verschied.\Sundries TKosten ;Bijkom.kost\Frais de rap.\Mahnungskosten\Dunning costs TIntr ;Intrest\Intérêt\Zinsen\Interests TAant1 ;Aantal verzonden\Nombre de rappels\Mahnungsanzahl\Numb. of dunn. lett. TAant2 ;brieven voor die faktuur\pour cette facture\fuer diese Rechnung\for this invoice TSaldo ;Totaal saldo\Solde total\Gesamt Betrag\Total amount TTeBet ;Te betalen\A payer\Zu zahlen\To pay TTeGoed ;Uw tegoed\Votre crédit\Ihrem vorteil\Your credit TDok ;Dokument\Document\Dokument\Document TNummer ;Nummer\Numéro\Nummer\Number TVervD ;Vervaldag\Echéance\Faellig am\Due at TVerv ;Vervallen\Echu\Faellig\Overdue TRefDat ;Refer.datum\Date référ.\Referenz\Refer.datum TNVerv ;Niet vervall.\Non échu \Nicht faellig\Not overdue TTav ;T.a.v.\Att.\T.a.v.\T.a.v. TBhVer ;Boekhouding\Comptabilité\Boekhouding\Boekhouding