home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / manage1.zip / JOURP.PRG < prev    next >
Text File  |  1986-06-01  |  16KB  |  553 lines

  1. **    Last revision: April 6, 1986 at 15:54
  2. * program to print out or display journals
  3. CLEA
  4. STOR '99' TO build1
  5. STOR .t. TO maybe
  6. STOR 'N' TO answer
  7. STOR 'Y' TO printer
  8. STOR 'N' TO disk
  9. STOR '        ' TO filename
  10. STOR '?' TO select
  11. STOR .t. TO more
  12. DO WHIL more
  13.  IF clipper
  14.   @ 0,0, 22, 79 BOX frame
  15.   @ 4,1 SAY line1
  16.   @ 19,1 SAY line1
  17.  ELSE
  18.   @ 0,0 TO 4,79
  19.   @ 0,0 TO 19,79
  20.   @ 0,0 TO 22,79 DOUBLE
  21.  ENDI
  22.  @ 20,5 SAY 'Please select one of the above options. You may also leave this menu'
  23.  @ 21,5 SAY "by typing 'Q' and get on-line HELP by typing '?'."
  24.  @ 2,04 SAY dconame + '  -  ACCOUNTING REPORT MENU'
  25.  @ 2,65 SAY DTOC(DATE())
  26.  @ 7,27 SAY "A. Cash Receipts Journal"
  27.  @ 8,27 SAY "B. Cash Disbursements Journal"
  28.  @ 9,27 SAY "C. General Journal"
  29.  @ 10,27 SAY "D. General Ledger"
  30.  @ 11,27 SAY "E. Display records on screen"
  31.  @ 12,27 SAY "F. Reindex"
  32.  @ 13,27 SAY "G. Return to Main Menu"
  33.  @ 17,23 SAY "PLEASE SELECT ONE OF THE OPTIONS"
  34.  @ 17,58 GET select PICTURE '!'
  35.  READ
  36.  DO WHIL AT(select, 'ABCDEFG?Q') = 0
  37.   STOR '?' TO select
  38.   @ 17,58 GET select PICTURE '!'
  39.   READ
  40.  ENDD
  41.  CLEA GETS
  42.  IF select >='A' .AND. select <  'E'
  43. * select building
  44.   @ 17,01 SAY SPACE(75)
  45.   @ 17,01 SAY "          What building shall we do ('99' for all) ?    "
  46.   @ 17,60 GET build1 PICTURE '99'
  47.   READ
  48. * get a starting  point
  49.   STOR '00/00/00' TO stdat
  50.   @ 17,01 SAY SPACE(75)
  51.   @ 17,01 SAY '          What is the starting date (MM/DD/YY) ?  '
  52.   @ 17,57 GET stdat PICTURE '99/99/99'
  53.   READ
  54.   STOR SUBSTR(stdat,7,2)+SUBSTR(stdat,1,2)+SUBSTR(stdat,4,2) TO stday
  55.   STOR VAL(stday) TO stdate
  56.   RELE stday
  57.   STOR DTOC(date()) TO enddat
  58.   @ 18,01 SAY '          What is the cutoff date for entries?   '
  59.   @ 18,57 GET enddat PICTURE '99/99/99'
  60.   READ
  61.   STOR SUBSTR(enddat,7,2)+SUBSTR(enddat,1,2)+SUBSTR(enddat,4,2) TO endday
  62.   STOR VAL(endday) TO enddate
  63.   RELE endday
  64.   @ 17,01 SAY SPACE(75)
  65.   @ 18,01 SAY SPACE(75)
  66.   STOR LEN(dconame)/2  TO L
  67.   STOR 40-L TO L
  68.   STOR '                                        ' TO bl
  69.   STOR SUBSTR(bl,1,L) + dconame TO coname1
  70.   RELE L, bl
  71.   @ 17,01 SAY "          Send Report to the Printer (Y/N)  "
  72.   @ 18,01 SAY SPACE(75)
  73.   @ 17,55 GET printer PICTURE '!'
  74.   READ
  75.   @ 18,01 SAY "          Send Report to a Disk File (Y/N) "
  76.   @ 18,55 GET disk PICTURE '!'
  77.   READ
  78.   IF disk ='Y'
  79.    @ 17,01 SAY SPACE(75)
  80.    @ 18,01 SAY SPACE(75)
  81.    @ 17,01 SAY "                    Enter Disk File Name    "
  82.    @ 18,01 SAY SPACE(75)
  83.    @ 17,44 GET filename PICTURE '!!!!!!!!'
  84.    @ 17,54 SAY "(.TXT will be added )"
  85.    READ
  86.    @ 18,01 SAY '                    Select drive to put Files on    '
  87.    @ 18,55 GET dr PICTURE '!'
  88.    READ
  89.    DO WHIL AT(dr,'ABCD') = 0
  90.     @ 18,55 GET dr PICTURE '!'
  91.     READ
  92.    ENDD while @
  93.   ENDI disk = Y
  94.   IF printer = 'Y'
  95.    @ 17,01 SAY SPACE(75)
  96.    @ 18,01 SAY SPACE(75)
  97.    @ 17,01 SAY '        MAKE PRINTER READY AND THEN HIT ANY KEY       '
  98.    SET CONSOLE OFF
  99.    WAIT
  100.    SET CONSOLE ON
  101.    SET print ON
  102.   ENDI printer = Y
  103.   IF disk = 'Y' .AND. filename <> ' '
  104. * make a proper REPORT file name that is of type TXT
  105.    STOR AT('.',filename) TO length
  106.    IF length = 0 .OR. length > 8
  107.     STOR 9 TO length
  108.    ENDI length
  109.    STOR SUBSTR(filename,1,length-1) TO filename
  110.    STOR '&dr.:'+filename+'.TXT' TO filename
  111.    SET ALTERNATE TO &filename
  112.    SET ALTERNATE ON
  113.   ENDI disk = Y and filename <> ''
  114.  ENDI select
  115.  CLEA
  116.  CLEA GETS
  117.  DO CASE
  118.  CASE select = 'A'
  119.   CLOS INDEX
  120.   GO TOP
  121. * initialize variables
  122.   STOR 0 TO pageno
  123.   STOR 0 TO counter
  124.   STOR 0 TO mamount
  125.   STOR 0 TO amt
  126.   STOR .t. TO more1
  127.   SET MARGIN TO 3
  128.   DO WHIL more1
  129. * do page counter etc
  130.    STOR pageno + 1 TO pageno
  131.    STOR 4 TO lineno
  132.    CLEA
  133.    ? '  '
  134. * and write TITLE
  135.    IF pageno = 1
  136.     ? coname1
  137.     ? '                              CASH RECEIPTS JOURNAL'
  138.     ? ' '
  139.     ? 'Report of ' +DTOC(date()) + '.                  ' + 'Covering period ' +stdat  + ' to   ' + enddat
  140.     STOR lineno + 4 TO lineno
  141.    ENDI pageno = 1
  142.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  143.    ? '  Date    Check #'+'  Payor/Description '+ '     Account  Prop   ' + '  ' + 'Amount'
  144.    ? "----------------------------------------------------------------------------"
  145.    ? ' '
  146. * now fill up rest of page to 50 lines with entries
  147.    DO WHIL lineno < 50
  148. * now do a page if not end of file
  149.     IF .NOT. EOF()
  150.      STOR VAL(date) TO stdate1
  151.      IF (build1 = '99' .OR. build1 = SUBSTR(data,5,2)).AND.((stdate1 >= stdate .AND. stdate1 <= enddate) .AND. SUBSTR(data,40,1) = 'R')
  152.       STOR SUBSTR(date,3,2)+'/'+SUBSTR(date,5,2)+'/'+SUBSTR(date,1,2)+'     ' TO m1
  153.       IF SUBSTR(data,5,2) = '00'
  154.        STOR '  ' TO prop
  155.       ELSE
  156.        STOR SUBSTR(data,5,2) TO prop
  157.       ENDI
  158.       ? m1+SUBSTR(data,1,4)+'  '+SUBSTR(data,12,20)+'     '+SUBSTR(data,7,4) + '     ' + prop+'   ' + STR(amount,12,2)
  159.       STOR mamount + amount TO mamount
  160.       SKIP
  161.       IF amount < 0
  162.        STOR amount*-1 TO amt
  163.       ELSE
  164.        STOR amount TO amt
  165.       ENDI amount
  166.       ? '                   '+SUBSTR(data,12,20)+'     '+SUBSTR(data,7,4) + '                 ' + STR(amt,12,2)
  167.       ? ' '
  168.       STOR lineno +3 TO lineno
  169.       SKIP
  170.      ELSE
  171.       SKIP
  172.      ENDI (stdate1)
  173.     ELSE
  174.      ? ' '
  175.      ? '                       TOTAL RECEIPTS FOR THIS PERIOD:  '  + STR(mamount,12,2)
  176.      ? ' '
  177.      STOR .f. TO more1
  178.      STOR 60 TO lineno
  179.     ENDI not EOF
  180.    ENDD while lineno < 50
  181.   ENDD more1
  182. * if it was on turn it off or add a formfeed
  183.   IF printer = 'Y'
  184.    EJEC
  185.    SET PRINT OFF
  186.   ENDI
  187.   IF disk = 'Y'
  188.    ? CHR(12)
  189.   ENDI 
  190.   SET ALTERNATE OFF
  191.   ? '                                           Hit any key to continue'
  192.   SET CONSOLE OFF
  193.   WAIT
  194.   SET CONSOLE ON
  195.   CLEA
  196.   SET MARGIN TO
  197.   STOR 'Y' TO printer
  198.   STOR 'N' TO disk
  199.   STOR '99' TO build1
  200.   STOR '        ' TO filename
  201.   STOR '?' TO select
  202.  CASE select = 'B'
  203.   CLOS INDEX
  204.   GO TOP
  205. * initialize variables
  206.   STOR 0 TO pageno
  207.   STOR 0 TO counter
  208.   STOR 0 TO mamount
  209.   STOR 0 TO amt
  210.   STOR .t. TO more1
  211.   SET MARGIN TO 3
  212.   DO WHIL more1
  213. * do page counter etc
  214.    STOR pageno + 1 TO pageno
  215.    STOR 4 TO lineno
  216.    CLEA
  217.    ? '  '
  218. * and write TITLE
  219.    IF pageno = 1
  220.     ? coname1
  221.     ? '                           CASH DISBURSEMENTS JOURNAL'
  222.     ? ' '
  223.     ? 'Report of ' +DTOC(date()) + '.                  ' + 'Covering period ' +stdat  + ' to   ' + enddat
  224.     STOR lineno + 4 TO lineno
  225.    ENDI pageno = 1
  226.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  227.    ? '  Date    Check #'+'  Payee/Description '+ '     Account    Prop   ' + '  ' + 'Amount'
  228.    ? "----------------------------------------------------------------------------"
  229.    ? ' '
  230. * now fill up rest of page to 50 lines with entries
  231.    DO WHIL lineno < 50
  232. * now do a page if not end of file
  233.     IF .NOT. EOF()
  234.      STOR VAL(date) TO stdate1
  235.      IF (build1 = '99' .OR. build1 = SUBSTR(data,5,2)).AND.((stdate1 >= stdate .AND. stdate1 <= enddate) .AND. SUBSTR(data,40,1) = 'D')
  236.       STOR SUBSTR(date,3,2)+'/'+SUBSTR(date,5,2)+'/'+SUBSTR(date,1,2)+'     ' TO m1
  237.       IF SUBSTR(data,5,2) = '00'
  238.        STOR '  ' TO prop
  239.       ELSE
  240.        STOR SUBSTR(data,5,2) TO prop
  241.       ENDI $(data)
  242.       ? m1+SUBSTR(data,1,4)+'  '+SUBSTR(data,12,20)+'     '+SUBSTR(data,7,4)+'     '+prop+'  ' + STR(amount,12,2)
  243.       STOR mamount + amount TO mamount
  244.       SKIP
  245.       IF amount < 0
  246.        STOR amount*-1 TO amt
  247.       ELSE
  248.        STOR amount to amt
  249.       ENDI amount
  250.       ? '                   '+SUBSTR(data,12,20)+'     '+SUBSTR(data,7,4)+ '               ' + STR(amt,12,2)
  251.       ? ' '
  252.       STOR lineno +3 TO lineno
  253.       SKIP
  254.      ELSE
  255.       SKIP
  256.      ENDI stdate
  257.     ELSE
  258.      ? ' '
  259.      ? '                         TOTAL DISBURSEMENTS LISTED FOR PERIOD:  ' + STR(mamount,12,2)
  260.      ? ' '
  261.      STOR .f. TO more1
  262.      STOR 60 TO lineno
  263.     ENDI not EOF
  264.    ENDD while lineno < 50
  265.   ENDD more1
  266. * if it was on turn it off
  267.   IF printer = 'Y'
  268.    EJEC
  269.    SET PRINT OFF
  270.   ENDI
  271.   IF disk = 'Y'
  272.    ? CHR(12)
  273.   ENDI
  274.   SET ALTERNATE OFF
  275.   ? '                                           Hit any key to continue'
  276.   SET CONSOLE OFF
  277.   WAIT
  278.   SET CONSOLE ON
  279.   CLEA
  280.   SET MARGIN TO
  281.   STOR 'Y' TO printer
  282.   STOR 'N' TO disk
  283.   STOR '99' TO build1
  284.   STOR '        ' TO filename
  285.   STOR ' ' TO select
  286.  CASE select = 'C'
  287.   CLOS INDEX
  288.   GO TOP
  289. * initialize variables
  290.   STOR 0 TO pageno
  291.   STOR 0 TO counter
  292.   STOR 0 TO amt
  293.   STOR .t. TO more1
  294.   SET MARGIN TO 3
  295.   DO WHIL more1
  296. * do page counter etc
  297.    STOR pageno + 1 TO pageno
  298.    STOR 4 TO lineno
  299.    CLEA
  300.    ? '  '
  301. * and write TITLE
  302.    IF pageno = 1
  303.     ? coname1
  304.     ? '                                 GENERAL JOURNAL'
  305.     ? ' '
  306.     ? 'Report of ' +DTOC(date()) + '.                  ' + 'Covering period ' +stdat  + ' to   ' + enddat
  307.     STOR lineno + 4 TO lineno
  308.    ENDI pageno = 1
  309.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  310.    ? '  Date   ' +  ' Journal   '+' Description ' + '   '+ '      Account Prop   ' + '  ' + '     Amount'
  311.    ? "----------------------------------------------------------------------------"
  312.    ? ' '
  313. * now fill up rest of page to 50 lines with entries
  314.    DO WHIL lineno < 50
  315. * now do a page if not end of file
  316.     IF .NOT. EOF()
  317.      STOR VAL(date) TO stdate1
  318.      IF (build1 = '99' .OR. build1 = SUBSTR(data,5,2)).AND.((stdate1 >= stdate .AND. stdate1 <= enddate) .AND. SUBSTR(data,40,1) = 'J')
  319.       STOR SUBSTR(date,3,2)+'/'+SUBSTR(date,5,2)+'/'+SUBSTR(date,1,2)+'     ' TO m1
  320.       IF SUBSTR(data,5,2) = '00'
  321.        STOR '  ' TO prop
  322.       ELSE
  323.        STOR SUBSTR(data,5,2) TO prop
  324.       ENDI $(data)
  325.       IF amount >= 0
  326.        STOR ' ' TO sp
  327.        STOR amount TO amt
  328.       ELSE
  329.        STOR '           ' TO sp
  330.        STOR amount*-1 TO amt
  331.       ENDI amount
  332.       ? m1+SUBSTR(data,1,4)+'    '+SUBSTR(data,12,20)+' '+SUBSTR(data,7,4)+'     '+prop+ sp + STR(amt,12,2)
  333.       STOR lineno +1 TO lineno
  334.       SKIP
  335.      ELSE
  336.       SKIP
  337.      ENDI stdate
  338.     ELSE
  339.      STOR .f. TO more1
  340.      STOR 60 TO lineno
  341.     ENDI not EOF
  342.    ENDD while lineno < 50
  343.   ENDD more1
  344. * if it was on turn it off
  345.   IF printer = 'Y'
  346.    EJEC
  347.    SET PRINT OFF
  348.   ENDI
  349.   IF disk = 'Y'
  350.    ? CHR(12)
  351.   ENDI
  352.   SET ALTERNATE OFF
  353.   ? '                                           Hit any key to continue'
  354.   SET CONSOLE OFF
  355.   WAIT
  356.   SET CONSOLE ON
  357.   CLEA
  358.   SET MARGIN TO
  359.   STOR 'Y' TO printer
  360.   STOR 'N' TO disk
  361.   STOR '        ' TO filename
  362.   STOR '99' TO build1
  363.   STOR ' ' TO select
  364.  CASE select = 'D'
  365.   SET INDEX TO &dr.:account
  366.   GO TOP
  367. * initialize variables
  368.   STOR 0 TO pageno
  369.   STOR 0 TO counter
  370.   STOR .t. TO more1
  371.   STOR SUBSTR(data,7,4) TO account
  372.   STOR 0 TO amtacct
  373.   STOR 0 TO amt
  374.   SET MARGIN TO 3
  375.   DO WHIL more1
  376. * do page counter etc
  377.    STOR pageno + 1 TO pageno
  378.    STOR 4 TO lineno
  379.    CLEA
  380.    ? '  '
  381. * and write TITLE
  382.    IF pageno = 1
  383.     ? coname1
  384.     ? '                                 GENERAL LEDGER'
  385.     ? ' '
  386.     ? 'Report of ' +DTOC(date()) + '.                  ' + 'Covering period ' +stdat  + ' to   ' + enddat
  387.     STOR lineno + 4 TO lineno
  388.    ENDI pageno = 1
  389.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  390.    ? '  Date   ' + ' ' + '  Journal  '+'             ' + ' Account      Prop   ' + '  ' + '     Amount'
  391.    ? "----------------------------------------------------------------------------"
  392.    ? ' '
  393. * now fill up rest of page to 50 lines with entries
  394.    DO WHIL lineno < 50
  395. * now do a page if not end of file
  396.     IF .NOT. EOF()
  397.      STOR VAL(date) TO stdate1
  398.      IF stdate1 >= stdate .AND. stdate1 <= enddate
  399.       IF SUBSTR(data,40,1) = 'D'
  400.        STOR 'Cash Disburse Jnrl' TO book
  401.       ENDI $(data,40)
  402.       IF SUBSTR(data,40,1) = 'R'
  403.        STOR 'Cash Receipt Jnrl ' TO book
  404.       ENDI $(data,40)
  405.       IF SUBSTR(data,40,1) = 'J'
  406.        STOR 'General Journal   ' TO book
  407.       ENDI $(data,40)
  408.       IF build1 = '99' .OR. build1 = SUBSTR(data,5,2)
  409.        STOR SUBSTR(date,3,2)+'/'+SUBSTR(date,5,2)+'/'+SUBSTR(date,1,2)+'    ' TO m1
  410.        IF SUBSTR(data,5,2) = '00'
  411.         STOR '  ' TO prop
  412.        ELSE
  413.         STOR SUBSTR(data,5,2) TO prop
  414.        ENDI $(data)
  415.        IF amount >= 0
  416.         STOR ' ' TO sp
  417.         STOR amount TO amt
  418.        ELSE
  419.         STOR '           ' TO sp
  420.         STOR amount*-1 TO amt
  421.        ENDI amount
  422.        STOR SUBSTR(data,7,4) TO account1
  423.        IF account1 = account
  424.         STOR amtacct + amount TO amtacct
  425.         ? m1+book+'      '+SUBSTR(data,7,4)+ '         '+prop+sp+STR(amt,12,2)
  426.        ELSE
  427.         ? '                            Balance account ' + account + ' =  ' + STR(amtacct,12,2)
  428.         ? '  '
  429.         ? m1+book+'      '+SUBSTR(data,7,4)+ '         '+prop+sp+STR(amt,12,2)
  430.         STOR amount TO amtacct
  431.         STOR account1 TO account
  432.         STOR lineno + 3 TO lineno
  433.        ENDI account1
  434.        SKIP
  435.        STOR lineno +1 TO lineno
  436.       ELSE
  437.        SKIP
  438.       ENDI build1
  439.      ELSE
  440.       SKIP
  441.      ENDI stdate1
  442.     ELSE
  443.      ? '                            Balance account ' + account + ' =  ' + STR(amtacct,12,2)
  444.      ? ' '
  445.      STOR .f. TO more1
  446.      STOR 60 TO lineno
  447.     ENDI not EOF
  448.    ENDD while lineno < 50
  449.   ENDD more1
  450. * if it was on turn it off
  451.   IF printer = 'Y'
  452.    EJEC
  453.    SET PRINT OFF
  454.   ENDI
  455.   IF DISK = 'Y'
  456.    ? CHR(12)
  457.   ENDI
  458.   SET MARGIN TO
  459.   SET ALTERNATE OFF
  460.   ? '                                           Hit any key to continue'
  461.   SET CONSOLE OFF
  462.   WAIT
  463.   SET CONSOLE ON
  464.   CLEA
  465.   STOR 'Y' TO printer
  466.   STOR 'N' TO disk
  467.   STOR '        ' TO filename
  468.   STOR '99' TO build1
  469.   STOR ' ' TO select
  470.  CASE select = 'E'
  471.   CLEA
  472.   TEXT
  473.  
  474.          Accounting entries can be displayed either in the order 
  475.          they were entered (showing both the debit and credit) or
  476.          in date order further sorted by building and account.
  477.  
  478.          When WAITING hit space bar to continue or ESCape to quit.
  479.  
  480.   ENDT
  481. * get a starting point in file
  482.   STOR 'E' TO sttype
  483.   @ 10,12 SAY 'Shall we display by <E)ntry order or <S)ort order'
  484.   @ 10,63 Get sttype PICTURE '!'
  485.   READ
  486.   DO WHIL AT(sttype,'ES')=0
  487.    @ 10,12 SAY 'Shall we display by <E)ntry order or <S)ort order'
  488.    @ 10,63 Get sttype PICTURE '!'
  489.    READ
  490.   ENDD WHILE @(sttype)
  491.   IF sttype = 'S'
  492.    SET INDEX TO &dr.:account
  493.   ELSE
  494.    CLOS INDEX
  495.    GO TOP
  496.   ENDI sttype
  497. * display selected list
  498.   CLEA
  499.   SET ESCAPE OFF
  500.   DISP NEXT 65000 SUBSTR(date,5,2)+'/'+SUBSTR(date,3,2)+'/'+SUBSTR(date,1,2), SUBSTR(data,1,4), SUBSTR(data,5,2),SUBSTR(data,12,20),SUBSTR(data,7,4),SUBSTR(data,40,1),amount,SUBSTR(data,32,8)
  501.   IF EOF()
  502.    WAIT
  503.   ENDI
  504.   SET ESCAPE ON
  505.   CLEA
  506.   STOR ' ' TO select
  507.  CASE select = '?'
  508.   CLEA
  509.   TEXT
  510.  
  511.  
  512.      A C C O U N T I N G   R E P O R T   M E N U   H E L P   S C R E E N
  513.  
  514.  
  515.      This is a very powerful little module that allows you to print out
  516.      or view the various journals. You also can examine any or all of 
  517.      the original entries via the Display command.  (If you must change
  518.      these entries - the only way to do this in the program is via the  
  519.      Browse command on the Main Accounting menu.)                     
  520.  
  521.      Before you run any of these journal programs - make sure you index.
  522.  
  523.      Financial statements are prepared and printed from the main accounting
  524.      menu.
  525.  
  526.                         ......hit any key to continue
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.   ENDT
  534.   SET CONSOLE OFF
  535.   WAIT
  536.   SET CONSOLE ON
  537.   CLEA
  538.  CASE select = 'F'
  539.   CLEA
  540.   SET TALK ON
  541.   SET ECHO ON
  542.   INDE on SUBSTR(data,7,4) +date+ SUBSTR(data,5,2) to &dr.:account
  543.   SET ECHO OFF
  544.   SET TALK OFF
  545.   CLEA
  546.  CASE select = 'Q' .OR. select = 'G'
  547.   STOR .f. TO more
  548.  ENDC
  549. ENDD WHILE more
  550. SET INDEX TO &dr.:account
  551. STOR .t. TO account
  552. 
  553.