home *** CD-ROM | disk | FTP | other *** search
Wrap
10 '****************************************************************** 20 '* BILLING PROGRAM * 30 '* (BILLING.BAS) 8/25/82 * 40 '****************************************************************** 50 BELL$=CHR$(7):CLS$=CHR$(26) 60 PRINT CHR$(26) 70 CLEAR 5000 80 SURCHG=.0002:CTYTAX=.05 90 DIM NI$(201),NI#(201),KWR(18),RPK(18),FS(18),NA$(6),OP(12),DC(12),IN(12),II$(12),OK#(12),DP(12) 100 PRINT BELL$ 110 ESC$=CHR$(27):HALF$=ESC$+CHR$(41):FULL$=ESC$+CHR$(40) 120 REVERSE$=ESC$+CHR$(71)+CHR$(52) 130 ESC$=CHR$(27) 140 BLINK$=ESC$+CHR$(71)+CHR$(50) 150 SEQ$=ESC$+CHR$(71) 160 NORMAL$=SEQ$+CHR$(48):BLANK$=SEQ$+CHR$(49) 170 REVUNDER$=SEQ$+CHR$(60) 180 HALF$=ESC$+CHR$(41) 190 FULL$=ESC$+CHR$(40) 200 REVUNDER$=SEQ$+CHR$(60) 210 BLANK$=SEQ$+CHR$(49) 211 GOTO 3630 220 OPEN"O",5,"REC.DAT" 'OPEN ACCOUNTS RECEIVABLE FILE 230 OPEN"I",1,"DATE.DAT"' READ PARK NAME FILE 240 INPUT#1,Y9$,W$,X$,Y$:CLOSE 1:GOSUB 250:GOTO 260 250 PRINT CHR$(26):TB=80-LEN(W$+" BILLING PROGRAM"):TB=TB/2:PRINT REVERSE$;TAB(TB);W$+" BILLING PROGRAM":RETURN 260 INPUT"DO YOU WANT A PRINTER ALIGNMENT MAST RUN (Y/N) ";AN$ 270 IF LEFT$(AN$,1)="Y" THEN GOSUB 5220 280 IF LEFT$(AN$,1)="y" THEN PRINT"SHIFT TO ALL CAPS":GOSUB 5220 290 IF LEFT$(AN$,1)="n" THEN PRINT"************ SHIFT TO ALL CAPS **********" 300 INPUT"ENTER BILLING DATE (EXAMPLE: 030182)";DA$ 310 IF LEN(DA$)<>6 THEN GOTO 370 320 I1=VAL(LEFT$(DA$,2)):I2=VAL(MID$(DA$,3,2)):I3=VAL(RIGHT$(DA$,2)) 330 IF I1<1 OR I1>12 THEN GOTO 370 340 IF I2<1 OR I2>31 THEN GOTO 370 350 IF I3<0 OR I3>99 THEN GOTO 370 360 E1=I1*10000!+I2*100+I3:GOTO 380 370 PRINT "** BAD DATE **":GOTO 300 380 INPUT"ENTER THERM FACTOR ";TF 390 IF TF<=0 GOTO 380 400 PRINT CHR$(26) 410 GOSUB 250 420 PRINT"UTILITY TAX NOW SET FOR .05" 430 PRINT"SURCHARGE NOW SET AS .0002" 440 MIN=2 450 PRINT"MINIMUM ELECTRICAL CHARGE IS $2.00" 460 INPUT"DO YOU WANT TO CHANGE THESE (Y/N) ";AN$ 470 IF LEFT$(AN$,1)<>"Y" THEN GOTO 570 480 INPUT"ENTER UTILITY TAX ";CTYTAX 490 IF CTYTAX<0 GOTO 480 500 INPUT"ENTER SURCHARGE ";SURCHG 510 IF SURCHG<0 GOTO 500 520 INPUT"MINIMUM ELECTRICAL CHARGE ";MIN 530 IF MIN<0 GOTO 520 540 INPUT"ALL DATA CORRECT (Y/N) ";AN$ 550 IF LEFT$(AN$,1)<>"Y" GOTO 480 560 GOSUB 250 570 OPEN"I",1,"RATE.DAT" 580 FOR X%=1 TO 6 590 INPUT#1, NA$(X%) 600 FOR XY%=1 TO 3 610 XX%=XX%+1 620 INPUT#1,KWR(XX%),RPK(XX%),FS(XX%) 630 NEXT XY% 640 NEXT X% 650 REM MAINTENANCE 660 GOSUB 2860 670 GOSUB 1160 680 GOSUB 2880 690 JK=IC:JJ=0 700 PRINT CLR$ 710 PRINT CHR$(26):PRINT"ENTER TENANT NO. OR - 0 - TO EXIT ";:INPUT KN# 720 IF KN#>99998! THEN 730 ELSE 740 730 PRINT "** NUMBER TO LARGE **":GOTO 710 740 IF KN#=0 GOTO 1120 750 GOSUB 1400 760 IF KF=0 GOTO 790 770 GOSUB 2980 780 GOTO 810 790 GOSUB 1770 800 Q9=1 810 IF Q9<>1 GOTO 840 820 J$=" ":K$=" ":M$=" " 830 Q9=0 840 PRINT CHR$(26) 850 ' 1040 GOSUB 3630 1050 A2=CG:A3=CE 1060 GOTO 1090 1070 GOSUB 2570 1080 GOTO 1100 1090 GOSUB 3170 1100 J$=" ":K$=" ":M$=" ":M=0:N=0:A1=0:A2=0:A3=0:A4=0:A5=0:M2=0:CR=0 1110 GOTO 700 1120 CLOSE 1130 GOSUB 2400 1140 CLOSE 1150 GOTO 5190 1160 OC=0 1170 CLOSE 1 1180 OPEN "I",1,"NMI.DAT" 1190 IF EOF(1) GOTO 1240 1200 IF OK#(OC)=9999999999# GOTO 1240 1210 OC=OC+1 1220 INPUT #1,OK#(OC),OP(OC) 1230 GOTO 1190 1240 CLOSE 1 1250 DC=0 1260 OPEN "I",1,"NMD.DAT" 1270 IF EOF(1) GOTO 1330 1280 DC=DC+1 1290 INPUT#1,DP(DC) 1300 IF DP(DC)<>0 GOTO 1320 1310 DC=DC-1 1320 GOTO 1270 1330 CLOSE 1 1340 OPEN "R",1,"NMINDEX.DAT",256 1350 FIELD 1,8 AS NI$(1),8 AS NI$(2),8 AS NI$(3),8 AS NI$(4),8 AS NI$(5),8 AS NI$(6),8 AS NI$(7),8 AS NI$(8),8 AS NI$(9),8 AS NI$(10),8 AS NI$(11) 1360 FIELD 1,88 AS DUMMY$,8 AS NI$(12),8 AS NI$(13),8 AS NI$(14),8 AS NI$(15),8 AS NI$(16),8 AS NI$(17),8 AS NI$(18),8 AS NI$(19),8 AS NI$(20),8 AS NI$(21),8 AS NI$(21),8 AS NI$(22) 1370 FIELD 1,176 AS DUMMY$,8 AS NI$(23),8 AS NI$(24),8 AS NI$(25),8 AS NI$(26),8 AS NI$(27),8 AS NI$(28),8 AS NI$(29),8 AS NI$(30),8 AS NI$(31),8 AS NI$(32) 1380 IC=32 1390 RETURN 1400 KF=0 1410 IL%=INT(OC/2):IR%=IL% 1420 FOR TN%=1 TO INT(LOG(OC)) 1430 IR%=IR%/2+.5 1440 IF KN#>OK#(IL%) GOTO 1590 1450 IL%=IL%-IR% 1460 NEXT TN% 1470 TN%=INT(LOG(OC)) 1480 IS%=(IL%-IR%+1) 1490 IF IS%>0 GOTO 1510 1500 IS%=1 1510 TS%=IL%+IR%+1 1520 IF TS%<(OC+1) GOTO 1540 1530 TS%=OC 1540 FOR TL%=IS% TO TS% 1550 IF KN#<OK#(TL%) GOTO 1610 1560 NEXT TL% 1570 TL%=TS% 1580 GOTO 1750 1590 IL%=IL%+IR% 1600 GOTO 1460 1610 IF TL%=1 GOTO 1750 1620 GET 1,OP(TL%-1) 1630 FOR IX=1 TO IC 1640 NI#(IX)=INT(CVD(NI$(IX))) 1650 IF NI#(IX)<=0 GOTO 1750 1660 IF KN#=INT(NI#(IX)/100000!) GOTO 1710 1670 IF KN#<INT(NI#(IX)/100000!) GOTO 1750 1680 NEXT IX 1690 IX=IC+1 1700 GOTO 1750 1710 IN=NI#(IX)-KN#*100000! 1720 PF=INT(IN/10000) 1730 PR=IN-PF*10000 1740 KF=1 1750 RETURN 1760 RETURN 1770 IF DC=0 GOTO 1880 1780 IF DP(DC)=99999! GOTO 1870 1790 IF DP(DC)=0 GOTO 1870 1800 IN(3)=DP(DC) 1810 DP(DC)=99999! 1820 DC=DC-1 1830 GOTO 1910 1840 PF=INT(IN(3)/10000) 1850 PR=IN(3)-PF*10000 1860 RETURN 1870 DC=DC-1:GOTO 1770 1880 IN(3)=OP(OC) 1890 OP(OC)=OP(OC)+1 1900 ' IF OP(OC)> MAX SIZE GO TO NEW DISK DRIVE 1910 IF TL%=1 GOTO 2300 1920 NI$(IC+1)=" ":IN=IX 1930 IF IN=IC+1 GOTO 2060 1940 FOR JX=IX TO IC 1950 NI#(JX)=INT(CVD(NI$(JX))) 1960 IF NI#(JX)<=0 GOTO 2000 1970 NEXT JX 1980 JX=IC 1990 NI$(IC+1)=NI$(IC) 2000 FOR JX=JX TO IN+1 STEP -1 2010 LSET NI$(JX)=NI$(JX-1) 2020 NEXT JX 2030 LSET NI$(IN)=MKD$(KN#*100000!+IN(3)) 2040 IF NI$(IC+1)<>" " GOTO 2060 2050 PUT 1,OP(TL%-1):GOTO 1840 2060 JX=0 2070 FOR IX=INT(IC/2+1) TO IC+1 2080 JX=JX+1 2090 II$(JX)=NI$(IX) 2100 LSET NI$(IX)=MKD$(0) 2110 NEXT IX 2120 PUT 1,OP(TL%-1) 2130 FOR IX=1 TO INT(IC/2+1) 2140 LSET NI$(IX)=II$(IX) 2150 NEXT IX 2160 IF IN=IC+1 GOTO 2190 2170 LSET NI$(JK)=NI$(IC+1) 2180 GOTO 2200 2190 LSET NI$(JX)=MKD$(KN#*100000!+IN(3)) 2200 OC=OC+1: PUT 1,OC-1 2210 IN#=INT(CVD(NI$(1))/100000!) 2220 FOR IX=OC-1 TO 1 STEP -1 2230 IF OK#(IX)<IN# GOTO 2280 2240 OK#(IX+1)=OK#(IX) 2250 OP(IX+1)=OP(IX) 2260 NEXT IX 2270 IX=0 2280 OK#(IX+1)=IN#:OP(IX+1)=OC-1 2290 GOTO 1840 2300 FOR JX=OC TO 1 STEP -1 2310 OK#(JX+1)=OK#(JX):OP(JX+1)=OP(JX) 2320 NEXT JX 2330 OK#(1)=KN#:OP(1)=OC:OC=OC+1 2340 FOR JX=1 TO IC 2350 LSET NI$(JX)=MKD$(0) 2360 NEXT JX 2370 LSET NI$(1)=MKD$(KN#*100000!+IN(3)) 2380 PUT 1,OC-1 2390 GOTO 1840 2400 CLOSE 1 2410 OPEN "O",1,"NMI.DAT" 2420 FOR IX=1 TO OC 2430 PRINT #1,OK#(IX),OP(IX) 2440 NEXT IX 2450 CLOSE 1 2460 OPEN "O",1,"NMD.DAT":TX=0 2470 IF DC<>0 GOTO 2500 2480 PRINT #1,99999! 2490 GOTO 2550 2500 FOR IX=1 TO DC 2510 IF DP(IX)=99999! GOTO 2530 2520 PRINT #1,DP(IX):TX=1 2530 NEXT IX 2540 IF TX=0 THEN GOTO 2480 2550 GOSUB 1330 2560 RETURN 2570 IF DC=100 GOTO 2660 2580 GOSUB 1400 2590 IF KF=0 GOTO 2690 2600 DC=DC+1 2610 'REMDP(DC)=99999! 2620 DP(DC)=PF*10000+PR 2630 GOTO 2710 2640 Q9=1 2650 RETURN 2660 PRINT"DELETE NO MORE RECORDS UNTIL YOU HAVE ADDED SOME" 2670 KF=0 2680 GOTO 2640 2690 PRINT KN;"RECORD NOT FOUND" 2700 GOTO 2640 2710 FOR JX=IX TO IC-1 2720 RSET NI$(JX)=NI$(JX+1) 2730 IF CVD(NI$(JX+1))<=0 GOTO 2760 2740 NEXT JX 2750 JX=IC-1 2760 IF JX =1 GOTO 2800 2770 IF IX=1 THEN OK#(TL%-1)=INT(CVD(NI$(1))/100000!) 2780 PUT 1,OP(TL%-1) 2790 GOTO 2640 2800 'FOR JX=TL% TO OC 2810 'OK#(JX-1)=OK#(JX) 2820 'OP(JX-1)=OP(JX) 2830 'NEXT JX 2840 'OC=OC-1 2850 GOTO 2780 2860 OPEN "R",2,"NAME.DAT",142 2870 RETURN 2880 REM 2890 FIELD 2,8 AS MA$,30 AS MB$,20 AS MC$,20 AS MD$,8 AS ME$,8 AS M9$,8 AS MF$,8 AS MG$,8 AS MH$,8 AS MI$,8 AS MJ$,8 AS MK$ 2900 RETURN 2910 REM CONVERT FROM DATA TO DISK FORMAT PRIOR TO PUT 2920 RSET MA$=MKD$(KN#):RSET MB$=J$:RSET MC$=K$:RSET MD$=L$:RSET ME$=MKD$(M):RSET MF$=MKD$(N):RSET M9$=MKD$(M2) 2930 RSET MG$=MKD$(A1):RSET MH$=MKD$(A2):RSET MI$=MKD$(A3):RSET MJ$=MKD$(A4):RSET MK$=MKD$(A5) 2940 RETURN 2950 REM TO CONVERT FROM DISK INTO WORK FIELDS AFTER GET 2960 WA#=CVD(MA$):J$=MB$:K$=MC$:L$=MD$:M=CVD(ME$):N=CVD(MF$):A1=CVD(MG$):A2=CVD(MH$):A3=CVD(MI$):A4=CVD(MJ$):A5=CVD(MK$):M2=CVD(M9$) 2970 RETURN 2980 SR=PF:NF=2:GOSUB 2880 2990 IF PR=0 GOTO 3020 3000 GET 2,PR 3010 GOSUB 2950 3020 RETURN 3030 JJ=JJ+1:IF JJ=OC THEN PRINT"PROGRAM ERROR ":STOP 3040 GET 1,(OP(JJ)):JK=0 3050 FOR I=1 TO IC 3060 NI#(I)=CVD(NI$(I)) 3070 NEXT I 3080 JK=JK+1:IF JK=IC+1 GOTO 3030 3090 IF NI#(JK)<=0 GOTO 3030 3100 IN=NI#(JK)-INT(NI#(JK)/100000!)*100000! 3110 PF=INT(IN/10000) 3120 PR=IN-PF*10000 3130 IF PR=0 GOTO 3160 3140 GET 2,PR 3150 GOSUB 2950 3160 RETURN 3170 SR=PF:NF=2:GOSUB 2880 3180 GOSUB 2910 3190 PUT 2,PR 3200 RETURN 3210 AT$=CHR$(27)+"="+CHR$(R)+CHR$(CC):RETURN 3220 END 3230 ' 3270 '******** START BILLING COMP HERE ******** 3300 TG=(CG-A2)*TF:TG%=INT(TG*100+.5)/100:TG=TG% '****NO ROLLOVER**** 3320 TE=CE-A3 '*** NO ROLLOVER *** 3330 '*****************ELECTRICAL SCHEDULE D1B CODE 1 ************** 3340 IF A5=1 AND TE<KWR(1) THEN EC=(TE*RPK(1)):GOTO 3490 3350 IF A5=1 AND TE>KWR(3) THEN EC=(TE*RPK(3))+FS(3):GOTO 3490 3360 IF A5=1 THEN EC=(TE*RPK(2))+FS(2): GOTO 3490 3370 '****************ELECTRICAL SCHEDULE D1W CODE 2 **************** 3380 IF A5=2 AND TE<KWR(4) THEN EC=(TE*RPK(4)):GOTO 3490 3390 IF A5=2 AND TE>KWR(6) THEN EC=(TE*RPK(6))+FS(6):GOTO 3490 3400 IF A5=2 THEN EC=(TE*RPK(5))+FS(5):GOTO 3490 3410 '***************ELECTRICAL SCHEDULE DC1XB CODE 3 ************* 3420 IF A5=3 AND TE<KWR(7) THEN EC=(TE*RPK(7)):GOTO 3490 3430 IF A5=3 AND TE>KWR(9) THEN EC=(TE*RPK(9))+FS(9):GOTO 3490 3440 IF A5=3 THEN EC=(TE*RPK(8))+FS(8) 3450 '*****************ELECTRICAL SCHEDULE DC1XB WINTER CODE 4 ************* 3460 IF A5=4 AND TE<KWR(10) THEN EC=(TE*RPK(10)):GOTO 3490 3470 IF A5=4 AND TE>KWR(12) THEN EC=(TE*RPK(12))+FS(12):GOTO 3490 3480 IF A5=4 THEN EC=(TE*RPK(11))+FS(11) 3490 '*******************GAS SCHEDULE G1XH CODE 1 ********************* 3500 IF A4=1 AND TG<KWR(13) THEN GC=(TG*RPK(13)):GOTO 3580 3510 IF A4=1 AND TG>KWR(15) THEN GC=(TG*RPK(15))+FS(15):GOTO 3580 3520 IF A4=1 THEN GC=(TG*RPK(14))+FS(14) 3530 '******************GAS SCHEDULE G1XH WINTER CODE 2 ****************** 3540 IF A4=2 AND TG<KWR(16) THEN GC=(TG*RPK(16)):GOTO 3580 3550 IF A4=2 AND TG>KWR(18) THEN GC=(TG*RPK(18))+FS(18):GOTO 3580 3560 IF A4=2 THEN GC=(TG*RPK(17))+FS(17) 3570 ' ********.0002 = state energy surcharge .05= City utility tax ****** 3580 ' 3590 TEM=CE-A3:TEMP=TEM*SC:EC=EC+TEMP:EC=INT(EC*100+.5)/100:GC=INT(GC*100+.5)/100 3600 SC=SURCHG:TTAX=((A1/100)+EC+GC)*CTYTAX 3610 IF EC<MIN THEN EC=MIN 'SETS CHARGE TO MINIMUM 3615 RETURN 3620 '**************** CHECK FOR MINIMUM ELECTRICAL CHARGE *************** 3630 PRINT CHR$(26) 3640 PRINT TAB(11);REVUNDER$;"BILL TO ";NORMAL$ 3650 PRINT REVERSE$;SPACE$(30);BLANK$;TAB(40)REVERSE$;"BILLING FORM ";NORMAL$;TAB(60);REVERSE$;"SPACE NO:";KN#;NORMAL$ 3660 PRINT REVERSE$;SPACE$(30);BLANK$ 3670 PRINT REVERSE$;SPACE$(30);NORMAL$;TAB(40);REVERSE$;"DATE ";SPACE$(2); 3680 PRINT STRING$(79,"-") 3690 PRINT "ITEM";TAB(10)"DESCRIPTION";TAB(28);"CHG$";TAB(41);"PRIOR TODAY UNITS CHARGES$" 3700 FOR A=1 TO 2 3710 READ A$,B$ 3720 GOSUB 3730:GOTO 3740 3730 PRINT REVERSE$;A;"";NORMAL$;REVERSE$;A$;SPACE$(17-LEN(A$));NORMAL$;REVERSE$;SPACE$(7);NORMAL$;REVERSE$;B$+SPACE$(5-LEN(B$));NORMAL$;:RETURN 3740 GOSUB 3750:GOTO 3760 3750 PRINT REVERSE$;SPACE$(5);NORMAL$;REVERSE$; SPACE$(5);NORMAL$;REVUNDER$;SPACE$(5);NORMAL$;"";REVUNDER$;" ";:RETURN 3760 NEXT A 3770 FOR A=3 TO 4 3780 READ A$,B$ 3790 GOSUB 3730 3800 PRINT TAB(70);REVUNDER$:NEXT A 3810 PRINT REVERSE$;" 5 ";NORMAL$;REVERSE$;"CREDIT";SPACE$(11);NORMAL$;REVERSE$;SPACE$(7);NORMAL$;TAB(50);"TOTAL UTILITIES ";REVUNDER$ 3820 PRINT REVERSE$;" 6 ";NORMAL$;REVERSE$;"MISC";SPACE$(13);NORMAL$;REVUNDER$;SPACE$(7);NORMAL$ 3830 PRINT TAB(14)"SUB TOTAL ";REVUNDER$;SPACE$(7);NORMAL$ 3840 PRINT TAB(14)"UTILITIES ";REVUNDER$;SPACE$(7);NORMAL$ 3850 PRINT TAB(14)"TOTAL DUE ";REVUNDER$;SPACE$(7);NORMAL$ 3860 PRINT STRING$(79,"-") 3870 R=3:C=2:GOSUB 4600 3880 PRINT AT$;J$ 3890 R=4:C=2:GOSUB 4600 3900 PRINT AT$;K$ 3910 R=5:C=2:GOSUB 4600 3920 PRINT AT$;L$ 3930 R=5:C=45:GOSUB 4600 3940 PRINT AT$;DA$;NORMAL$' DATE 3950 R=8:C=26:GOSUB 4600 3960 ' RENT 3970 PRINT AT$;USING"####.##";M/100 3980 ' STORAGE 3990 R=9:C=26:GOSUB 4600 4000 PRINT AT$;USING"####.##";M2/100 4010 ' BALANCE FORWARD 4020 R=10:C=26:GOSUB 4600 4021 PRINT AT$;:LINE INPUT AMOUNT$:BF=VAL(AMOUNT$) 4030 PRINT AT$;USING"####.##";BF 4040 ' LATE CHARGE 4050 R=11:C=26:GOSUB 4600 4051 PRINT AT$;:LINE INPUT AMOUNT$:LC=VAL(AMOUNT$) 4060 PRINT AT$;USING"####.##";LC 4070 ' CREDIT 4080 R=12:C=26:GOSUB 4600 4081 PRINT AT$;:LINE INPUT AMOUNT$:CR=VAL(AMOUNT$) 4082 IF CR/100>0 GOTO 4081 4090 PRINT AT$;USING"####.##";CR 4100 ' MISC 4101 R=13:C=13:GOSUB 4600 4102 PRINT AT$;:LINE INPUT DES$ 4110 R=13:C=26:GOSUB 4600 4111 PRINT AT$;:LINE INPUT AMOUNT$:N=VAL(AMOUNT$) 4120 PRINT AT$; USING"####.##";N 4121 M3=N/100 4130 ' TV 4140 R=10:C=66:GOSUB 4600 4150 PRINT AT$;USING"###.##";A1/100 4160 ' TAX 4170 R=11:C=66:GOSUB 4600 4180 PRINT AT$;USING"###.##";TTAX 4190 ' LAST GAS 4200 R=8:C=42:GOSUB 4600 4210 PRINT AT$;USING "#####";A2 4220 ' CURRENT GAS 4230 R=8:C=49:GOSUB 4600 4231 PRINT AT$;:LINE INPUT AMOUNT$:CG=VAL(AMOUNT$) 4240 PRINT AT$;USING"#####";CG 4250 ' GAS USAGE 4251 R=19:C=2:IF CG<A2 THEN GOSUB 4600:PRINT AT$;BLINK$;"CURRENT READING LESS THAN LAST MONTH":FOR X=1 TO 500:NEXT X:PRINT AT$;BLANK$:GOTO 4220 4260 R=8:C=56:GOSUB 4600 4270 PRINT AT$;USING"#####";CG-A2 4280 'GAS CHARGE 4290 R=8:C=66:GOSUB 4600 4295 GOSUB 3270 4300 PRINT AT$;USING"###.##";GC 4310 'PRIOR ELECT 4320 R=9:C=42:GOSUB 4600 4330 PRINT AT$;USING"#####";A3 4340 'CURRENT ELECT 4350 R=9:C=49:GOSUB 4600 4351 PRINT AT$;:LINE INPUT AMOUNT$:CE=VAL(AMOUNT$) 4360 PRINT AT$;USING"#####";CE 4370 'ELECT USAGE 4371 R=19:C=2:IF CE<A3 THEN GOSUB 4600:PRINT AT$;BLINK$;"CURRENT READING LESS THAN LAST MONTH":FOR X=1 TO 500:NEXT X:PRINT AT$;BLANK$:GOTO 4340 4380 R=9:C=56:GOSUB 4600 4390 PRINT AT$;USING"#####";CE-A3 4400 ' ELECT.CHARGES 4410 R=9:C=66:GOSUB 4600 4415 GOSUB 3270 4420 PRINT AT$;USING"###.##";EC 4430 'TOTAL UTILITIES 4431 STOTAL=(GC+EC+TTAX)+A1/100 4440 R=12:C=66:GOSUB 4600 4450 PRINT AT$;USING"###.##";STOTAL 4460 ' PRINT SUB TOTAL 4470 R=14:C=26:GOSUB 4600 4471 GT=(M+M2+N)+((BF+LC+CR)*100) 4480 PRINT AT$ USING"####.##";GT/100 4490 ' PRINT UTILITY TOTAL 4500 R=15:C=26:GOSUB 4600 4510 PRINT AT$ USING"####.##";STOTAL 4520 ' PRINT GRAND TOTAL 4530 R=16:C=27:GOSUB 4600 4531 GT=GT+(STOTAL*100) 4540 PRINT BLINK$;:PRINT AT$; USING"###.##";GT/100 4550 'BOTTOM OF SCREEN 4560 R=19:C=2:GOSUB 4600 4570 PRINT AT$;:INPUT"ARE YOU READY TO BILL (Y/N) ";AN$ 4580 GOTO 4870 4590 DATA "RENT","GAS","STORAGE","ELEC","BALANCE FORWARD","TV","LATE CHARGE","TAX" 4600 C=C+31:R=R+31:AT$=ESC$+"="+CHR$(R)+CHR$(C):RETURN 4610 ' 4620 ' 4630 ' 4650 ' 4870 IF LEFT$(ANSWER$,1)="Y" THEN GOTO 4890 4875 GOTO 710 4880 '******************** ROUND OFF HERE *********************************** 4890 UTTL=STOTAL 4900 '**************************** START PRINTING BILL HERE ************************ 4910 LPRINT TAB(12)"Pay To: ";W$;TAB(75);"Space #: ";KN# 4920 LPRINT TAB(20);X$ 4930 LPRINT TAB(20);Y$ 4940 FOR X=1 TO 4:LPRINT" ":NEXT X 4950 LPRINT TAB(12)"Rent ";TAB(39)USING"###.##";M/100;:LPRINT TAB(56)"Prior Present Units Amount" 4960 LPRINT TAB(12)"Storage";TAB(39)USING"###.##";M2/100;:LPRINT TAB(50)"Gas";:LPRINT TAB(56);A2;TAB(65);CG; 4970 LPRINT TAB(73)USING"###";(CG-A2)*TF;:LPRINT TAB(80)USING"###.##";GC 4980 LPRINT TAB(12)"Balance Fwd.";:LPRINT TAB(39)USING"###.##";BF;:LPRINT TAB(50)"Elec";TAB(56);A3;TAB(65);CE; 4990 LPRINT TAB(72)USING"####";CE-A3;:LPRINT TAB(80)USING"###.##";EC 5000 LPRINT TAB(12)"Late Charge";TAB(39)USING"###.##";LC;:LPRINT TAB(50);"TV";:LPRINT TAB(80)USING"###.##";A1/100 5010 LPRINT TAB(12)"Credit";DESC$;:LPRINT TAB(38)USING"####.##";CR;:LPRINT TAB(50)"Tax,Fees,Etc.";:LPRINT TAB(80)USING"###.##";TTAX 5020 LPRINT TAB(12)"Misc ";DES$;:LPRINT TAB(38)USING"####.##";N/100 5030 LPRINT TAB(12)"Utilities";:LPRINT TAB(39)USING"###.##";UTTL;:LPRINT TAB(68)"Sub-Total";:LPRINT TAB(80)USING"###.##";STOTAL 5040 LPRINT" ":LPRINT" " 5050 LPRINT TAB(12);"PLEASE PAY THIS AMOUNT ==> ";:LPRINT USING"$$###.##";GT/100;:LPRINT" <=== DUE BY THE 5TH OF THIS MONTH" 5060 LPRINT" " 5070 LPRINT TAB(12)"Check #....... Amount Paid $...... Therm Factor";TF;TAB(72);"Date: ";LEFT$(DA$,2);"/";MID$(DA$,3,2);"/";RIGHT$(DA$,2) 5080 LPRINT" ":LPRINT" " 5090 LPRINT TAB(12)"Balance Forward $..............";TAB(52);J$ 5100 LPRINT TAB(12)"New Meter";TAB(52);K$ 5110 LPRINT TAB(19)"GAS.......... ELEC............";TAB(52);L$ 5120 '**** SPACE BETWEEN FORMS ******** 5130 FOR XX=1 TO 9:LPRINT" ":NEXT XX 5140 T1=UTTL-(A1/100) 5150 T2=M:T3=((M2+N+A1)/100)+((LC+CR)*100):T3=T3*100 5160 PRINT#5,"1";",";KN#;",";"0";E1;",";CG;",";DA$;",";"1";",";T1;"2";",";T2;",";"3";",";T3;",";"4";",";BF 5170 RETURN 5180 STOP 5190 CLOSE:PRINT CLS$:PRINT "BILLING COMPLETE -" 5200 RESET:RUN"MENU" 5210 END 5220 '*********************** START PRINTING ALIGNMENT MAST HERE ************************ 5230 LPRINT TAB(12)"Pay To: XXXXXXXXXXXXXXXXXXXX";TAB(75);"Space #: XXX" 5240 LPRINT TAB(20);"XXXXXXXXXXXXXXXXXXXX" 5250 LPRINT TAB(20);"XXXXXXXXXXXXXXXXXXXX" 5260 FOR X=1 TO 4:LPRINT" ":NEXT X 5270 LPRINT TAB(12)"Rent XXXXXX";TAB(39)"XXX.XX";TAB(56)"Prior Present Units Amount" 5280 LPRINT TAB(12)"Storage";TAB(39)"XXX.XX";TAB(50)"Gas";TAB(56);"XXXXX";TAB(65);"XXXXX"; 5290 LPRINT TAB(73)"XXXXX";TAB(80)"XXX.XX" 5300 LPRINT TAB(12)"Balance Fwd.";TAB(39)"XXX.XX";TAB(50)"Elec";TAB(56);"XXXXX";TAB(65);"XXXXX"; 5310 LPRINT TAB(73)"XXXXX";TAB(80)"XXX.XX" 5320 LPRINT TAB(12)"Late Charge";TAB(39)"XXX.XX";TAB(50);"TV";TAB(80)"XXX.XX" 5330 LPRINT TAB(12)"Credit XXXXXXXXXXXXXXX";TAB(38)"-XXX.XX";TAB(50)"Tax,Fees,Etc.";TAB(80)"XXX.XX" 5340 LPRINT TAB(12)"Misc XXXXXXXXXXXXXXXX";TAB(39)"XXX.XX" 5350 LPRINT TAB(12)"Utilities";TAB(39)"XXX.XX";TAB(68)"Sub-Total";TAB(80)"XXX.XX" 5360 LPRINT" ":LPRINT" " 5370 LPRINT TAB(12);"PLEASE PAY THIS AMOUNT ==> ";:LPRINT "$XXXX.XX <=== DUE 5TH OF MONTH" 5380 LPRINT" " 5390 LPRINT TAB(12)"Check #....... Amount Paid $...... Therm Factor XXXXX";TAB(72);"Date: XXXXXX" 5400 LPRINT" ":LPRINT" " 5410 LPRINT TAB(12)"Balance Forward $..............";TAB(52);"XXXXXXXXXXXXXXXXXXXX 5420 LPRINT TAB(12)"New Meter";TAB(52);"XXXXXXXXXXXXXXXXXXXX" 5430 LPRINT TAB(19)"GAS.......... ELEC............";TAB(52);"XXXXXXXXXXXXXXXXXXXX" 5440 '**** SPACE BETWEEN FORMS ******** 5450 FOR XX=1 TO 9:LPRINT" ":NEXT XX 5460 INPUT"DO YOU WANT TO RUN FORM MAST AGAIN (Y/N) ";AN$ 5470 IF LEFT$(AN$,1)="Y" THEN GOTO 5220 5480 RETURN T" ":NEXT XX 5460 INPUT"DO YOU WANT TO RUN FORM MAST AGAIN (Y/N) ";AN$ 5470 IF LEFT$(AN$,1)="Y" THEN GOTO 5220 54