home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / db3chk21.zip / CHKREG.PRG < prev    next >
Text File  |  1987-05-25  |  6KB  |  195 lines

  1. *  CHKREG.PRG
  2. *  This program uses a Lotus 1-2-3 file, CITI.WK1, to manipulate the
  3. *  information in the check register.
  4. *      Will print the register in check number order
  5. *      Will sort the register on the following fields:
  6. *          Ref-no, Date, Payee, Memo
  7.  
  8. SET PROCEDURE TO SCREENS
  9.  
  10. USE CHECK
  11. STORE "S" TO MDEVICE
  12. STORE 7 TO MSELECT
  13. STORE 0 TO MLINE, MBALANCE
  14. STORE SPACE(20) TO MPAYEE
  15. STORE SPACE(19) TO MMEMO
  16. SUM DEPOSITS - CHECKS FOR OS = 1 TO MOUTST     && CALC O/S CHECKS
  17. SET DELETE ON
  18. DO WHILE .T.
  19.    CLEAR
  20.    DO MENUDRAW
  21.  
  22.    @ 3,20 SAY "     Check Register Printout & Analysis                    "
  23.    @ 6,5  SAY "    1) Print Register in Date Order                                 "
  24.    @  7,5 SAY "    2) Print Register in Check Number Order                         "
  25.    @  8,5 SAY "    3) Print Register by Payee                                      "
  26.    @  9,5 SAY "    4) Print Register by Category                                   "
  27.    @ 10,5 SAY "    5) Print a Payee Extract                               "
  28.    @ 11,5 SAY "    6) Print a Category Extract                            "
  29.    @ 13,5 SAY "    7) Exit To Main Menu                                   "
  30.    @ 19,5 SAY "    Enter Selection  " GET MSELECT PICTURE "9" RANGE 1,7
  31.    READ
  32.    CLEAR
  33.  
  34.    IF MSELECT = 7
  35.       EXIT
  36.    ENDIF
  37.  
  38.    IF MSELECT = 5
  39.       @ 5,5 SAY " Enter Payee to Extract " GET MPAYEE PICTURE "@!"
  40.       READ
  41.       DELETE ALL FOR .NOT. TRIM(MPAYEE) $PAYEE
  42.    ENDIF
  43.  
  44.    IF MSELECT = 6
  45.       @ 5,5 SAY "Enter Category to Extract " GET MMEMO PICTURE "@!"
  46.       READ
  47.       DELETE ALL FOR .NOT. TRIM(MMEMO) $MEMO
  48.    ENDIF
  49.  
  50.    && RANGE SELECTION ROUTINE
  51.    MBEGIN = "01/01/86"
  52.    EDATE = "12/31/87"
  53.  
  54.    CLEAR
  55.    @ 11,3 TO 15,70
  56.    @ 12,5 SAY "Begining date (enter as MM/DD/YY)" GET MBEGIN PICTURE "99/99/99"
  57.    @ 14,5 SAY "Ending date   (enter as MM/DD/YY)" GET EDATE PICTURE "99/99/99"
  58.    CLEAR TYPEAHEAD
  59.    READ
  60.    CLEAR
  61.  
  62.    @ 10,3 TO 14,70
  63.    @ 12,15 SAY "Output to the (S)creen or (P)rinter ? " GET MDEVICE picture "!"
  64.    READ
  65.    CLEAR
  66.    @ 10,3 TO 14,70
  67.    @ 12,15 SAY " Processing Occurring . . . Please Wait   "
  68.  
  69.    IF MDEVICE <> "P" .AND. MDEVICE <> "S"
  70.       MDEVICE = "S"
  71.    ENDIF
  72.  
  73.    SUM (DEPOSITS-CHECKS) FOR DATE < CTOD(MBEGIN) TO MBALANCE   && }to get prior period's balance
  74.    SET FILTER TO DATE >= CTOD(MBEGIN) .AND. DATE <= CTOD(EDATE)
  75.  
  76.    SET ESCAPE OFF
  77.    SET SAFETY OFF
  78.    IF MSELECT = 1 .OR. MSELECT = 5 .OR. MSELECT = 6
  79. *      SET INDEX TO DATE,REF,PAYEE,MEMO
  80.        SORT ON DATE,REF,PAYEE TO CHECKTMP
  81.    ENDIF
  82.    IF MSELECT = 2
  83. *      SET INDEX TO REF,DATE,PAYEE,MEMO
  84.        SORT ON REF, DATE, PAYEE TO CHECKTMP
  85.    ENDIF
  86.    IF MSELECT = 3
  87. *      SET INDEX TO PAYEE,DATE,REF,MEMO
  88.        SORT ON PAYEE, DATE, REF TO CHECKTMP
  89.    ENDIF
  90.    IF MSELECT = 4
  91. *      SET INDEX TO MEMO,DATE,REF,PAYEE
  92.        SORT ON MEMO, DATE, REF, PAYEE TO CHECKTMP
  93.    ENDIF
  94.  
  95.    SET DELETE OFF
  96.    RECALL ALL
  97.    SET ESCAPE TO RETURN
  98.    SET SAFETY ON
  99.    USE CHECKTMP
  100.    CLEAR
  101.    DO WHILE .NOT. EOF()
  102.       IF MDEVICE = "P"
  103.          SET PRINT ON
  104.          IF MLINE = 0
  105.             IF MSELECT = 3 .OR. MSELECT = 4 .OR. MSELECT = 5 .OR. MSELECT = 6
  106.                ? "                                                                  ",DATE()
  107.                ? " REF  DATE   O/S       PAYEE / MEMO         DEPOSITS       CHECKS "
  108.                ?
  109.             ENDIF
  110.             IF MSELECT = 1 .OR. MSELECT = 2
  111.                ? "                                                                  ",DATE()
  112.                ? " REF  DATE   O/S       PAYEE / MEMO         DEPOSITS       CHECKS       BALANCE"
  113.                ?
  114.             ENDIF
  115.          ENDIF
  116.          MLINE = MLINE + 2              && LINE COUNTER FOR FORM FEED
  117.          IF MLINE > 60                  && FORMFEED
  118.             EJECT                       &&
  119.             ? " REF  DATE   O/S       PAYEE / MEMO        DEPOSITS        CHECKS       BALANCE"
  120.             ?
  121.             MLINE = 1                   &&
  122.          ENDIF
  123.       ENDIF
  124.  
  125.       MBALANCE = MBALANCE + DEPOSITS - CHECKS
  126.       IF MSELECT <> 1 .AND. MSELECT <> 2
  127.          ? REF, DATE, OS, PAYEE, DEPOSITS, CHECKS
  128.          ? "                     ",MEMO
  129.       ENDIF
  130.       IF MSELECT = 1 .OR. MSELECT = 2
  131.          ? REF, DATE, OS, PAYEE, DEPOSITS, CHECKS, MBALANCE
  132.          ? "                     ",MEMO
  133.       ENDIF
  134.       SKIP
  135.    ENDDO
  136.  
  137.    IF MSELECT <> 5 .AND. MSELECT <> 6
  138.       IF MLINE >56
  139.          EJECT
  140.       ENDIF
  141.       ?
  142.       ?
  143.       ? "Balance per Check Register (Your Balance)  =                    $",STR(MBALANCE,9,2)
  144.       ?
  145.       ? "Balance per Bank (Your balance less items O/S)                  $",STR(MBALANCE-MOUTST,9,2)
  146.       ?
  147.    ENDIF
  148.    IF MDEVICE = "P"    && TO HOLD PREVIOUS SELECTION
  149.       EJECT
  150.       STORE "P" TO MDEV
  151.    ENDIF
  152.    IF MDEVICE = "S"
  153.       STORE "S" TO MDEV
  154.    ENDIF
  155.    SET PRINT OFF
  156.    CLEAR TYPEAHEAD
  157.    ACCEPT "Do you want to print the outstanding checks ? " TO MPRINTCKS
  158.    IF MDEV = "P"
  159.       SET PRINT ON
  160.    ENDIF
  161.    IF MPRINTCKS = "Y" .OR. MPRINTCKS = "y"
  162.       USE CHECK  && NEED ALL TRANSACTIONS AVAILABLE
  163.       GO TOP
  164.       ? "                  Outstanding Checks as of             ",DATE()
  165.       ?
  166.       DO WHILE .NOT. EOF()
  167.          IF OS = 1
  168.             ? REF, DATE, OS, PAYEE, DEPOSITS, CHECKS
  169.             ? "                     ",MEMO
  170.          ENDIF
  171.          SKIP
  172.       ENDDO
  173.       ? "                                                          ======="
  174.       ? "Total checks outstanding                           ", MOUTST
  175.    ENDIF
  176.  
  177.    IF MDEVICE = "P"
  178.       EJECT
  179.    ENDIF
  180.    SET PRINT OFF
  181.    MDEVICE = "S"
  182.    CLEAR TYPEAHEAD
  183.    WAIT
  184.    CLEAR
  185.    @ 11,3 TO 13,70
  186.    @ 12,8 SAY "       Closing Files . . . Please Wait "
  187.    CLOSE DATABASES
  188.    USE CHECK         && RETURN TO MASTER FILE
  189.  
  190.    MSELECT = 7
  191.    CLEAR
  192. ENDDO
  193.  
  194. RETURN
  195.