home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / SBTAR4.ZIP / ARMANT.PRG < prev    next >
Encoding:
Text File  |  1990-06-20  |  12.1 KB  |  390 lines

  1. ********************** ' MultiNet Source Code ' ***********************
  2. ** '                       SBT Corporation                         ' **
  3. ** '         One Harbor Drive, Sausalito, California 94965         ' **
  4. ** '                   Telephone (415) 331-9900                    ' **
  5. ***********************************************************************
  6. ** '   (c) Copyright 1984, Revisions 1985 - 1990 SBT Corporation   ' **
  7. ** '            All Rights Reserved by SBT Corporation             ' **
  8. ** '                                                               ' **
  9. ***********************************************************************
  10. ** ' 06/20/90 = Last Update  **   ARMANT.PRG   **  Version 6.35.01 ' **
  11. ***********************************************************************
  12. * ' Change/Void Invoice/Credit Memos - called by ARMENU
  13. * '                                    calls ARMANE, ARMANV
  14. *
  15. STORE .f. TO mlist, mselcust
  16. STORE .t. TO merase, mselinvo
  17. DO WHILE .t.
  18.   CLOSE DATABASES
  19.   SELECT a
  20.   USE &m0armastf INDEX &m0armastf..ndx
  21.   SET FILTER TO arstat <> 'V' .AND. artype <> 'R' .AND. .NOT. DELETED()
  22.   IF merase
  23.     CLEAR
  24.     @ 1,1 SAY m0date
  25.     @ 1,25 SAY 'Change/Void Invoice/Credit Memo'
  26.     @ 1,73 SAY SUBSTR(m0company,79,6)
  27.     @ 2,1 SAY SUBSTR(m0company,1,78)
  28.     STORE .f. TO merase
  29.   ENDIF
  30.   STORE SPACE(8) TO minvno
  31.   IF mselinvo
  32.     @ 4,0
  33.     @ 4,1 SAY 'Enter Invoice No, "?" to List, or <Enter> to search '+ ;
  34.     'on Customer No ' + SUBSTR(m0border,183,4) GET minvno PICTURE '!#######'
  35.     READ
  36.     IF minvno = SPACE(8)
  37.       STORE .f. TO mselinvo
  38.       STORE .t. TO mselcust
  39.     ELSE
  40.       STORE .t. TO mselinvo
  41.       STORE .f. TO mselcust
  42.     ENDIF
  43.   ENDIF
  44.   IF mselcust
  45.     STORE SPACE(6) TO mcust
  46.     @ 4,0
  47.     @ 4,1 SAY 'Enter Customer Number, "?" to List, or <Enter> to ' + ;
  48.     'Quit ' + SUBSTR(m0border,182,5) GET mcust PICTURE '!!!!!!'
  49.     READ
  50.     CLEAR GETS
  51.     IF SUBSTR(mcust,1,1) = ' '
  52.       STORE 'Y' TO mans
  53.       @ 6,0 CLEAR
  54.       @ 6,1 SAY 'Finished ? (Y/N) ' + SUBSTR(m0border,179,8) ;
  55.       GET mans PICTURE 'Y'
  56.       READ
  57.       IF mans = 'N'
  58.         STORE .t. TO mselinvo, merase
  59.         STORE .f. TO mselcust
  60.         @ 4,0 CLEAR
  61.         LOOP
  62.       ENDIF
  63.       CLEAR
  64.       @ 9,22 SAY '*****  Returning to Main Menu  *****'
  65.       CLOSE DATABASES
  66.       RETURN
  67.     ENDIF
  68.     SELECT d
  69.     USE &m0custf INDEX &m0custf..ndx
  70.     @ 22,1 SAY '*****  Searching File  *****'
  71.     * ' Search on Customer number
  72.     SET EXACT ON
  73.     SEEK mcust
  74.     SET EXACT OFF
  75.     STORE .f. TO maddok
  76.     IF EOF()
  77.       STORE TRIM(mcust) TO m0key
  78.       STORE 'custno' TO m0field
  79.       STORE 'ARCUST' TO m0file
  80.       * ' Call procedure to list on screen
  81.       DO syslist WITH m0field, m0key, m0file, 4
  82.       SEEK mcust
  83.       IF EOF()
  84.         LOOP
  85.       ENDIF
  86.       CLEAR
  87.     ENDIF
  88.     STORE custno TO mcust
  89. *\ ARMANT01 00 06/20/90 JG Get rid of unnecessary ENDIF/IF
  90.     STORE '?       ' TO minvno
  91.     CLEAR
  92.     @ 1,1 SAY m0date
  93.     @ 1,25 SAY 'Change/Void Invoice/Credit Memo'
  94.     @ 1,73 SAY SUBSTR(m0company,79,6)
  95.     @ 2,1 SAY SUBSTR(m0company,1,78)
  96.   ENDIF
  97.   @ 22,1 SAY '*****  Searching File  *****'
  98.   IF SUBSTR(minvno,1,1) <> '?'
  99.     STORE STR(VAL(minvno),8,0) TO minvno
  100.   ENDIF
  101.   SELECT a
  102.   SET INDEX TO &m0armastf..ndx
  103.   IF mselcust
  104.     SET FILTER TO .NOT. DELETED() .AND. mcust = custno
  105.   ELSE
  106.     SET FILTER TO .NOT. DELETED()
  107.   ENDIF
  108.   SEEK minvno
  109.   IF EOF()
  110.     STORE 'Invoice/CM' TO mtitle
  111.     STORE 'Invoice No.   Inv Date  Order No.   Cust No.    ' + ;
  112.     '$ Total       Balance' TO mheading
  113.     STORE TRIM(minvno) TO m0key
  114.     STORE 'invno' TO m0field
  115.     STORE 'ARMAST' TO m0file
  116.     * ' Call procedure to list on screen
  117.     DO syslist WITH m0field, m0key, m0file, 5
  118.     SEEK minvno
  119.     IF EOF()
  120.       LOOP
  121.     ENDIF
  122.     @ 4,0 CLEAR
  123.   ENDIF && EOF()
  124.   SELECT b
  125.   USE &m0artranf INDEX &m0artracf..ndx
  126.   SET FILTER TO arstat <> 'V' .AND. .NOT. DELETED()
  127.   SELECT d
  128.   USE &m0custf INDEX &m0custf..ndx
  129.   SELECT a
  130.   SET ESCAPE OFF
  131.   STORE .f. TO mrevise
  132.   STORE .t. TO merase
  133.   STORE ' ' TO maction
  134.   DO WHILE .t.
  135.     SELECT a
  136.     IF BOF() .OR. EOF()
  137.       STORE ' ' TO mans
  138.       @ 20,0
  139.       IF BOF()
  140.         @ 20,1 SAY 'Top of File. Press any key to continue...' GET mans
  141.       ELSE
  142.         @ 20,1 SAY 'End of File. Press any key to continue...' GET mans
  143.       ENDIF
  144.       READ
  145.       EXIT
  146.     ENDIF
  147.     STORE a->custno TO mcust
  148.     STORE a->invno TO minvno
  149.     STORE SPACE(35) TO mcompany, mscompany
  150.     STORE SPACE(30) TO maddr1, maddr2, maddr3, msaddr1, msaddr2, msaddr3
  151.     SELECT d
  152.     SET INDEX TO &m0custf..ndx
  153.     SEEK mcust
  154.     IF .NOT. EOF()
  155.       STORE d->company TO mcompany, mscompany
  156.       STORE d->address1 + SPACE(5) TO maddr1, msaddr1
  157.       STORE d->address2 + SPACE(5) TO maddr2, msaddr2
  158.       STORE TRIM(TRIM(d->city) + ', ' + TRIM(SUBSTR(d->state,1,2)) + ;
  159.       ' ' + TRIM(d->zip) + ' ' + d->country) TO maddr3
  160.       STORE SUBSTR(maddr3 + SPACE(35),1,35) TO maddr3, msaddr3
  161.     ENDIF
  162.     IF a->tosw <> ' '
  163.       SELECT d
  164.       USE &m0araddrf INDEX &m0araddrf..ndx
  165.       SEEK minvno
  166.       IF .NOT. EOF()
  167.         STORE d->company TO mscompany
  168.         STORE d->address1 TO msaddr1
  169.         STORE d->address2 TO msaddr2
  170.         STORE d->address3 TO msaddr3
  171.       ENDIF
  172.       USE &m0custf INDEX &m0custf..ndx
  173.       SEEK mcust
  174.     ENDIF
  175.     SELECT a
  176.     STORE a->artype TO martype
  177.     IF a->artype $ 'CTF'
  178.       STORE a->artype + LTRIM(minvno) TO mxinvno
  179.     ELSE
  180.       STORE LTRIM(minvno) TO mxinvno
  181.     ENDIF
  182.     DO CASE
  183.       CASE a->artype = 'C'
  184.         STORE 'Credit Memo' TO mform
  185.       CASE a->artype = 'T'
  186.         STORE 'Credit Memo for Tax Only' TO mform
  187.       CASE a->artype = 'F'
  188.         STORE 'Finance Charge' TO mform
  189.       OTHERWISE
  190.         STORE 'Invoice' TO mform
  191.     ENDCASE
  192.     STORE 'Change ' + mform + ' Number ' + mxinvno TO mtitle
  193.     IF .NOT. a->maint $ ' -'
  194.       STORE mtitle + '-' + a->maint TO mtitle
  195.     ENDIF
  196.     IF merase
  197.       CLEAR
  198.       @ 1,1 SAY DTOC(m0date)
  199.       @ 1,73 SAY SUBSTR(m0company,79,6)
  200.       @ 2,1 SAY SUBSTR(m0company,1,78)
  201.       @ 3,1 TO 6,78
  202.       @ 12,1 TO 19,78
  203.       @ 7,1 TO 12,38
  204.       @ 7,41 TO 12,78
  205.       DO CASE
  206.         CASE m0os = 'D' .OR. SUBSTR(m0border,170,1) = 'Y'
  207.           @ 12,1 SAY CHR(195)
  208.           @ 12,38 SAY CHR(193)
  209.           @ 12,41 SAY CHR(193)
  210.           @ 12,78 SAY CHR(180)
  211.         CASE m0os = 'M'
  212.           @ 12,1 SAY CHR(224)
  213.           @ 12,38 SAY CHR(227)
  214.           @ 12,41 SAY CHR(227)
  215.           @ 12,78 SAY CHR(225)
  216.       ENDCASE
  217.       @ 3,2 SAY ' Customer Information: '
  218.       @ 7,42 SAY ' Ship To: '
  219.       @ 4,3 SAY 'Balance ' + SUBSTR(m0border,180,5)
  220.       @ 4,30 SAY 'YTD Sales ' + SUBSTR(m0border,182,3)
  221.       @ 4,56 SAY 'Last Sale ' + SUBSTR(m0border,183,2)
  222.       @ 5,3 SAY 'Avl Credit ' + SUBSTR(m0border,183,2)
  223.       @ 5,30 SAY 'On Order ' + SUBSTR(m0border,181,4)
  224.       @ 5,56 SAY 'Last Paid ' + SUBSTR(m0border,183,2)
  225.       @ 13,3 SAY SUBSTR(m0border,91,2) + 'Date' + SUBSTR(m0border,91,2) + ;
  226.       '   ' + SUBSTR(m0border,91,2) + 'Ship Via' + SUBSTR(m0border,91,2) + ;
  227.       '    ' + SUBSTR(m0border,91,3) + 'F.O.B.' + SUBSTR(m0border,91,3)
  228.       @ 13,46 SAY SUBSTR(m0border,91,5) + 'PO Number' + ;
  229.       SUBSTR(m0border,91,6) + '   ' + SUBSTR(m0border,91,3) + 'Ref' + ;
  230.       SUBSTR(m0border,91,2)
  231.       IF m0lntax
  232.         @ 15,13 SAY 'Slspersn  Terr District  Order Date  ' + ;
  233.         'Order Number     Sales Disc'
  234.       ELSE
  235.         @ 15,3 SAY 'Tax Rate  Slspersn  Terr District  Order Date  ' + ;
  236.         'Order Number     Sales Disc'
  237.       ENDIF
  238.       @ 17,3 SAY SUBSTR(m0border,91,7) + 'Terms' + SUBSTR(m0border,91,8) + ;
  239.       '      Payment Discount    Net Due Days'
  240.       IF SUBSTR(m0link,1,1) = 'Y'
  241.         @ 17,65 SAY 'AR Link Code'
  242.       ENDIF
  243.       @ 16,76 SAY '%'
  244.       @ 18,37 SAY '%'
  245.       @ 18,43 SAY 'Days'
  246.       @ 18,55 SAY 'Days'
  247.       STORE .f. TO merase
  248.     ENDIF && merase
  249.     @ 1,20 SAY SPACE(40)
  250.     @ 1,40 - INT(LEN(mtitle)/2) SAY mtitle
  251.     @ 7,2 SAY ' Bill To: (' + TRIM(mcust) + ') ' + SUBSTR(m0border,91,5)
  252.     @ 4,17 SAY d->balance PICTURE '99999999.99'
  253.     @ 4,44 SAY d->ytdsls PICTURE '9999999.99'
  254.     @ 4,69 SAY d->ldate
  255.     @ 5,17 SAY d->limit - d->balance PICTURE '99999999.99'
  256.     @ 5,44 SAY d->onorder PICTURE '9999999.99'
  257.     @ 5,69 SAY d->lastpay
  258.     @ 8,3 SAY mcompany
  259.     @ 9,3 SAY maddr1
  260.     @ 10,3 SAY maddr2
  261.     @ 11,3 SAY maddr3
  262.     @ 8,43 SAY mscompany
  263.     @ 9,43 SAY msaddr1
  264.     @ 10,43 SAY msaddr2
  265.     @ 11,43 SAY msaddr3
  266.     @ 14,3 SAY a->invdte PICTURE '##/##/##'
  267.     @ 14,14 SAY a->shipvia PICTURE 'XXXXXXXXXXXX'
  268.     @ 14,30 SAY a->fob PICTURE 'XXXXXXXXXXXX'
  269.     @ 14,46 SAY a->ponum PICTURE 'XXXXXXXXXXXXXXXXXXXX'
  270.     @ 14,69 SAY a->refno PICTURE 'XXXXXXXX'
  271.     IF .NOT. m0lntax
  272.       @ 16,3 SAY a->taxrate PICTURE '###.###'
  273.     ENDIF
  274.     @ 16,16 SAY a->salesmn PICTURE '!!'
  275.     @ 16,24 SAY a->terr PICTURE '!!'
  276.     @ 16,30 SAY a->taxdist PICTURE '!!!!'
  277.     @ 16,39 SAY a->ordate PICTURE '##/##/##'
  278.     @ 16,52 SAY a->ornum PICTURE 'XXXXXXXX'
  279.     @ 16,68 SAY a->disc PICTURE '###.###'
  280.     @ 18,3 SAY a->pterms PICTURE 'XXXXXXXXXXXXXXXXXXXX'
  281.     @ 18,29 SAY a->pdisc PICTURE '###.###'
  282.     @ 18,39 SAY a->pdays PICTURE '###'
  283.     @ 18,51 SAY a->pnet PICTURE '###'
  284.     IF SUBSTR(m0link,1,1) = 'Y'
  285.       @ 18,69 SAY a->glarec PICTURE '!!!'
  286.     ENDIF
  287.     @ 20,0 CLEAR
  288.     IF d->limit - d->balance < 0.00 .AND. mcust <> 'CASH  '
  289.       ?? CHR(7)
  290.       @ 21,1 SAY '*** Credit Limit Exceeded by $ ' + ;
  291.       LTRIM(STR(d->balance - d->limit,11,2)) + ' ***'
  292.     ENDIF
  293.     @ 22,1 SAY 'Total ='
  294.     @ 22,32 SAY 'Tax ='
  295.     @ 22,56 SAY 'Bal Due ='
  296.     @ 22,11 SAY a->invamt PICTURE '99,999,999.99'
  297.     @ 22,39 SAY a->tax PICTURE '99,999.99'
  298.     @ 22,66 SAY a->balance PICTURE '9,999,999.99'
  299.     STORE 'F' TO maction
  300.     STORE 'FBQ' TO moptns
  301.     DO CASE
  302.       CASE a->arstat = 'V' .OR. DELETED()
  303.         * ' Can't do anything to voided invoice
  304.         ?? CHR(7)
  305.         STORE mform + ' Voided.  Enter Choice (Fwd/Back/Quit) ' TO msg
  306. *\ ARMANT01 01 06/20/90 JG Disallow voiding Tax Only Credit Memos
  307.       CASE a->current = 'X' .OR. a->artype = 'T'
  308.         * ' Can't void prior period invoice
  309.         STORE 'Enter Choice (Edit/Fwd/Back/Quit) ' TO msg
  310.         STORE 'EFBQ' TO moptns
  311.         STORE 'E' TO maction
  312.       OTHERWISE
  313.         STORE 'Enter Choice (Edit/Void/Fwd/Back/Quit) ' TO msg
  314.         STORE 'EVFBQ' TO moptns
  315.         STORE 'E' TO maction
  316.     ENDCASE
  317.     @ 20,1 SAY msg + SUBSTR(m0border,180,7) GET maction PICTURE '!'
  318.     READ SAVE
  319.     DO WHILE .NOT. maction $ moptns
  320.       ?? CHR(7)
  321.       READ SAVE
  322.     ENDDO
  323.     @ 20,0
  324.     @ 21,0
  325.     CLEAR GETS
  326.     IF .NOT. maction $ 'FBQ'
  327.       DO p0rlockd
  328.       IF .NOT. lockedr
  329.         LOOP
  330.       ENDIF
  331.       IF a->signature = 99
  332.         UNLOCK
  333.         STORE ' ' TO mans
  334.         ?? CHR(7)
  335.         @ 20,0 CLEAR
  336.         @ 20,1 SAY mform + ' is being maintained by another user.'
  337.         @ 22,1 SAY 'Press any key...' GET mans
  338.         READ
  339.         @ 20,0 CLEAR
  340.         LOOP
  341.       ENDIF
  342.       REPLACE signature WITH 99
  343.       UNLOCK
  344.     ENDIF
  345.     DO CASE
  346.       CASE maction = 'E'
  347.         * ' call header edit program
  348.         DO armane
  349.       CASE maction = 'V'
  350.         * ' call void program
  351.         DO armanv
  352.     ENDCASE
  353.     SELECT a
  354.     IF maction $ 'FBQ'
  355.       IF mrevise .AND. a->prtid <> ' '
  356.         STORE AT(a->maint,' ABCDEFGHIJKLMNOPQRSTUVWXYZZ') TO mpos
  357.         IF mpos > 0
  358.           STORE SUBSTR(' ABCDEFGHIJKLMNOPQRSTUVWXYZZ',mpos,2) TO imaint
  359.         ELSE
  360.           STORE a->maint + '*' TO imaint
  361.         ENDIF
  362.         DO p0rlockn
  363.         REPLACE maint WITH SUBSTR(imaint,2,1), prtid WITH ' '
  364.       ENDIF
  365.       STORE .f. TO mrevise
  366.     ELSE
  367.       DO p0rlockn
  368.       REPLACE signature WITH 0
  369.     ENDIF
  370.     UNLOCK
  371.     DO CASE
  372.       CASE maction = 'F'
  373.         SKIP
  374.       CASE maction = 'B'
  375.         SKIP -1
  376.       CASE maction = 'Q'
  377.         EXIT
  378.     ENDCASE
  379.   ENDDO && WHILE .t.
  380.   STORE .t. TO merase
  381. ENDDO && WHILE .t.
  382. RETURN
  383. *
  384. * ' $Revision:   1.13  $
  385. * ' $Date:   20 Jun 1990 17:10:54  $
  386. *********************
  387. ** ' ARMANT.PRG  ' **
  388. ** ' 389 Lines   ' **
  389. *********************
  390.