Listing of file='INCREP.BAS;01' on disk='vmedia/home_budget_3-sector.ccvf'
0 REM ****************** INCOME REPORTS ******************* 1 REM 20 CLEAR 2000 25 DD= PEEK (65535):DSK$= MID$ (STR$ (DD- 1),2)+ ":" 27 IF DD= 1THEN PLOT 12,14,3,10,15:INPUT "LOAD DATA DISK & HIT <RET>: ";A 30 DIM INC(7,2),EX(15,2),BANK(5,2),INC$(7),EX$(15),BANK$(5),BPNTR$(5) 35 UL$= "---------------------------------------------------------------" 37 U1$= "===============================================================" 38 STRMTH$= " JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" 40 GOTO 420 70 REM 72 REM ************** INKEY (SINGLE KEY INPUT) ************* 74 POKE 33278,0 76 Y= PEEK (33278) 78 IF Y= 0GOTO 76 80 Y$= CHR$ (Y):RETURN 82 REM 110 REM **********.** FORMAT MONEY ************************** 112 REM MO ->->-> MO$ 114 RH$= STR$ ((1000* (MO* SGN (MO)- INT (MO* SGN (MO)))+ 1005)/ 10) 116 IF VAL (RH$)> = 200THEN MO= (MO* SGN (MO)+ 1)* SGN (MO) 118 LH$= STR$ (INT (MO* SGN (MO))* SGN (MO)):IF VAL (LH$)= 0AND SGN (MO)= - 1THEN LH$= "-0" 120 LH$= "$"+ LH$ 122 IF LEN (LH$)> = 7THEN 126 124 LH$= " "+ LH$:GOTO 122 126 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$:RETURN 128 REM 130 REM ************* FORMAT PERCENT ************************ 132 REM MO ->->-> MO$ 134 RH$= STR$ ((1000* (MO* SGN (MO)- INT (MO* SGN (MO)))+ 1005)/ 10) 136 IF VAL (RH$)> = 200THEN MO= (MO* SGN (MO)+ 1)* SGN (MO) 138 LH$= STR$ (INT (MO* SGN (MO))* SGN (MO)):IF VAL (LH$)= 0AND SGN (MO)= - 1THEN LH$= "-0" 142 IF LEN (LH$)> = 3THEN 146 144 LH$= " "+ LH$:GOTO 142 146 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$+ "%":RETURN 148 REM 390 REM 400 REM ************* MAIN PROGRAM ************************* 410 REM 420 PLOT 12,14,3,28,1:PRINT "INCOME REPORTS":PLOT 15 430 PLOT 3,3,5:PRINT "OPTIONS ARE:" 440 PLOT 3,13,7:PRINT "1. LIST A PAY" 450 PLOT 3,13,9:PRINT "2. LIST ALL PAYS" 460 PLOT 3,13,11:PRINT "3. LIST A SUNDRY INCOME" 470 PLOT 3,13,13:PRINT "4. LIST ALL INCOMES" 475 PLOT 3,13,15:PRINT "5. LIST TAXABLE INCOMES" 477 PLOT 3,13,17:PRINT "6. END" 480 PLOT 3,5,22:PRINT "PLEASE MAKE A SELECTION....";:GOSUB 74:ANS= VAL (Y$):PRINT 490 IF NOT (ANS> = 1AND ANS< = 6)THEN PLOT 7:GOTO 420 500 ON ANSGOSUB 1000,2000,3000,4000,5000,6000 510 GOTO 420 970 REM 980 REM **************** LIST A PAY ************************* 990 REM 1000 FILE "R",1,DSK$+ "PAYS",1 1010 FILE "R",2,DSK$+ "PAYTIT",1 1020 FILE "R",4,DSK$+ "EXPTIT",1 1030 FILE "R",5,DSK$+ "BNKTIT",1 1040 GET 1,1;NPAY,NINC,NEX,NBANK 1050 PLOT 12,3,5,1:PRINT "THESE ARE THE PAYDAYS ON FILE: " 1060 FOR REC= 2TO NPAY- 1:GET 1,REC,5;PDAY$[9]:IF REC< = 16THEN PLOT 3,1,REC+ 1:GOTO 1100 1070 IF REC< = 31THEN PLOT 3,15,REC- 14:GOTO 1100 1080 IF REC< = 46THEN PLOT 3,30,REC- 29:GOTO 1100 1090 PLOT 3,45,REC- 44 1100 PRINT PDAY$:NEXT REC 1110 PLOT 3,0,31,11,3,0,31:INPUT "ENTER PAYDAY REQUIRED (D.M.YY): ";TD$:GOSUB 21045:SDATE$= TD$:FOR REC= 2TO NPAY- 1:GET 1,REC,5;PDAY$[9] 1120 IF PDAY$= SDATE$THEN G1REC= REC:GOTO 1140 1130 NEXT REC:PLOT 7:GOTO 1050 1140 GOSUB 9000:GET 1,G1REC;PVA,LDATE$[9] 1150 FOR I= 1TO 7 1160 GET 1,G1REC,I* 4+ 10;INC(I,2):INC(I,1)= I:NEXT I 1170 FOR I= 1TO 15 1180 GET 1,G1REC,I* 4+ 38;EX(I,2):EX(I,1)= I:NEXT I 1190 FOR I= 1TO 5 1200 GET 1,G1REC,I* 6+ 96;BPNTR$(I)[2],BANK(I,2):BANK(I,1)= I:NEXT I 1210 FOR I= 1TO 7 1220 GET 2,I+ 1;INC$(I)[12]:NEXT I 1230 FOR I= 1TO 15 1240 GET 4,I+ 1;EX$(I)[12]:NEXT I 1250 FOR I= 1TO 5 1260 GET 5,VAL (BPNTR$(I))+ 1;BANK$(I)[12]:NEXT I 1270 GOSUB 1500:REM DISPLAY THE LOT 1280 GOSUB 9500 1290 FILE "C",1,2,4,5:PLOT 3,27,2:INPUT "HIT <RETURN> TO CONTINUE";A:RETURN 1490 REM 1492 REM ********************* PRINT PAY ********************* 1494 REM 1500 PRINT PR$;PL$;SP$;SH$;EM$;TAB( 5+ TB)YE$;"PAY NUMBER: ";RH$;SI$;CYAN$;PVA;RI$;SH$;TAB( 45+ TB)YE$;"DATE: ";RH$;SI$;CY$;LD$;RI$:IF PF= 1THEN PRINT 1510 PRINT SPACE$;TAB( 16+ TB)YELLOW$;" INCOME EXPEND ALLOTS BALANCE";GREEN$:IF PFLIG= 1THEN PRINT 1520 ISUM= 0:ESUM= 0:ASUM= 0:PBAL= 0 1530 FOR I= 1TO 7:IF LEFT$ (INC$(I),5)= "SPARE"THEN 1570 1535 ISUM= ISUM+ INC(I,2):PBAL= PBAL+ INC(I,2) 1540 PRINT SPACE$;CYAN$;INC(I,1);TAB( 4+ TB)INC$(I);BLUE$;:MO= INC(I,2):GOSUB 114:PRINT TAB( 16+ TB)MO$; 1550 MO= PBAL:GOSUB 114:PRINT WHITE$;TAB( 53+ TB)MO$ 1560 NEXT I 1570 FOR I= 1TO 15:IF LEFT$ (EX$(I),5)= "SPARE"THEN 1610 1575 ESUM= ESUM+ EX(I,2):PBAL= PBAL- EX(I,2) 1580 PRINT SPACE$;WHITE$;EX(I,1);TAB( 4+ TB)EX$(I);RED$;:MO= EX(I,2):GOSUB 114:PRINT TAB( 27+ TB)MO$; 1590 MO= PBAL:GOSUB 114:PRINT WHITE$;TAB( 53+ TB)MO$ 1600 NEXT I 1610 FOR I= 1TO 5:IF LEFT$ (BANK$(I),5)= "SPARE"THEN 1645 1615 ASUM= ASUM+ BANK(I,2):PBAL= PBAL- BANK(I,2) 1620 PRINT SPACE$;YELLOW$;BANK(I,1);TAB( 4+ TB)BANK$(I);:MO= BANK(I,2):GOSUB 114:PRINT MAGENTA$;TAB( 38+ TB)MO$; 1630 MO= PBAL:GOSUB 114:PRINT WHITE$;TAB( 53+ TB)MO$ 1640 NEXT I 1645 PRINT SPACE$;GREEN$;TAB( 16+ TB)"========== ========== ========== ==========" 1650 PRINT SPACE$;GREEN$;" TOTAL";:MO= ISUM:GOSUB 114:PRINT CYAN$;TAB( 16+ TB)MO$;:MO= ESUM:GOSUB 114:PRINT RED$;TAB( 27+ TB)MO$; 1660 MO= ASUM:GOSUB 114:PRINT MAGENTA$;TAB( 38+ TB)MO$;:MO= ISUM- ESUM- ASUM:GOSUB 114:PRINT WHITE$;TAB( 53+ TB)MO$ 1670 PRINT SPACE$;GREEN$;TAB( 16+ TB)"========== ========== ========== ==========" 1680 RETURN 1970 REM 1980 REM **************** LIST ALL PAYS ********************** 1990 REM 2000 FILE "R",1,DSK$+ "PAYS",1 2040 GET 1,1;NPAY:TINC= 0:TEX= 0 2110 PLOT 12,3,10,12:INPUT "ENTER START DATE (D.M.YY) OR <RET>: ";TD$:IF TD$= ""THEN SJUL= 0:D1$= "YEAR START":GOTO 2116 2114 GOSUB 21045:D7$= TD$:D1$= " "+ D7$:GOSUB 19000:SJUL= D7 2116 PLOT 3,10,14:INPUT "ENTER END DATE (D.M.YY) OR <RET>: ";TD$:IF TD$= ""THEN EJUL= 999999:D2$= " YEAR END":GOTO 2140 2118 GOSUB 21045:D7$= TD$:D2$= D7$:GOSUB 19000:EJUL= D7 2140 GOSUB 9000:PRINT PRNTER$;PL$;SH$;GR$;EM$ 2141 PRINT SPACE$;TAB( 12+ TB)"PAY SUMMARY FROM ";D1$;" TO ";D2$;RH$:PRINT TAB( 12+ TB)"=--=--=--=--=--=--=--=--=--=--=--=--=--=":PRINT 2142 PRINT SPACE$;MAGENTA$;UL$ 2143 PRINT SPACE$;WHITE$;" NUMBER DATE PAY DEDUCTIONS PERCENT BALANCE":PRINT SPACE$;MAGENTA$;UL$:PRINT 2145 FOR REC= 2TO NPAY- 1:GET 1,REC;PVA,LDATE$[9]:D7$= LDATE$:GOSUB 19000:IF D7< SJULOR D7> EJULTHEN 2275 2150 ISUM= 0:ESUM= 0:FOR I= 1TO 7 2160 GET 1,REC,I* 4+ 10;INC:ISUM= ISUM+ INC:NEXT I:TINC= TINC+ ISUM 2170 FOR I= 1TO 15 2180 GET 1,REC,I* 4+ 38;EX:ESUM= ESUM+ EX:NEXT I:TEX= TEX+ ESUM 2270 PCENT= ESUM/ ISUM* 100:GOSUB 2500:REM DISPLAY THE LOT 2275 NEXT REC:PRINT :PRINT SP$;MAGENTA$;UL$:PRINT SP$;YELLOW$;"TOTALS";:MO= TINC:GOSUB 114:PRINT TAB( 21+ TB)MO$;:MO= TEX:GOSUB 114:PRINT TAB( 33+ TB)MO$; 2276 MO= TEX/ TINC* 100:GOSUB 134:PRINT TAB( 45+ TB)MO$; 2277 MO= TINC- TEX:GOSUB 114:PRINT TAB( 53+ TB)MO$:PRINT SPACE$;MAGENTA$;U1$:PRINT :PRINT 2280 FILE "C",1:GOSUB 9500 2290 PRINT :INPUT "HIT <RETURN> TO CONTINUE";A:RETURN 2470 REM 2480 REM **************** PRINT OUTPUT *********************** 2490 REM 2500 PRINT SPACE$;GREEN$;PVA;YELLOW$;TAB( 10+ TB)LDATE$;CYAN$;:MO= ISUM:GOSUB 114:PRINT TAB( 21+ TB)MO$; 2510 PRINT RED$;:MO= ESUM:GOSUB 114:PRINT TAB( 33+ TB)MO$;:MO= PCENT:GOSUB 134:PRINT TAB( 45+ TB)MO$;:MO= ISUM- ESUM:GOSUB 114:PRINT WHITE$TAB( 53+ TB)MO$:RETURN 2970 REM 2980 REM **************** LIST AN INCOME ******************** 2990 REM 3000 ISUM= 0:FILE "R",1,DSK$+ "INCTIT",1 3010 GET 1,1;NREC:NACCT= NREC- 1 3030 PLOT 12,3,1,1:PRINT "CURRENT SUNDRY ACCOUNTS ARE:" 3050 FOR REC= 3TO NREC- 1 3060 GET 1,REC;NAME$[12]:PLOT 3,5,REC+ 3:PRINT REC- 1,""NAME$"" 3070 NEXT REC 3080 PRINT :INPUT "ENTER ACCOUNT NUMBER: ";SEL:IF SEL< 2OR SEL> NACCT- 1THEN PLOT 7,28,11,28:GOTO 3080 3085 GET 1,SEL+ 1;NAME$[12]:FILE "C",1 3090 INPUT "ENTER START DATE (D.M.YY) OR <RET>: ";TD$:IF TD$= ""THEN SJUL= 0:D1$= "YEAR START":GOTO 3110 3100 GOSUB 21045:D7$= TD$:D1$= " "+ D7$:GOSUB 19000:SJUL= D7 3110 INPUT "ENTER END DATE (D.M.YY) OR <RET>: ";TD$:IF TD$= ""THEN EJUL= 999999:D2$= " YEAR END":GOTO 3135 3120 GOSUB 21045:D7$= TD$:D2$= D7$:GOSUB 19000:EJUL= D7 3135 GOSUB 9000:PRINT PRNTER$;PL$;SH$;GR$;EM$ 3137 PRINT SP$;TAB( 4+ TB)NAME$;" INCOME SUMMARY FROM ";D1$;" TO ";D2$;RH$ 3138 PRINT SP$;TAB( 4+ TB)"=--=--=--=--=--=--=--=--=--=--=---=--=--=--=--=--=--=--=":PRINT 3140 PRINT SPACE$;MAGENTA$;UL$ 3145 PRINT SPACE$;WHITE$;TAB( 13+ TB)"DATE DETAILS AMOUNT":PRINT SPACE$;MAGENTA$;UL$:PRINT 3150 FILE "R",1,DSK$+ "INCOME",1:GET 1,1;NREC:FOR REC= 2TO NREC- 1:GET 1,REC;NUM$[2],DATE$[9],DETAIL$[12],AMT 3160 IF VAL (NUM$)< > SELTHEN 3190 3170 D7$= DATE$:GOSUB 19000:IF D7< SJULOR D7> EJULTHEN 3190 3180 ISUM= ISUM+ AMT:GOSUB 3500:REM PRINT OUTPUT 3190 NEXT REC:FILE "C",1 3200 PRINT SPACE$;MAGENTA$;UL$:PRINT SPACE$;YELLOW$;TAB( 10+ TB)"TOTAL";:MO= ISUM:GOSUB 114:PRINT TAB( 40+ TB)MO$:PRINT SPACE$;MAGENTA$;U1$;GREEN$ 3205 GOSUB 9500 3210 PRINT :INPUT "HIT <RETURN> TO CONTINUE: ";A:RETURN 3470 REM 3480 REM ***************** PRINT OUTPUT ********************** 3490 REM 3500 PRINT SPACE$;WHITE$;TAB( 10+ TB)DATE$;YELLOW$;TAB( 21+ TB)DETAIL$;:MO= AMT:GOSUB 114:PRINT CYAN$;TAB( 40+ TB)MO$ 3510 RETURN 3970 REM 3980 REM **************** LIST ALL INCOMES ****************** 3990 REM 4000 T$= "TOTAL " 4010 FILE "R",1,DSK$+ "INCTIT",1:FILE "R",2,DSK$+ "INCOME",1:GROSS= 0 4080 PRINT :INPUT "ENTER START DATE (D.M.YY) OR <RET>: ";TD$:IF TD$= ""THEN SJUL= 0:D1$= "YEAR START":GOTO 4100 4090 GOSUB 21045:D7$= TD$:D1$= " "+ D7$:GOSUB 19000:SJUL= D7 4100 INPUT "ENTER END DATE (D.M.YY) OR <RET>: ";TD$:IF TD$= ""THEN EJUL= 999999:D2$= " YEAR END":GOTO 4120 4110 GOSUB 21045:D7$= TD$:D2$= D7$:GOSUB 19000:EJUL= D7 4120 GOSUB 9000:PRINT PRNTER$;PL$;SH$;GR$;EM$ 4125 PRINT SPACE$;TAB( 7+ TB);T$;" INCOME SUMMARY FROM ";D1$;" TO ";D2$;RH$ 4127 PRINT SP$;TAB( 7+ TB)"=--=--=--=--=--=--=--=--=--=-=--=--=--=--=--=--=--=":PRINT 4130 PRINT SPACE$;WHITE$;TAB( 5+ TB)"INCOME NAME";TAB( 35+ TB)"AMOUNT":PRINT SPACE$;MAGENTA$;UL$:PRINT 4135 GET 1,1;NTREC:GET 2,1;NREC:FOR TREC= 2TO NTREC- 1:GET 1,TREC;NAME$[12],DU$[1],TAX$[1]:SEL= TREC- 1:ISUM= 0 4137 IF CHOICE= 5AND TAX$< > "Y"THEN 4184 4138 IF SEL= 1THEN GOSUB 4300:GOTO 4184:REM PAYS FROM PAY FILE 4140 FOR REC= 2TO NREC- 1:GET 2,REC;NUM$[2],DATE$[9],DETAIL$[12],AMT 4150 IF VAL (NUM$)< > SELTHEN 4180 4160 D7$= DATE$:GOSUB 19000:IF D7< SJULOR D7> EJULTHEN 4180 4170 ISUM= ISUM+ AMT 4180 NEXT REC:GOSUB 4500:REM PRINT 4182 GROSS= GROSS+ ISUM 4184 NEXT TREC 4190 PRINT SPACE$;MAGENTA$;UL$:PRINT SPACE$;YELLOW$;TAB( 5+ TB)"TOTAL";:MO= GROSS:GOSUB 114:PRINT TAB( 32+ TB)MO$:PRINT SPACE$;MAGENTA$;U1$;GREEN$ 4200 GOSUB 9500 4210 FILE "C",1,2:PRINT :INPUT "HIT <RETURN> TO CONTINUE: ";A:RETURN 4290 4300 FILE "R",3,DSK$+ "PAYS",1:GET 3,1;NQREC,NSAL 4310 FOR REC= 2TO NQREC- 1:AMT= 0 4320 GET 3,REC,5;DATE$[9] 4330 D7$= DATE$:GOSUB 19000:IF D7< SJULOR D7> EJULTHEN 4390 4340 FOR IBYTE= 1TO NSAL- 1 4350 GET 3,REC,IBYTE* 4+ 10;ITEM 4360 AMT= AMT+ ITEM 4370 NEXT IBYTE 4380 ISUM= ISUM+ AMT 4390 NEXT REC:GOSUB 4500:REM PRINT 4400 GROSS= GROSS+ ISUM 4410 FILE "C",3:RETURN 4420 4470 REM 4480 REM ***************** PRINT OUTPUT ********************** 4490 REM 4500 PRINT SPACE$;WHITE$;TAB( 5+ TB)NAME$;:MO= ISUM:GOSUB 114:PRINT CYAN$;TAB( 32+ TB)MO$ 4510 RETURN 4970 REM 4980 REM **************** LIST TAXABLE INCOMES *************** 4990 REM 5000 CHOICE= 5:T$= "TAXABLE":GOSUB 4010:RETURN 6000 PLOT 12,3,5,12:INPUT "LOAD APPROPRIATE PROGRAM DISK AND HIT <RETURN> ";A:LOAD "MENU":RUN 8990 REM 8992 REM **************** PRINTER QUESTION ******************* 8994 REM 9000 PLOT 3,0,31,11:PRINT "TO PRINTER OR SCREEN: ";:GOSUB 74:IF Y$= "P"THEN PRINT "RINTER":GOTO 9070 9002 IF Y$< > "S"THEN PLOT 7:GOTO 9000 9005 PRINT "CREEN" 9010 REM IF OUTPUT TO SCREEN 9020 PFLAG= 0 9035 PLNGTH$= "":SI$= "":RI$= "":SH$= "":RH$= "" 9040 EMPH$= "":SPACE$= "":MAGENTA$= "":PRNTR$= "":CYAN$= "":GREEN$= "":WHITE$= "":RED$= "":YELLOW$= "":GOTO 9140 9060 REM ELSE 9070 PLOT 3,0,31,11:INPUT "TURN ON PRINTER & SET PAPER: HIT <RETURN> WHEN READY ";A:PLOT 12 9080 POKE 33289,132:PFLAG= 1:TMP= PEEK (33265) 9100 FILE "R",6,DSK$+ "PRNTER",1:GET 6,1;PRNTER$[7],EMPH$[4],DUMMY$[20],PLNGTH$[4],DUMMY$[12],SI$[4],RI$[4],SH$[4],RH$[4]:FILE "C",6 9110 SPACE$= " ":MAGENTA$= "":CYAN$= "":GREEN$= "":WHITE$= "":RED$= "":YELLOW$= "" 9130 REM ENDIF 9140 TB= LEN (SPACE$):RETURN 9150 REM 9160 REM 9480 REM ************ POST PRINTING PROCEDURE **************** 9490 REM 9500 IF PFLAG= 1THEN POKE 33265,TMP:POKE 33289,64 9510 RETURN 9520 REM 18980 REM ********************** CNVERT DATE TO JD ************ 18990 REM 19000 Y1= VAL (RIGHT$ (D7$,2)):D= VAL (LEFT$ (D7$,2)) 19010 FOR K= 1TO 12:IF MID$ (STRMTH$,K* 3,3)= MID$ (D7$,4,3)THEN M= K:GOTO 19030 19020 NEXT K 19030 Y1= Y1+ 1900 19040 C9= .001 19050 M9= (- 1)* INT (((14- M)/ 12)+ C9) 19060 J1= D- 2447095+ INT ((1461* (Y1+ 4800+ M9)/ 4)+ C9) 19070 J2= J1+ INT ((367* (M- 2- 12* M9)/ 12)+ C9) 19080 J1= J2- INT ((3* (Y1+ 4900+ M9)/ 400)+ C9) 19090 J2= J1 19100 D7= J2:RETURN 21000 REM ******************** DATE ROUTINE ******************* 21010 REM 21020 REM INPUT DATE AS D.M.YY ,ASSIGN TO TD$, AND CALL THIS 21030 REM OUTPUT IS TD$ IN THE FORM OF '12 JAN 81' 21040 REM 21045 ERR= 0:IF LEN (TD$)= 0THEN ERR= 1:GOTO 21130 21050 FOR JI= 1TO LEN (TD$):T6= ASC (MID$ (TD$,JI,1)):IF NOT (T6= 46OR (T6> 47AND T6< 58))THEN ERR= 1:GOTO 21130 21055 NEXT JI 21060 IF MID$ (TD$,2,1)= "."THEN TD$= "0"+ TD$ 21070 IF MID$ (TD$,5,1)= "."THEN TD$= LEFT$ (TD$,3)+ "0"+ RIGHT$ (TD$,4) 21080 MM= VAL (MID$ (TD$,4,2)) 21090 MM$= " "+ MID$ (STRMTH$,MM* 3,3)+ " " 21100 TD$= LEFT$ (TD$,2)+ MM$+ RIGHT$ (TD$,2) 21110 IF LEFT$ (TD$,1)= "0"THEN TD$= " "+ RIGHT$ (TD$,8) 21120 GOTO 21140 21130 PLOT 7 21140 RETURN