REMARK ********************************************\ * A/P050.BAS CHECK REGISTER PROGRAM *\ * 6/18/79 5:00 PM *\ ******************************************** DIM W(5),W5(6),W3$(7),W2(4),M$(5),P(6),G2$(5),G3(5),Y(2) %INCLUDE CURSOR GOTO 6000 %INCLUDE SUBS1 %INCLUDE GENINFO %INCLUDE BINSEARC %INCLUDE READVEND %INCLUDE A/P-INFO 825 REMARK ********* TOP OF FORM AND REPORT HEADINGS SUBROUTINE ********* IF LINE.COUNT% <55 AND PAGE.COUNT%>0 THEN RETURN REMARK IF NOT TOP OF NEW PAGE, OR FIRST PAGE, RETURN. PAGE.COUNT%=PAGE.COUNT%+1 PRINT CHR$(12);TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE "; X0=G3(1):GOSUB 680.5 REMARK PRINT REPORT DATE FROM GENERAL INFORMATION FILE. PRINT PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE";PAGE.COUNT% PRINT PRINT TAB(8);"DATE INV NO. DESCRIPTION AMOUNT DISCOUNT"; PRINT " FREIGHT TAXES NET AMT CHECK NO." REMARK PRINT REPORT HEADINGS PRINT LINE.COUNT%=6 IF W(5) > 0\ REMARK IF TOP-OF-PAGE WAS REACHED WHILE PRINTING CHECK DETAIL, THEN\ REMARK THEN PRINT A MESSAGE TO THAT EFFECT ON THE NEW PAGE. PRINT USING MASKD$;W7,:\ PRINT W1$;" CONTINUED":\ LINE.COUNT%=LINE.COUNT%+1 RETURN 5000 REMARK ********** PRINT CHECK HEADER INFORMATION ********** X4$="A/P CHECK REGISTER":A1=90:GOSUB 825 PRINT USING MASKD$;W7 REMARK PRINT CHECK REGISTER NUMBER PRINT W1$;" ";M$(2);TAB(55);"DATE "; REMARK PRINT VENDOR NUMBER, NAME X0=A8:GOSUB 680.5 REMARK PRINT CHECK DATE PRINT TAB(95);"----------" LINE.COUNT%=LINE.COUNT%+1 RETURN 5040 REMARK ********** PRINT CHECK TOTALS ********** PRINT TAB(10); PRINT USING MASKC$;W9; REMARK PRINT NUMBER OF ITEMS ON CHECK PRINT " ITEM"; IF W9>1 THEN PRINT"S"; FOR I%=1 TO 5 IF W(I%)=0 THEN 5080 PRINT TAB(24+(I%*11)); PRINT USING MASKB$;W(I%); REMARK PRINT CHECK TOTALS W5(I%)=W5(I%)+W(I%) W(I%)=0 5080 NEXT I% PRINT:PRINT LINE.COUNT%=LINE.COUNT%+2 RETURN 6000 MASKA$="######" MASKB$=" #######.##" MASKC$="##" MASKD$="REGISTER ###### " IF END #3 THEN 6440 REMARK EXIT IF THE CHECK FILE IS EMPTY OPEN "G/I0F010.DAT" AS 1,"A/P0F110.DAT" RECL 162 AS 2,\ "A/P0F030.DAT" RECL 86 AS 3, "A/P0F130.DAT" AS 4, "A/P0F030.PST" AS 5 READ #5;W8 Y9=1:GOSUB 700 REMARK OPEN AND READ GENERAL INFORMATION FILE X0=4:GOSUB 3310 REMARK GET A/P INFORMATION FILE CLOSE 1,4 DELETE 5 RECORD.COUNT=AP.VENDFILE.EXTENT Y9=2:Y2=Y9 Y1=3 6020 CONSOLE LINE.COUNT%=66 PAGE.COUNT%=0 PRINT CLEAR.SCREEN$;"A/P CHECK REGISTER" PRINT:PRINT:PRINT:PRINT"FIRST CHECK REG. #" PRINT "LAST CHECK REG. #" 6060 X1=275:X2=6:X3=0:X4=999999:GOSUB 345 REMARK ENTER FIRST CHECK REGISTER NUMBER IF X0=0 THEN 6440 REMARK IF FIRST CHECK REGISTER NUMBER IS ZERO,\ EXIT THE PROGRAM. F=X0 X1=339:X2=6:X3=F:X4=999999:GOSUB 345 REMARK ENTER LAST CHECK REGISTER NUMBER TO INCLUDE E=X0 6080 X2=1:X3=0:X4=1:X2$="ENTRY CORRECT?":GOSUB 665 IF X0 <> 1 THEN 6060 REMARK IF '1' WAS NOT ENTERED (I.E., INCORRECT ENTRY),\ THEN RE-START ENTRY OF CHECK REGISTER NUMBERS. LPRINTER WIDTH 131 CHECKS%=0 IF END #3 THEN 6360 REMARK IF END OF CHECK FILE, BRANCH TO TOTALS 6120 CHECKS%=CHECKS%+1 READ #3,CHECKS%; W1$,W7,W5,A8,W9 REMARK READ CHECK HEADER RECORD IF W7 > E THEN 6360 REMARK IF REGISTER NUMBER IS PAST PRINT RANGE,\ THEN BRANCH TO THE TOTALS ROUTINE. IF W7 < F \ REMARK IF REGISTER NUMBER IS BELOW RANGE, THEN\ REMARK ADVANCE FILE POINTER TO NEXT CHECK HEADER RECORD. CHECKS%=CHECKS%+W9:GOTO 6120 6125 XYZ$=W1$+" " K$=LEFT$(XYZ$,6) GOSUB 1060 REMARK SEARCH FOR VENDOR RECORD IF H = -1 OR VAR1=0 THEN M$(2)="NOT ON FILE" \ REMARK IF RECORD NOT FOUND, SET VENDOR NAME TO ERROR MESSAGE. ELSE X0=L:GOSUB 3200 GOSUB 5000 6240 FOR B%=1 TO W9 CHECKS%=CHECKS%+1 READ #3,CHECKS%; W2$,W1%,D8,W0,W2(1),W2(2),W2(3),W2(4) REMARK READ CHECK DETAIL RECORD X4$="A/P CHECK REGISTER":A1=90:GOSUB 825 REMARK PRINT REPORT HEADING IF FIRST RECORD OR END OF PAGE. 6250 PRINT TAB(7); X0 = D8:GOSUB 680.5 PRINT TAB(17); PRINT USING MASKA$;W0; REMARK PRINT INVOICE NUMBER 6260 PRINT TAB(26);W2$; FOR J% = 1 TO 4 IF W2(J%) = 0 THEN 6280 PRINT TAB(24+J%*11); PRINT USING MASKB$;W2(J%); REMARK PRINT DETAIL AMOUNT FIELD W(J%) = W(J%)+W2(J%) REMARK ADD DETAIL AMOUNTS TO CHECK TOTALS W(5) = W(5)+W2(J%) 6280 NEXT J% PRINT TAB(79); PRINT USING MASKB$;W2(1)+W2(2)+W2(3)+W2(4); IF W1% = 4 THEN PRINT " CR"; REMARK IF CREDIT MEMO, PRINT "CR" PRINT LINE.COUNT%=LINE.COUNT%+1 NEXT B% GOSUB 5040 GOTO 6120 6360 PRINT:PRINT:PRINT "TOTALS"; FOR I%=1 TO 5 PRINT TAB(24+(I%*11)); PRINT USING MASKB$;W5(I%); REMARK PRINT CHECK REGISTER TOTALS NEXT I% PRINT 6380 PRINT:PRINT:PRINT"G/L P0STINGS OF LATEST CHECK RUN" PRINT "TOTAL AMOUNT "; PRINT USING MASKB$;W8; 6420 PRINT " POSTED TO CASH & A/P" GOTO 6020 6440 CONSOLE PRINT CLEAR.SCREEN$;"A/P CHECK REGISTER LOADING MENU" CHAIN "A/P000"