home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / billing.zip / EDITTASK.PRG < prev    next >
Text File  |  1986-11-10  |  4KB  |  148 lines

  1. *--[ edittask.prg ]-- edit existing tasks
  2. set deleted off
  3. CLEAR
  4. SELECT 1
  5. USE client INDEX cltname,cltcode ALIAS clt
  6. SELECT 2
  7. USE taskunit INDEX taskdate ALIAS task
  8. trash=""
  9. DO WHILE .T.
  10.     CLEAR
  11.     SET COLOR TO W+
  12.     @ 1,29 SAY "EDIT EXISTING TASK DATA"
  13.     SET COLOR TO W
  14.     TEXT
  15. ===============================================================================
  16.  
  17.      Tasks may be located by client and date.  You may change any task for
  18.      the specified client and date.  Leave CLIENT CODE blank to end the 
  19.      editing process.
  20.  
  21.      To delete a task record type "DELETE" and nothing else in Description
  22.      of Task.
  23.     ENDTEXT
  24.     mc_name=SPACE(35)
  25.     STORE DATE() TO m_taskdate,m_lastdate
  26.     @ 12,15 SAY "CLIENT " GET mc_name PICTURE "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  27.     SET DATE AMERICAN
  28.     @ 14,15 SAY "DATE OF FIRST TASK RECORD " GET m_taskdate PICTURE "@D"
  29.     @ 15,15 SAY "DATE OF LAST TASK RECORD  " GET m_lastdate PICTURE "@D"
  30.     SET COLOR TO W+
  31.     @ 20,15 SAY "Leave CLIENT empty to exit to the main menu."
  32.     SET COLOR TO W
  33.     READ
  34.     IF LEN(TRIM(mc_name))=0
  35.         EXIT
  36.     ENDIF LEN(TRIM(mc_name))=0
  37.     SELECT clt
  38.     SET ORDER TO 1
  39.     GO TOP    && rewind to find a previous client
  40.     SEEK TRIM(mc_name)
  41.     IF .NOT. FOUND()
  42.         @ 22,15 SAY "UNABLE TO LOCATE "
  43.         SET COLOR TO W*+
  44.         @ 22,COL() SAY TRIM(mc_name)
  45.         SET COLOR TO W
  46.         @ 22,COL() SAY " IN CLIENT FILE "
  47.         WAIT "               PRESS RETURN"
  48.         @ 3,0 CLEAR
  49.         LOOP
  50.     ENDIF .NOT. FOUND()
  51.     SET DATE ANSI
  52.     date_key=STR(clt->c_code,3,0)+DTOC(m_taskdate)
  53.     SELECT task
  54.     SEEK date_key
  55.     IF .NOT. FOUND()
  56.         @ 23,15 SAY "UNABLE TO LOCATE "
  57.         SET DATE AMERICAN
  58.         SET COLOR TO W*+
  59.         @ 23,COL() SAY m_taskdate
  60.         SET COLOR TO W
  61.         @ 23,COL() SAY " IN TASK FILE "
  62.         WAIT "               PRESS RETURN"
  63.         @ 3,0 CLEAR
  64.         LOOP
  65.     ENDIF .NOT. FOUND()
  66.     SELECT clt
  67.     m_client=c_code
  68.     IF clipper
  69.         SET INDEX TO cltcode
  70.     ELSE
  71.         SET ORDER TO 2
  72.     ENDIF clipper
  73.     @ 3,0 CLEAR
  74.     SET COLOR TO W+
  75.     @ 3,0 SAY "CLT    DATE    BEGIN  END   DESCRIPTION OF TASK            CH HOURS FEE  BILLED"
  76.     SET COLOR TO W
  77.     line=4
  78.     STORE 0 TO m_cost,m_fee,fees
  79.     SELECT task
  80.     DO WHILE c_code=m_client .AND. taskdate>=m_taskdate .AND. taskdate<=m_lastdate  && any LOOP command comes back to here
  81.         mc_code=c_code
  82.         @ line,0
  83.         @ line,0 GET mc_code PICTURE "###"
  84.         SET DATE AMERICAN
  85.         @ line,5 GET taskdate
  86.         SET DATE ANSI
  87.         @ line,15 GET start PICTURE "@R ##:##"
  88.         @ line,21 GET finish PICTURE "@R ##:##"
  89.         @ line,27 GET descriptn PICTURE "!XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  90.         @ line,59 GET charge PICTURE "@L"
  91.         m_fee=hours*clt->rate
  92.         @ line,61 SAY STR(hours,4,1)
  93.         @ line,66 SAY STR(m_fee,6,2)
  94.         IF charge
  95.             @ line,73 SAY STR(m_fee,6,2)
  96.         ENDIF charge
  97.         READ
  98.         IF mc_code=0
  99.             EXIT
  100.         ELSE
  101.             IF mc_code<>c_code
  102.                 REPLACE c_code WITH mc_code
  103.             ENDIF
  104.         ENDIF mc_code=0
  105.         IF UPPER(TRIM(descriptn))="DELETE"
  106.             DELETE
  107.             SET COLOR TO W*+
  108.             @ line,37 SAY " TASK IS DELETED "
  109.             SET COLOR TO W
  110.         ENDIF UPPER(TRIM(descriptn))="DELETE"            
  111.         SELECT clt
  112.         SEEK m_client
  113.         IF .NOT. FOUND()
  114.             SET COLOR TO W*+
  115.             @ 22,15 SAY "CLIENT NOT VALID - TRY AGAIN"
  116.             SET COLOR TO W
  117.             WAIT "               PRESS RETURN TO CONTINUE"
  118.             @ 22,0 CLEAR
  119.             m_client=0
  120.             SELECT task
  121.             LOOP
  122.         ENDIF .NOT. FOUND()
  123.         SELECT task
  124.         time_on=VAL(SUBSTR(start,1,2))+VAL(SUBSTR(start,3,2))/60
  125.         time_off=VAL(SUBSTR(finish,1,2))+VAL(SUBSTR(finish,3,2))/60
  126.         IF time_on>time_off
  127.             SET COLOR TO W*+
  128.             @ 23,15 SAY "INVALID ON AND OFF TIME - TRY AGAIN"
  129.             SET COLOR TO W
  130.             @ 23,0
  131.             LOOP
  132.         ENDIF
  133.         REPLACE hours WITH time_off-time_on
  134.         m_fee=hours*clt->rate
  135.         @ line,61 SAY STR(hours,4,1)
  136.         @ line,66 SAY STR(m_fee,6,2)
  137.         m_cost=m_cost+m_fee
  138.         IF charge
  139.             @ line,73 SAY STR(m_fee,6,2)
  140.             fees=fees+m_fee
  141.         ENDIF charge
  142.         line=line+1
  143.         line=IIF(line=21,4,line)
  144.         SKIP
  145.     ENDDO WHILE c_code=m_client .AND. taskdate>=m_taskdate .AND. taskdate<=m_lastdate&& paint next record
  146. ENDDO WHILE .T.
  147. RETURN
  148.