home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / DB3.ARC / COSTTIME.PRG < prev    next >
Text File  |  1984-10-25  |  4KB  |  130 lines

  1.        **********  Costtime COMMAND FILE  **********
  2. * Accepts time sheet entries for employees using a transaction
  3. * file called Gettemp. For data entry.
  4. *      Gettemp is used because the operator can decide to quit on an incomplete
  5. *  entry.  In that case, the entry is marked for deletion, and when the data is
  6. * APPENDed to the Postfile, these entries are eliminated (the APPEND command
  7. * does not transfer records marked for deletion).
  8. *     After all entries are made, entries are checked for the
  9. * correct range of employee numbers and to see that hours have
  10. * been entered.   Using Gettemp, we can check the entries without
  11. * having to go through the entire Postfile.  
  12. *      After checking the names against our Supplier file, the billing
  13. * amounts are computed.
  14. *     The records are then transferred to the Postfile and the
  15. * temporary file Gettemp is deleted.
  16. **************************************************************
  17. *
  18. *
  19. *
  20. SELECT 1
  21. Timing = 'Y'
  22. DO WHILE Timing <> ' '
  23.    APPEND BLANK
  24.    *
  25.    Entering = .T.
  26.    CLEAR
  27.    DO WHILE Entering
  28.       Row = 0
  29.       @ 1,0 SAY 'Employee Time Sheets'
  30.       @ 3,0 SAY '           Entry' + STR(RECNO(),5)
  31.       @ 5,0 SAY '     DATE WORKED' GET Bill_Date
  32.       @ 6,0 SAY '          CLIENT' GET Client Picture '!!!'
  33.       @ 7,0 SAY '      JOB NUMBER' GET Job_Nmbr
  34.       @ 8,0 SAY '    HOURS WORKED' GET Hours
  35.       @ 9,0 SAY ' EMPLOYEE NUMBER' GET Emp_Nmbr
  36.       @ 10,0 SAY '   EMPLOYEE NAME' GET Name Picture '!!!!!!!!!!!!!!!!!!!!'
  37.       READ
  38.       *
  39.       REPLACE Check_Nmbr WITH '----', Check_Date WITH Bill_Date
  40.       *
  41.       * The following sequence of IF statments flags all entry errors, then
  42.       * gives the operator the choice of fixing them or ending the procedure.
  43.       *
  44.       @ 12,0 CLEAR
  45.       IF ' ' $ Client
  46.      @ 12+Row,0 SAY '     CLIENT must have three letters.'
  47.          Row = Row + 1
  48.       ENDIF
  49.       *
  50.       IF Job_Nmbr < 1000 .AND. Job_Nmbr <> 31
  51.      @ 12+Row,0 SAY '     JOB # is not for a client job.'
  52.      Row = Row + 1
  53.       ENDIF
  54.       *
  55.       IF .NOT. (Hours > 0)
  56.      @ 12+Row,0 SAY '     HOURS must be entered.        '
  57.      Row = Row + 1
  58.       ENDIF
  59.       *
  60.       IF Emp_Nmbr <= 0
  61.      @ 12+Row,0 SAY '     EMPLOYEE # wrong.             '
  62.      Row = Row + 1
  63.       ENDIF
  64.       *
  65.       IF SUBSTR(Name,1,1) = ' '
  66.      @ 12+Row,0 SAY '     NAME must not start WITH a blank.'
  67.      Row = Row + 1
  68.       ENDIF
  69.       *
  70.       Timing = ' '
  71.       @ 14+Row,0 SAY '      &F3 to CONTINUE,'
  72.       @ 15+Row,0 SAY '      &F4 to EDIT,'
  73.       @ 16+Row,0 SAY 'Press <ENTER> to terminate entry. ' 
  74.       SET COLOR TO  , 
  75.       @ 16+Row,40 GET Timing
  76.       READ
  77.       SET COLOR TO W, ,W
  78.       *
  79.       @ 12+row,0 CLEAR
  80.       Entering = .F.
  81.       *** IF Row is greater than zero an error has occurred ***      
  82.       IF Row > 0  .AND. ( Timing = ' ' .OR. UPPER(Timing) = 'C' )
  83.          DELETE
  84.       ELSE
  85.          IF (Timing <> ' ' .AND. UPPER(Timing) <> 'C')
  86.             Entering = .T.
  87.          ENDIF
  88.       ENDIF
  89.    ENDDO Entering
  90. ENDDO Timing
  91. *
  92. *
  93. COUNT FOR .NOT. DELETED() TO Any
  94. IF Any = 0
  95.    CLEAR
  96.    @ 3,0 SAY '    No entries to add to the PostFile. '
  97.    WAIT 
  98. ELSE
  99.    *
  100.    * Checks names against a list of suppliers to catch spelling and
  101.    * abbreviation inconsistencies.
  102.    DO Nametest WITH "1" 
  103.    *
  104.    * Verifies match between employee name and number, then computes the amount
  105.    * to be billed for the employee's time based on his salary.
  106.    DO Timecalc
  107.    *
  108.    CLEAR
  109.    @ 3,25 SAY " *** DO NOT INTERRUPT ***"
  110.    @ 5,25 SAY " UPDATING THE POSTING FILE"
  111.    SELECT 1
  112.    GO TOP
  113.    DO WHILE .NOT. EOF()
  114.      IF .NOT. DELETED()
  115.         SELECT 2
  116.         APPEND BLANK
  117.         REPLACE Check_date WITH A->Check_date,Check_nmbr WITH A->Check_nmbr,;
  118.                 Client WITH A->Client,Job_nmbr WITH A->Job_nmbr,Amount WITH ;
  119.                 A->Amount,Name WITH A->Name
  120.         REPLACE Descrip WITH A->Descrip,Bill_date WITH A->Bill_date,Bill_nmbr;
  121.                 WITH A->Bill_nmbr,Hours WITH A->Hours,Emp_nmbr WITH A->Emp_nmbr
  122.         SELECT 1
  123.      ENDIF
  124.      SKIP
  125.    ENDDO
  126. ENDIF
  127. *
  128. ZAP
  129. RETURN
  130.