program "FINANCIEEL" dcl blz%,swit#,retkode#,teldb#,gedrukt#,startnam%,selma% dcl beptel%(30),afdruk=6(10),optel=6(10) dcl cendebet=6(100),cencredit=6(100),cenbed=6(100) dcl credit=6,debet=6,som=6 dcl cenrek$=6(100),bepfin$=6(30) dcl bezig$=6,rek$=6,opmer$=15,oprek$=6,drukdat$=8,verwerk$=1 dcl startfin$=8 field=m,startfin dcl startnum$=6,starttel% field=m dcl eindefin$=8 field=m,eindefin dcl eindenum$=6,eindetel% field=m #INCLUDE "CRINCLU" #INCLUDE "CRINCLU2" assign=45,"IM0",wr,ex,im assign=02,bestand(04),si ;klantenbestand assign=04,bestand(09),wr,si ;financieel bestand assign=08,bestand(01),si ;rekeningenbestand assign=10,bestand(03),si ;leveranciersbestand assign=11,bestand(02),wr,si ;historiek drukdat=ndat &10 print=1:clear,paint(kh,ka),naam,paint(kt,0)," AFDRUKKEN FINANCIEEL DAGBOEK ",tab(70),ndat print=1:paint(kl,0),tab(01,02),gener(79,hto) print=1:tab(01,13),gener(79,hto),paint(kt,0) print=1:tab(01,05),paint(kh,ka),"1 --> Bepalen aanwezige dagboeken.",paint(kt,0) print=1:tab(01,07),paint(kh,ka2),"2 --> Uitdrukken van 1 of meerdere dagboeken.",paint(kt,0) print=1:tab(01,09),paint(kh,ka3),"3 --> Centralisatie van 1 of meerdere dagboeken.",paint(kt,0) print=1:tab(01,11),paint(kh,ka4),"4 --> Instellen afdrukdatum : ",paint(kt,0),drukdat &12 ask=1,i=&1,u=&1:tab(01,15),"Maak uw keuze 1--4",esc=j if j="1" : goto &100 if j="2" : goto &200 if j="3" : goto &600 if j="4" : goto &50 goto &12 &50 ask=1,i=&12,u=&12:tab(31,11)=drukdat if len$(drukdat)=6 : goto &60 if len$(drukdat)<>8 : goto &50 goto &70 &60 drukdat=left(drukdat,2)+"."+substr(drukdat,3,2)+"."+substr(drukdat,5,2) print=1:tab(30,11),drukdat &70 print=1:tab(01,24),atb(21) goto &10 &100 for i=1 to 15 beptel(i)=0 bepfin(i)=" " next i open=4:&1,e &105 down=4:&110,e,findown &110 bepfin(1)=finrek beptel(1)=1 i1=1 &115 down=4:&130,e,findown if bepfin(i1)<>finrek : goto &120 beptel(i1)=beptel(i1)+1 goto &115 &120 i1=i1+1 beptel(i1)=1 bepfin(i1)=finrek goto &115 &130 print=1:clear,paint(kh,ka),naam,paint(kt,0)," OVERZICHT AANWEZIGE DAGBOEKEN EN AANTALLEN ",tab(70),ndat print=1:paint(kl,0),tab(01,02),gener(79,hto),paint(kt,0) print=1:tab(01,04),paint(kh,ka),"Rekening : Aantal inschrijvingen",paint(kt,0) print=1:tab(01,05),gener(36,hto) for i=1 to 15 if beptel(i)=0 : goto &140 print=1:tabv(01),bepfin(i),tab(15),(-4),beptel(i) search=8,bepfin(i):&132,e,rekrec goto &134 &132 rekoms="Rekening niet gevonden" &134 print=1:tab(30),paint(kh,ka),rekoms,paint(kt,0) next i &140 j=" " ask=1,u=&10,i=&10:tab(01,24),paint(kh,ka),"Deze zijn de aanwezige dagboeken - druk spatiebalk voor vervolg : ",paint(kt,0)=j if j<>" " : goto &140 goto &10 &150 startnum=" " starttel=0 eindenum="999999" eindetel=32000 &155 print=1:tab(01,05),atb(22) ask=1,i=&10,u=&10:tab(01,05), "Geef begin dagboek : ",startnum,tab(22)=startnum &160 print=1:tab(01,07),atb(21) ask=1,i=&10,u=&155:tab(01,07),"Geef einde dagboek : ",eindenum,tab(22)=eindenum if startnum>eindenum : goto &160 if retkode=4 : goto &180 return &170 j=" " ask=1,i=&10,u=&10:tab(01,24),"O.K. om af te drukken Y-N : "=j j=large(j) if j="N" : goto &10 if j="Y" : goto &180 goto &170 &180 print=45:atb(70) print=45:atb(6) &190 for i=1 to 100 cenrek(i)=" " cenbed(i)=0 cendebet(i)=0 cencredit(i)=0 next i return &195 for i=1 to 10 afdruk(i)=0 next i return &196 for i=1 to 10 optel(i)=0 next i return &200 retkode=4 print=1:clear,paint(kh,ka),naam,paint(kt,0)," UITDRUKKEN EEN OF MEERDERE DAGBOEKEN ",tab(70),ndat print=1:paint(kl,0),tab(01,02),gener(79,hto),paint(kt,0) &201 gosub &150 &202 selma=0 print=1:tab(01,09),atb(22) ask=1,i=&10,u=&201:tab(01,09),"Geef maandkeuze 1--12 : "=selma if selma=0 : goto &203 if selma<1 : goto &202 if selma>12 : goto &202 &203 if selma=0 print=1:tab(01,09),paint(kh,ka),"Afdruk volledig dagboek",paint(kt,0) endif &204 gosub &170 &205 gosub &195 ;init lijn afdruk gosub &196 ;init eindelijn afdruk gedrukt= 0 ;test voor einde druk teldb=0 ;teller aantal dagboeken blz=0 lijntel=0 bezig=" " gosub &190 ;init centralisatie search=4,startfin:&210,e,finrec goto &210 &210 down=4:&385,e,findown ;einde dagboeken test central moet gedrukt if teldb<>0 : goto &220 if finrek>eindenum : goto &10 if selma=0 : goto &211 if selma<>conv(substr(findat,4,2)) : goto &210 &211 bezig=finrek ;werkrekening ingevuld voor afdruk titel lijntel=0 ;papier klaar gezet afdruk titel eerste dagboek gosub &550 ;hoofd dagboek titel eerste dagboek gosub &560 ;sub dagboek titel eerste dagboek teldb=1 ;er zijn dagboeken aanwezig gedrukt=1 goto &250 ;afdruk eerste aanwezige gegevens &220 ;reeds tweede lijn of volgend dagboek if selma=0 : goto &221 if selma<>conv(substr(findat,4,2)) : goto &210 &221 if finrek<=eindenum : goto &230 ;einde bereikt ? gosub &400 ;einde bereikt afdruk eindtotaal lijn gosub &500 ;afdrukken centralisatie laatste dagboek for e=1 to 100 cendebet(e)=0 cencredit(e)=0 cenbed(e)=0 next e som=0 debet=0 credit=0 goto &10 &230 ;einde nog niet bereikt of overschreden if finrek<>bezig : goto &380 ;zelfde dagboek nog ? &250 ;zelfde dagboek finfaknr=shl(finfaknr) opmer=" " oprek=" " gosub &195 ;init afdruk lijn if finklva<>"K" : goto &260 ;test klant of lev of ar search=2,finkllv:&251,e,klrec &251 opmer=klnaam if finbank>=0 : goto &252 afdruk(2)=abs(finbank) ;betaling creditnota afdruk(3)=abs(finkla) ;betaling creditnota som=-afdruk(2) ;crediteren bank credit=abs(som) rek=finrek gosub &900 som=afdruk(3) ;debiteren klanten rek=vastrek(01) debet=abs(som) gosub &900 goto &253 ;controle algemene rekening &252 afdruk(1)=abs(finbank) ;betaling normaal afdruk(4)=abs(finkla) ;betaling normaal dus crediteren klanten som=afdruk(1) ;debiteren bank debet=abs(som) rek=finrek gosub &900 som=-afdruk(4) ;crediteren klanten credit=abs(som) rek=vastrek(01) gosub &900 &253 if fintbed(1)=0 : goto &320 ;afdrukken gegevens oprek=fintrek(1) if fintbed(1)<0 : goto &254 afdruk(7)=abs(fintbed(1)) som=afdruk(7) ;debiteren ar debet=abs(som) rek=fintrek(1) gosub &900 goto &255 &254 afdruk(8)=abs(fintbed(1)) som=-afdruk(8) ;crediteren ar credit=abs(som) rek=fintrek(1) gosub &900 &255 goto &320 ;afdruk gegevens &260 gosub &195 ;init afdruk lijn if finklva<>"L" : goto &270 ;test klant of lev of ar search=10,finkllv:&261,e,levrec &261 opmer=levnaam if finbank<0 : goto &262 afdruk(2)=abs(finbank) ;betaling creditnota afdruk(5)=abs(finkla) ;betaling creditnota som=-afdruk(2) credit=abs(som) rek=finrek gosub &900 som=afdruk(5) rek=vastrek(02) debet=abs(som) gosub &900 goto &263 ;kontrole algemene rekening &262 afdruk(1)=abs(finbank) ;betaling normaal afdruk(6)=abs(finkla) ;betaling debet nota som=afdruk(1) debet=abs(som) rek=finrek gosub &900 som=-afdruk(06) credit=abs(som) rek=vastrek(02) gosub &900 &263 if fintbed(1)=0 : goto &320 ;afdrukken gegevens oprek=fintrek(1) if fintbed(1)<0 : goto &264 afdruk(8)=abs(fintbed(1)) som=-afdruk(8) credit=abs(som) rek=fintrek(1) gosub &900 goto &265 &264 afdruk(7)=abs(fintbed(1)) som=+afdruk(7) debet=abs(som) rek=fintrek(1) gosub &900 &265 for i=2 to 10 fintbed(i)=-fintbed(i) next i goto &320 ;afdruk gegevens &270 startnam=1 &275 for i4=startnam to 10 if fintrek(i4)=" " : goto &210 if fintbed(i4)<0 : goto &280 if startnam=2 : goto &276 afdruk(2)=abs(fintbed(i4)) &276 afdruk(7)=abs(fintbed(i4)) som=-afdruk(2) credit=abs(som) rek=bezig gosub &900 som=afdruk(7) debet=abs(som) rek=fintrek(i4) gosub &900 goto &290 &280 if startnam=2 : goto &281 afdruk(1)=abs(fintbed(i4)) &281 afdruk(8)=abs(fintbed(i4)) som=afdruk(1) debet=abs(som) rek=bezig gosub &900 som=-afdruk(8) credit=abs(som) rek=fintrek(i4) gosub &900 &290 opmer=finoms oprek=fintrek(i4) if lijntel1 : goto &297 finfaknr=" " opmer=" " finsaldo=0 findat=" " finuitr=" " &297 gosub &195 next i4 goto &210 &320 ;afdruk kl lv gegevens if retkode=3 : goto &333 if lijntel0 : goto &513 afdruk(2)=abs(cenbed(i)) afdruk(3)=afdruk(3)+cenbed(i) goto &515 &513 cenbed(i)=abs(cenbed(i)) &514 afdruk(1)=cenbed(i) afdruk(4)=afdruk(4)+cenbed(i) &515 print=45:tabv(01),reknum," ",rekoms, (-8.n2),afdruk(1),afdruk(2),tab(80),(-7.n2),cendebet(i),cencredit(i) lijntel=lijntel+1 next i &520 ;einde afdruk centralisatie print=45:tabv(01),tab(34),gener(20,hto) afdruk(3)=abs(afdruk(3)) afdruk(4)=abs(afdruk(4)) print=45:tabv(01),tab(32),(-8.n2),afdruk(4),afdruk(3) lijntel=lijntel+2 print=45:page lijntel=0 par(3)=param3 return &550 ;afdruk hoofdtitel if retkode=3 : goto &555 print=45:tabv(01),naam," Financieel of diversen dagboek ",tab(123),drukdat print=45:tabv(01),gener(132,hto) lijntel=lijntel+2 search=8,bezig:&552,e,rekrec goto &553 &552 print=45:tabv(01),"Rekening niet gevonden : ",e," ",bezig lijntel=lijntel+1 return &553 print=45:tabv(01),"Rekening : ",reknum," ",rekoms print=45:tabv(01) lijntel=lijntel+2 &555 return &560 if retkode=3 : goto &555 print=45:tabv(01),tab(50),"FIN REK",tab(68),"KLANTEN",tab(86),"LEVERANCIERS",tab(111),"ALG. REKENINGEN" print=45:tabv(01),"Datum",tab(10),"Uitr. Saldo",tab(26),"Fakn",tab(31),"TP Oms-naam-kode",tab(50),"Debet Kredit",tab(68),"Debet Kredit",tab(86),"Debet Kredit",tab(104),"Reknr",tab(111),"Debet Kredit" print=45:tabv(01),gener(132,hto) lijntel=lijntel+3 return &600 print=1:clear,paint(kh,ka),naam,paint(kt,0)," CENTRALISATIE AFDRUK FINANCIELE DAGBOEKEN ",tab(70),drukdat print=1:paint(kl,0),tab(01,02),gener(79,hto),paint(kt,0) verwerk="N" retkode=3 goto &201 &900 for i2=1 to 99 if cenrek(i2)=" " : goto &903 if cenrek(i2)<>rek : goto &904 cenbed(i2)=cenbed(i2)+som cencredit(i2)=cencredit(i2)+credit cendebet(i2)=cendebet(i2)+debet goto &905 &903 cenrek(i2)=rek cenbed(i2)=som cencredit(i2)=credit cendebet(i2)=debet goto &905 &904 next i2 &905 credit=0 debet=0 return eseg 0 end ))d ) end ) ) ) ) ) &905 credit=0 d:=0 d: cre