home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / SBTAR4.ZIP / ARPOSC.PRG < prev    next >
Encoding:
Text File  |  1990-07-23  |  9.8 KB  |  334 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. ** ' 07/23/90 = Last Update  **  ARPOSC.PRG   **   Version 6.35.02 ' **
  11. ***********************************************************************
  12. * ' Enter a Credit Memo for Sales Tax only - called by ARPOST
  13. * '                                          calls ARPOSA and SYSWCOM
  14. *
  15. * ' Files in Use: Area a - ARCUSTnn.DBF index ARCUSTnn.NDX
  16. * '                    b - ARINVTnn.DBF index ARINVTnn.NDX
  17. * '                    c - Temporary file, stru = ARTRANnn (temp1)
  18. * '                    d - ARGLACnn.DBF index ARGLACnn.NDX if linked
  19. *
  20. * ' The following variables are defined in ARPOST:
  21. *
  22. * ' totarecv totinv totminv totcash tottax minvdte mupdated mcreated
  23. * ' mcust mcompany mscompany maddr1 msaddr1 maddr2 msaddr2 maddr3 msaddr3
  24. * ' idisc iglarec ipdisc ipdays ipnet iterr itaxrate mckno
  25. * ' ishipvia ifob iponum ipterms iornum iordate isalesmn itosw
  26. *
  27. STORE '_CREDT_MEMO_TAX' TO mitem
  28. STORE 'Credit Memo for Tax Only' TO mdescrip
  29. STORE a->tax TO mrate
  30. STORE 0.00 TO mgross, mtax
  31. STORE iglarec TO iglsale
  32. CLEAR
  33. @ 1,1 SAY DTOC(m0date)
  34. @ 1,40 - INT(LEN(mhead)/2) SAY mhead
  35. @ 1,73 SAY SUBSTR(m0company,79,6)
  36. @ 2,1 SAY SUBSTR(m0company,1,78)
  37. @ 4,1 SAY 'Customer Number / Name ' + SUBSTR(m0border,183,4) + mcust + ;
  38. ' / ' + TRIM(mcompany)
  39. @ 7,1 SAY 'Amount to base credit on  ' + SUBSTR(m0border,182,4)
  40. @ 9,1 SAY 'Tax Rate                  ' + SUBSTR(m0border,182,4)
  41. @ 9,44 SAY '%'
  42. @ 11,1 SAY 'Sales Tax Credit Amount   ' + SUBSTR(m0border,182,4)
  43. DO WHILE .t.
  44.   @ 11,31 GET mtax PICTURE '#######.##'
  45.   @ 22,0
  46.   @ 22,1 SAY 'Enter the Tax Amount or leave 0.00 to calculate...'
  47.   IF SUBSTR(m0link,1,1) = 'Y'
  48.     @ 13,1 SAY 'GL Sales Link Code        ' + SUBSTR(m0border,182,4)
  49.     @ 13,31 GET iglsale PICTURE '!!!'
  50.   ENDIF
  51.   READ
  52.   @ 22,0
  53.   CLEAR GETS
  54.   IF mtax = 0.00
  55.     @ 22,1 SAY 'Enter the Taxable Total and Tax Rate...'
  56.     @ 7,31 GET mgross PICTURE '#######.##'
  57.     @ 9,35 GET mrate PICTURE '###.###'
  58.     READ
  59.     @ 21,0 CLEAR
  60.     STORE f0extlin(mgross, mrate, 99) TO mtax
  61.     @ 11,31 SAY mtax PICTURE '#######.##'
  62.   ENDIF && mtax = 0.00
  63.   CLEAR GETS
  64.   STORE 'S' TO mans
  65.   @ 22,0 CLEAR
  66.   @ 22,1 SAY 'Enter Choice (Save/Edit/Cancel) ' + ;
  67.   SUBSTR(m0border,180,7) GET mans PICTURE '!'
  68.   READ SAVE
  69.   DO WHILE .NOT. mans $ 'SEC'
  70.     ?? CHR(7)
  71.     READ SAVE
  72.   ENDDO
  73.   @ 22,0
  74.   CLEAR GETS
  75.   IF mans = 'E'
  76.     LOOP
  77.   ENDIF
  78.   IF mans = 'C'
  79.     RETURN
  80.   ENDIF
  81.   IF mtax <= 0.00
  82.     ?? CHR(7)
  83.     @ 21,1 SAY 'Credit memo total tax amount must be greater than 0.00.'
  84.     LOOP
  85.   ENDIF
  86.   @ 22,0
  87.   CLEAR GETS
  88.   IF SUBSTR(m0link,1,1) = 'Y'
  89.     SELECT d
  90.     SET INDEX TO &m0glacf..ndx
  91.     STORE .t. TO mok
  92.     DO WHILE mok
  93.       SEEK iglsale
  94.       IF .NOT. EOF()
  95.         EXIT
  96.       ENDIF
  97.       ?? CHR(7)
  98. *\ ARPOSC02 01 07/23/90 KH Field Overwrites Field direction arrow.
  99.       @ 13,31 GET iglsale PICTURE '!!!'
  100.       @ 22,1 SAY 'Invalid Ledger linking code. Reenter or ' + ;
  101.       'blanks to cancel...'
  102.       READ
  103.       @ 22,0
  104.       IF iglsale = '   '
  105.         STORE .f. TO mok
  106.       ENDIF
  107.     ENDDO
  108.     CLEAR GETS
  109.     IF .NOT. mok
  110.       LOOP
  111.     ENDIF
  112.     @ 22,0
  113.   ENDIF && SUBSTR(m0link,1,1) = 'Y'
  114.   EXIT
  115. ENDDO && WHILE .t.
  116. STORE a->company TO mcompany
  117. STORE .t. TO mupdated, mcreated
  118. SET ESCAPE OFF
  119. SELECT f
  120. USE &m0sysdr.sysdata
  121. LOCATE FOR UPPER(sysid) = m0pgmid + SUBSTR(m0comp,1,2)
  122. DO p0rlockn
  123. STORE IIF(int1 + 1 < 100000000, STR(int1 + 1,8,0), STR(1,8,0)) TO minvno
  124. @ 22,0 CLEAR
  125. SELECT a
  126. USE &m0armastf INDEX &m0armastf..ndx
  127. SEEK minvno
  128. IF mincr = 'Y'
  129.   @ 22,0 CLEAR
  130.   SELECT a
  131.   DO WHILE .t.
  132.     UNLOCK ALL
  133.     STORE SUBSTR(LTRIM(minvno) + SPACE(8),1,8) TO minvno
  134.     @ 22,0 SAY 'Enter Credit Memo Number ' + SUBSTR(m0border,182,5) ;
  135.     GET minvno PICTURE '########'
  136.     READ
  137.     @ 22,0 CLEAR
  138.     IF VAL(minvno) <= 0
  139.       LOOP
  140.     ENDIF
  141.     STORE STR(VAL(minvno),8,0) TO minvno
  142.     DO p0flockn
  143.     SEEK minvno
  144.     IF .NOT. EOF()
  145.       ?? CHR(7)
  146.       @ 23,0 SAY '*****  Number ' + LTRIM(minvno) + ;
  147.       ' already in use.  *****'
  148.     ELSE
  149.       EXIT
  150.     ENDIF
  151.   ENDDO && WHILE .t.
  152.   SELECT f
  153.   DO p0rlockn
  154. ELSE
  155.   @ 22,0
  156.   SELECT a
  157.   SEEK minvno
  158.   DO WHILE .NOT. EOF()
  159.     @ 22,0 SAY '*****  Number ' + LTRIM(minvno) + ;
  160.     ' found. Searching for Unused Number.  *****'
  161.     SELECT f
  162.     IF int1 + 1 = VAL(minvno) .OR. (int1 = 99999999 .AND. VAL(minvno) = 1)
  163.       REPLACE int1 WITH VAL(minvno)
  164.     ENDIF
  165.     STORE IIF(int1 + 1 < 100000000, STR(int1 + 1,8,0), STR(1,8,0)) ;
  166.     TO minvno
  167.     SELECT a
  168.     SEEK minvno
  169.   ENDDO
  170. ENDIF && mincr = 'Y'
  171. SELECT f
  172. *\ ARPOSC01 02 06/18/90 AV Tax only CMs do not affect PTD billings
  173. REPLACE int1 WITH VAL(minvno), num1 WITH num1 - mtax, ;
  174. num7 WITH num7 - mtax
  175. STORE SUBSTR(STR(1000 + VAL(SUBSTR(link,37,3)),4,0),2,3) TO mbatch
  176. USE
  177. STORE tottax - mtax TO tottax
  178. SELECT b
  179. @ 22,0
  180. @ 22,1 SAY '*****  Credit Memo ' + LTRIM(minvno) + ;
  181. ', Updating Inventory File  *****'
  182. SEEK mitem
  183. IF EOF()
  184.   DO p0flockn
  185.   APPEND BLANK
  186.   REPLACE item WITH mitem, descrip WITH mdescrip, decnum WITH 0, ;
  187.   gllink WITH m0deflink, stkcode WITH 'N', taxcode WITH 'N'
  188.   UNLOCK
  189. ENDIF
  190. DO p0rlockn
  191. REPLACE ldate WITH minvdte, ptdqty WITH ptdqty + 1, ytdqty WITH ytdqty + 1, ;
  192. ptdsls WITH ptdsls - mtax, ytdsls WITH ytdsls - mtax
  193. UNLOCK
  194. @ 22,0
  195. @ 22,1 SAY '*****  Credit Memo ' + LTRIM(minvno) + ;
  196. ', Updating Invoice Transaction File  *****'
  197. SELECT a
  198. USE
  199. SELECT c
  200. USE &m0artranf INDEX &m0artranf..ndx, &m0artracf..ndx, &m0artraif..ndx, ;
  201. &m0artradf..ndx
  202. DO p0flockn
  203. APPEND BLANK
  204. REPLACE invno WITH minvno, custno WITH mcust, item WITH mitem, descrip WITH ;
  205. mdescrip, qtyord WITH 1.0, qtyshp WITH 1.0, terr WITH iterr, invdte WITH ;
  206. minvdte, ponum WITH iponum, salesmn WITH isalesmn, glsale WITH iglsale
  207. REPLACE glasst WITH iglsale, extprice WITH 0.00 - mtax, ;
  208. class WITH b->class, batch WITH mbatch, taxable WITH 'Y', artype WITH 'T', ;
  209. taxrate WITH mrate, taxdist WITH idist
  210. USE
  211. SELECT b
  212. USE
  213. SELECT a
  214. @ 22,0
  215. @ 22,1 SAY '*****  Credit Memo ' + LTRIM(minvno) + ;
  216. ', Updating Invoice Master File  *****'
  217. USE &m0armastf INDEX &m0armastf..ndx, &m0armascf..ndx, &m0armasdf..ndx
  218. DO p0flockn
  219. APPEND BLANK
  220. REPLACE invno WITH minvno, invdte WITH minvdte, custno WITH mcust, ;
  221. salesmn WITH isalesmn, ponum WITH iponum, taxrate WITH mrate, shipvia WITH ;
  222. ishipvia, fob WITH ifob, ordate WITH iordate, taxdist WITH idist
  223. REPLACE ornum WITH iornum, tosw WITH itosw, pterms WITH ipterms, pdisc WITH ;
  224. ipdisc, pdays WITH ipdays, pnet WITH ipnet, glarec WITH iglarec, refno WITH ;
  225. mckno, refno WITH 'CR. MEMO', artype WITH 'T'
  226. REPLACE tax WITH 0 - mtax, invamt WITH 0 - mtax, balance WITH 0 - mtax, ;
  227. batch WITH mbatch
  228. UNLOCK
  229. @ 22,0
  230. IF itosw <> ' '
  231.   @ 22,1 SAY '*****  Credit Memo ' + LTRIM(minvno) + ;
  232.   ', Updating Shipping Address File  *****'
  233.   USE &m0araddrf INDEX &m0araddrf..ndx
  234.   DO p0flockn
  235.   APPEND BLANK
  236.   REPLACE custno WITH mcust, invno WITH minvno, company WITH mscompany, ;
  237.   address1 WITH msaddr1, address2 WITH msaddr2, address3 WITH msaddr3
  238.   UNLOCK
  239. ENDIF
  240. SELECT a
  241. @ 22,0
  242. @ 22,1 SAY '*****  Credit Memo ' + LTRIM(minvno) + ;
  243. ', Updating Customer File  *****'
  244. USE &m0custf INDEX &m0custf..ndx
  245. SEEK mcust
  246. DO p0rlockn
  247. STORE 0.00 TO tcash, tarecv
  248. STORE 0 - mtax TO tarecv
  249. STORE totarecv - mtax TO totarecv
  250. REPLACE credit WITH credit + mtax, balance WITH balance - mtax, ;
  251. ptdsls WITH ptdsls - mtax, ytdsls WITH ytdsls - mtax
  252. IF m0ldate
  253.   REPLACE ldate WITH minvdte, lsale WITH 0 - mtax
  254. ENDIF
  255. UNLOCK
  256. SELECT f
  257. IF SUBSTR(m0link,1,1) = 'Y'
  258.   @ 22,0
  259.   @ 22,1 SAY '*****  Credit Memo ' + LTRIM(minvno) + ;
  260.   ', Updating General Ledger Linking File  *****'
  261.   USE &m0gllkf INDEX &m0gllkf..ndx
  262.   DO p0flockn
  263.   SELECT d
  264.   SET INDEX TO &m0glacf..ndx
  265.   DO p0flockn
  266.   SEEK iglarec
  267.   IF activity <> 'Y'
  268.     REPLACE activity WITH 'Y'
  269.   ENDIF
  270.   SELECT f
  271.   IF tcash <> 0.00
  272.     STORE d->cashr TO mact
  273.     SEEK mact
  274.     IF EOF()
  275.       APPEND BLANK
  276.       REPLACE account WITH mact
  277.     ENDIF
  278.     REPLACE amount WITH amount + tcash
  279.   ENDIF
  280.   IF tarecv <> 0.00
  281.     STORE d->arecv TO mact
  282.     SEEK mact
  283.     IF EOF()
  284.       APPEND BLANK
  285.       REPLACE account WITH mact
  286.     ENDIF
  287.     REPLACE amount WITH amount + tarecv
  288.   ENDIF
  289.   SELECT d
  290.   SEEK iglsale
  291.   IF activity <> 'Y'
  292.     REPLACE activity WITH 'Y'
  293.   ENDIF
  294.   SELECT f
  295.   STORE d->liabt TO mact
  296.   SEEK mact
  297.   IF EOF()
  298.     APPEND BLANK
  299.     REPLACE account WITH mact
  300.   ENDIF
  301.   REPLACE amount WITH amount + mtax
  302. ENDIF && SUBSTR(m0link,1,1) = 'Y'
  303. CLOSE DATABASES
  304. SET ESCAPE ON
  305. STORE mtax TO minvamt
  306. @ 20,0 CLEAR
  307. IF mwcom = 'Y'
  308.   STORE ' ' TO mans
  309.   CLEAR GETS
  310.   @ 22,1 SAY 'Do you want to write a Comment on Credit Memo ' + ;
  311.   LTRIM(minvno) + ' ? (Y/N) ' + SUBSTR(m0border,180,7) GET mans PICTURE 'Y'
  312.   READ
  313.   @ 22,0
  314.   IF mans = 'Y'
  315.     @ 22,1 SAY '*****  Preparing to write Comment on Credit Memo ' + ;
  316.     LTRIM(minvno) + '  *****'
  317.     CLOSE DATABASES
  318.     DO syswcom
  319.   ENDIF
  320. ENDIF
  321. * ' Call Apply Credit Memo program
  322. DO arposa
  323. @ 22,0 CLEAR
  324. @ 22,1 SAY '*****  Setting up files for next entry  *****'
  325. STORE .t. TO merase, mupdated
  326. RETURN
  327. *
  328. * ' $Revision:   1.22  $
  329. * ' $Date:   23 Jul 1990 15:28:04  $
  330. *********************
  331. ** ' ARPOSC.PRG  ' **
  332. ** ' 332 Lines   ' **
  333. *********************
  334.