1 COM Q$[55] 7 REM EBAP08 8/21/74 10 Q$="$EBAP08" 20 CHAIN "$EBAU11",100 100 REM PROGRAM TO PAY INVOICES AND TAKE CREDIT MEMOS 200 DIM T[2,2],N[40],O[40],P[40],Q[40],R[40],S[40],W[130] 210 DIM A[375],B[256],A$[30],B$[60],U$[39],V$[39],W$[61] 220 DIM K$[7],M$[22],T$[72],X$[19],Y$[10],Z$[72] 300 FILES *,*,*,* 305 ENTER #J9 310 Y$="0123456789" 315 R6=R7=N1=N2=N3=N4=N5=N6=N7=N8=0 320 A5=A7=-1 325 F1=3 330 M1=1 335 FOR I=1 TO 22 340 M$[I,I]="0" 345 NEXT I 350 ASSIGN "*EBAF02",1,Z0,"" 355 IF Z0 <= 2 THEN 370 360 PRINT LIN(1),"GENERAL LEDGER SPECS FILE NON-EXISTENT" 365 STOP  370 READ #1;Z,Z$,Z,Z 375 MAT READ #1;W 380 PRINT LIN(1),"ENTER VENDOR FILE NAME" 385 INPUT X$ 390 ASSIGN X$,1,Z0,Q$[20,25] 395 IF Z0 <= 2 THEN 410 400 PRINT LIN(1),"REQUESTED FILE NON-EXISTENT" 405 GOTO 380 410 IF TYP(1)#2 THEN 425 415 READ #1;T$ 420 IF T$="VENDOR" THEN 435 425 PRINT LIN(1),"INVALID VENDOR FILE" 430 GOTO 380 435 READ #1;Q1,Q2,Q3,Q4,D9 440 IF D9=0 THEN 455 445 PRINT LIN(1),"DIRTY BIT SET IN VENDOR FILE" 450 STOP  455 PRINT LIN(1),"ENTER INVOICE FILE NAME" 460 INPUT X$ 465 ASSIGN X$,2,Z0,Q$[26,31] 470 IF Z0=0 THEN 485 475 PRINT LIN(1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 480 GOTO 455 485 IF TYP(2)#2 THEN 500 490 READ #2;T$ 495 IF T$="INVOICE" THEN 510 500 PRINT LIN(1),"INVALID INVOICE FILE" 505 GOTO 455 510 READ #2;W0,W1,D9 515 IF D9=0 THEN 530 520 PRINT LIN(1),"DIRTY BIT SET IN INVOICE FILE" 525 STOP  530 PRINT LIN(1),"ENTER ACCOUNTS FILE NAME" 535 INPUT X$ 540 ASSIGN X$,3,Z0,Q$[8,13] 545 IF Z0 <= 2 THEN 560 550 PRINT LIN(1),"REQUESTED FILE NON-EXISTENT" 555 GOTO 530 560 IF TYP(3)#2 THEN 575 565 READ #3;Z$ 570 IF Z$="ACCOUNTS" THEN 585 575 PRINT LIN(1),"INVALID ACCOUNTS FILE" 580 GOTO 530 585 READ #3;D9,Z,Z,Z,Z,W9 590 IF D9=0 THEN 605 595 PRINT LIN(1),"DIRTY BIT SET IN ACCOUNTS FILE" 600 STOP  605 MAT READ #3;A 610 PRINT LIN(1),"ENTER PAID INVOICE FILE NAME" 615 INPUT X$ 620 ASSIGN X$,4,Z0,Q$[32,37] 625 IF Z0=0 THEN 640 630 PRINT LIN(1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 635 GOTO 610 640 IF TYP(4)#2 THEN 655 645 READ #4;T$ 650 IF T$="PAID INVOICE" THEN 665 655 PRINT LIN(1),"INVALID PAID INVOICE FILE" 660 GOTO 610 665 READ #4;P0,P1,D9,Z,Z,Z$ 670 IF D9=0 THEN 1000 675 PRINT LIN(1),"DIRTY BIT SET IN PAID INVOICE FILE" 680 STOP  1000 IF P0= Q2 THEN 3560 3525 I=INT((Z+11)/6) 3530 Z0=(Z+12)-6*I 3535 READ #1,I 3540 FOR I=1 TO Z0 3545 READ #1;U$,V$ 3550 NEXT I 3555 IF U$[1,1]="0" THEN 3570 3560 E0=1 3565 PRINT LIN(1),"SPECIFIED VENDOR DOES NOT EXIST" 3570 RETURN  3700 REM DOL FMT 3702 Z$[1,13]=" " 3704 FOR I=1 TO 10 3706 IF X$[I,I]#"0" THEN 3712 3708 NEXT I 3710 RETURN  3712 Z$[11,11]="." 3714 Z$[12,13]=X$[9,10] 3716 IF I>8 THEN 3710 3718 I0=8-I 3720 Z$[10-I0,10]=X$[8-I0,8] 3722 IF I>5 THEN 3710 3724 Z$[7,7]="," 3726 I0=5-I 3728 Z$[6-I0,6]=X$[5-I0,5] 3730 IF I>2 THEN 3710 3732 Z$[3,3]="," 3734 I0=2-I 3736 Z$[2-I0,2]=X$[2-I0,2] 3738 RETURN  3800 REM FMT ACCT # 3805 Z0=6 3810 Z=O[S0] 3815 GOSUB 5200 3820 X$=Z$[1,2] 3825 X$[3]="-" 3830 IF X$[2,2]="3" THEN 3910 3835 X$[4,7]=Z$[3] 3840 X$[8]="-" 3845 Z=P[S0] 3850 GOSUB 5200 3855 IF X$[2,2]="2" THEN 3895 3860 X$[9,14]=Z$ 3865 Z0=4 3870 Z=Q[S0] 3875 GOSUB 5200 3880 X$[15]="-" 3885 X$[16,19]=Z$ 3890 RETURN  3895 X$[6,7]=Z$[4] 3900 X$[9,9]=Z$[6] 3905 RETURN  3910 Z0=4 3915 Z=W[P[S0]] 3920 IF Z$[4,4]="1" THEN 3930 3925 Z=W[P[S0]+60] 3930 GOSUB 5200 3935 X$[4,7]=Z$ 3940 RETURN  4000 REM INPUT TRANSACTION PROCESSING ROUTINE. 4010 FOR Z1=1 TO Z0 4020 T[Z1,1]=0 4025 T[Z1,2]=0 4030 NEXT Z1 4040 Z1=1 4050 Y3=0 4060 FOR Z2=1 TO LEN(T$) 4070 IF Y3#0 THEN 4130 4080 IF T$[Z2,Z2]=" " THEN 4180 4090 IF T$[Z2,Z2]="," THEN 4140 4100 T[Z1,1]=Z2 4110 Y3=1 4120 GOTO 4180 4130 IF T$[Z2,Z2]#"," THEN 4180 4140 T[Z1,2]=Z2-1 4150 Z1=Z1+1 4160 IF Z1>Z0 THEN 4210 4170 Y3=0 4180 NEXT Z2 4190 T[Z1,2]=Z2-1 4200 RETURN  4210 IF Z2=LEN(T$) THEN 4200 4220 E0=1 4230 PRINT LIN(1),"INVALID TRANSACTION" 4240 RETURN  5000 REM STRING TO NUMBER CONVERSION ROUTINE. 5030 Z=Y2=0 5040 FOR Y1=Z0 TO 1 STEP -1 5050 IF Z$[Y1,Y1]>"4" THEN 5090 5060 FOR Y3=0 TO 4 5070 IF Z$[Y1,Y1]=Y$[Y3+1,Y3+1] THEN 5120 5080 NEXT Y3 5090 FOR Y3=5 TO 9 5100 IF Z$[Y1,Y1]=Y$[Y3+1,Y3+1] THEN 5120 5110 NEXT Y3 5120 Z=Z+Y3*10^Y2 5130 Y2=Y2+1 5140 NEXT Y1 5150 RETURN  5200 REM NUMBER TO STRING CONVERSION ROUTINE. 5230 Z2=Z3=Z4=0 5240 FOR Z1=Z0 TO 1 STEP -1 5250 Z3=Z3+1 5260 Z2=INT(Z/(10^(Z1-1)))-10*Z4 5270 Z4=(10*Z4)+Z2 5280 Z$[Z3,Z3]=Y$[Z2+1,Z2+1] 5290 NEXT Z1 5300 RETURN  5400 REM TEN DIGIT STRING TO TWO FIVE DIGIT 5401 REM NUMBERS CONVERSION ROUTINE. 5410 Z0=5 5415 Z$=X$[1,5] 5420 GOSUB 5000 5430 X1=Z 5440 Z$=X$[6,10] 5450 GOSUB 5000 5460 X2=Z 5470 RETURN  5500 REM TWO FIVE DIGIT NUMBERS TO TEN DIGIT 5501 REM STRING CONVERSION ROUTINE. 5510 Z0=5 5520 Z=X1 5530 GOSUB 5200 5540 X$[1,5]=Z$[1,5] 5550 Z=X2 5560 GOSUB 5200 5570 X$[6,10]=Z$[1,5] 5580 RETURN  5800 REM ROUTINE TO EDIT STRING FOR ALL DIGITS 5810 Z=1 5820 FOR Z1=1 TO Z0 5830 IF Z$[Z1,Z1]<"0" THEN 5870 5840 IF Z$[Z1,Z1]>"9" THEN 5870 5850 NEXT Z1 5860 Z=0 5870 RETURN