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

  1.                **********  Jobcosts COMMAND FILE   **********
  2. * Provides summaries of costs by client and job number.  This can
  3. * also be used to summarize all office categories, since they fall
  4. * into these fields.
  5. *      REPORTS ARE BY JOB NUMBER.  Client code is used only in the heading.
  6. * The report is actually prepared based on the job number, so accuracy is
  7. * critical.
  8. *******************************************************************
  9. SELECT 2
  10. USE Postfile
  11. SELECT 3
  12. USE Costbase INDEX Costjobs,Costname
  13. SELECT 9
  14. USE Billings INDEX Billjobs,Billings
  15. *
  16. * First, check to see whether there are still costs that have not been
  17. * posted into the Costbase from the Postfile
  18. SELECT 2
  19. COUNT FOR .NOT. DELETED() TO Any
  20. IF Any > 0
  21.    ?
  22.    ? 'There are '+STR(Any,5)+' entries in the Postfile.'
  23.    WAIT 'Do you still want to do the Job Costs (Y or N). ' TO Continue
  24.    IF UPPER(Continue) <> 'Y'
  25.       RETURN
  26.    ENDIF
  27. ENDIF
  28. *
  29. RESTORE FROM Konstant
  30. *
  31. * Initialize memory variables
  32. Random = 0
  33. Again = ' '
  34. *
  35. DO WHILE LEN(Again) <> 0
  36.    MClient = '   '
  37.    MJob_Nmbr = '    '
  38.    Hardcopy = ' '
  39.    Number = 'N'
  40.    *
  41.    CLEAR
  42.    @  2,11 SAY '         JOB COST SUMMARY :'
  43.    @  4,11 SAY 'ENTER CLIENT CODE ' GET MClient PICTURE '!!!'
  44.    @  5,11 SAY ' ENTER JOB NUMBER ' GET MJob_Nmbr PICTURE '!!!!'
  45.    @  6,11 SAY '       P to PRINT ' GET Hardcopy PICTURE '!'
  46.    @  7,11 SAY 'SHOW BILL NUMBERS ' GET Number PICTURE '!'
  47.    *
  48.    Getting = SPACE(1)
  49.    DO WHILE LEN(Getting) <> 0
  50.      READ SAVE
  51.      @ 8,0 CLEAR
  52.      IF ' ' $ MClient
  53.          @  9,10 SAY 'CLIENT code is 3 characters.'
  54.      ENDIF
  55.      IF VAL(MJob_Nmbr) >99 .AND. VAL(MJob_Nmbr) <1000  .OR. VAL(MJob_Nmbr) <=0
  56.          * Clear to end of screen
  57.          @ 10,10 SAY 'The JOB NUMBER is wrong.'
  58.          @ 11,15 SAY 'Agency jobs are 2 digits,'
  59.          @ 12,15 SAY 'Client jobs are 4 digits.'
  60.      ENDIF
  61.      @ 14,10 SAY 'Type any key to correct it,'
  62.      WAIT '<ENTER> to finish.' TO Getting
  63.      @ 14,0
  64.    ENDDO
  65.    Again = Getting
  66.    CLEAR GETS
  67.    *
  68.    @ 8,0 CLEAR
  69.    ACCEPT '    OPTIONAL JOB DESCRIPTION  ' TO Message
  70.    Message = TRIM(UPPER(Message))
  71.    *
  72.    ?
  73.    ?
  74.    CLEAR
  75.    IF Hardcopy = 'P'
  76.       SET PRINT ON
  77.    ENDIF
  78.    *
  79.    IF Number = 'Y'
  80.       Switch = 'Bill #'
  81.    ELSE
  82.       Switch = SPACE(0)
  83.    ENDIF
  84.    *
  85.    ? DTOC(Date()) + ':  COST SUMMARY' + ' FOR &MClient-'
  86.    ?? &MJob_Nmbr
  87.    ? SPACE(12) + Message
  88.    ?
  89.    ? 'DATE     NAME                 DESCRIPTION                AMOUNT';
  90.      +' &Switch'
  91.    ?
  92.    SELECT 3
  93.    IF Number = 'Y'
  94.       Switch = ',Bill_Nmbr'
  95.    ELSE
  96.       Switch = ''
  97.    ENDIF
  98.    *
  99.    STORE 0 TO Costs, Inside, Buyouts, HowMany, LineCnt, Spacer
  100.    FIND &MJob_Nmbr
  101.    IF RECNO() <> 0
  102.    DO WHILE Job_Nmbr = VAL(MJob_Nmbr) .AND. .NOT. EOF()
  103.       IF .NOT. DELETED()
  104.          ? Bill_Date, Name, Descrip+'   ', Amount &Switch
  105.          *
  106.          IF Check_Nmbr = '--'
  107.             Inside = Inside + Amount
  108.          ELSE
  109.             Buyouts = Buyouts + Amount
  110.          ENDIF
  111.          Costs = Costs + Amount
  112.          *
  113.          LineCnt = LineCnt + 1
  114.          Spacer = Spacer + 1
  115.          *
  116.          IF Spacer = 10
  117.             Spacer = 0
  118.             ?
  119.          ENDIF
  120.          *
  121.          IF LineCnt = 50
  122.             * formfeed with print on
  123.             IF Hardcopy = 'P'
  124.                SET CONSOLE OFF
  125.                ? CHR(12)
  126.                SET CONSOLE ON
  127.                SET PRINT OFF
  128.             ENDIF
  129.             *
  130.             STORE 0 TO LineCnt, Spacer
  131.             *
  132.             ? 'DATE    NAME                 DESCRIPTION';
  133.               + SPACE(16) + 'AMOUNT'
  134.             ?
  135.          ENDIF
  136.       ENDIF
  137.       SKIP
  138.    ENDDO
  139. ENDIF
  140. *
  141. ? SPACE(54) + '----------'
  142. ? STR(Inside,9,2) +' inside costs  + '+ STR(Buyouts,9,2);
  143.   + ' buyouts =  TOTAL: ' + STR(Costs,9,2)
  144. ?
  145. Min = Inside + 1.18 * Buyouts
  146. ? SPACE(15) + 'IF ALL COSTS ARE IN, bill this amount: ' + STR(Min,9,2)
  147. ?
  148. LineCnt = LineCnt + 5
  149. Spacer = 0
  150. IF LineCnt = 40
  151.    LineCnt = 0
  152.    IF Hardcopy = 'P'
  153.       SET CONSOLE OFF
  154.       ? CHR(12)
  155.       SET CONSOLE ON
  156.       SET PRINT OFF
  157.    ENDIF
  158. ELSE
  159.    ?
  160.    ?
  161.    ?
  162. ENDIF
  163. *
  164. SELECT 9
  165. ? 'BILLED TO DATE FOR &MClient-'
  166. ?? &MJob_Nmbr
  167. ?
  168. ? 'DATE   INV#    TAXABLE        TAX    TAX FREE  DESCRIPTION'
  169. ?
  170. LineCnt = LineCnt + 4
  171. STORE 0 TO Costs, T, S, F
  172. *
  173. STORE 0 TO Costs, Inside, Buyouts, HowMany, LineCnt, Spacer
  174. FIND &MJob_Nmbr
  175. IF RECNO() <> 0
  176.    DO WHILE Job_Nmbr = VAL(MJob_Nmbr) .AND. .NOT. EOF()
  177.       IF .NOT. DELETED()
  178.          ? Inv_Date, Inv_Nmbr, STR(Taxable,9,2) + '   ' +;
  179.          STR(Sales_Tax,9,2) + ' ', TaxFree, Descrip
  180.          T = T + Taxable
  181.          S = S + Sales_Tax
  182.          F = F + TaxFree
  183.          LineCnt = LineCnt + 1
  184.          Spacer = Spacer + 1
  185.          *
  186.          IF Spacer = 10
  187.             Spacer = 0
  188.             ?
  189.          ENDIF
  190.          *
  191.          IF LineCnt = 50
  192.             LineCnt = 0
  193.             Spacer = 0
  194.             *
  195.             IF Hardcopy = 'P'
  196.                SET CONSOLE OFF
  197.                ? CHR(12)
  198.                SET CONSOLE ON
  199.                SET PRINT OFF
  200.             ENDIF
  201.             *
  202.             ? 'DATE   INV#    TAXABLE        TAX    TAX FREE';
  203.               + '  DESCRIPTION'
  204.             ?
  205.          ENDIF
  206.       ENDIF
  207.       SKIP
  208.    ENDDO
  209. ENDIF
  210. *
  211. Costs = T + S + F
  212. ? SPACE(15) + '---------  ---------   ---------'
  213. ? ' SUB-TOTALS:  '+STR(T,9,2) + '  '+STR(S,9,2)+'   ' + STR(F,9,2)
  214. ? SPACE(37) + '----------'
  215. ? SPACE(30) + 'BILLED ' + STR(T+F,9,2)
  216. IF S > 0
  217.    ?? ' + tax.'
  218. ENDIF
  219. *
  220. IF Hardcopy = 'P'
  221.    SET CONSOLE OFF
  222.    ? CHR(12)
  223.    SET CONSOLE ON
  224.    SET PRINT OFF
  225. ENDIF
  226. *
  227. ? 'Type any key to continue,'
  228. WAIT 'press <ENTER> to exit.' TO Again
  229. ENDDO Again
  230. *
  231. CLOSE DATABASE
  232. RETURN
  233.