1 COM Q$[55],O$[42],P$[28] 2 COM Y$[10],M[12],E[10,3] 7 REM EBAP11 8/21/74 10 Q$="$EBAP11" 20 CHAIN "$EBAU11",100 100 REM PROGRAM TO UPDATE EXPENDITURE ACCOUNTS AND TO PRODUCE 101 REM ACCOUNTING DISTRIBUTION LISTING 200 DIM A[375],B[256],N[40],O[40],P[40],Q[40],R[40],S[40],G[2] 205 DIM M$[22],U$[39],V$[39],W$[61] 210 DIM X$[10],Z$[72],K$[30],L$[60] 215 DIM A$[30],B$[60],C$[30],D$[60],E$[30] 220 DIM F$[60],G$[30],H$[60],I$[30],J$[60] 225 Y$="0123456789" 230 READ C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 235 DATA 0,1,2,3,4,5,6,7,8,9 240 MAT READ M 245 DATA 31,29,31,30,31,30,31,31,30,31,30,31 250 MAT READ G 255 DATA 41,41 260 MAT E=ZER 265 ENTER #J9 300 FILES *,*,*,* 305 PRINT LIN(C1),"ACCOUNTING DISTRIBUTION UPDATE/REPORT PROGRAM" 310 PRINT LIN(C1),"ENTER PAID INVOICE FILE NAME" 315 INPUT P$[C1,C7] 320 ASSIGN P$[C1,C7],C3,Z0,Q$[32,37] 325 IF Z0 <= C2 THEN 340 330 PRINT LIN(C1),"REQUESTED FILE NON-EXISTENT" 335 GOTO 310 340 IF TYP(C3)#C2 THEN 355 345 READ #C3;Z$ 350 IF Z$="PAID INVOICE" THEN 365 355 PRINT LIN(C1),"INVALID PAID INVOICE FILE" 360 GOTO 310 365 READ #C3;P0,P1,D9,Z,Z,Z$ 370 IF D9=C0 THEN 385 375 PRINT LIN(C1),"DIRTY BIT SET IN PAID INVOICE FILE" 380 STOP  385 PRINT LIN(C1),"ENTER VENDOR FILE NAME" 390 INPUT P$[C8,14] 395 ASSIGN P$[C8,14],C1,Z0,Q$[20,25] 400 IF Z0 <= C2 THEN 415 405 PRINT LIN(C1),"REQUESTED FILE NON-EXISTENT" 410 GOTO 385 415 IF TYP(C1)#C2 THEN 430 420 READ #C1;Z$ 425 IF Z$="VENDOR" THEN 440 430 PRINT LIN(C1),"INVALID VENDOR FILE" 435 GOTO 385 440 READ #C1;Q1,Q2,Q3,Q4,D9 445 IF D9=C0 THEN 460 450 PRINT LIN(C1),"DIRTY BIT SET IN VENDOR FILE" 455 STOP  460 PRINT LIN(C1),"ENTER INVOICE FILE NAME" 465 INPUT P$[15,21] 470 ASSIGN P$[15,21],C2,Z0,Q$[26,31] 475 IF Z0=C0 THEN 490 480 PRINT LIN(C1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 485 GOTO 460 490 IF TYP(C2)#C2 THEN 505 495 READ #C2;Z$ 500 IF Z$="INVOICE" THEN 515 505 PRINT LIN(C1),"INVALID INVOICE FILE" 510 GOTO 460 515 READ #C2;W0,W1,D9 520 IF D9=C0 THEN 535 525 PRINT LIN(C1),"DIRTY BIT SET IN INVOICE FILE" 530 STOP  535 PRINT LIN(C1),"ENTER ACCOUNTS FILE NAME" 540 INPUT P$[22,28] 545 ASSIGN P$[22,28],C4,Z0,Q$[C8,13] 550 IF Z0=C0 THEN 565 555 PRINT LIN(C1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 560 GOTO 535 565 IF TYP(C4)#C2 THEN 580 570 READ #C4;Z$ 575 IF Z$="ACCOUNTS" THEN 590 580 PRINT LIN(C1),"INVALID ACCOUNTS FILE" 585 GOTO 535 590 READ #C4;D9,Z,Z,Z,Z,W9 595 IF D9=C0 THEN 610 600 PRINT LIN(C1),"DIRTY BIT SET IN ACCOUNTS FILE" 605 STOP  610 MAT READ #C4;A 615 R6=R7=N4=N5=N6=N7=N8=C0 620 A5=A7=-C1 625 F1=C4 630 J8=-16 635 PRINT LIN(C1),"ENTER RUN OPTION" 640 PRINT "A MEANS UPDATE ACCOUNTS AND PRODUCE REPORT" 645 PRINT "R MEANS PRODUCE REPORT ONLY" 650 INPUT Z$ 655 IF Z$[C1,C1]="A" THEN 1000 660 IF Z$[C1,C1]#"R" THEN 635 665 CHAIN "$EBAR08",100 1000 REM MAIN DRIVER 1010 P2=C0 1020 Z0=BRK(C0) 1030 PRINT #C4,C1;"ACCOUNTS",J8,J9,C0,C0,C0,W9 1040 MAT PRINT #C4;A 1050 PRINT #C2,C1;"INVOICE",W0,W1,J8,J9,C0," " 1060 READ #C4,C2 1070 READ #C2,C2 1080 IF P2 >= P0 THEN 1170 1090 GOSUB 3300 1100 GOSUB 3400 1110 IF Z=C0 THEN 1080 1120 GOSUB 3000 1130 IF W2=C0 THEN 1080 1140 GOSUB 3500 1150 GOSUB 3100 1160 GOTO 1080 1170 PRINT #C4,C1;"ACCOUNTS",C0,C0,C0,C0,C0,W9 1180 MAT PRINT #C4;A 1190 PRINT #C2,C1;"INVOICE",W0,W1,C0,C0,C0," " 1200 READ #C4,C2 1210 READ #C2,C2 1220 Z0=BRK(C1) 1230 GOSUB 2000 1240 CHAIN "$EBAR08",100 2000 REM DSPY GL ERRS 2010 E0=C0 2020 FOR I=C1 TO 10 2030 FOR J=C1 TO C3 2040 IF E[I,J]=C0 THEN 2060 2050 GOSUB 2100 2060 NEXT J 2070 NEXT I 2080 RETURN  2100 REM DSLY ERR 2110 IF E0#C0 THEN 2160 2120 E0=C1 2130 PRINT  2140 PRINT "THE FOLLOWING CHARGES WERE NOT RECORDED IN GENERAL" 2150 PRINT "LEDGER ACCOUNTS:" 2160 IF I=C1 THEN 2190 2170 PRINT USING 2270;I-C1 2180 GOTO 2200 2190 PRINT "GENERAL FUND"; 2200 GOTO J OF 2210,2230,2250 2210 PRINT " EXPENDITURE CHARGES" 2220 RETURN  2230 PRINT " REVENUE CHARGES" 2240 RETURN  2250 PRINT " GENERAL LEDGER CHARGES" 2260 RETURN  2270 IMAGE #,"FUND",XD 3000 REM READ INV 3005 Z$=U$[36,39] 3010 Z0=C4 3015 GOSUB 5000 3020 W2=Z 3025 IF W2=C0 THEN 3090 3030 READ #C2,W2;W$ 3035 IF W$[C5,14]=M$[C5,14] THEN 3050 3040 Z$=W$[49,52] 3045 GOTO 3010 3050 IF W$[21,21]="9" THEN 3040 3055 Z$=W$[53,54] 3060 Z0=C2 3065 GOSUB 5000 3070 W3=Z 3075 FOR S0=C1 TO W3 3080 READ #C2;N[S0],O[S0],P[S0],Q[S0],R[S0],S[S0] 3085 NEXT S0 3090 RETURN  3100 REM UPD INV 3110 PRINT #C2,W2;W$ 3120 FOR S0=C1 TO W3 3130 PRINT #C2;N[S0],O[S0],P[S0],Q[S0],R[S0],S[S0] 3140 NEXT S0 3150 RETURN  3300 REM READ PINV 3310 P2=P2+C1 3320 READ #C3;M$ 3330 RETURN  3400 REM READ VEND 3405 Z0=C4 3410 Z$=M$[C1,C4] 3415 GOSUB 5000 3420 IF Z >= Q2 THEN 3460 3425 I=INT((Z+11)/C6) 3430 Z0=(Z+12)-C6*I 3435 READ #C1,I 3440 FOR I=C1 TO Z0 3445 READ #C1;U$,V$ 3450 NEXT I 3455 IF U$[C1,C1]="0" THEN 3465 3460 Z=C0 3465 RETURN  3500 REM READ AND CHG ACCTS 3502 FOR S0=C1 TO W3 3504 IF N[S0]#C0 THEN 3562 3506 N1=O[S0] 3508 N2=P[S0] 3510 N3=Q[S0] 3512 F=INT(N1/100000.) 3514 F0=INT(N1/10000)-F*10 3516 M1=C1 3518 M2=C3 3520 IF N3#C0 THEN 3524 3522 M2=C2 3524 GOSUB 9998 3526 IF M3=C0 THEN 3532 3528 N[S0]=C9 3530 GOTO 3562 3532 GOSUB 4000 3534 IF N[S0]=C9 THEN 3562 3536 GOSUB 3900 3538 IF F0#C1 THEN 3550 3540 N3=C0 3542 M1=C1 3544 M2=C2 3546 GOSUB 9998 3548 GOSUB 3900 3550 N2=C0 3552 M1=M2=C1 3554 GOSUB 9998 3556 GOSUB 3900 3558 N[S0]=C1 3560 GOSUB 3700 3562 NEXT S0 3564 RETURN  3700 REM CHG GL ACCTS 3702 IF W9=C0 THEN 3854 3704 M1=C1 3706 M2=C2 3708 IF F0=C3 THEN 3746 3710 N1=F*100000.+32800.+F0*300 3712 N2=G[F0] 3714 N3=C0 3716 GOSUB 9998 3718 IF M3=C0 THEN 3724 3720 E[F,F0]=C1 3722 RETURN  3724 O$=B$[21,40] 3726 IF F2=C0 THEN 3730 3728 O$=B$[41,60] 3730 X3=R[S0] 3732 X4=S[S0] 3734 GOSUB 4100 3736 IF F2=C0 THEN 3742 3738 B$[41,60]=O$ 3740 GOTO 3744 3742 B$[21,40]=O$ 3744 GOSUB 4200 3746 N1=F*100000.+33100. 3748 N2=C1 3750 GOSUB 9998 3752 IF M3#C0 THEN 3720 3754 O$=B$[41,60] 3756 IF W$[32,32]="0" THEN 3760 3758 O$=B$[21,40] 3760 GOSUB 4100 3762 IF W$[32,32]="0" THEN 3768 3764 B$[21,40]=O$ 3766 GOTO 3770 3768 B$[41,60]=O$ 3770 M1=C4 3772 GOSUB 9998 3774 IF F0=C3 THEN 3780 3776 GOSUB 4250 3778 GOSUB 9998 3780 M1=M2=C1 3782 N1=F*100000.+33100. 3784 N2=C0 3786 GOSUB 9998 3788 O$=B$[41,60] 3790 IF W$[32,32]="0" THEN 3794 3792 O$=B$[21,40] 3794 GOSUB 4100 3796 IF W$[32,32]="0" THEN 3802 3798 B$[21,40]=O$ 3800 GOTO 3804 3802 B$[41,60]=O$ 3804 IF F0#C1 THEN 3822 3806 O$=B$[21,40] 3808 IF F2=C0 THEN 3812 3810 O$=B$[41,60] 3812 GOSUB 4100 3814 IF F2=C0 THEN 3820 3816 B$[41,60]=O$ 3818 GOTO 3822 3820 B$[21,40]=O$ 3822 M1=C4 3824 GOSUB 9998 3826 IF F0#C2 THEN 3854 3828 N1=N1+300 3830 M1=C1 3832 GOSUB 9998 3834 O$=B$[21,40] 3836 IF F2=C0 THEN 3840 3838 O$=B$[41,60] 3840 GOSUB 4100 3842 IF F2=C0 THEN 3848 3844 B$[41,60]=O$ 3846 GOTO 3850 3848 B$[21,40]=O$ 3850 M1=C4 3852 GOSUB 9998 3854 RETURN  3900 REM CHG/UPD ACCT 3902 IF F0=C3 THEN 3944 3904 X$=B$[31,40] 3906 IF W$[33,33]="0" THEN 3912 3908 IF F0=C2 THEN 3912 3910 X$=B$[C1,10] 3912 GOSUB 5400 3914 Y1=R[S0] 3916 Y2=S[S0] 3918 IF F2=C0 THEN 3924 3920 GOSUB 5700 3922 GOTO 3926 3924 GOSUB 5600 3926 GOSUB 5500 3928 IF W$[33,33]="0" THEN 3936 3930 IF F0=C2 THEN 3936 3932 B$[C1,10]=X$ 3934 GOTO 3938 3936 B$[31,40]=X$ 3938 M1=C4 3940 GOSUB 9998 3942 RETURN  3944 X3=R[S0] 3946 X4=S[S0] 3948 F2=C1 3950 IF W$[32,32]#"0" THEN 3956 3952 IF N1-INT(N1/10000)*10000=3100 THEN 3960 3954 GOTO 3958 3956 IF N1-INT(N1/10000)*10000=3400 THEN 3960 3958 F2=C2 3960 O$=B$[20*F2+1,20*F2+20] 3962 GOSUB 4100 3964 B$[20*F2+1,20*F2+20]=O$ 3966 GOTO 3938 4000 REM VAL CHG 4005 IF F0=C3 THEN 4090 4010 X1=R[S0] 4015 X2=S[S0] 4020 GOSUB 5500 4025 F2=C0 4030 IF W$[32,32]="0" THEN 4045 4035 IF F0=C1 THEN 4050 4040 GOTO 4055 4045 IF F0=C1 THEN 4055 4050 F2=C1 4055 IF F2=C0 THEN 4090 4060 IF F0=C2 THEN 4080 4065 IF W$[33,33]="0" THEN 4080 4070 IF X$[C1,10] <= B$[C1,10] THEN 4090 4075 GOTO 4085 4080 IF X$[C1,10] <= B$[31,40] THEN 4090 4085 N[S0]=C9 4090 RETURN  4100 REM 20 DIGIT ADD 4105 X$=O$[11,20] 4110 GOSUB 5400 4115 Y1=X3 4120 Y2=X4 4125 GOSUB 5600 4130 GOSUB 5500 4135 O$[11,20]=X$ 4140 IF X1<100000. THEN 4180 4145 Y1=C0 4150 Y2=X1 4155 X$=O$[C1,10] 4160 GOSUB 5400 4165 GOSUB 5600 4170 GOSUB 5500 4175 O$[C1,10]=X$ 4180 RETURN  4200 REM SAV REC 4205 A1=N1 4210 A2=N2 4215 A3=N3 4220 A4=N4 4225 K$=A$ 4230 L$=B$ 4235 RETURN  4250 REM RES REC 4255 N1=A1 4260 N2=A2 4265 N3=A3 4270 N4=A4 4275 A$=K$ 4280 B$=L$ 4285 RETURN  5000 Z=Z2=C0 5010 FOR Z4=Z0 TO C1 STEP -C1 5020 IF Z$[Z4,Z4]>"4" THEN 5060 5030 FOR Y3=C0 TO C4 5040 IF Z$[Z4,Z4]=Y$[Y3+C1,Y3+C1] THEN 5090 5050 NEXT Y3 5060 FOR Y3=C5 TO C9 5070 IF Z$[Z4,Z4]=Y$[Y3+C1,Y3+C1] THEN 5090 5080 NEXT Y3 5090 Z=Z+Y3*10^Z2 5100 Z2=Z2+C1 5110 NEXT Z4 5120 RETURN  5200 Z2=Z3=Z4=C0 5210 FOR Z1=Z0 TO C1 STEP -C1 5220 Z3=Z3+C1 5230 Z2=INT(Z/(10^(Z1-C1)))-10*Z4 5240 Z4=(10*Z4)+Z2 5250 Z$[Z3,Z3]=Y$[Z2+C1,Z2+C1] 5260 NEXT Z1 5270 RETURN  5400 Z0=C5 5410 Z$=X$[C1,C5] 5420 GOSUB 5000 5430 X1=Z 5440 Z$=X$[C6,10] 5450 GOSUB 5000 5460 X2=Z 5470 RETURN  5500 Z0=C5 5510 Z=X1 5520 GOSUB 5200 5530 X$[C1,C5]=Z$[C1,C5] 5540 Z=X2 5550 GOSUB 5200 5560 X$[C6,10]=Z$[C1,C5] 5570 RETURN  5600 X1=X1+Y1 5610 X2=X2+Y2 5620 IF X2<100000. THEN 5650 5630 X1=X1+C1 5640 X2=X2-100000. 5650 RETURN  5700 IF Y2 <= X2 THEN 5730 5710 X2=X2+100000. 5720 X1=X1-C1 5730 X1=X1-Y1 5740 X2=X2-Y2 5750 RETURN