KREDVERZ ;Kredietverzekering Atradius;KKBG1; [ 12/11/2003 11:48 AM ] ; Jaarlijkse lijst voor de boekhouding Quit ; bevat twee delen : ; 1 : MAXOPEN : Maximaal openstaande bedrag ; 2 : OMZET : van een jaar per land van niet particulieren, overheidsinstellingen, voorafbetaalde verkopen en debiteuren met NULLIMIET ; ALL Set BeginDat=$$CALCDATE^vhLib.DataTypes(,"M",-13,"FD") Set EindDat=$$CALCDATE^vhLib.DataTypes(BeginDat,"M","+11","LD") Do MAXOPEN(,BeginDat,EindDat) Quit ; MENU New %SC,KLNr,VanMaand,TotMaand Set KLNr="",TotMaand=+$H,VanMaand=$$CALCDATE^vhLib.DataTypes(TotMaand,"M","-12","FD") Do NIEUW^vhScherm("KREDVERZ") If %SC,KLNr Do ONE(KLNr,VanMaand,TotMaand) Quit ; ONE(KLNr,BeginDat,EindDat) Set:'$D(EindDat) EindDat=+$H Set:'$D(BeginDat) BeginDat=$$CALCDATE^vhLib.DataTypes(EindDat,"M","-12","FD") Do MAXOPEN(KLNr,BeginDat,EindDat) Quit ; MAXOPEN(KLNr,BeginDat,EindDat) New OneCust Kill ^HULP($J) Set Limiet=12395 ;500000 BEF Set Limiet=-12395 ;-500000 BEF om alle klanten te hebben ; Set OneCust=''$G(KLNr) If $G(KLNr) Set KlantId=^KK1(KLNr) Else Set KlantId=0 For Set:'OneCust KlantId=$O(^KKL(KlantId)) Quit:KlantId="" Do Quit:OneCust .Quit:$P(^KKL(KlantId,0),D,30)=2 .Quit:$P(^KKL(KlantId,2),D,10) .Set R=^KKL(KlantId,0),KLNr=$P(R,D),KLNaam=$P(R,D,2),FP=2003 .Write @F,@F1,!,KLNr,?10,KLNaam .Do KLANT(KLNr,BeginDat,EindDat,Limiet) Do CALCMAX,OUTPUT Kill ^HULP($J) Quit ; KLANT(KLNr,BeginDat,EindDat,Limiet) New KI1,KI2,OmzetBj,OBjMin1,OBjMin2 If '$$SkipCust(KLNr) Do .Set OmzetBj=$$KLANT^STAT(KLNr,,$$EXTDATE^vhLib.DataTypes(BeginDat,"DM4")_" ",$$EXTDATE^vhLib.DataTypes(EindDat,"DM4")_" ",3) .Set OBjMin1=$$KLANT^STAT(KLNr,,$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(BeginDat,"J",-1),"DM4")_" ",$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(EindDat,"J",-1),"DM4")_" ",3) .Set OBjMin2=$$KLANT^STAT(KLNr,,$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(BeginDat,"J",-2),"DM4")_" ",$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(EindDat,"J",-2),"DM4")_" ",3) .Do:OmzetBj'999999) Do OPENST(KI1,KI2,BeginDat,EindDat) ..Set R=$G(^HULP($J,KI1))_D_OmzetBj_D_OBjMin1_D_OBjMin2,^HULP($J,KI1)=R Quit ; SkipCust(KLNr) New R,SkipCust,KlantId Set KlantId=^KK1(KLNr) Set R=^KKL(KlantId,3),SkipCust=$P(R,D) ; Rembours Set:'SkipCust SkipCust=$P(R,D,2) ; Vooruitbetaling Set:'SkipCust R=^KKL(KlantId,2),SkipCust=$P(R,D,7)=.001 ; Nul limiet Set:'SkipCust R=^KKL(KlantId,0),SkipCust="\\G\GEEN\Geen\geen\"[(D_$P(R,D,16)_D) ; Geen BTW-nummer Set:'SkipCust SkipCust=##class(CHUI.Klant.Algemeen).GeefBusinessType(KLNr)="B2C" ; Geen cosumenten Quit SkipCust ; FAKTUUR(FaktNr,BeginDat,EindDat) New R If FaktNr="" Quit "" Set R=$G(^KFA("F",FaktNr,0,0)) If $P(R,D,2)'="F" Quit "" If $$DIFFDATE^vhLib.DataTypes($$EXTDATE^vhLib.DataTypes(BeginDat),$P(R,D,6))<0 Quit "" If $$DIFFDATE^vhLib.DataTypes($$EXTDATE^vhLib.DataTypes(EindDat),$P(R,D,6))>0 Quit "" Quit R ; FINANC(KI1,Periode,Refer) New FaktNr,JournNr,VolgNr,BetDat,FaktDat,VervDat,R,X,BedrBEF,MaxDays Set Periode=$E(Periode,1,4)_"."_$E(Periode,5,6) Set JournNr=$P(Refer,"#",1),VolgNr=$P(Refer,"#",2) Set X=^KFI(Periode,JournNr,VolgNr),FaktNr=$P(X,D,13),R=$P(X,D,2),BetDat=$$INTDATE^vhLib.DataTypes(R) Set R=$G(^KFA("F",FaktNr,0,0)),FaktDat=$$INTDATE^vhLib.DataTypes($P(R,D,6)) Set VervDat=$$INTDATE^vhLib.DataTypes($P(R,D,3)) Set BedrBEF=$P(R,D,14),MaxDays=BetDat-VervDat Set:FaktDat="" FaktDat=BetDat Set R=$$FAKTUUR(FaktNr,BeginDat,EindDat) Do:$L(R) .Do CUMUL(KI1,BedrBEF,BeginDat,EindDat,FaktDat,BetDat) .Do CUMUL(0,BedrBEF,BeginDat,EindDat,FaktDat,BetDat) .Set:MaxDays>$G(^HULP($J,KI1)) ^HULP($J,KI1)=MaxDays Quit ; OPENST(KI1,KI2,BeginDat,EindDat) New FaktDat,VervDat,R,X,BedrBEF,MaxDays Set X=^KKL(KI1,KI2) Set R=$G(^KFA("F",KI2,0,0)),FaktDat=$$INTDATE^vhLib.DataTypes($P(R,D,6)) Set VervDat=$$INTDATE^vhLib.DataTypes($P(R,D,3)) Set BedrBEF=$P(R,D,14),MaxDays=$H-VervDat Set R=$$FAKTUUR(KI2,BeginDat,EindDat) Do:$L(R) .Do CUMUL(KI1,BedrBEF,BeginDat,EindDat,FaktDat,+$H) .Do CUMUL(0,BedrBEF,BeginDat,EindDat,FaktDat,+$H) .Set:MaxDays>$G(^HULP($J,KI1)) ^HULP($J,KI1)=MaxDays Quit ; CUMUL(KI1,BedrBEF,BeginDat,EindDat,FaktDat,BetDat) New I,R,Index For I=FaktDat:1:BetDat Do .Set Index=FaktDat-BeginDat+(BetDat-I)+1 .Set R=$G(^HULP($J,KI1,Index)),R=R+BedrBEF,^HULP($J,KI1,Index)=R Quit ; CALCMAX New R,KLNr,KLNaam,KLAdres,KLPostK,KLWoonpl,KLLand,KlantId,BtwNr,Max,Next,DayNr,Count,Omzet,KridLim Set KlantId=0,Count=0 For Set KlantId=$O(^HULP($J,KlantId)) Quit:KlantId="" Do .If KlantId="~" Set KLNr="",KLNaam="Totaal" .Else Quit:$O(^HULP($J,KlantId,""))="" Set R=^KKL(KlantId,0),KLNr=$P(R,D),KLNaam=$P(R,D,2) .Set KLAdres=$P(R,D,5),KLPostK=$P(R,D,6),KLWoonpl=$P(R,D,7),BtwNr=$P(R,D,16) .Set KLLand=$P(R,D,8),KLLand=$$LAND^vhRtn1(KLLand),KridLim=$P(^KKL(KlantId,2),D,7) .Set Omzet=$G(^HULP($J,KlantId)),Max=0,Next="" .For Set Next=$O(^HULP($J,KlantId,Next)) Quit:Next="" Do ..Set R=^HULP($J,KlantId,Next) ..Set:R>Max Max=R,DayNr=Next .Set R=KLNr_D_KLNaam_D_KLAdres_D_KLPostK_D_KLWoonpl_D_KLLand_D_BtwNr_D_Max_D_$$EXTDATE^vhLib.DataTypes(BeginDat+$G(DayNr))_D_Omzet .Set $P(R,D,14)=KridLim*1000 .Set Count=Count+1,^HULP($J,KlantId)=R,^HULP($J,0,Count)=R For Set Count=$O(^HULP($J,0,Count)) Quit:Count="" Kill ^HULP($J,0,Count) Quit ; OUTPUT New DL,LD ;Do INIT^PROC("MAXOPEN","LD") Do INIT^PROC("MAXOPENS","LD") Do ^OUTPUT("SPT") Quit ; OMZET ; Set Dev=0 Set Dev=$$OPEN^vhDEV(,"KredVerz Omzet.txt","W") Use Dev Write $TR("KLNr,KLNm,Land,KridLim,Rembours,FaktClaus,CommNonAkt,Omzet",",",$C(9)),! Set KLId=0 For Set KLId=$O(^KKL(KLId)) Quit:KLId="" Do .Set KLNm=$P(^KKL(KLId,0),D,2) .Set KLNr=$P(^KKL(KLId,0),D,1) .Set Land=$P(^KKL(KLId,0),D,8) .Set KridLim=$P(^KKL(KLId,2),D,7) .Set Rembours=$P(^KKL(KLId,3),D,1) .Set FaktClaus=$P(^KKL(KLId,0),D,12) .Set CommNAkt=$P(^KKL(KLId,2),D,10) .Set Omzet=+$J($$KLANT^STAT(KLNr,0,"2000.03 ","2001.02 ",3),0,2) .Quit:'Omzet .Write KLNr,$C(9),KLNm,$C(9),Land,$C(9),KridLim,$C(9),Rembours,$C(9),FaktClaus,$C(9),CommNAkt,$C(9),$TR(Omzet,".",","),! Close:0'[Dev Dev Quit