home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / manage1.zip / AMAINT.PRG < prev    next >
Text File  |  1986-05-30  |  13KB  |  417 lines

  1. **    Last revision: April 6, 1986 at 15:54
  2. * amaint.prg accounting maintenance program
  3. STOR .t. TO account1
  4. DO WHIL account1
  5.  STOR '?' to command
  6.  CLEA
  7.  IF clipper
  8.   @ 0,0, 22, 79 BOX frame
  9.   @ 4,1 SAY line1
  10.   @ 19,1 SAY line1
  11.  ELSE
  12.   @ 0,0 TO 4,79
  13.   @ 0,0 TO 19,79
  14.   @ 0,0 TO 22,79 DOUBLE
  15.  ENDI
  16.  @ 20,5 SAY 'Please select one of the above options. You may also leave this menu'
  17.  @ 21,5 SAY "by typing 'Q' and get on-line HELP by typing '?'."
  18.  @ 2,04 SAY dconame + ' -  ACCT MAINTENANCE MENU'
  19.  @ 2,65 SAY DTOC(DATE())
  20.  @ 7,17 SAY "A. Browse accounting records"
  21.  @ 8,17 SAY "B. Close books for the year"
  22.  @ 9,17 SAY "C. Edit, change or index Chart of Accounts"
  23.  @ 10,17 SAY "D. First initialization of program"
  24.  @ 11,17 SAY "E. Change company name or default drive"
  25.  @ 12,17 SAY "F. Reindex accounting records"
  26.  @ 13,17 SAY "G. Return to main accounting menu"
  27.  @ 18,23 SAY "PLEASE SELECT ONE OF THE OPTIONS"
  28.  @ 18,58 GET command PICTURE '!'
  29.  READ
  30.  DO WHIL AT(COMMAND, 'ABCDEFGQ?') = 0
  31.   STOR '?' TO command
  32.   @ 18,58 GET command PICTURE '!'
  33.   READ
  34.  ENDD
  35.  CLEA GETS
  36.  DO CASE
  37.  CASE command = 'A'
  38.   IF .NOT. clipper
  39.    CLOS INDEX
  40.    GO top
  41. * browse thru records
  42.    CLEA
  43.    TEXT
  44.                ***WARNING***  ***WARNING***  ***WARNING*** 
  45.                  Changes made will be written to the File 
  46.  
  47.                  CTRL-C write current record & go down 
  48.                  CTRL-R write current record & go up 
  49.                  CTRL-Z/B pans screen left or right 
  50.                  CTRL-V toggles Insert on or off 
  51.                  CTRL-G Delete character under cursor 
  52.                  CTRL-U Delete or Recall current record 
  53.                  CTRL-Q exit Don't Write Current record 
  54.                  CTRL-W exit and Save all changes 
  55.  
  56.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  57.   BROWSE allows you to change raw accounting data, so please use it with care.
  58.   You can examine the record in either ENTRY order or SORT order. The use of   
  59.   ENTRY order presents both the debit and the credit. You locate a record by  
  60.   the date of posting. Sort order locates by account number. You have to find  
  61.   the corresponding debit or credit separately. In either case, if the record  
  62.   is not found, the program will go to the first record.                   
  63.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  64.  
  65.  
  66.  
  67.    ENDT
  68. * get a starting point in file
  69.    STOR 'E' TO sttype
  70.    @ 22,12 SAY 'Shall we browse by <E)ntry order or <S)ort order'
  71.    @ 22,63 Get sttype PICTURE '!'
  72.    READ
  73.    DO WHIL AT(sttype,'ES')=0
  74.     @ 22,12 SAY 'Shall we browse by <E)ntry order or <S)ort order'
  75.     @ 22,63 Get sttype PICTURE '!'
  76.     READ
  77.    ENDD WHILE @(sttype)
  78.    IF sttype = 'S'
  79.     SET INDEX TO &dr.:account
  80.     STOR '    ' TO mstart
  81.     @ 22,00
  82.     @ 22,12 SAY 'WHAT IS THE STARTING ACCOUNT NUMBER ?'
  83.     @ 22,55 GET mstart PICTURE '9999'
  84.     READ
  85.     SEEK mstart
  86.     IF (EOF() .OR. BOF())
  87.      GO TOP
  88.     ENDI # = 0
  89.    ELSE
  90.     CLOS INDEX
  91.     @ 22,00
  92.     STOR '        ' TO mstar
  93.     @ 22,10 SAY 'WHAT IS THE STARTING DATE (MM/DD/YY) ? '
  94.     @ 22,50 GET mstar PICTURE '99/99/99'
  95.     READ
  96.     STOR SUBSTR(mstar,7,2) + SUBSTR(mstar,1,2) + SUBSTR(mstar,4,2) TO mstart
  97.     LOCA FOR mstart = date
  98.     IF EOF()
  99.      GO TOP
  100.     ENDI EOF
  101.    ENDI sttype
  102. * display selected list
  103.    CLEA
  104. * browse thru file
  105.    SET ESCAPE OFF
  106.     BROW fields date, data, amount, posted
  107.    SET ESCAPE ON
  108.    CLEA
  109.    RELE mstar, mstart
  110.    SET INDEX TO &dr.:account
  111.   ELSE
  112.    CLEAR
  113.    @ 15,17 SAY 'Function not available in Clipper'
  114.    @ 16,17 SAY 'PLEASE HIT ANY KEY TO CONTINUE                    '
  115.    SET CONSOL OFF
  116.    WAIT
  117.    SET CONSOL ON
  118.   ENDI
  119.   LOOP
  120.  CASE command = 'B'
  121.   CLEA
  122.   STOR 'N' TO option
  123.   TEXT
  124.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  125.  
  126.         W A R N I N G       W  A  R  N  I N  G       W A R N I N G
  127.         =============       ==================      ==============
  128.  
  129.         This option is designed to create a new data base file to
  130.         start a calendar or fiscal year (or for that matter, to 
  131.         close out any period.  It takes a while to run and if
  132.         something happens (like a voltage drop) while it is
  133.         running - you could very well lose all of your data.
  134.  
  135.         The old file will be saved as 'AC' + the ending date.
  136.  
  137.         NEVER RUN THIS OPTION UNLESS YOU HAVE BACKED UP YOUR DATA          
  138.  
  139.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.   ENDT
  147.   @ 19,20 SAY 'ARE YOU READY TO PROCEED'
  148.   @ 19,47 GET option PICTURE '!'
  149.   READ
  150.   IF option = 'Y'
  151.    SET CONFIRM ON
  152.    STOR DTOC(date()) TO myear
  153.    CLEA
  154.    @ 10,10 SAY "You should be able to stop this program until the last item by"
  155.    @ 11,10 SAY "hitting the ESCape key and typing QUIT."
  156.    @ 13,10 SAY "I will keep you posted as we go along."
  157.    @ 15,10 SAY "What is the last day of the period your are closing ?"
  158.    @ 15,68 GET myear PICTURE '99/99/99'
  159.    READ
  160.    STOR '01/01/' + STR((VAL(SUBSTR(myear,7,2))+1),2) TO nyear
  161.    @ 16,10 SAY "What is the first day of the new period you are opening ?"
  162.    @ 16,68 GET nyear PICTURE '99/99/99'
  163.    READ
  164.    STOR 'AC' + SUBSTR(myear,1,2) +SUBSTR(myear,4,2)+SUBSTR(myear,7,2)+'.DBF' TO newname
  165.    SET CONFIRM OFF
  166.    SET TALK ON
  167.    SELE C
  168.    USE &dr.:account
  169.    INDE on SUBSTR(data,7,4) + SUBSTR(data,5,2) TO &dr.:temp
  170.    SET INDEX TO &dr.:temp
  171.    COPY STRUCTURE TO &dr.:temp
  172.    GO TOP
  173.    STOR SUBSTR(data,7,4) + SUBSTR(data,5,2) TO info
  174.    STOR 0 TO mamount
  175.    STOR 0 TO recno
  176.    DO WHIL .NOT. EOF()
  177.     DO CASE
  178.     CASE SUBSTR(info,1,1)='1'.OR.SUBSTR(info,1,1)='2'.OR.SUBSTR(info,1,2)='57'
  179.      IF SUBSTR(data,7,4) + SUBSTR(data,5,2) =  info
  180.       STOR mamount + amount TO mamount
  181.       SKIP
  182.      ELSE
  183.       STOR RECNO() TO recno
  184.       SELE F
  185.       USE &dr.:TEMP
  186.       IF mamount <> 0
  187.        IF mamount > 0
  188.         STOR 'D' to type
  189.        ELSE
  190.         STOR 'C' TO type
  191.        ENDI mamount > 0
  192.        APPE BLANK
  193.        REPL date WITH SUBSTR(nyear,7,2)+SUBSTR(nyear,1,2)+SUBSTR(nyear,4,2)
  194.        REPL data WITH 'J001'+ SUBSTR(info,5,2) + SUBSTR(info,1,4) + type+ 'opening entry       ' + nyear + 'J'
  195.        REPL amount WITH mamount
  196.       ENDI mamount <> 0
  197.       SELE C
  198.       USE &dr.:account
  199.       SET index TO &dr.:temp
  200.       STOR 0 TO mamount
  201.       GO recno
  202.       STOR SUBSTR(data,7,4) + SUBSTR(data,5,2) TO info
  203.      ENDI $(data,7,4)
  204.     OTHE
  205.      IF .NOT. EOF()
  206.       STOR mamount + amount TO mamount
  207.       SKIP
  208.      ELSE
  209.       SELE F
  210.       USE &dr.:TEMP
  211.       IF mamount <> 0
  212.        IF mamount > 0
  213.         STOR 'D' to type
  214.        ELSE
  215.         STOR 'C' TO type
  216.        ENDI mamount > 0
  217.        APPE BLANK
  218.        REPL date WITH SUBSTR(nyear,7,2)+SUBSTR(nyear,1,2)+SUBSTR(nyear,4,2)
  219.        REPL data WITH 'J001992530' + type+ 'opening entry       ' + nyear + 'J'
  220.        REPL amount WITH mamount
  221.       ENDI mamount <> 0
  222.       SELE C
  223.       USE &dr.:account
  224.       SET index TO &dr.:temp
  225.      ENDI .NOT. EOF
  226.     ENDC
  227.    ENDD WHILE .NOT. EOF
  228.    DO CASE
  229.    CASE SUBSTR(info,1,1)='1'.OR.SUBSTR(info,1,1)='2'.OR.SUBSTR(info,1,2)='57'
  230.     SELE F
  231.     USE &dr.:TEMP
  232.     IF mamount <> 0
  233.      IF mamount > 0
  234.       STOR 'D' to type
  235.      ELSE
  236.       STOR 'C' TO type
  237.      ENDI mamount > 0
  238.      APPE BLANK
  239.      REPL date WITH SUBSTR(nyear,7,2)+SUBSTR(nyear,1,2)+SUBSTR(nyear,4,2)
  240.      REPL data WITH 'J001'+ SUBSTR(info,5,2) + SUBSTR(info,1,4) + type+ 'opening entry       ' + nyear + 'J'
  241.      REPL amount WITH mamount
  242.     ENDI mamount <> 0
  243.    OTHE
  244.     SELE F
  245.     USE &dr.:TEMP
  246.     IF mamount <> 0
  247.      IF mamount > 0
  248.       STOR 'D' to type
  249.      ELSE
  250.       STOR 'C' TO type
  251.      ENDI mamount > 0
  252.      APPE BLANK
  253.      REPL date WITH SUBSTR(nyear,7,2)+SUBSTR(nyear,1,2)+SUBSTR(nyear,4,2)
  254.      REPL data WITH 'J001992530' + type+ 'opening entry       ' + nyear + 'J'
  255.      REPL amount WITH mamount
  256.     ENDI mamount <> 0
  257.    ENDC
  258.    SELE C
  259.    USE &dr.:account
  260.    SET index TO &dr.:temp
  261.    SAVE TO temp
  262.    CLEA ALL
  263.    REST FROM temp
  264.    RENA &dr.:account.dbf TO &dr.:&newname
  265.    RENA &dr.:temp.dbf TO &dr.:account.dbf
  266.    DELE file &dr.:temp.ndx
  267.    SELE C
  268.    USE &dr.:account
  269.    INDE ON SUBSTR(data,7,4) + date + SUBSTR(data,5,2) TO &dr.:account
  270.    SET INDEX TO &dr.:account
  271.    SET TALK OFF
  272.   ENDI OPTION = 'Y'
  273.   LOOP
  274.  CASE command = 'C'
  275.   DO chart
  276.   LOOP
  277.  CASE COMMAND = 'D'
  278.   CLEA
  279.   STOR 'N' TO option
  280.   STOR 'R' TO choice
  281.   TEXT
  282.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  283.  
  284.         W A R N I N G       W  A  R  N  I N  G       W A R N I N G
  285.         =============       ==================      ==============
  286.  
  287.         This option is designed to create a new data base file to
  288.         startup this program the first time. It will eliminate all
  289.         of the sample files we gave you in the accounting data base 
  290.         and start you off with no records.                     
  291.  
  292.         It can also rename one of the two Chart of Accounts data
  293.         bases (CHART1.DBF and CHART2.DBF) to CHART.DBF when you 
  294.         select either the real estate or general Chart of Accounts.
  295.  
  296.         NEVER RUN THIS OPTION UNLESS YOU HAVE BACKED UP THE PROGRAM        
  297.  
  298.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.   ENDT
  306.   @ 19,20 SAY 'ARE YOU READY TO DELETE THE FILES'
  307.   @ 19,55 GET option PICTURE '!'
  308.   READ
  309.   IF option = 'Y'
  310.    STOR 'N' TO choice
  311.    STOR '?' TO pick
  312.    @ 19,00
  313.    @ 19,05 SAY "Do you want to select a new Chart of Accounts ?"
  314.    @ 19,60 GET choice PICTURE '!'
  315.    READ
  316.    DO WHIL AT(CHOICE,'YNQ') = 0
  317.     @ 19,60 GET choice PICTURE '!'
  318.     READ
  319.    ENDD
  320.    IF choice = 'Y'
  321.     @ 19,00
  322.     @ 19,05 SAY "Do you want a <R>eal estate or a <G>eneral Chart of Accounts ?"
  323.     @ 19,68 GET pick PICTURE '!'
  324.     READ
  325.    ENDI choice = 'Y'
  326.    IF pick = 'R'
  327.     DELE file CHART.DBF
  328.     RENA CHART1.DBF TO CHART.DBF
  329.    ENDI
  330.    IF PICK = 'G'
  331.     DELE file CHART.DBF
  332.     RENA CHART2.DBF TO CHART.DBF
  333.    ENDI PICK = 'G'
  334.    USE &dr.:account
  335.    CLOS INDEX
  336.    DELE ALL
  337.    PACK
  338.    INDE ON date + SUBSTR(data,7,4) + SUBSTR(data,5,2) TO &dr.:account
  339.    SET INDEX TO &dr.:account
  340.    RELE choice, pick
  341.   ENDI option = 'Y'
  342.   LOOP
  343.  CASE command = 'E'
  344.   DO init
  345.   LOOP
  346.  CASE command = 'F'
  347.   SET TALK ON
  348.   SET ECHO ON
  349.   INDE ON SUBSTR(data,7,4) +date + SUBSTR(data,5,2) TO &dr.:account
  350.   SET TALK OFF
  351.   SET ECHO OFF
  352.   LOOP
  353.  CASE command = '?'
  354.   CLEA
  355.   TEXT
  356.  
  357.       A C C O U N T I N G   M A I N T E N A N C E   H E L P   M E N U
  358.  
  359.    The browse ('A') option on the menu allows you to make changes directly
  360.     into the file to correct errors. The instructions as to how to do it are
  361.     quite specific.  They are set forth on screen before you actually enter
  362.     browse. Until you are familiar with the commands, make a note of them. 
  363.     Remember that 'CONTROL Q' should get you out without doing  any damage.
  364.     Please use Browse with care. (Browse is not available in Clipper.)
  365.  
  366.     The year end closing statement option should be done after you have 
  367.     made your closing adjustments AND AFTER YOU HAVE MADE A BACKUP COPY OF
  368.     THE DATA. It copies all of the records to a new file, indexes the new  
  369.     file and then renames the old file to 'ACC' + the prior year. You can stop 
  370.     the process before the end by hitting ESCape and typing QUIT.              
  371.  
  372.     The Chart of Accounts option has its own menu. However, we have included
  373.     two Charts of Account. This program was written as a building management
  374.     data base with accounting. Some people suggested that they might want 
  375.     to use just the accounting aspects for a different type of operation.
  376.  
  377.                                   Please hit any key to continue
  378.   ENDT
  379.   SET CONSOLE OFF
  380.   WAIT
  381.   SET CONSOLE ON
  382.   CLEA
  383.   TEXT
  384.  
  385.  
  386.  
  387.      For those people who would like to try this program in a non-real
  388.      estate environment, we have created a second Chart of Accounts. (There
  389.      are actually three Charts - CHART.DBF is real estate and will be erase
  390.      when you select between CHART1.DBF (also real estate) and CHART2.DBF
  391.      (general).  If you want to switch to the other system, just rename the
  392.      files. In all probability you will generate you own Chart of Accounts,
  393.      but we put in a sample.
  394.  
  395.      The first time program in addition to initializing the Chart of Accounts
  396.      wipes out all of the sample records we have included and starts you off
  397.      with a clean slate. We warn you to make a backup before you run it.  
  398.                       
  399.      Reindex is on this menu as well as at various other points in the program.
  400.      You will want to use it.
  401.  
  402.                       please hit any key to continue.....
  403.  
  404.  
  405.  
  406.   ENDT
  407.   SET CONSOLE OFF
  408.   WAIT
  409.   SET CONSOLE ON
  410.   LOOP
  411.  CASE command = 'G' .OR. command = 'Q'
  412.   STOR .f. TO account1
  413.  ENDC
  414. ENDD WHILE account1
  415. RETU
  416. 
  417.