Compucolor.org – Virtual Media

Listing of file='COMREP.BAS;01' on disk='vmedia/home_budget_3-sector.ccvf'

100 REM  **************** COMBINED REPORTS *******************
120 CLEAR 4000:DIM TINC(18),TEX(64),TINC$(18),TEX$(64),BCAT(18),IAC(64)
130 DD= PEEK (65535):DSK$= MID$ (STR$ (DD- 1),2)+ ":"
140 IF DD= 1THEN PLOT 12,14,3,10,15:INPUT "LOAD DATA DISK & HIT <RET>: ";A
150 UL$= "---------------------------------------------------------------"
155 U1$= "==============================================================="
160 GOTO 530
180
190 POKE 33278,0
200 IF PEEK (33278)= 0GOTO 200
210 IF PEEK (33278)= 89THEN PRINT "ES":Q$= "Y":RETURN
220 IF PEEK (33278)= 78THEN PRINT "O":Q$= "N":RETURN
230 PLOT 26,32,26:GOTO 190
250
260 POKE 33278,0
270 Y= PEEK (33278)
280 IF Y= 0GOTO 270
290 Y$= CHR$ (Y):RETURN
310
320 REM  MO ->->-> MO$
330 RH$= STR$ ((1000* (MO* SGN (MO)- INT (MO* SGN (MO)))+ 1005)/ 10)
340 IF VAL (RH$)> = 200THEN MO= (MO* SGN (MO)+ 1)* SGN (MO)
350 LH$= STR$ (INT (MO* SGN (MO))* SGN (MO)):IF VAL (LH$)= 0AND SGN (MO)= - 1THEN LH$= "-0"
360 LH$= "$"+ LH$
370 IF LEN (LH$)> = 7THEN 390
380 LH$= " "+ LH$:GOTO 370
390 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$:RETURN
410
420 REM  MO ->->-> MO$
430 RH$= STR$ ((1000* (MO* SGN (MO)- INT (MO* SGN (MO)))+ 1005)/ 10)
440 IF VAL (RH$)> = 200THEN MO= (MO* SGN (MO)+ 1)* SGN (MO)
450 LH$= STR$ (INT (MO* SGN (MO))* SGN (MO)):IF VAL (LH$)= 0AND SGN (MO)= - 1THEN LH$= "-0"
460 IF LEN (LH$)> = 3THEN 480
470 LH$= " "+ LH$:GOTO 460
480 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$+ "%":RETURN
510
530 PLOT 12,14,3,20,1:PRINT "COMBINED REPORTS":PLOT 15
540 ISUM= 0:SUM= 0:BAL= 0:TEX= 0:EXSUM= 0
542 FOR I= 1TO 16:TINC(I)= 0:NEXT
544 FOR I= 1TO 56:TEX(I)= 0:NEXT
550 PLOT 3,3,5:PRINT "OPTIONS ARE:"
560 PLOT 3,13,7:PRINT "1. BALANCE SHEET FOR ONE CATEGORY"
570 PLOT 3,13,9:PRINT "2. BALANCE SHEET FOR ALL CATEGORIES"
580 PLOT 3,13,11:PRINT "3. END"
590 PLOT 3,5,22:PRINT "PLEASE MAKE A SELECTION....";:GOSUB 250:ANS= VAL (Y$):PRINT
600 IF NOT (ANS> = 1AND ANS< = 3)THEN PLOT 7:GOTO 530
610 ON ANSGOSUB 1000,2000,3000
620 GOTO 530
980
1000 PICK= 1:FILE "R",1,DSK$+ "INCTIT",1
1010 GET 1,1;NREC:NACCT= NREC- 1
1020 PLOT 12,3,1,1:PRINT "CURRENT ACCOUNTS ARE:"
1030 FOR REC= 2TO NREC- 1:IF REC= 3THEN 1050
1040 GET 1,REC;NAME$[12],BU$[1]:PLOT 3,5,REC+ 3:PRINT ""NAME$" BUDGET CATEGORY: ";BU$;""
1050 NEXT REC
1060 PRINT :PRINT "ENTER BUDGET CATEGORY: ";:GOSUB 250:BSEL= VAL (Y$):PRINT :IF BSEL< 1OR BSEL> 8THEN PLOT 7,28,11,28:GOTO 1060
1070 FILE "C",1:T$= "BUD CAT"+ STR$ (BSEL):GOTO 2002
1690
1980
1990 REM
2000 PICK= 2:T$= "TOTAL    "
2002 PRINT :PLOT 3,10,15
2004 FOR I= 1TO 18:TINC(I)= 0:BCAT(I)= 0:NEXT I
2006 FOR I= 1TO 64:TEX(I)= 0:IAC(I)= 0:NEXT I
2010 GOSUB 9000:PRINT PRNTER$;PLNGTH$;EM$;SH$
2020 PRINT SPACE$;GR$;TAB( 13+ TB)T$;" INCOME & EXPENDITURE SUMMARY";RH$:PRINT SP$;TAB( 13+ TB)"=--=--=--=--=--=---=--=--=--=--=--=--=":PRINT
2030 IF PFLAG= 0THEN PLOT 3,0,30,11:GOSUB 4000
2040 PRINT SPACE$;WHITE$;TAB( 3+ TB)"DETAILS";TAB( 19+ TB)"INCOME      EXPEND     BALANCE  PERCENTAGE":PRINT SPACE$;MAGEFTA$;UL$:PRINT
2050 FILE "R",1,DSK$+ "INCTIT",1:GET 1,1;N2REC:NACCT= N2REC- 1
2060 FILE "R",2,DSK$+ "INCOME",1:GET 2,1;NIREC
2065
2070 FOR ITIT= 2TO N2REC- 1:SEL= ITIT- 1
2080    GET 1,ITIT;TINC$(SEL)[12],BCAT$[1]:BCAT(SEL)= VAL (BCAT$)
2090 NEXT ITIT:BCAT(2)= 1:FILE "C",1
2095
2096 IF PICK= 1AND BSEL< > 1THEN 2100
2097 GOSUB 2600:REM  PAYS FROM PAY FILE
2098
2100 FOR REC= 2TO NIREC- 1:GET 2,REC;NUM$[2],DATE$[9],DETAIL$[12],AMT
2110   SEL= VAL (NUM$):IF SEL= 1THEN 2140
2115   IF PICK= 1AND BCAT(SEL)< > BSELTHEN 2140
2120   TINC(SEL)= TINC(SEL)+ AMT
2130   ISUM= ISUM+ AMT
2140 NEXT REC
2150 FILE "C",2
2155
2160 FILE "R",1,DSK$+ "EXPTIT",1:GET 1,1,5;NTREC
2170 FOR TREC= 2TO NTREC- 1:ESEL= TREC- 1
2180   GET 1,TREC;TEX$(ESEL)[12],DU$[10],IAC$[2],ZZ:IAC(ESEL)= VAL (IAC$)
2185   IF ESEL= 16THEN CBAL= - ZZ
2190 NEXT TREC:FILE "C",1
2192 TEX$(16)= "CASH BALANCE"
2195
2200 FILE "R",2,DSK$+ "EXPEND",1:GET 2,1;NREC
2210 FOR REC= 2TO NREC- 1
2220   GET 2,REC;NUM$[2],DU$[25],IP$[1],AMT:NUM= VAL (NUM$)
2225   IF NUM= 16THEN 2280
2230   IF IP$< > "P"THEN 2280
2240   REM  IF PAYMENT
2245     IF PICK= 1AND BCAT(IAC(NUM))< > BSELTHEN 2280
2250     TEX(NUM)= TEX(NUM)+ AMT
2260     EXSUM= EXSUM+ AMT
2270   REM  ENDIF
2280 NEXT REC:FILE "C",2
2285 IF PICK= 2OR (PICK= 1AND BSEL= 1)THEN TEX(16)= CBAL:EXSUM= EXSUM+ CBAL
2295 IF PICK= 1AND BSEL< > 1THEN 2390
2296
2300 FILE "R",3,DSK$+ "PAYS",1:GET 3,1;NPREC
2310 FOR PREC= 2TO NPREC- 1
2320   FOR I= 1TO 15
2330     GET 3,PREC,I* 4+ 38;AMT
2340     TEX(I)= TEX(I)+ AMT
2350     EXSUM= EXSUM+ AMT
2360   NEXT I
2370 NEXT PREC:FILE "C",3
2380
2390 FOR I= 1TO N2REC- 2:IF TINC(I)= 0THEN 2420
2395   BAL= BAL+ TINC(I)
2400   PRINT SPACE$;WHITE$;TINC$(I);:MO= TINC(I):GOSUB 330:PRINT TAB( 15+ TB)MO$;:MO= BAL:GOSUB 330:PRINT TAB( 39+ TB)GR$;MO$;
2410   MO= TINC(I)/ ISUM* 100:GOSUB 430:PRINT RED$;TAB( 52+ TB)MO$
2420 NEXT I
2430 PRINT :FOR I= 1TO NTREC- 2:IF TEX(I)= 0THEN 2460
2435   BAL= BAL- TEX(I)
2440   PRINT SPACE$;YELLOW$;TEX$(I);:MO= TEX(I):GOSUB 330:PRINT TAB( 27+ TB)MO$;:MO= BAL:GOSUB 330:PRINT TAB( 39+ TB)GR$;MO$;
2450   MO= TEX(I)/ EXSUM* 100:GOSUB 430:PRINT RED$;TAB( 52+ TB)MO$
2460 NEXT I
2470 PRINT SPACE$;MAGENTA$;U1$;GREEN$
2480 GOSUB 9500
2490 PRINT :INPUT "HIT <RETURN> TO CONTINUE: ";A:RETURN
2590
2600 FILE "R",1,DSK$+ "PAYS",1:GET 1,1;NREC,NSAL:SEL= 1
2610 FOR REC= 2TO NREC- 1:AMT= 0
2620   FOR IBYTE= 1TO NSAL- 1
2630     GET 1,REC,IBYTE* 4+ 10;ITEM
2640     AMT= AMT+ ITEM
2650   NEXT IBYTE
2655   TINC(SEL)= TINC(SEL)+ AMT
2660   ISUM= ISUM+ AMT
2670 NEXT REC
2680 FILE "C",1:RETURN
2690
3000 PLOT 12,3,5,12:INPUT "LOAD APPROPRIATE PROGRAM DISK AND HIT <RETURN> ";A:LOAD "MENU":RUN
4000 PRINT "WORKING: THIS MAY TAKE SOME TIME":PLOT 3,0,5:RETURN
8980 REM
8992
8994 REM
9000 PLOT 3,0,31,11:PRINT "TO PRINTER OR SCREEN: ";:GOSUB 260:IF Y$= "P"THEN PRINT "RINTER":GOTO 9070
9003 IF Y$< > "S"THEN PLOT 7:GOTO 9000
9005 PRINT "CREEN"
9010 REM  IF OUTPUT TO SCREEN
9020   PFLAG= 0
9035     PLNGTH$= "":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],DU$[20],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
9490 REM
9500 IF PFLAG= 1THEN POKE 33265,TMP:POKE 33289,64
9510 RETURN
9520 REM