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

  1.      **************** Invprint COMMAND FILE ********************
  2. * Prints invoice forms.
  3. *      Printing can be put off until later.
  4. *      Entries can be edited if they do not print correctly.
  5. ***************************************************************************
  6. *
  7. SELECT 1
  8. GO TOP
  9. *
  10. CLEAR
  11. IF EOF()
  12.    ? 'There are no invoices to print.'
  13.    WAIT 'Type any key to continue' 
  14. ELSE
  15.    ?
  16.    ? 'DO NOT PRINT THESE ENTRIES IF THERE ARE ANY ERRORS!'
  17.    ? 'Once they are printed you cannot edit them!!!'
  18.    ?
  19.    ? 'INV #  JOB #   DESCRIPTION                     TAXABLE        ';
  20.      + 'TAX       NO TAX'
  21.    DO WHILE .NOT. EOF()
  22.       IF .NOT. DELETED()
  23.         ? Inv_Nmbr,Client+STR(Job_Nmbr,4),SUBSTR(Descrip,1,25),Taxable,;
  24.         Sales_Tax,TaxFree 
  25.       ENDIF
  26.       SKIP
  27.    ENDDO
  28.    ?
  29.    WAIT 'DO you want to print them now (Y or N)? ' TO Hardcopy
  30. ENDIF
  31. *
  32. IF UPPER(Hardcopy) <> 'Y'
  33.    @ ROW(),0 SAY 'Preparing to update invoice transaction  '
  34.    RETURN
  35. ENDIF
  36. CLEAR
  37. ? '          Prepare To Print Invoices '
  38. ?
  39. ? '1> Load a batch of invoice forms in the sheet feeder.'
  40. ?
  41. ? '2> Press RESET, then move the first form into position.'
  42. ?
  43. ? '3> Line up the top of the form with the white mark.'
  44. ?
  45. WAIT 'Now press any key to print the form.'
  46. *
  47. *
  48. SET PRINT ON
  49. GO TOP
  50. DO WHILE .NOT. EOF()
  51.       IF DELETED()
  52.          SKIP
  53.          LOOP
  54.       ELSE
  55.          CLEAR
  56.          ? SPACE(29) + '*****************'
  57.          ? SPACE(29) + '  I N V O I C E'
  58.          ? SPACE(29) + '*****************'
  59.          ?
  60.          ? '    INVOICE #:  '+ Inv_Nmbr + SPACE(37) + 'DATE:', Inv_Date
  61.          ?
  62.          *
  63.          * We check to see if we have a listing in our client address file.
  64.          * If not, the user can enter a name and address from the keyboard.
  65.          SELECT 7
  66.          LOCATE FOR Name = TRIM(A->Client)
  67.          IF EOF()
  68.             SET PRINT OFF
  69.             APPEND BLANK
  70.             REPLACE NAME WITH A->Client
  71.             CLEAR
  72.             @  2, 0 SAY 'No billing address for this invoice in our files.'
  73.             @  4, 0 SAY 'Client #: '+A->Client+'  Job #; '+STR(A->Job_Nmbr,4)+;
  74.                '  Description: '+SUBSTR(A->Descrip,1,25)
  75.             @  6, 0 SAY 'Enter the name and address for billing:'
  76.             @  8, 0 SAY '         COMPANY ' GET Line1
  77.             @  9, 0 SAY '         ADDRESS ' GET Line2
  78.             @ 10, 0 SAY '                 ' GET Line3
  79.             @ 11, 0 SAY '                 ' GET Line4
  80.             @ 12, 0 SAY '    ATTENTION OF ' GET Line5
  81.             Correct = 'Y'
  82.             DO WHILE UPPER(Correct) <> 'N'
  83.                @ 13, 0 CLEAR
  84.                READ SAVE
  85.                WAIT 'Any corrections (Y or N)? ' TO Correct
  86.             ENDDO
  87.             CLEAR GETS
  88.             SET PRINT ON
  89.          ENDIF
  90.          ? '    BILLED TO:  ' + TRIM(Line1)
  91.          ? '                ' + TRIM(Line2)
  92.          ? '                ' + TRIM(Line3)
  93.          ? '                ' + TRIM(Line4)
  94.          ? '                ' + TRIM(Line5)
  95.          ?
  96.          ? '    ----------------------------------'+;
  97.            '--------------------------------------'
  98.          ?
  99.          ? SPACE(58) + 'TAXABLE    SERVICE'
  100.          SELECT 1
  101.          STORE 0 TO LineCnt, Taxed, State, Service, Final
  102.          MaxLines = 33
  103.          Page = 1
  104.          SameJob = .F.
  105.          TempInv = Inv_Nmbr
  106.          DO WHILE .NOT. EOF() .AND. TempInv = Inv_Nmbr
  107.             * Print blanks when the entry is zero.
  108.             IF Taxable = 0
  109.                First = '           '
  110.             ELSE
  111.                First = STR(Taxable,11,2)
  112.             ENDIF
  113.             IF TaxFree = 0
  114.                Second = ' '
  115.             ELSE
  116.                Second = STR(TaxFree,11,2)
  117.             ENDIF
  118.  
  119.             IF SameJob
  120.                ? '    ' + Descrip + First + Second
  121.             ELSE
  122.                IF PO_Nmbr <> ' '
  123.                   ? SPACE(4)+Client+'-'+STR(Job_Nmbr,4) +' (P.O.# '+ TRIM(PO_Nmbr) +'):'
  124.                ELSE
  125.                   ? SPACE(4)+Client + '-' + STR(Job_Nmbr,4) + ':'
  126.                ENDIF
  127.                LineCnt = LineCnt + 1
  128.                ? '    ' + Descrip + First + Second
  129.             ENDIF
  130.             LineCnt = LineCnt + 1
  131.             Taxed = Taxed + Taxable
  132.             State = State + Sales_Tax
  133.             Service = Service + TaxFree
  134.             *
  135.             SKIP
  136.             *
  137.             IF Page > 1
  138.                MaxLines = 38
  139.             ENDIF
  140.             *
  141.             IF LineCnt > MaxLines
  142.                ?
  143.                DO Invsubto
  144.                ?
  145.                ?
  146.                ?
  147.                ? '                        (...continued on next page...)'
  148.                Page = Page + 1
  149.                * Formfeed
  150.                EJECT
  151.                LineCnt = 0
  152.                ?
  153.                ?
  154.                ? '             Invoice '+ 'Number ' + Inv_Nmbr +;
  155.                  ', page '+ STR(Page,2) + '...'
  156.                ?
  157.                ? '    ----------------------------------'+;
  158.                  '--------------------------------------'
  159.                ?
  160.                ? SPACE(26) + 'TAXABLE      SERVICE'
  161.                DO Invsubto
  162.                ?
  163.             ENDIF
  164.          ENDDO
  165.          *
  166.          Final = Taxed + State + Service
  167.          *
  168.          DO Invsubto
  169.          *
  170.          * Position the totals near the bottom of the form
  171.          DO WHILE LineCnt < 33
  172.             SET CONSOLE OFF
  173.             ?
  174.             LineCnt = LineCnt + 1
  175.             SET CONSOLE ON
  176.          ENDDO
  177.          *
  178.          IF State > 0
  179.             ?
  180.             ? SPACE(11) + 'State Sales Tax:' + SPACE(40) +  STR(State,9,2)
  181.          ENDIF
  182.          ?
  183.          ? '    ----------------------------------'+;
  184.            '--------------------------------------'
  185.          ?
  186.          ? SPACE(42) + 'TOTAL DUE:  '+SPACE(10)+'$' + STR(Final,11,2)
  187.          ?
  188.          ? SPACE(42) + 'Terms:                Net 10 days.'
  189.          *
  190.          EJECT
  191.       ENDIF
  192. ENDDO eof
  193. SET PRINT OFF
  194. *
  195. RETURN
  196.