5 CLEAR 5000 10 DIM KWR(30),RPK(30),FS(30) 30 '* (BILLING.BAS) 8/25/82 * 40 '****************************************************************** 50 BELL$=CHR$(7):CLS$=CHR$(26) 60 PRINT CHR$(26) 80 SURCHG=.0002:CTYTAX=.05 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) 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 TAB(TB);REVERSE$;W$+" BILLING PROGRAM "NORMAL$:RETURN 260 PRINT BELL$:PRINT"DO YOU WANT A PRINTER ALIGNMENT MAST RUN (Y/N) ";AN$=INPUT$(1) 270 IF LEFT$(AN$,1)="Y" THEN GOSUB 4970 280 IF LEFT$(AN$,1)="y" THEN PRINT"SHIFT TO ALL CAPS":GOSUB 4970 290 IF LEFT$(AN$,1)="n" THEN PRINT"************ SHIFT TO ALL CAPS **********" 300 PRINT BELL$: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 **";BELL$:GOTO 300 380 PRINT BELL$:INPUT"ENTER THERM FACTOR ";TF 390 IF TF<=0 GOTO 380 400 PRINT CHR$(26) 410 GOSUB 250 420 PRINT:PRINT"UTILITY TAX NOW SET FOR .05":PRINT 430 PRINT"SURCHARGE NOW SET AS .0002":PRINT 440 MIN=2 450 PRINT"MINIMUM ELECTRICAL CHARGE IS $2.00";BELL$:PRINT 460 PRINT"DO YOU WANT TO CHANGE THESE (Y/N) ";AN$=INPUT$(1) 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 535 PRINT BELL$ 540 INPUT"ALL DATA CORRECT (Y/N) ";AN$ 550 IF LEFT$(AN$,1)<>"Y" GOTO 480 560 GOSUB 250 570 PRINT CHR$(26):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 2680 680 GOSUB 2700 700 PRINT CLR$ 710 PRINT BELL$;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 960 770 GOSUB 2800 810 IF Q9<>1 GOTO 840 820 J$=" ":K$=" ":M$=" " 830 Q9=0 840 PRINT CHR$(26) 850 ' 860 GOSUB 3400 870 A2=CG:A3=CE 880 GOTO 910 900 GOTO 920 910 GOSUB 2990 920 J$=" ":K$=" ":M$=" ":M=0:N=0:A1=0:A2=0:A3=0:A4=0:A5=0:M2=0:CR=0 930 GOTO 700 960 CLOSE 970 GOTO 4940 2680 OPEN "R",2,"NAME.DAT",146 2690 RETURN 2700 REM 2710 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$,2 AS ML$,2 AS MM$ 2720 RETURN 2730 REM CONVERT FROM DATA TO DISK FORMAT PRIOR TO PUT 2740 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):RSET ML$=MKI$(ML):RSET MM$=MKI$(MM) 2750 RSET MG$=MKD$(A1):RSET MH$=MKD$(A2):RSET MI$=MKD$(A3):RSET MJ$=MKD$(A4):RSET MK$=MKD$(A5) 2760 RETURN 2770 REM TO CONVERT FROM DISK INTO WORK FIELDS AFTER GET 2780 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$):ML=CVI(ML$):MM=CVI(MM$) 2790 RETURN 2800 GOSUB 2840 2820 GET 2,KN# 2830 GOSUB 2770 2840 RETURN 2850 ' 2960 GET 2,KN# 2970 GOSUB 2770 2980 RETURN 2990 GOSUB 2700 3000 GOSUB 2730 3010 PUT 2,KN# 3020 RETURN 3030 AT$=CHR$(27)+"="+CHR$(R)+CHR$(CC):RETURN 3040 END 3050 ' 3060 '******** START BILLING COMP HERE ******** 3070 TG=(CG-A2)*TF:TG%=INT(TG*100+.5)/100:TG=TG% '****NO ROLLOVER**** 3080 TE=CE-A3 '*** NO ROLLOVER *** 3090 '*****************ELECTRICAL SCHEDULE D1B CODE 1 ************** 3100 IF A5=1 AND TEKWR(3) THEN EC=(TE*RPK(3))+FS(3):GOTO 3250 3120 IF A5=1 THEN EC=(TE*RPK(2))+FS(2): GOTO 3250 3130 '****************ELECTRICAL SCHEDULE D1W CODE 2 **************** 3140 IF A5=2 AND TEKWR(6) THEN EC=(TE*RPK(6))+FS(6):GOTO 3250 3160 IF A5=2 THEN EC=(TE*RPK(5))+FS(5):GOTO 3250 3170 '***************ELECTRICAL SCHEDULE DC1XB CODE 3 ************* 3180 IF A5=3 AND TEKWR(9) THEN EC=(TE*RPK(9))+FS(9):GOTO 3250 3200 IF A5=3 THEN EC=(TE*RPK(8))+FS(8) 3210 '*****************ELECTRICAL SCHEDULE DC1XB WINTER CODE 4 ************* 3220 IF A5=4 AND TEKWR(12) THEN EC=(TE*RPK(12))+FS(12):GOTO 3250 3240 IF A5=4 THEN EC=(TE*RPK(11))+FS(11) 3250 '*******************GAS SCHEDULE G1XH CODE 1 ********************* 3260 IF A4=1 AND TGKWR(15) THEN GC=(TG*RPK(15))+FS(15):GOTO 3340 3280 IF A4=1 THEN GC=(TG*RPK(14))+FS(14) 3290 '******************GAS SCHEDULE G1XH WINTER CODE 2 ****************** 3300 IF A4=2 AND TGKWR(18) THEN GC=(TG*RPK(18))+FS(18):GOTO 3340 3320 IF A4=2 THEN GC=(TG*RPK(17))+FS(17) 3330 ' ********.0002 = state energy surcharge .05= City utility tax ****** 3340 ' 3350 TEM=CE-A3:TEMP=TEM*SC:EC=EC+TEMP:EC=INT(EC*100+.5)/100:GC=INT(GC*100+.5)/100 3360 SC=SURCHG:TTAX=((A1/100)+EC+GC)*CTYTAX 3370 IF EC0 GOTO 3890 3910 PRINT AT$;USING"####.##";CR 3920 ' MISC 3921 R=13:C=26:GOSUB 4560 3922 PRINT AT$;USING"####.##";N/100 3930 R=13:C=12:GOSUB 4560 3940 PRINT AT$;:LINE INPUT DES$ 3950 R=13:C=26:GOSUB 4560 3955 TEMP=N 3960 PRINT AT$;USING"####.##";N/100:PRINT AT$;:LINE INPUT AMOUNT$:N=VAL(AMOUNT$) 3961 N=N*100 3965 IF LEN(AMOUNT$)=0 THEN N=TEMP 3970 PRINT AT$; USING"####.##";N/100 3980 M3=N/100 3990 ' TV 3991 R=10:C=62:GOSUB 4560:PRINT AT$;FULL$;REVUNDER$;SPACE$(6);NORMAL$;HALF$ 4000 R=10:C=63:GOSUB 4560 4010 PRINT AT$;USING"###.##";A1/100 4050 ' LAST GAS 4060 R=8:C=42:GOSUB 4560 4070 PRINT AT$;USING "#####";A2 4080 ' CURRENT GAS 4090 R=8:C=49:GOSUB 4560 4100 PRINT AT$;:LINE INPUT AMOUNT$:CG=VAL(AMOUNT$) 4110 PRINT AT$;USING"#####";CG 4120 ' GAS USAGE 4130 R=19:C=2:IF CG ";:LPRINT USING"$$###.##";GT/100;:LPRINT" <=== DUE BY THE 5TH OF THIS MONTH";CHR$(13); 4801 LPRINT TAB(12);"TOTAL AMOUNT NOW DUE ==> ";:LPRINT USING"$$###.##";GT/100;:LPRINT" <=== DUE BY THE 5TH OF THIS MONTH" 4810 LPRINT" " 4820 LPRINT TAB(12)"Check #....... Amount Paid $...... Therm Factor";TF;TAB(72);"Date: ";LEFT$(DA$,2);"/";MID$(DA$,3,2);"/";RIGHT$(DA$,2) 4825 LPRINT TAB(50);"Rate Schedule ";NA$(A4+4);" ";NA$(A5) 4830 LPRINT 4840 LPRINT TAB(12)"Balance Forward $..............";TAB(52);J$ 4850 LPRINT TAB(12)"New Meter";TAB(52);K$ 4860 LPRINT TAB(19)"GAS.......... ELEC............";TAB(52);L$ 4870 '**** SPACE BETWEEN FORMS ******** 4880 FOR XX=1 TO 9:LPRINT" ":NEXT XX 4890 T1=UTTL-(A1/100) 4900 T2=M:T3=((M2+N+A1)/100)+((LC+CR)*100):T3=T3*100 4910 PRINT#5,"1";",";KN#;",";"0";CE;",";CG;",";DA$;",";"1";",";T1;"2";",";T2;",";"3";",";T3;",";"4";",";BF 4920 RETURN 4930 STOP 4940 CLOSE:PRINT CLS$:PRINT "BILLING COMPLETE -" 4950 RESET:RUN"MENU" 4960 END 4970 '*********************** START PRINTING ALIGNMENT MAST HERE ************************ 4980 LPRINT TAB(12)"Pay To: XXXXXXXXXXXXXXXXXXXX";TAB(75);"Space #: XXX" 4990 LPRINT TAB(20);"XXXXXXXXXXXXXXXXXXXX" 5000 LPRINT TAB(20);"XXXXXXXXXXXXXXXXXXXX" 5010 FOR X=1 TO 4:LPRINT" ":NEXT X 5020 LPRINT TAB(12)"Rent XXXXXX";TAB(39)"XXX.XX";TAB(56)"Prior Present Units Amount" 5030 LPRINT TAB(12)"Storage";TAB(39)"XXX.XX";TAB(50)"Gas";TAB(56);"XXXXX";TAB(65);"XXXXX"; 5040 LPRINT TAB(73)"XXXXX";TAB(80)"XXX.XX" 5050 LPRINT TAB(12)"Balance Fwd.";TAB(39)"XXX.XX";TAB(50)"Elec";TAB(56);"XXXXX";TAB(65);"XXXXX"; 5060 LPRINT TAB(73)"XXXXX";TAB(80)"XXX.XX" 5070 LPRINT TAB(12)"Late Charge";TAB(39)"XXX.XX";TAB(50);"TV";TAB(80)"XXX.XX" 5080 LPRINT TAB(12)"Credit XXXXXXXXXXXXXXX";TAB(38)"-XXX.XX";TAB(50)"Tax,Fees,Etc.";TAB(80)"XXX.XX" 5090 LPRINT TAB(12)"Misc XXXXXXXXXXXXXXXX";TAB(39)"XXX.XX" 5100 LPRINT TAB(12)"Utilities";TAB(39)"XXX.XX";TAB(68)"Sub-Total";TAB(80)"XXX.XX" 5110 LPRINT" ":LPRINT" " 5120 LPRINT TAB(12);"PLEASE PAY THIS AMOUNT ==> ";:LPRINT "$XXXX.XX <=== DUE 5TH OF MONTH" 5130 LPRINT" " 5140 LPRINT TAB(12)"Check #....... Amount Paid $...... Therm Factor XXXXX";TAB(72);"Date: XXXXXX" 5150 LPRINT" ":LPRINT" " 5160 LPRINT TAB(12)"Balance Forward $..............";TAB(52);"XXXXXXXXXXXXXXXXXXXX 5170 LPRINT TAB(12)"New Meter";TAB(52);"XXXXXXXXXXXXXXXXXXXX" 5180 LPRINT TAB(19)"GAS.......... ELEC............";TAB(52);"XXXXXXXXXXXXXXXXXXXX" 5190 '**** SPACE BETWEEN FORMS ******** 5200 FOR XX=1 TO 9:LPRINT" ":NEXT XX 5210 INPUT"DO YOU WANT TO RUN FORM MAST AGAIN (Y/N) ";AN$ 5220 IF LEFT$(AN$,1)="Y" THEN GOTO 4970 5230 RETURN 7000 IF ML=4 THEN CG=CG+10000:FLAG=1:RETURN 7010 IF ML=5 THEN CG=CG+100000!:FLAG=1:RETURN 7030 IF MM=4 THEN CE=CE+10000:FLAG=1:RETURN 7040 IF MM=5 THEN CE=CE+100000!:FLAG=1:RETURN