home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug043.ark / A_P050.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  5.1 KB  |  157 lines

  1.     REMARK    ********************************************\
  2.         *    A/P050.BAS  CHECK REGISTER PROGRAM    *\
  3.         *      6/18/79             5:00  PM        *\
  4.         ********************************************
  5.  
  6.  
  7.     DIM W(5),W5(6),W3$(7),W2(4),M$(5),P(6),G2$(5),G3(5),Y(2)
  8. %INCLUDE CURSOR
  9.     GOTO 6000
  10. %INCLUDE SUBS1
  11. %INCLUDE GENINFO
  12. %INCLUDE BINSEARC
  13. %INCLUDE READVEND
  14. %INCLUDE A/P-INFO
  15.  
  16.  
  17. 825    REMARK     *********     TOP OF FORM AND REPORT HEADINGS SUBROUTINE     *********
  18.     IF LINE.COUNT% <55 AND PAGE.COUNT%>0  THEN RETURN        REMARK    IF NOT TOP OF NEW PAGE, OR FIRST PAGE, RETURN.
  19.     PAGE.COUNT%=PAGE.COUNT%+1
  20.     PRINT CHR$(12);TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";
  21.     X0=G3(1):GOSUB 680.5                        REMARK    PRINT REPORT DATE FROM GENERAL INFORMATION FILE.
  22.  
  23.     PRINT 
  24.     PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE";PAGE.COUNT%
  25.     PRINT
  26.     PRINT TAB(8);"DATE    INV NO.  DESCRIPTION    AMOUNT   DISCOUNT";
  27.     PRINT "    FREIGHT      TAXES    NET AMT      CHECK NO."    REMARK    PRINT REPORT HEADINGS
  28.          
  29.     PRINT
  30.     LINE.COUNT%=6
  31.     IF W(5) > 0\                            REMARK    IF TOP-OF-PAGE WAS REACHED WHILE PRINTING CHECK DETAIL,
  32.     THEN\                                REMARK    THEN PRINT A MESSAGE TO THAT EFFECT ON THE NEW PAGE.
  33.     PRINT USING MASKD$;W7,:\
  34.     PRINT W1$;"   CONTINUED":\
  35.     LINE.COUNT%=LINE.COUNT%+1
  36.     RETURN 
  37.  
  38.  
  39.  
  40.  
  41. 5000    REMARK    **********       PRINT CHECK HEADER INFORMATION     **********
  42.     X4$="A/P CHECK REGISTER":A1=90:GOSUB 825
  43.     PRINT USING MASKD$;W7                        REMARK    PRINT CHECK REGISTER NUMBER
  44.     PRINT W1$;"   ";M$(2);TAB(55);"DATE ";                REMARK    PRINT VENDOR NUMBER, NAME
  45.     X0=A8:GOSUB 680.5                        REMARK    PRINT CHECK DATE
  46.     PRINT TAB(95);"----------"
  47.     LINE.COUNT%=LINE.COUNT%+1
  48.     RETURN 
  49.  
  50.  
  51.  
  52.  
  53. 5040    REMARK    **********     PRINT CHECK TOTALS     **********
  54.     PRINT TAB(10);
  55.     PRINT USING MASKC$;W9;                        REMARK    PRINT NUMBER OF ITEMS ON CHECK
  56.     PRINT " ITEM";
  57.     IF W9>1  THEN PRINT"S";
  58.     FOR I%=1 TO 5
  59.     IF W(I%)=0 THEN 5080
  60.     PRINT TAB(24+(I%*11));
  61.     PRINT USING MASKB$;W(I%);                    REMARK    PRINT CHECK TOTALS
  62.     W5(I%)=W5(I%)+W(I%)
  63.     W(I%)=0
  64. 5080    NEXT I%
  65.     PRINT:PRINT
  66.     LINE.COUNT%=LINE.COUNT%+2
  67.     RETURN 
  68.  
  69.  
  70.  
  71. 6000    MASKA$="######"
  72.     MASKB$=" #######.##"
  73.     MASKC$="##"
  74.     MASKD$="REGISTER  ######  "
  75.     IF END #3 THEN 6440                        REMARK    EXIT IF THE CHECK FILE IS EMPTY
  76.     OPEN "G/I0F010.DAT" AS 1,"A/P0F110.DAT" RECL 162 AS 2,\
  77.     "A/P0F030.DAT" RECL 86 AS 3, "A/P0F130.DAT" AS 4, "A/P0F030.PST" AS 5
  78.     READ #5;W8
  79.     Y9=1:GOSUB 700                            REMARK    OPEN AND READ GENERAL INFORMATION FILE
  80.     X0=4:GOSUB 3310                            REMARK    GET A/P INFORMATION FILE
  81.     CLOSE 1,4
  82.     DELETE 5
  83.     RECORD.COUNT=AP.VENDFILE.EXTENT
  84.     Y9=2:Y2=Y9
  85.     Y1=3
  86. 6020    CONSOLE
  87.     LINE.COUNT%=66
  88.     PAGE.COUNT%=0
  89.     PRINT CLEAR.SCREEN$;"A/P CHECK REGISTER"
  90.     PRINT:PRINT:PRINT:PRINT"FIRST CHECK REG. #"
  91.     PRINT "LAST CHECK REG. #"
  92. 6060    X1=275:X2=6:X3=0:X4=999999:GOSUB 345                REMARK    ENTER FIRST CHECK REGISTER NUMBER
  93.     IF X0=0 THEN 6440                        REMARK    IF FIRST CHECK REGISTER NUMBER IS ZERO,\
  94.                                         EXIT THE PROGRAM.
  95.     F=X0
  96.     X1=339:X2=6:X3=F:X4=999999:GOSUB 345                REMARK    ENTER LAST CHECK REGISTER NUMBER TO INCLUDE
  97.     E=X0
  98. 6080    X2=1:X3=0:X4=1:X2$="ENTRY CORRECT?":GOSUB 665
  99.     IF X0 <> 1 THEN 6060                        REMARK    IF '1' WAS NOT ENTERED (I.E., INCORRECT ENTRY),\
  100.                                         THEN RE-START ENTRY OF CHECK REGISTER NUMBERS.
  101.     LPRINTER WIDTH 131
  102.     CHECKS%=0
  103.     IF END #3 THEN 6360                        REMARK    IF END OF CHECK FILE, BRANCH TO TOTALS
  104. 6120    CHECKS%=CHECKS%+1
  105.     READ #3,CHECKS%; W1$,W7,W5,A8,W9                REMARK    READ CHECK HEADER RECORD
  106.     IF W7 > E THEN 6360                        REMARK    IF REGISTER NUMBER IS PAST PRINT RANGE,\
  107.                                         THEN BRANCH TO THE TOTALS ROUTINE.
  108.     IF W7 < F \                            REMARK    IF REGISTER NUMBER IS BELOW RANGE,
  109.     THEN\                                REMARK    ADVANCE FILE POINTER TO NEXT CHECK HEADER RECORD.
  110.     CHECKS%=CHECKS%+W9:GOTO 6120
  111.  
  112. 6125    XYZ$=W1$+"      "
  113.     K$=LEFT$(XYZ$,6)
  114.     GOSUB 1060                            REMARK    SEARCH FOR VENDOR RECORD
  115.     IF H = -1 OR VAR1=0 THEN M$(2)="NOT ON FILE" \            REMARK    IF RECORD NOT FOUND, SET VENDOR NAME TO ERROR MESSAGE.
  116.     ELSE X0=L:GOSUB 3200
  117.     GOSUB 5000
  118. 6240    FOR B%=1 TO W9
  119.     CHECKS%=CHECKS%+1
  120.     READ #3,CHECKS%; W2$,W1%,D8,W0,W2(1),W2(2),W2(3),W2(4)        REMARK    READ CHECK DETAIL RECORD
  121.     X4$="A/P CHECK REGISTER":A1=90:GOSUB 825            REMARK    PRINT REPORT HEADING IF FIRST RECORD OR END OF PAGE.
  122.  
  123. 6250    PRINT TAB(7);
  124.     X0 = D8:GOSUB 680.5
  125.     PRINT TAB(17);
  126.     PRINT USING MASKA$;W0;                        REMARK    PRINT INVOICE NUMBER
  127. 6260    PRINT TAB(26);W2$;
  128.     FOR J% = 1 TO 4
  129.     IF W2(J%) = 0 THEN 6280
  130.     PRINT TAB(24+J%*11);
  131.     PRINT USING MASKB$;W2(J%);                    REMARK    PRINT DETAIL AMOUNT FIELD
  132.     W(J%) = W(J%)+W2(J%)                        REMARK    ADD DETAIL AMOUNTS TO CHECK TOTALS
  133.     W(5) = W(5)+W2(J%)
  134. 6280    NEXT J%
  135.     PRINT TAB(79);
  136.     PRINT USING MASKB$;W2(1)+W2(2)+W2(3)+W2(4);
  137.     IF W1% = 4  THEN PRINT " CR";                    REMARK    IF CREDIT MEMO, PRINT "CR"
  138.     PRINT 
  139.     LINE.COUNT%=LINE.COUNT%+1
  140.     NEXT B%
  141.     GOSUB 5040
  142.     GOTO 6120
  143. 6360    PRINT:PRINT:PRINT "TOTALS";
  144.     FOR I%=1 TO 5
  145.     PRINT TAB(24+(I%*11));
  146.     PRINT USING MASKB$;W5(I%);                    REMARK    PRINT CHECK REGISTER TOTALS
  147.     NEXT I%
  148.     PRINT 
  149. 6380    PRINT:PRINT:PRINT"G/L P0STINGS OF LATEST CHECK RUN"
  150.     PRINT "TOTAL AMOUNT ";
  151.     PRINT USING MASKB$;W8;
  152. 6420    PRINT "  POSTED TO CASH & A/P"
  153.     GOTO 6020
  154. 6440    CONSOLE
  155.     PRINT CLEAR.SCREEN$;"A/P CHECK REGISTER LOADING MENU"
  156.     CHAIN "A/P000"
  157.