Proxy-klasse voor een rappel BL.Sys.FOP.Common,vhLib.Macro,BL.Flow.Doc.Common 1 %RegisteredObject,%XML.Adaptor right RAPPEL Datum van creatie van het document %Library.String Steeds "Rappel" %Library.String %Library.String %Library.String Het rappelnummer is gelijk aan maximum aantal rappels. Nr=0 zorgt dat DocBase een titeltje ~"betalingsoverzicht" gebruikt, i.p.v. ~"aanmaning" %Library.String %Library.String %Library.String %Library.String %Library.String %Library.String %Library.String %Library.String %String %Library.String %Library.String %Library.Float %Library.Float %String array bevatten]]> BL.FOP.Basis.pxTekstHTML BL.FOP.Derde.pxKlantAdres pxRappelLijn list BL.Flow.Proxy.pxPPODfields Exemplaar kan volgende kodes bevatten. E : Extern (de huidige rappelnrs worden met 1 verhoogd) I : Intern (de huidige rappelnrs worden met 1 verhoogd) R : Reprint (de huidige rappelnrs worden behouden) 1 pxRappel Exemplaar kan volgende kodes bevatten. E : Extern (de huidige rappelnrs worden met 1 verhoogd) I : Intern (de huidige rappelnrs worden met 1 verhoogd) RappelType definieert de rappels die intern zijn, maar opgedeeld worden in speciale subgroepen (zie BL.Flow.Rappel.Doc) zoals Vervallen, Rembours, ... blnIncRappel : 0 of 1 geeft of de RappelNr van de facturen moet opgehoogd worden %Status 999999)||('FANr) Do . Set Sort($$INTDATE^vhLib.DataTypes($P(^KKL(KLID,FANr),"\",2)),FANr)="" Set SortDat="" For Set SortDat=$O(Sort(SortDat)) Quit:SortDat="" Do . Set FANr="" . For Set FANr=$O(Sort(SortDat,FANr)) Quit:FANr="" Do . . Set pxFact=##class(pxRappelLijn).Create(KLID,FANr,RappelDatum,blnIncRappel) . . Quit:$$INTDATE^vhLib.DataTypes(pxFact.FACTUURDATUM)>RappelDatum ; Alleen oudere facturen . . Do ..FACTUREN.Insert(pxFact) . . Set:pxFact.ISVERVALLEN TotaalVervallen=TotaalVervallen+pxFact.SALDO . . Set:'pxFact.ISVERVALLEN TotaalNietVervallen=TotaalNietVervallen+pxFact.SALDO . . Set:MaxRappelMaxVervalDagen MaxVervalDagen=VervalDagen . . Set ..MUNT=pxFact.MUNT d WLIP^vhDBG(15,MaxRappel_" "_TotaalVervallen_" "_TotaalNietVervallen) Do frCalcKost(MaxRappel,TotaalVervallen,TotaalNietVervallen) Do frRedenTeksten(Taal) Do frEnd(KLNr,Taal,TotaalVervallen, TotaalNietVervallen, MaxRappel) Do frPPODfields(KLNr,..ADRES.PPODRegio(),..ADRES.PPODAdres(),Exemplaar,RappelType) Quit $$$OK frRedenTeksten(Taal) ; berekend ook de samenvatting van de redes Set Key="" For Set pxFact=..FACTUREN.GetNext(.Key) Quit:Key="" Do . If pxFact.REDEN'="" Do ; omzetten van rede naar volgnr . . If '$D(RedenIndex(pxFact.REDEN)) Do . . . Set RedenSort($I(RedenSort))=pxFact.REDEN . . . Set RedenIndex(pxFact.REDEN)=RedenSort . . Set pxFact.REDEN=RedenIndex(pxFact.REDEN) ; opvullen van REDETEKSTEN For I=1:1:$G(RedenSort) Do . Set Tekst=$G(^RES("FLOWFACT","PI","RAPPELREDEN","D",RedenSort(I),Taal)) . Set:Tekst="" Tekst=$G(^RES("FLOWFACT","PI","RAPPELREDEN","D",$$$rapRedenAndere,Taal)) . Do ..REDENTEKSTEN.SetAt(Tekst,I) Quit frCalcKost(MaxRappel,TotaalVervallen,TotaalNietVervallen) ; berekend ook de samenvatting van de redes #Define MaxRappelKost 3 #Define GetHerKost(%RappelNr) $G(^KBA(38,$$$Min(%RappelNr,$$$MaxRappelKost))) ; HerKost = 1:DagenVerval / 2:KostPerFactuur / 3:Kost%VanSaldo / 4:Kost%VanDagenVervallen / 5:InterestPerFactuur / 6:Interest%Saldo / 7:Interest%DagenVervallen Quit:(TotaalVervallen)'>0 ; Geen kosten want totaal vervallen is negatief Set D="\" Set HerKost=$$$GetHerKost(MaxRappel) ;d WLIP^vhDBG(15,HerKost) Quit:$TR($P(HerKost,"\",2,99),"0\","")="" ; geen kosten Set (Kost,Intrest)=0 Set Key="" For Set pxFact=..FACTUREN.GetNext(.Key) Quit:Key="" Do:pxFact.ISVERVALLEN ;&&("W;F"[pxFact.FACTUURTYPE) ook voor Creditnotas en Diverse, PV 27/11/08 . Set DagenVervallen=pxFact.VERVALDAGEN-$P(HerKost,"\",1) ; deel RappelDatum-$$INTDATE^vhLib.DataTypes(pxFact.VERVALDATUM) is vervangen door pxFact.VERVALDAGEN vermits pxFact.VERVALDATUM voor Creditnotas niet is ingevuld,aangepast PV 27/11/08 . Set:(DagenVervallen<0) DagenVervallen=0 . ; VasteKost + PercentageOpOpenstaandBedrag + PercentageOpOpenstaandBedragARatoVervallenDagen . Set Kost=Kost+$S("W;F"[pxFact.FACTUURTYPE:$P(HerKost,D,2),1:0)+($P(HerKost,D,3)*pxFact.SALDO/100)+($P(HerKost,D,4)*DagenVervallen*pxFact.SALDO/36500) . Set Intrest=Intrest+$S("W;F"[pxFact.FACTUURTYPE:$P(HerKost,D,5),1:0)+($P(HerKost,D,6)*pxFact.SALDO/100)+($P(HerKost,D,7)*DagenVervallen*pxFact.SALDO/36500) . ;Do WL^vhDBG(pxFact.SALDO_" "_DagenVervallen_" "_($P(HerKost,D,7)*DagenVervallen*pxFact.SALDO/36500)) Set ..KOSTEN=+$J(Kost,0,2) Set ..INTRESTEN=+$J(Intrest,0,2) Quit frAlgemeen(KLNr,KLID,Taal) Set ..KLANTNR=KLNr Set ..KLANTNAAM=$P(^KKL(KLID,0),"\",2) Set ..TELNR=$P(^KKL(KLID,0),"\",13) Set ..REGIO=$P(^KKL(KLID,0),"\",20) Set ..TAAL=Taal Set ..DOCDATUM=$$EXTDATE^vhLib.DataTypes($H) Set ..RAPPELDATUM=$$EXTDATE^vhLib.DataTypes(RappelDatum,"DKP") ; FAKTADRES Set pxAdr=##class(BL.FOP.Derde.pxKlantAdres).%New() Do pxAdr.FillViaKLNr(KLNr) Set pxAdr.TAV=..GetBKHVerantw(KLNr) Set ..ADRES=pxAdr Quit frEnd(KLNr,Taal,TotaalVervallen, TotaalNietVervallen,MaxRappel) Set ..TOTAALVERVALLEN=TotaalVervallen+..KOSTEN+..INTRESTEN Set ..TOTAALNIETVERVALLEN=TotaalNietVervallen Set ..TOTAALOPENSTAAND=TotaalVervallen+TotaalNietVervallen+..KOSTEN+..INTRESTEN Set ..RAPPELNR=MaxRappel Set:(Exemplaar="I")||($L(RappelType)) ..KOPIE="Intern"_$S($L(RappelType):" - "_RappelType,1:"") Do ..BuildTeksten(KLNr,Taal,MaxRappel) Quit frPPODfields(KLNr,Regio,Adres,Exemplaar,SpecialPrintGroep) Quit:($G(lbPPODKeywords)=$LB()) Set Regio=##class(BL.Flow.Rappel.Doc).PPODRegioConvert(Regio,Exemplaar,.SpecialPrintGroep) Set Ref=KLNr Set DocSort=KLNr Set Piece=0 If $L(SpecialPrintGroep) Do . Set Piece=$P($P(($$$rapTransform),SpecialPrintGroep_";",2),"\",1) . Set Piece=$S(Piece="":"99",1:Piece) Set EnvelopKey=$S(Regio[$$$ppodrIntern:$E(Piece+100,2,3)_^KK1(KLNr),1:$G(Adres)_";"_KLNr) Set pxPPOD=##class(BL.Flow.Proxy.pxPPODfields).Create($$$ppodtRappel,Regio,Taal,KLNr,Ref," ",$G(Bijlage," "),DocSort,EnvelopKey,) Do:($LL($G(lbPPODKeywords))) pxPPOD.FillFromLB(lbPPODKeywords) Set ..PPODFIELDS=pxPPOD Quit ]]> KLNr:%Integer 0 %String Rappels Voorwaarden KLNr:%String,Taal:%String,MaxRappel strip For End=19:-1:11 Quit:$L($G(^KKH(MaxRappel,Taal,End))) ; trailing blank lines -> strip Set AddSpace=0 For I=Start:1:End Set R=$G(^KKH(MaxRappel,Taal,I)) Do . If $L(R) Do . . Do oTxt.Append($S(AddSpace:" ",1:"")_R) . . Set AddSpace=1 . Else Do . . Do oTxt.AppendEmptyTag("BR") ; elke blanko lijn geeft een nieuwe paragraaf . . Set AddSpace=0 Set:$L(oTxt.Tekst) ..SLOTTEKST=oTxt Quit ]]>