home *** CD-ROM | disk | FTP | other *** search
-
- REMARK **********************************************
- REMARK * ACCOUNTS PAYABLE TRANSACTION F/M PROGRAM *
- REMARK * (A/P120.BAS) VERS OF 3 PM 6/27/78 *
- REMARK **********************************************
-
- DIM C(27),D(27),W$(5),M$(5),A3$(10),P(6),Y(2)
- %INCLUDE CURSOR
- DATA "INVOICE"," "," ","CR MEMO","DB MEMO","NEW","DELETE","MODIFY"
- MASKA$=" ######.##"
- MASKB$="######"
- MASKC$="######.# #######.## "
- MASKD$="##) ###### #######.##"
- DEF FNR(Z9)=(INT(ABS(Z9)*100+.5)/100)*SGN(Z9) REMARK ROUND TO NEAREST CENT
- DEF FND(Z9)=FNR(Z9)*SGN(D2) REMARK USED IN G/L AND JOB POSTING VERIFICATIONS
- GOTO 6000
- %INCLUDE SUBS1
- %INCLUDE BINSEARC
- %INCLUDE READINV
- %INCLUDE WRITEINV
- %INCLUDE READVEND
- %INCLUDE A/P-INFO
- .314 RETURN REMARK THESE LINE NUMBERS FOR G/L SUBROUTINES
- 10.60 RETURN
-
-
- 5010 IF F=0 OR F>9 THEN GOTO 5040 REMARK BRANCH TO ENTER VALUE OF FIELD "F"
- ON F GOTO 5040,5050,5060,5070,5080,5090,5100,5110,5120
-
- 5040 X1=462:X2=8:X3=0:X4=0:GOSUB 345 REMARK ENTER PURCHASE ORDER NO.
- W2$=X0$
- RETURN
-
- 5050 X1=526:X2=2:X3=0:X4=0:GOSUB 345 REMARK ENTER BUYER
- W3$=X0$
- RETURN
-
- 5060 X1=590:X2=6:X3=0:X4=999999:GOSUB 345 REMARK ENTER CHECK REGISTER NO.
- D(25)=X0
- RETURN
-
- 5070 X1=654:GOSUB 673 REMARK ENTER INVOICE DATE
- PRINT
- D(23)=X0
- RETURN
-
- 5080 X1=718:GOSUB 673 REMARK ENTER AGE DATE
- PRINT
- D(24)=X0
- RETURN
-
- 5090 IF W1%=4 THEN 5150 REMARK ENTER INVOICE OR DEBIT MEMO AMOUNT
- X1=430:X2=9:X3=0:X4=999999.99:GOSUB 345
- C(23)=X0
- X1=429:GOSUB 210
- PRINT USING MASKA$;C(23)
- GOSUB 5140
- RETURN
-
- 5100 X1=498:X2=5:X3=0:X4=100:GOSUB 345 REMARK ENTER DISCOUNT RATE
- X1=493:GOSUB 210
- C(27)=X0
- PRINT USING MASKA$;C(27)
- GOSUB 5140
- RETURN
-
- 5110 X1=622:X2=9:X3=0:X4=999999.99:GOSUB 345 REMARK ENTER FREIGHT AMOUNT
- C(25)=FNR(X0)
- X1=621:GOSUB 210
- PRINT USING MASKA$;C(25)
- GOSUB 5140
- RETURN
-
- 5120 X1=686:X2=9:X3=0:X4=999999.99:GOSUB 345 REMARK ENTER TAX AMOUNT
- C(26)=FNR(X0)
- X1=685:GOSUB 210
- PRINT USING MASKA$;C(26)
- GOSUB 5140
- RETURN
-
- 5140 C(24)=-1*FNR((C(23)*C(27))/100) REMARK RECALCULATE AND DISPLAY DISCOUNT AMOUNT
- X1=557:GOSUB 210
- PRINT USING MASKA$;C(24)
- GOTO 5215
-
- 5150 X1=494:X2=9:X3=-1*C(24):X4=999999.99:GOSUB 345 REMARK ENTER CREDIT MEMO AMOUNT
- C(23)=FNR(X0)
- X1=494:GOSUB 210
- PRINT USING MASKA$;C(23)
- GOTO 5230
-
- REMARK DISPLAY TRANSACTION MASK AND VALUES
- 5200 IF W1%=4 THEN 5220 REMARK CREDIT MEMO TRANSACTIONS AT LINE 5220
- X0=2:GOSUB 260
- GOSUB 5375
- GOSUB 5250
- X1=493:GOSUB 210
- PRINT USING MASKA$;C(27)
- FOR A1%=24 TO 26
- PRINT LEFT$(X9$,45); REMARK PRINT NON-DESTRUCTIVE SPACES
- PRINT USING MASKA$;C(A1%)
- NEXT A1%
- 5215 X1=749:GOSUB 210
- PRINT USING MASKA$;C(23)+C(24)+C(25)+C(26)
- N1=1
- RETURN
-
- REMARK DISPLAY CREDIT MEMO TRANSACTIONS
- 5220 X0=13:GOSUB 260 REMARK GET CRT MASK #13
- GOSUB 5375
- GOSUB 5250
- X1=558:GOSUB 210
- PRINT USING MASKA$;C(24)
- X1=622:GOSUB 210
- PRINT USING MASKA$;C(25)
- 5230 X1=686:GOSUB 210
- PRINT USING MASKA$;C(23)+C(24)
- N1=1
- RETURN
-
-
- 5250 X1=266:GOSUB 210 REMARK DISPLAY TRANSACTION DATA
- PRINT W1$
- X1=7:GOSUB 215
- PRINT M$(2)
- X1=15:GOSUB 215
- PRINT USING MASKB$;W0
- X1=15:GOSUB 215
- PRINT W2$
- IF W1%=4 THEN X1=494 \
- ELSE X1=429
- GOSUB 210
- PRINT USING MASKA$;C(23)
- X1=526:GOSUB 210
- PRINT W3$
- X1=15:GOSUB 215
- PRINT USING MASKB$;D(25)
- X1=15:GOSUB 215
- X0=D(23):GOSUB 680.5:PRINT
- X1=15:GOSUB 215
- X0=D(24):GOSUB 680.5:PRINT
- RETURN
-
-
- 5375 PRINT CURSOR.HOME$;"A/P TRANSACTION F/M " REMARK DISPLAY PROGRAM TITLE
- RETURN
-
- 5410 IF I%>11 THEN 5450
- X1=(I%-1)*64+326:X2=7:X3=0:X4=99999.9:GOSUB 345 REMARK ENTER G/L DISTRIBUTION
- D(I%)=X0
- IF X0=0 THEN 5445
- GOTO 5440 REMARK BYPASS THIS SECTION UNLESS G/L PROGRAMS INSTALLED
-
- 5420 Y2=5
- K1=X0
- GOSUB 10.60
- IF H=-1 THEN X2$="INVALID G/L NUMBER":GOSUB 615:GOTO 5410
- 5440 X1=(I%-1)*64+338:X2=10:X3=-999999.99:X4=999999.99:GOSUB 345 REMARK ENTER DISTRIBUTION AMOUNT
- X0=FNR(X0)
- 5445 D1=D1+X0-C(I%) REMARK ACCUMULATE G/L AMOUNT TO TOTAL \
- AND DISPLAY ACCOUNT AND AMOUNT
- C(I%)=X0
- X1=(I%-1)*64+325:GOSUB 210
- PRINT USING MASKC$;D(I%),C(I%)
- RETURN
-
- 5450 X1=(I%-12)*64+358:X2=6:X3=0:X4=999999:GOSUB 345 REMARK ENTER JOB NUMBER
- D(I%)=X0
- IF X0<>0 THEN \ REMARK ENTER DISTRIBUTION AMOUNT
- X1=(I%-12)*64+371:X2=10:X3=-999999.99:X4=999999.99:GOSUB 345:\
- X0=FNR(X0)
- D2=D2+X0-C(I%) REMARK ACCUMULATE JOB AMOUNT TO TOTAL
- C(I%)=X0
- X1=(I%-12)*64+350:GOSUB 210
- PRINT USING MASKD$;I%,D(I%),C(I%) REMARK DISPLAY ACCOUNT AND AMOUNT
- RETURN
-
- 5460 IF W1%=4 THEN D0=C(23)\ REMARK CALCULATE TOTALS
- ELSE D0=C(23)+C(24)+C(25)+C(26)
- IF FND(D1)<>D2 THEN 5465
- IF D1+D2<>FNR(D0)+FND(D0) THEN 5465
- PRINT CURSOR.HOME$;
- PRINT:PRINT:PRINT
- PRINT TAB(64);
- IF N1<=1 THEN RETURN
- N1=0
- GOTO 5460
-
- 5465 IF N1=1 THEN \ REMARK ROUTINE TO CORRECT OUT-OF-BALANCE DISTRIBUTION
- N1=2:\
- GOSUB 5520:\
- F=0
- 5470 IF D1<>D0 THEN 5480
- X0=39:X0$="JOB":X2=D0-D2:GOSUB 5490 REMARK USE SUBROUTINES TO CORRECT JOB TOTALS
- IF D2 <> FND(D0) THEN 5470
- PRINT CURSOR.HOME$;
- PRINT:PRINT:PRINT
- PRINT TAB(64)
- GOTO 5460
-
- 5480 X0=6:X0$="G/L":X2=D0-D1:GOSUB 5490 REMARK USE SUBROUTINES TO CORRECT G/L TOTALS
- IF D1<>D0 THEN 5480
- GOTO 5460
-
- 5490 IF X2=0 THEN RETURN REMARK THIS SUBROUTINE DISPLAYS G/L OR \
- JOB POSTING DISCREPANCY AMOUNTS
- X1=192:GOSUB 210
- PRINT TAB(X0);X0$;" DIST OFF";
- PRINT USING MASKA$;X2;TAB(64)
- N1=2
- GOSUB 5950
- RETURN
-
-
- 5520 IF N1+F=5 THEN RETURN REMARK REDISPLAY G/L AND JOB DISTRIBUTION MASK AND TOTALS
- X0=3:GOSUB 260
- GOSUB 5375
- X1=320:GOSUB 210
- FOR I%=1 TO 11
- X1=6:GOSUB 215
- IF D(I%)=0 THEN X1=26:GOSUB 215\
- ELSE\
- PRINT USING MASKC$;D(I%),C(I%);
- IF D(I%+11)>0 THEN PRINT USING MASKD$; I%+11,D(I%+11),C(I%+11)\
- ELSE PRINT
- NEXT I%
- IF F=3 THEN 5950
- RETURN
-
- 5550 X0%=RECORD.NUMBER.ENTERED%
- FILE.NO=2:GOSUB 3000 REMARK GET TRANSACTION RECORD FROM A/P0F020
- D1=C(1)+C(2)+C(3)+C(4)+C(5)+C(6)+C(7)+C(8)+C(9)+C(10)+C(11)
- D2=C(12)+C(13)+C(14)+C(15)+C(16)+C(17)+C(18)+C(19)+C(20)+C(21)+C(22)
- IF W1%=4 THEN F1=6 \
- ELSE F1=9
- RECORD.COUNT=AP.VENDFILE.EXTENT
- Y2=1
- XYZ$=W1$+" "
- K$=LEFT$(W1$,6)
- GOSUB 1060
- IF H=-1 OR VAR1=0 THEN M$(2)="NOT ON FILE" \
- ELSE Y9=1:X0=L:GOSUB 3200 REMARK LOAD VENDOR INFORMATION
- RETURN
-
- 5590 FILE.NO=2
- X0%=RECORD.NUMBER.ENTERED%
- GOSUB 3050 REMARK WRITE TRANSACTION RCD TO A/P0F020
- X2$="RECORDED":GOSUB 615
- RETURN
-
- 5700 X2$="LAST CHANGES IGNORED" REMARK IGNORE LAST ENTERED CHANGES
- GOSUB 615
- RETURN
-
- 5800 X2$="LAST TRANSACTION VOIDED" REMARK VOID LAST TRANSACTION
- GOSUB 615
- W2%=W2%+10
- FILE.NO=2
- X0%=RECORD.NUMBER.ENTERED% REMARK SET W2% TO LOGICALLY DELETE THIS RECORD \
- BY ADDING 10 TO CURRENT VALUE...
- GOSUB 3050 REMARK SAVE RECORD ON A/P0F020
- RETURN
-
- 5900 X2=1:X3=0:X4=F1:X2$="ENTER FIELD TO CHANGE(0=NONE)":GOSUB 665 REMARK ALLOW CHANGES TO FIELDS ON THE INVOICE SCREEN
- F=X0
- IF F=0 THEN RETURN
- GOSUB 5010
- GOTO 5900
-
- 5950 X2=2:X3=0:X4=22:X2$="ENTER FIELD TO CHANGE(0=NONE)":GOSUB 665 REMARK ALLOW CHANGES TO G/L AND JOB DISTRIBUTION FIELDS
- IF X0=0 THEN RETURN
- I%=X0
- GOSUB 5410
- IF N1=2 THEN RETURN
- GOTO 5950
-
-
- REMARK START OF MAIN PROGRAM
- 6000 OPEN "A/P0F110.DAT" RECL 162 AS 1 REMARK OPEN VENDOR FILE
- OPEN "A/P0F020.DAT" RECL 580 AS 2 REMARK OPEN TRANSACTION FILE
- OPEN "A/P0F130.DAT" AS 4 REMARK OPEN A/P INFORMATION FILE
- OPEN "CRT" RECL 1100 AS 19
- X0=4
- GOSUB 3310 REMARK GET A/P GENERAL INFORMATION
- GOTO 6160 REMARK SKIP OPENING G/L FILE FOR NOW
- OPEN "G/L0F110.DAT" RECL 157 AS 5
- OPEN "G/L0F130.DAT" AS 6
- FILE.NO%=6:GOSUB .314
- 6160 PRINT CLEAR.SCREEN$;
- GOSUB 5375 REMARK DISPLAY PROGRAM IDENTIFICATION
- X0=0
- X2=3:X3=0:X4=TRANSACTION.RCD.COUNT%:\
- X2$="ENTER RECORD NO. TO CHANGE (0 TO END)":GOSUB 665 REMARK ENTER NUMBER OF TRANSACTION TO CHANGE
- IF X0=0 THEN GOTO 6400 REMARK END PROGRAM ON 0 ENTRY
- RECORD.NUMBER.ENTERED%=X0
- F=0
- GOSUB 5550 REMARK RETRIEVE TRANSACTION
- IF W2%>9 THEN X2$="TRANSACTION IS VOID":GOSUB 615: GOTO 6160
- GOSUB 5200 REMARK DISPLAY TRANSACTION
- GOSUB 5900 REMARK ALLOW CHANGES TO INVOICE SCREEN FIELDS
- 6380 GOSUB 5460 REMARK CALCULATE TOTAL
- X0=11:GOSUB 260 REMARK GET THE ACTION CODE MASK FROM CRT FILE
- GOSUB 5375 REMARK DISPLAY PROGRAM IDENTIFICATION
- X1=140:X2=1:X3=1:X4=5:GOSUB 345 REMARK ENTER ACTION CODE
- F=X0
-
- IF F=1 THEN GOSUB 5590:GOTO 6160 REMARK WRITE THE TRANSACTION RCD
-
- IF F=2 THEN GOSUB 5200:GOSUB 5900:GOTO 6380 REMARK DISPLAY TRANSACTION DATA AND ALLOW CHANGES
-
- IF F=3 THEN GOSUB 5520:N1=1:GOTO 6380 REMARK DISPLAY G/L & JOB DATA AND RETURN TO ACTION CODE MASK
-
- IF F=4 THEN GOSUB 5800:GOTO 6160 REMARK VOID TRANSACTION AND GO BACK TO VENDOR NUMBER ENTRY
-
- IF F=5 THEN GOSUB 5700:GOTO 6160 REMARK IGNORE LAST CHANGES
-
-
- 6400 PRINT CLEAR.SCREEN$;"A/P TRANSACTION F/M LOADING MENU" REMARK END PROGRAM AND RE-LOAD MENU
- CHAIN "A/P000"
-