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

  1. **    Last revision: May 26, 1986 at 17:43
  2. * build.prg main command program of building database
  3. STOR .t. TO first
  4. * set up the loop
  5. STOR .T. to more
  6. DO WHIL more
  7. * if first time this trip
  8.  IF first
  9.   DO b_first
  10.   STOR .f. TO first
  11.  ENDI
  12.  STOR '<A>dd, <B>ackward, <D>elete/Recall, <E>dit, <F>orward, <H>elp' TO prompt1
  13.  STOR '<P>rint, <S>earch by building code or a<N>y part of database' TO prompt2
  14.  STOR '<T>enant records or <R>eturn to main menu                SELECT' TO prompt3
  15.  STOR 'Main Building Database ' TO mode
  16.  STOR '?' TO command
  17. * find out if the current record is marked for deletion
  18.  IF DELETE()
  19.   STOR 'Deleted' TO deleted
  20.  ELSE
  21.   STOR '       ' TO deleted
  22.  ENDI *
  23. * show the current record, and find out what to do next
  24.  @ 0, 0 SAY deleted
  25.  @ 1,26 SAY mode
  26.  @ 3,10 SAY baddr
  27.  @ 3,61 SAY bcode
  28.  @ 4,10 SAY SUBSTR(bcity,1,20)
  29.  @ 4,44 SAY SUBSTR(bcity,21,2)
  30.  @ 4,61 SAY SUBSTR(bcity,23,5)
  31.  @ 6,10 SAY SUBSTR(bdata,1,25)
  32.  @ 6,61 SAY SUBSTR(bdata,26,13)
  33.  @ 7,10 SAY SUBSTR(bdata,39,2)
  34.  @ 7,61 SAY SUBSTR(bdata,41,3)
  35.  @ 9,10 SAY SUBSTR(bdata,44,8)
  36.  @ 9,61 SAY bprice PICTURE '999,999,999.99'
  37.  @ 12,10 SAY remit
  38.  @ 12,61 SAY phone
  39.  @ 13,10 SAY remitad
  40.  @ 14,10 SAY remitc
  41.  @ 15,10 SAY checks
  42.  @ 17,10 SAY bnotes
  43.  @ 18,61 SAY bupdate
  44.  @ 20, 4 SAY prompt1
  45.  @ 21, 4 SAY prompt2
  46.  @ 22, 4 SAY prompt3
  47.  @ 22,70 GET command PICTURE '!'
  48.  READ
  49. * perform selected function
  50.  DO CASE
  51.  CASE command = 'A'
  52.   DO ADDB
  53.   LOOP
  54.  CASE (command = 'B' .OR. command = ',' )
  55. * move backwards one record
  56.   SKIP -1
  57.   LOOP
  58.  CASE command = 'D'
  59. * switch the current record from deleted to recalled
  60.   IF DELETE()
  61.    RECA
  62.   ELSE
  63.    DELE
  64.   ENDI DELETE()
  65.   LOOP
  66.  CASE command = 'E'
  67.   SET INTENSITY ON
  68.   SET DELIMITER OFF
  69.   STOR baddr TO mbaddr
  70.   STOR bcode TO mbcode
  71.   STOR SUBSTR(bcity,1,20) TO mbcity
  72.   STOR SUBSTR(bcity,21,2) TO mbst
  73.   STOR SUBSTR(bcity,23,5) TO mbzip
  74.   STOR SUBSTR(bdata,1,25) TO mbmgr
  75.   STOR SUBSTR(bdata,26,13) TO mbphone
  76.   STOR SUBSTR(bdata,39,2) TO mbtype
  77.   STOR SUBSTR(bdata,41,3) TO mbunit
  78.   STOR SUBSTR(bdata,44,8) TO mbacq
  79.   STOR bprice TO mbprice
  80.   STOR remit TO mremit
  81.   STOR phone TO mphone
  82.   STOR remitad TO mremitad
  83.   STOR remitc TO mremitc
  84.   STOR checks TO mchecks
  85.   STOR bnotes TO mbnotes
  86.   STOR bupdate TO mbupdate
  87.   STOR 'Edit Building Data' TO mode
  88.   STOR '                 Enter the new or corrected information' TO prompt1
  89.   STOR "                 Control 'Q' or 'W' to end edit session" TO prompt2
  90.   STOR SPACE(75) TO prompt3
  91.   @ 1,02 SAY SPACE(76)
  92.   @ 1,26 SAY mode
  93.   @ 3,10 GET mbaddr
  94.   @ 3,61 GET mbcode PICTURE '99'
  95.   @ 4,10 GET mbcity
  96.   @ 4,44 GET mbst PICTURE '!!'
  97.   @ 4,61 GET mbzip PICTURE '99999'
  98.   @ 6,10 GET mbmgr
  99.   @ 6,61 GET mbphone PICTURE '(999)999-9999'
  100.   @ 7,10 GET mbtype
  101.   @ 7,61 GET mbunit
  102.   @ 9,10 GET mbacq PICTURE '99/99/99'
  103.   @ 9,61 SAY SPACE(16)
  104.   @ 9,61 GET mbprice
  105.   @ 12,10 GET mremit
  106.   @ 12,61 GET mphone
  107.   @ 13,10 GET mremitad
  108.   @ 14,10 GET mremitc
  109.   @ 15,10 GET mchecks
  110.   @ 17,10 GET mbnotes
  111.   @ 18,61 GET mbupdate PICTURE '99/99/99'
  112.   @ 20,00
  113.   @ 21,00
  114.   @ 22,00
  115.   @ 20,04 SAY prompt1
  116.   @ 21,04 SAY prompt2
  117.   @ 22,04 SAY prompt3
  118.   READ
  119.   CLEA GETS
  120. * test if there is a bad field validation
  121.   IF mbcode = ' '
  122. * no building code
  123.    STOR .t. TO error
  124.   ELSE
  125.    STOR .f. TO error
  126.   ENDI
  127. * if test for error was true then fix the fields that need fixing
  128.   IF error
  129. * erase the lines to be used for prompts
  130.    @ 01,00
  131.    @ 20,00
  132.    @ 21,00
  133.    @ 22,00
  134. * tell them to correct it
  135.    @ 1,18 SAY 'Please Correct the Indicated Data'
  136. * keep looping until all fields are fixed
  137.    STOR .t. to an_error
  138.    DO WHIL an_error
  139.     DO CASE
  140.     CASE mbcode = ' '
  141.      @ 20,15 SAY 'Must have a building code                              '
  142.      @ 03,61 GET mbcode PICTURE '99'
  143.      READ
  144.     OTHE
  145.      STOR .f. TO an_error
  146.     ENDC
  147.    ENDD while an:error
  148.   ENDI error
  149.   SET DELIMITER ON
  150.   SET INTENSITY OFF
  151.   STOR 'N' TO command
  152.   @ 20,00
  153.   @ 21,00
  154.   @ 22,00
  155.   @ 20,23 SAY 'Are there any more changes ?                        '
  156.   @ 20,55 GET command picture '!'
  157.   READ
  158.   SET DELIMITER OFF
  159.   SET INTENSITY ON
  160.   IF command = 'Y'
  161.    @ 1,00
  162.    @ 1,26 SAY mode
  163.    @ 3,10 GET mbaddr
  164.    @ 3,61 GET mbcode PICTURE '99'
  165.    @ 4,10 GET mbcity
  166.    @ 4,44 GET mbst PICTURE '!!'
  167.    @ 4,61 GET mbzip PICTURE '99999'
  168.    @ 6,10 GET mbmgr
  169.    @ 6,61 GET mbphone PICTURE '(999)999-9999'
  170.    @ 7,10 GET mbtype
  171.    @ 7,61 GET mbunit
  172.    @ 9,10 GET mbacq PICTURE '99/99/99'
  173.    @ 9,61 GET mbprice
  174.    @ 12,10 GET mremit
  175.    @ 12,61 GET mphone
  176.    @ 13,10 GET mremitad
  177.    @ 14,10 GET mremitc
  178.    @ 15,10 GET mchecks
  179.    @ 17,10 GET mbnotes
  180.    @ 18,61 GET mbupdate PICTURE '99/99/99'
  181.    @ 20,00
  182.    @ 21,00
  183.    @ 22,00
  184.    @ 20,04 SAY prompt1
  185.    @ 21,04 SAY prompt2
  186.    @ 22,04 SAY prompt3
  187. * let user enter data
  188.    READ
  189.    CLEA GETS
  190.   ENDI command = 'Y'
  191.   REPL baddr WITH mbaddr, bcode WITH mbcode
  192.   REPL bcity WITH mbcity + mbst + mbzip
  193.   REPL bdata WITH mbmgr + mbphone + mbtype + mbunit + mbacq
  194.   REPL bprice WITH mbprice, remit WITH mremit, phone WITH mphone
  195.   REPL remitad WITH mremitad, remitc WITH mremitc,checks WITH mchecks, bnotes WITH mbnotes
  196. * ask if an automatic update of the date is wanted
  197.   IF SUBSTR(DTOC(DATE()),1,2) <> '00'
  198.    STOR 'Y' TO command
  199.    @ 20,00
  200.    @ 21,00
  201.    @ 22,00
  202.    @ 20,12 SAY 'Do You wish to UpDate to Todays Date (Y/N) ?'
  203.    @ 20,57 GET command PICTURE '!'
  204.    READ
  205.    IF command = 'Y'
  206.     REPL bupdate WITH  DTOC(DATE())
  207.    ELSE
  208.     REPL bupdate WITH mbupdate
  209.    ENDI $(date)
  210.   ENDI command = 'Y'
  211.   SET INTENSITY OFF
  212.   SET DELIMITER ON
  213.   STOR .t. TO first
  214.   LOOP
  215.  CASE (command = 'F' .OR. command = '.' )
  216. * move forward one record
  217.   SKIP
  218.   LOOP
  219.  CASE (command = 'H' .OR. command = '?' )
  220. * display a screen full of instructions
  221.   STOR .t. TO first
  222.   CLEA
  223.   TEXT
  224.  
  225.  
  226.  
  227.          M A I N   B U I L D I N G   M E N U   H E L P   F I L E
  228.  
  229.        Welcome to the SIG/M PROPERTY MANAGER Building File  Data Base.
  230.     I am here to help you and you can call me anytime by just entering
  231.     a ? mark at any place where this program asks for a command.
  232.  
  233.     When you go back to the screen you will see two lines -  on top of     
  234.     the first line it says 'Main Building Database Menu' - thus,   the
  235.     program always tells you where you are!
  236.  
  237.     Between the two lines  we have the information you or someone else
  238.     entered into the computer.  This information tells you all about a  
  239.     particular building.
  240.  
  241.  
  242.  
  243.                If you press any key I will tell you more.
  244.  
  245.  
  246.   ENDT
  247.   SET CONSOLE OFF
  248.   WAIT
  249.   SET CONSOLE ON
  250.   CLEA
  251.   TEXT
  252.  
  253.    This is a multiple data base - by that I mean - you can have one screen of
  254. information about the building and another screen of information about any of 
  255. the tenants in that building.  To find the first tenant for the building  you
  256. are looking at hit 'T' for tenant information.    The transition is not quite
  257. immediate, because the program takes the time to find the first individual in
  258. the building that you have on the screen.
  259.  
  260. The information on screen in clear, so let's look below the line.  This shows
  261. what you can do.  To look at the next record -  hit 'F' (or a period).  To go
  262. back one record - hit 'B' (or a comma). To delete a record hit 'D' and a sign
  263. will appear at the upper right corner.  To remove the delete - hit 'D' again.
  264. Don't worry  -   you cannot accidentally delete a record just by hitting 'D'.  
  265. You must run another program on the Maintenance Menu (purge) to delete.
  266.  
  267. To find a file - hit 'S' for search.    To find any string in any part of the  
  268. file hit 'N' (a real handy way to search). To Edit a file - hit 'E'.   To add more
  269. records you hit 'A'. Once in add  you can enter new buildings and the tenants
  270. connected with that building.  If you already have the building data in  this
  271. program the menu gives you the option to add only tenants.                 
  272.  
  273.                       Please hit any key for the next screen 
  274.   ENDT
  275.   SET CONSOLE OFF
  276.   WAIT
  277.   SET CONSOLE ON
  278.   CLEA
  279.   TEXT
  280.  
  281. We suggest that you enter all units for the property first time around, even if
  282. they are vacant. (Put in the last rental for the property) If you leave a blank
  283. for the tenant name - the unit will appear on the vacancy list.                
  284.                                                                 
  285. To do property connected reports, such as rent bills, tenant labels,  vacancy 
  286. lists or delinquency lists, hit 'R' for Reports. 'M' for Maintanance allows 
  287. you to do housekeeping chores, etc.  See the specific help menus as well as 
  288. the menus themselves for more information.                                     
  289.                                                                                
  290. Please don't forget that at any menu '?' brings on a help menu and 'Q' quits
  291. to the prior menu.
  292.  
  293.    -------------------------------------------------------------------------
  294.    WHATEVER YOU DO  -  NEVER SHUT OFF THE MACHINE OR REMOVE A DISK UNTIL YOU 
  295.    FIRST RETURN TO THE MAIN MENU AND THEN QUIT TO THE OPERATING SYSTEM.       
  296.  
  297.    IF you ever get a SYNTAX error and hitting ENTER does not solve the prob-
  298.    lem, then just hit ESCAPE and type QUIT. Then just start all over again.
  299.    -------------------------------------------------------------------------
  300.                                                                               
  301.              Please hit any key to get back to the data base
  302.   ENDT
  303.   SET CONSOLE OFF
  304.   WAIT
  305.   SET CONSOLE ON
  306.   STOR .T. TO more
  307.  CASE command = 'P'
  308. * Screen print
  309.   @ 20,00
  310.   @ 21,00
  311.   @ 22,00
  312.   @ 20,0 SAY 'PRINT OPTIONS: S (SINGLE SPACE), D (DOUBLE SPACE), N (NO PRINTING)       '
  313.   STOR 'Y' TO PRNTSCRN
  314.   STOR 'N' TO PRNTOPT
  315.   @ 20,67 GET PRNTOPT PICTURE '!'
  316.   READ
  317.   DO WHIL AT(PRNTOPT, 'SDN') = 0
  318.    @ 20,67 GET PRNTOPT PICTURE '!'
  319.    READ
  320.   ENDD
  321.   IF PRNTOPT = 'S'
  322.    STOR 1 TO LINEMULT
  323.   ENDI
  324.   IF PRNTOPT = 'D'
  325.    STOR 2 TO LINEMULT
  326.   ENDI
  327.   IF PRNTOPT = 'N'
  328.    STOR 'N' TO PRNTSCRN
  329.   ENDI
  330.   IF PRNTSCRN = 'Y'
  331.    SET DEVICE TO PRINT
  332.    EJEC
  333.    @ LINEMULT*4,2 SAY 'Address:'
  334.    @ LINEMULT*4,12 SAY BADDR
  335.    @ LINEMULT*4,56 SAY 'Code:'
  336.    @ LINEMULT*4,63 SAY BCODE
  337.    @ LINEMULT*5,5 SAY 'City:'
  338.    @ LINEMULT*5,12 SAY SUBSTR(BCITY,1,20)
  339.    @ LINEMULT*5,38 SAY 'State:'
  340.    @ LINEMULT*5,46 SAY SUBSTR(BCITY,21,2)
  341.    @ LINEMULT*5,57 SAY 'Zip:'
  342.    @ LINEMULT*5,63 SAY SUBSTR(BCITY,23,5)
  343.    @ LINEMULT*7,2 SAY 'Manager:'
  344.    @ LINEMULT*7,12 SAY SUBSTR(BDATA,1,25)
  345.    @ LINEMULT*7,55 SAY 'Phone:'
  346.    @ LINEMULT*7,63 SAY SUBSTR(BDATA,26,13)
  347.    @ LINEMULT*8,5 SAY 'Type:'
  348.    @ LINEMULT*8,12 SAY SUBSTR(BDATA,39,2)
  349.    @ LINEMULT*8,45 SAY 'Number of Units:'
  350.    @ LINEMULT*8,63 SAY SUBSTR(BDATA,41,3)
  351.    @ LINEMULT*10,1 SAY 'Acquired:'
  352.    @ LINEMULT*10,12 SAY SUBSTR(BDATA,44,8)
  353.    @ LINEMULT*10,46 SAY 'Purchase Price:'
  354.    @ LINEMULT*10,63 SAY BPRICE PICTURE '$999,999,999.99'
  355.    @ LINEMULT*12,29 SAY "Send Rental Payments To:"
  356.    @ LINEMULT*13,01 SAY "Company:"
  357.    @ LINEMULT*13,12 SAY REMIT
  358.    @ LINEMULT*13,55 SAY "Phone:"
  359.    @ LINEMULT*13,63 SAY PHONE
  360.    @ LINEMULT*14,02 SAY "Street:"
  361.    @ LINEMULT*14,12 SAY REMITAD
  362.    @ LINEMULT*15,04 SAY "City:"
  363.    @ LINEMULT*15,12 SAY REMITC
  364.    @ LINEMULT*16,1 SAY "Chks To:"
  365.    @ LINEMULT*16,12 SAY CHECKS
  366.    @ LINEMULT*17,02 SAY "Notes:"
  367.    @ LINEMULT*17,12 SAY BNOTES
  368.    @ LINEMULT*18,53 SAY 'Updated:'
  369.    @ LINEMULT*18,63 SAY BUPDATE
  370.    @ LINEMULT*19,1 SAY DTOC(DATE())
  371.    @ 52,0 SAY ' '
  372.    SET DEVICE TO SCREEN
  373.   ENDI
  374.   @ 20,0
  375.   @ 21,0
  376.   @ 22,0
  377.   RELE PRNTSCRN, PRNTOPT, LINEMULT
  378.  CASE command = 'Q'.OR. command = 'R'
  379.   STOR .f. TO more
  380.  CASE command = 'T'
  381.   @ 20,00
  382.   @ 21,00
  383.   @ 22,00
  384.   STOR '   ' to findt
  385.   @ 20,08 SAY 'Enter tenant number (or leave at blank for first tenant) '
  386.   @ 20,64 GET findt PICTURE '999'
  387.   READ
  388.   STOR TRIM(bcode)+TRIM(findt) TO findt
  389.   SELE B
  390.   USE &dr:tenant index &dr.:codea
  391.   SEEK TRIM(findt)
  392.   IF FOUND()
  393.    DO tenant
  394.   ELSE
  395.    @ 20,00
  396.    @ 21,00
  397.    @ 22,00
  398.    @ 20,18 SAY 'Unable to locate either tenant or building'
  399.    @ 21,24 SAY 'PLEASE HIT ANY KEY TO CONTINUE'
  400.    SET CONSOL OFF
  401.    WAIT
  402.    SET CONSOL ON
  403.    SELE A
  404.    USE &dr:build index &dr.:code
  405.   ENDI
  406.   LOOP
  407.  CASE command= 'S'
  408.   @ 20,00
  409.   @ 21,00
  410.   @ 22,00
  411.   STOR '  ' TO findb
  412.   @ 20,27 SAY 'Enter Code Number'
  413.   @ 20,49 GET findb PICTURE '99'
  414.   READ
  415.   SEEK TRIM(findb)
  416.   IF .NOT. FOUND()
  417.    @ 20,00
  418.    @ 21,00
  419.    @ 22,00
  420.    @ 20,15 SAY 'Unable to locate building with that Code Number'
  421.    @ 21,24 SAY 'PLEASE HIT ANY KEY TO CONTINUE'
  422.    SET CONSOL OFF
  423.    WAIT
  424.    SET CONSOL ON
  425.    GO TOP
  426.   ENDI
  427.  CASE command= 'N'
  428.   DO search1b
  429.   STOR .t. TO first
  430.   LOOP
  431. * loop back again
  432.  ENDC
  433. ENDD WHILE more
  434. RETU
  435.