home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug043.ark / A_P02B.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  5.1 KB  |  193 lines

  1.  
  2.  
  3.     REMARK    #########################################################
  4.     REMARK    #    ACCOUNTS PAYABLE TRANSACTION PRINT   (A/P02B)    #
  5.     REMARK    #       VERS. OF 10.00 AM    6/19/79            #
  6.     REMARK    #########################################################
  7.     DIM G3(5),G2$(5),M$(5),B1(6),B(6,5),C(27),D(27),P(6)
  8.     DEF FNF(X9%)=X9%-INT(X9%/10)*10                    REMARK    STRIP OFF TENS DIGIT
  9. %INCLUDE CURSOR
  10.     GOTO 6000
  11. %INCLUDE SUBS1
  12. %INCLUDE GENINFO
  13. %INCLUDE READINV
  14. %INCLUDE A/P-INFO
  15.     DATA "INVOICE","DELETE","MODIFY","CR MEMO","DB MEMO"
  16.     DATA "NEW","DEL","MOD"
  17.  
  18.  
  19. 825    IF LINE.COUNT%<55 AND PAGE.COUNT%>0 THEN RETURN            REMARK    LINE PRINTER ROUTINE
  20.     PAGE.COUNT%=PAGE.COUNT%+1
  21.     PRINT CHR$(12);
  22.     PRINT TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";
  23.     X0=G3(1):GOSUB 680.5
  24.     PRINT
  25.     PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE";PAGE.COUNT%
  26.     PRINT
  27.     PRINT "R#  VENDOR     INV    DESCR    BUYER CK REG  INV DATE ";
  28.     PRINT "PAY DATE     AMOUNT   DISCOUNT    FREIGHT      TAXES      TOTAL"
  29.     PRINT
  30.     LINE.COUNT%=6
  31.     RETURN
  32.  
  33.  
  34. 5000    PRINT TAB(6);"AMT";                        REMARK    PRINT G/L OR JOB DISTRIBUTION
  35.     FOR I%=I1% TO I2%
  36.     IF C(I%)<>0 THEN PRINT USING MASKB$;C(I%);
  37.     NEXT I%
  38.     PRINT 
  39.     LINE.COUNT%=LINE.COUNT%+2
  40.     RETURN 
  41.  
  42.  
  43.  
  44. 6000    MASKA$="###"                            REMARK    START OF MAIN PROGRAM
  45.     MASKB$=" #######.##"
  46.     MASKC$="    #####.#"
  47.     MASKD$="     ######"
  48.     MASKE$="######"
  49.     OPEN "CRT" RECL 1100 AS 19, "G/I0F010.DAT" AS 3, "A/P0F130.DAT" AS 1,\
  50.     "A/P0F020.DAT" RECL 580 AS 5
  51.     Y9=3: GOSUB 700                            REMARK    RETRIEVE GENERAL INFORMATION FILE DATA
  52.     X0=1: GOSUB 3310                        REMARK    RETRIEVE A/P INFORMATION FILE DATA
  53.     IF TRANSACTION.RCD.COUNT%=0 THEN \
  54.         PRINT CLEAR.SCREEN$;:\
  55.         X2$="NO TRANSACTIONS ON FILE":\
  56.         GOSUB 615:\
  57.         GOTO 6220
  58.     X9=5
  59.     X0=5:GOSUB 260                            REMARK    DISPLAY REPORT OPTIONS MASK
  60. 6010    FOR I%=1 TO 6                            REMARK    ZERO REPORT TOTALS
  61.     B1(I%)=0
  62.     FOR J%=1 TO 5
  63.     B(I%,J%)=0
  64.     NEXT J%,I%
  65.     X1=269:X2=1:X3=0:X4=2:GOSUB 345                    REMARK    ENTER REPORT TYPE
  66.     IF X0=0 THEN 6220
  67.     S=X0
  68.     X1=333:X2=1:X3=0:X4=5:GOSUB 345                    REMARK    ENTER REPORT GROUP
  69.     G=X0
  70.     X1=408:X2=3:X3=1:X4=999:GOSUB 345                REMARK    ENTER START RECORD NUMBER
  71.     F=X0
  72.     X1=472:X2=3:X3=F:X4=999:GOSUB 345                REMARK    ENTER END RECORD NUMBER
  73.     F2=X0
  74.     IF F2>TRANSACTION.RCD.COUNT% THEN F2=TRANSACTION.RCD.COUNT%
  75.     X1=586:X2=1:X3=0:X4=1:GOSUB 345                    REMARK    VERIFY OPTIONS ENTRY
  76.     IF X0<>1THEN 6010
  77.     LINE.COUNT%=60
  78.     B0=1
  79.     PAGE.COUNT%=0
  80.     LPRINTER
  81.  
  82.  
  83.     FOR TRANSACTION.INDEX%=F TO F2                    REMARK    START PRINT LOOP
  84.     FILE.NO=5:X0%=TRANSACTION.INDEX%:GOSUB 3000            REMARK    RETRIEVE TRANSACTION RECORD
  85.     IF W2%=1 THEN W3%=W1% \                        REMARK    SET COMPOSITE TRANSACTION TYPE AND OPERATION
  86.     ELSE W3%=W2%
  87.     IF G<>0 AND G<>FNF(W3%) THEN 6180                REMARK    CHECK TRANSACTION FOR PROPER GROUP
  88.     B0=FNF(W3%)
  89.     IF W3%=2 OR W3%=4 THEN \                    REMARK    ACCUMULATE TRANSACTION TO TOTALS
  90.     B(B0,1)=B(B0,1)-C(23):\
  91.     B(B0,5)=B(B0,5)-C(23)\
  92.     ELSE\
  93.     FOR I%=1 TO 4:\
  94.     B(B0,I%)=B(B0,I%)+C(22+I%):\
  95.     B(B0,5)=B(B0,5)+C(22+I%):\
  96.     NEXT I%
  97.     B1(B0)=B1(B0)+1
  98.     IF S=2 THEN 6180                        REMARK    IF REQUESTED, PRINT TRANSACTION DETAIL
  99.     X4$="A/P TRANSACTIONS":A1=115:GOSUB 825
  100.     PRINT USING MASKA$;TRANSACTION.INDEX%;
  101.     PRINT " ";W1$;TAB(13);
  102.     PRINT USING MASKE$;W0;
  103.     PRINT TAB(22);W2$;TAB(34);W3$;TAB(37);
  104.     PRINT USING MASKE$;D(25);
  105.     PRINT TAB(46);
  106.     X0=D(23):GOSUB 680.5
  107.     PRINT TAB(55);
  108.     X0=D(24):GOSUB 680.5
  109.     PRINT TAB(63);
  110.     PRINT USING MASKB$;C(23);C(24);C(25);C(26);C(23)+C(24)+C(25)+C(26);
  111.     RESTORE
  112.     FOR I%=1 TO FNF(W2%)+5
  113.     READ X0$
  114.     NEXT I%
  115.     PRINT " ";X0$;" ";
  116.     RESTORE
  117.     FOR I%=1 TO W1%
  118.     READ X0$
  119.     NEXT I%
  120.     PRINT X0$;
  121.     IF W2%>=10 THEN PRINT "*";
  122.     PRINT 
  123.     PRINT "   G/L #";
  124.     FOR I%=1 TO 11
  125.     IF C(I%)<>0 THEN PRINT USING MASKC$;D(I%);
  126.     NEXT I%
  127.     PRINT 
  128.     I1%=1:I2%=11:GOSUB 5000
  129.     IF C(12)=0 THEN 6170
  130.     PRINT "   JOB #";
  131.     FOR I%=12 TO 22
  132.     IF C(I%)<>0 THEN PRINT USING MASKD$;D(I%);
  133.     NEXT I%
  134.     PRINT 
  135.     I1%=12:I2%=22:GOSUB 5000
  136. 6170    PRINT 
  137.     LINE.COUNT%=LINE.COUNT%+2
  138. 6180    NEXT TRANSACTION.INDEX%
  139.  
  140.     LINE.COUNT%=LINE.COUNT%+14-11*SGN(G)                REMARK    PRINT TOTALS
  141.     X4$="A/P TRANSACTION REPORT":A1=115:LINE.COUNT%=60:GOSUB 825
  142.     IF G<>0 THEN B0=G:GOTO 6330
  143. 6190    PRINT:PRINT:PRINT"TOTALS";                    REMARK    PRINT TOTALS FOR ALL GROUPS
  144.     B3=0
  145.     RESTORE 
  146.     FOR B0=1 TO 5
  147.     READ X0$
  148.     PRINT TAB(11);
  149.     PRINT USING MASKA$;B1(B0);
  150.     PRINT "  ";X0$;" TRANSACTIONS";TAB(63);
  151.     B3=B3+B1(B0)
  152.     FOR I%=1 TO 5
  153.     PRINT USING MASKB$;B(B0,I%);
  154.     B(6,I%)=B(6,I%)+B(B0,I%)
  155.     NEXT I%
  156.     PRINT 
  157.     NEXT B0
  158.     PRINT:PRINT:PRINT"TOTAL";TAB(11);
  159.     PRINT USING MASKA$;B3;
  160.     PRINT "  TRANSACTIONS";
  161.     PRINT TAB(63);
  162.     FOR I%=1 TO 5
  163.     PRINT USING MASKB$;B(6,I%);
  164.     NEXT I%
  165.     PRINT 
  166.     PRINT 
  167.     PRINT "BEGINNING REC #",
  168.     PRINT USING MASKD$;F
  169.     PRINT "ENDING    REC #",
  170.     PRINT USING MASKD$;F2
  171.     PRINT "TOTAL  IN  FILE",
  172.     PRINT USING MASKD$;TRANSACTION.RCD.COUNT%
  173.     PRINT
  174.     GOTO 6010
  175.  
  176.  
  177. 6220    CONSOLE                                REMARK    END PROGRAM
  178.     PRINT CLEAR.SCREEN$;"A/P TRANSACTION PRINT LOADING MENU"
  179.     CHAIN"A/P000"                            REMARK    LOAD MENU
  180.  
  181.  
  182.  
  183. 6330    PRINT:PRINT"  TOTAL";TAB(11);                    REMARK    PRINT TOTALS FOR ONE GROUP ONLY
  184.     PRINT USING MASKA$;B1(B0);
  185.     RESTORE
  186.     FOR I%=1 TO B0
  187.     READ X0$
  188.     NEXT I%
  189.     PRINT "  ";X0$;" TRANSACTIONS";TAB(63);
  190.     PRINT USING MASKB$; B(B0,1);B(B0,2);B(B0,3);B(B0,4);B(B0,5)
  191.     PRINT:PRINT
  192.     GOTO 6010
  193.