home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / DBASEACC.ARC / JOBCOSTS.PRG < prev    next >
Encoding:
Text File  |  1979-12-31  |  5.9 KB  |  228 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. *      This file works with a partially indexed costbase, so "Unindexed" is
  9. * used to keep track of how many records are not in the index.  If this gets
  10. * beyond a specific number, the operator is prompted to reindex the Costbase.
  11. *******************************************************************
  12.  
  13. SET TALK OFF
  14.  
  15. RESTORE FROM Constant
  16. DO GetDate
  17.  
  18. STORE 0 TO Unindexed
  19. STORE ' ' TO Again
  20. DO WHILE !(Again) <> 'F'
  21.    STORE '   ' TO MClient
  22.    STORE '   ' TO MJob:Nmbr
  23.    STORE ' ' TO Hardcopy
  24.    STORE 'N' TO Number
  25.    ERASE
  26.    @  2,11 SAY ' JOB COST SUMMARY :'
  27.    @  4,11 SAY 'ENTER CLIENT CODE ' GET MClient
  28.    @  5,11 SAY ' ENTER JOB NUMBER ' GET MJob:Nmbr
  29.    @  6,11 SAY '       P to PRINT ' GET Hardcopy
  30.    @  7,11 SAY 'SHOW BILL NUMBERS ' GET Number
  31.    READ
  32.    ?
  33.    IF MClient = ' ' .OR. MJob:Nmbr= ' '
  34.       @  9, 0
  35.       ? '     CLIENT or JOB NUMBER  missing.'
  36.       ? '     F if Finished,'
  37.       ? '  <Return> to continue.'
  38.       WAIT TO Again
  39.    ELSE
  40.       @ 8,0 SAY CHR(27)+CHR(121)
  41.       ACCEPT '    OPTIONAL JOB DESCRIPTION ' TO Message
  42.       STORE TRIM(!(Message)) TO Message
  43.       STORE !(MClient) TO MClient
  44.       STORE !(Hardcopy) TO Hardcopy
  45.       STORE !(Number) TO Number
  46.       @ 4,30 SAY MClient
  47.       @ 6,30 SAY Hardcopy
  48.       @ 7,30 SAY Number
  49.       @ 9,30 SAY Message
  50.       ?
  51.       ?
  52.       ACCEPT 'Type C to CHANGE any entries' TO Changes
  53.       IF !(Changes) = 'C'
  54.          STORE ' ' TO Again
  55.          ERASE
  56.       ELSE
  57.          ERASE
  58.          IF ! (Hardcopy) = 'P'
  59.             STORE "TO PRINT" TO Hardcopy
  60.             SET PRINT ON
  61.          ENDIF Hardcopy
  62.  
  63.          IF Number = 'Y'
  64.             STORE 'Bill #' TO OTHER
  65.       ELSE
  66.         STORE CHR(0) TO Other
  67.       ENDIF
  68.  
  69.       ? $(Date,3,2)+'/'+$(Date,5,2)+'/'+$(Date,1,2)+':  COST SUMMARY FOR ';
  70.      +'&MClient-&MJob:Nmbr'
  71.       ? '           ' + Message
  72.       ?
  73.       ? 'DATE    NAMES                DESCRIPTION                AMOUNT';
  74.          +'  &Other'
  75.       ?
  76.       USE CostBase INDEX $Jobs
  77.       IF Number = 'Y'
  78.   STORE ',Bill:Nmbr' TO Other
  79.       ELSE
  80.          STORE CHR(0) TO Other
  81.       ENDIF
  82.  
  83.       STORE 0 TO Sum
  84.       STORE 0 TO HowMany
  85.       STORE 0 TO LineCnt
  86.       STORE 0 TO Spacer
  87.       FIND &MJob:Nmbr
  88.       IF # <> 0
  89.    DO WHILE Job:Nmbr = VAL(MJob:Nmbr) .AND. .NOT. EOF
  90.             DISPLAY Next 1 Bill:Date,Name,Descrip+'   ',Amount &Other OFF
  91.      STORE Sum + Amount TO Sum
  92.      STORE LineCnt + 1 TO LineCnt
  93.      STORE Spacer + 1 TO Spacer
  94.  
  95.      IF Spacer = 10
  96.         ?
  97.         STORE 0 TO Spacer
  98.      ENDIF
  99.  
  100.      IF LineCnt = 50
  101.         ? CHR(12)
  102.         STORE 0 TO LineCnt
  103.         STORE 0 TO Spacer
  104.         ? 'DATE    NAME   DESCRIPTION';
  105.           +'             AMOUNT'
  106.         ?
  107.      ENDIF
  108.      SKIP
  109.     ENDDO
  110.       ENDIF
  111.  
  112.       GO TOP
  113. *     STORE VAL(Name) TO LastReco   <old line>
  114. *     NEXT LINE ADDED 9/30/83
  115.       STORE # TO LASTRECO
  116.       USE Costbase
  117.       STORE 0 TO Unindexed
  118.       GO LastReco
  119.       SKIP
  120.       DO WHILE .NOT. EOF
  121.          DISPLAY Next 1 Bill:Date, Name, Descrip+'   ', Amount;
  122.           FOR Job:Nmbr = VAL(MJob:Nmbr) OFF
  123.          IF Job:Nmbr = &MJob:Nmbr
  124.      STORE Sum + Amount TO Sum
  125.      STORE LineCnt + 1 TO LineCnt
  126.             STORE Spacer + 1 TO Spacer
  127.  
  128.      IF Spacer = 10
  129.                ?
  130.           STORE 0 TO Spacer
  131.  
  132.      ENDIF
  133.  
  134.      IF LineCnt = 50
  135.             ? CHR(12)
  136.         STORE 0 TO LineCnt
  137.         STORE 0 TO Spacer
  138.         ? 'DATE    NAME                   DESCRIPTION';
  139.           +'            AMOUNT'
  140.                ?
  141.      ENDIF
  142.          ENDIF
  143.   STORE Unindexed + 1 TO Unindexed
  144.   SKIP
  145.       ENDDO
  146.       ?
  147.       ? '                   TOTAL COSTS TO DATE: ' -;
  148.          STR(Sum,9,2)
  149.  
  150.       STORE LineCnt + 2 TO LineCnt
  151.       STORE 0 TO Spacer
  152.       IF LineCnt = 40
  153.    ? CHR(12)
  154.   STORE 0 TO LineCnt
  155.       ELSE
  156.   ?
  157.   ?
  158.   ?
  159.       ENDIF
  160.  
  161.       USE Billings
  162.       ? 'BILLED TO DATE FOR &MClient-&MJob:Nmbr'
  163.       ?
  164.       ? 'DATE   INV#   DESCRIPTION         TAXABLE'+;
  165.         '         TAX    TAX FREE'
  166.       ?
  167.       STORE LineCnt + 4 TO LineCnt
  168.       STORE 0 TO Sum
  169.       STORE 0 TO T
  170.       STORE 0 TO S
  171.       STORE 0 TO F
  172.       DO WHILE .NOT. EOF
  173.   IF Job:Nmbr = &MJob:Nmbr
  174.   DISPLAY Next 1 Inv:Date, Inv:Nmbr, Descrip,STR(Taxable,9,2)+' ';
  175.       STR(Sales:Tax,9,2)+' ',TaxFree FOR Job:Nmbr = &MJob:Nmbr OFF
  176.   STORE T + Taxable TO T
  177.   STORE S + Sales:Tax TO S
  178.   STORE F + TaxFree TO F
  179.   STORE Sum + Taxable + Sales:Tax + TaxFree TO Sum
  180.   STORE LineCnt + TO LineCnt
  181.   STORE Spacer + TO Spacer
  182.  
  183.   IF Spacer = 10
  184.      ?
  185.      STORE 0 TO Spacer
  186.   ENDIF
  187.  
  188.   IF LineCnt = 50
  189.      ? CHR(12)
  190.      STORE 0 TO LineCnt
  191.      STORE 0 TO Spacer
  192.      ? 'DATE   INV#  DESCRIPTION   TAXABLE         TAX      TAX FREE'
  193.    ENDIF
  194.       ENDIF
  195.  
  196.           SKIP
  197.        ENDDO
  198.        ?
  199.        ? '           SUB-TOTALS : '+ STR(T,9,2) + '  ';
  200.    + STR(S,9,2)+'  ' + STR(F,9,2)
  201.        ?
  202.        ? '               TOTAL BILLED TO DATE: ' -;
  203.         STR(Sum,9,2)
  204.  
  205.        ? CHR(12)
  206.        SET PRINT OFF
  207.  
  208.        ? '     F if Finished,'
  209.        ? '  <Return> to continue.'
  210.        WAIT TO Again
  211.     ENDIF okay to do the report
  212.  ENDIF
  213. ENDDO Again
  214.  
  215. IF Unindexed > 50
  216.    ERASE
  217.    @ 5,0
  218.    ? '   There are ' - STR(Unindexed,9) + ' unindexed records'
  219.    ? '   in the Costbase.  To speed up the Job Costs procedure,'
  220.    ? '   please reindex from the next menu.'
  221.    ? '<Return> to continue.'
  222.    WAIT
  223. ENDIF
  224.  
  225. RELEASE All
  226. RETURN
  227.  
  228.