1 COM Q$[55] 7 REM EBAP12 7/8/74 10 Q$="$EBAP12" 20 CHAIN "$EBAU11",100 100 REM PROGRAM TO CREATE TRANSACTION LOG FILE FOR OUTSTANDING 101 REM PURCHASE ORDERS 200 DIM W$[39],X$[10],Y$[10],Z$[72] 210 DIM U$[39],V$[39],N$[57] 220 DIM O[40],P[40],Q[40],R[40],S[40] 230 Y$="0123456789" 240 N$[1,57]=" " 250 ENTER #J9 300 FILES *,*,* 310 PRINT LIN(1),"ENTER VENDOR FILE NAME" 320 INPUT Z$ 330 ASSIGN Z$,2,Z0,Q$[20,25] 340 IF Z0 <= 2 THEN 370 350 PRINT LIN(1),"REQUESTED FILE NON-EXISTENT" 360 GOTO 310 370 IF TYP(2)#2 THEN 400 380 READ #2;Z$ 390 IF Z$="VENDOR" THEN 420 400 PRINT LIN(1),"INVALID VENDOR FILE" 410 GOTO 310 420 READ #2;V1,V2,V3,V4,D9 430 IF D9=0 THEN 460 440 PRINT LIN(1),"DIRTY BIT SET IN VENDOR FILE" 450 STOP  460 PRINT LIN(1),"ENTER PURCHASE ORDER FILE NAME" 470 INPUT Z$ 480 ASSIGN Z$,1,Z0,Q$[38,43] 490 IF Z0 <= 2 THEN 520 500 PRINT LIN(1),"REQUESTED FILE NON-EXISTENT" 510 GOTO 460 520 IF TYP(1)#2 THEN 550 530 READ #1;Z$ 540 IF Z$="PURCHASE ORDER" THEN 570 550 PRINT LIN(1),"INVALID PURCHASE ORDER FILE" 560 GOTO 460 570 READ #1;W0,W1,D9 580 IF D9=0 THEN 610 590 PRINT LIN(1),"DIRTY BIT SET IN PURCHASE ORDER FILE" 600 STOP  610 PRINT LIN(1),"ENTER TRANSACTION LOG FILE NAME" 620 INPUT Z$ 630 ASSIGN Z$,3,Z0,Q$[14,19] 640 IF Z0=0 THEN 670 650 PRINT LIN(1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 660 GOTO 610 670 IF TYP(3)#2 THEN 700 680 READ #3;Z$ 690 IF Z$="DAILY TRANSACTION LOG" THEN 720 700 PRINT LIN(1),"INVALID TRANSACTION LOG FILE" 710 GOTO 610 720 READ #3;T0,T1,T2,D9 730 IF D9=0 THEN 760 740 PRINT LIN(1),"DIRTY BIT SET IN TRANSACTION LOG FILE" 750 STOP  760 IF T0=0 THEN 790 770 PRINT LIN(1),"TRANSACTION LOG FILE MUST BE EMPTY" 780 GOTO 610 790 W2=2 800 W3=0 1000 REM MAIN DRIVER 1010 Z0=BRK(0) 1020 PRINT #3,1;"DAILY TRANSACTION LOG",T0,T1,1,-9,J9 1030 READ #3,2 1040 GOSUB 3000 1050 IF W3#0 THEN 1130 1060 GOSUB 3500 1070 IF Z=0 THEN 1100 1080 GOSUB 2500 1090 GOTO 1040 1100 PRINT "PURCHASE ORDER ";W$[1,4];",";W$[5,11] 1110 PRINT "TRANSACTION LOG ENTRY NOT CREATED - VENDOR CANNOT BE READ" 1120 GOTO 1040 1130 PRINT #3,1;"DAILY TRANSACTION LOG",T0,T1,1,0,0 1140 READ #3,2 1150 Z0=BRK(1) 1160 STOP  2500 REM OUT TRANS LOG 2510 N$[17,17]="N" 2520 IF W$[19,19]="0" THEN 2540 2530 N$[17,17]="X" 2540 N$[28,34]=W$[5,11] 2550 N$[37,57]=U$[8,28] 2560 FOR S0=1 TO S1 2570 T0=T0+1 2580 IF T0>T1 THEN 2770 2590 Z0=6 2600 Z=O[S0] 2610 GOSUB 5200 2620 N$[1,6]=Z$ 2630 Z=P[S0] 2640 GOSUB 5200 2650 N$[7,12]=Z$ 2660 Z0=4 2670 Z=Q[S0] 2680 GOSUB 5200 2690 N$[13,16]=Z$ 2700 X1=R[S0] 2710 X2=S[S0] 2720 GOSUB 5500 2730 N$[18,27]=X$ 2740 PRINT #3;N$ 2750 NEXT S0 2760 RETURN  2770 PRINT  2780 PRINT "PROGRAM TERMINATED BECAUSE TRANSACTION FILE FULL" 2790 GOTO 1130 3000 REM READ PO 3005 IF W2= V2 THEN 3560 3525 I=INT((Z+11)/6) 3530 Z0=(Z+12)-6*I 3535 READ #2,I 3540 FOR I=1 TO Z0 3545 READ #2;U$,V$ 3550 NEXT I 3555 IF U$[1,1]="0" THEN 3565 3560 Z=0 3565 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  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  6000 END