home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol136 / checkchg.bas < prev    next >
Encoding:
BASIC Source File  |  1986-12-15  |  14.0 KB  |  286 lines

  1. 4000 COLOR 7,0: REM ****************************************************************************************************
  2. 4010 REM                 "CHECKCHG" SUBROUTINE TO CHANGE DATA IN A PAYEE'S DISKETTE FILE RECORDS
  3. 4020 REM  **************************************************************************************************************
  4. 4030 GOSUB 260   'OPEN FILES #1,#2,#3
  5. 4040 GOSUB 300   'GET REQUESTED PAYEE FILE #1 AND FILE #2 RECORDS
  6. 4050 IF ASC(F1$)<>255 THEN GOTO 4100
  7. 4060    COLOR 31,0: PRINT "  Cannot change unused record. Retry.": COLOR 7,0
  8. 4070    PRINT "  Press any key to continue."
  9. 4080    IF INKEY$ = "" THEN 4080
  10. 4090    GOTO 4040
  11. 4100 IF P1$=P2$ THEN GOTO 4180
  12. 4110     CLS
  13. 4120     COLOR 31,0: PRINT "  Payee Numbers are unequal": COLOR 7,0
  14. 4130     PRINT "  FILE #1 is ";P1$
  15. 4140     PRINT "  FILE #2 is ";P2$: GOTO 330
  16. 4150 REM ***************************************************************************************************************
  17. 4160 REM                      WRITE FILE #1 'BEFORE' CHANGE RECORD TO ACTIVITY LOG FILE
  18. 4170 REM  **************************************************************************************************************
  19. 4180 TC$="30"
  20. 4190 CN%=0
  21. 4200 AC$=SPACE$(1)
  22. 4210 TD$=SPACE$(8): LSET TD$ = DATE$: YR$ = MID$(DATE$,9,2): MID$(TD$,7,2) = YR$
  23. 4220 PA%=REC%
  24. 4230 PC$=P1$
  25. 4240 PA$=A1$
  26. 4250 TAMT=0
  27. 4260 LACTM%=0
  28. 4270 LACTS%=0
  29. 4280 LAMT=0
  30. 4290 BDIW=0: IF REC%=1 THEN BDIW = CVS(S2$)
  31. 4300 BAMT=0: IF REC%=1 THEN BAMT = CVS(S3$)
  32. 4310 GOSUB 310
  33. 4320 REM  **************************************************************************************************************
  34. 4330 CLS: PRINT: PRINT "  To change Payee number ";P1$
  35. 4340 PRINT "  Name and Address data"
  36. 4350 PRINT "  Enter the Field No. & New Data"
  37. 4360 PRINT: PRINT "  FIELD": PRINT "   NO.     CURRENT DATA"
  38. 4370 PRINT "  -----    ------------"
  39. 4380 PRINT
  40. 4390 PRINT "   1  ";P1$   'PAYEE CODE
  41. 4400 PRINT "   2  ";A1$   'NAME
  42. 4410 PRINT "   3  ";A2$   'STREET,ETC.
  43. 4420 PRINT "   4  ";A3$   'CITY,STATE
  44. 4430 PRINT "   5  ";A4$   'ZIP CODE
  45. 4440 IF P1$ = "0000" THEN GOTO 4490
  46. 4450 PRINT "   6  ";D1$   'ID,ACCNT#,ETC
  47. 4460 PRINT "   7  ";G1$   'TAX CODE
  48. 4470 PRINT "   8  ";G2$   'Y = SKIP; N = PRINT MAILING LABEL
  49. 4480 PRINT "   9  ";G3$   'OPEN FOR FUTURE USE
  50. 4490 PRINT: PRINT "   0  EXIT. NO CHANGES TO ABOVE DATA"
  51. 4500 PRINT: LOCATE ,3: Y = CSRLIN: X = POS(0)
  52. 4510 FIELDMAX% = 1: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  53. 4520 KODE = VAL(DATU$)
  54. 4530 IF KODE <> 1 THEN GOTO 4580
  55. 4540     LOCATE Y,X+3: COLOR 31,0: PRINT "  Payee # change is not allowed."
  56. 4550     LOCATE ,X+3: PRINT "  Press any key to continue.": COLOR 7,0
  57. 4560     IF INKEY$ = "" THEN 4560
  58. 4570     GOTO 4760
  59. 4580 IF (KODE>0) AND (KODE<10) THEN GOTO 4610
  60. 4590 IF KODE = 0 THEN GOTO 4770
  61. 4600 LOCATE Y,X+3: COLOR 31,0: PRINT "  Invalid Field Choice, re-enter": GOTO 4510
  62. 4610 LOCATE Y,X+3: PRINT STRING$(35," "): LOCATE Y,X+3: Y = CSRLIN: X = POS(0)
  63. 4620 IF KODE = 2 OR KODE = 3 OR KODE = 6 THEN FIELDMAX% = 30: NUM.ONLY% = FALSE%: GOTO 4660
  64. 4630 IF KODE = 4 THEN FIELDMAX% = 21: NUM.ONLY% = FALSE%: GOTO 4660
  65. 4640 IF KODE = 5 THEN FIELDMAX% = 9: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOTO 4660
  66. 4650 IF KODE = 7 OR KODE = 8 OR KODE = 9 THEN FIELDMAX% = 1: NUM.ONLY% = FALSE%
  67. 4660 GOSUB 320
  68. 4670 IF KODE = 2 THEN LSET A1$ = DATU$
  69. 4680 IF KODE = 3 THEN LSET A2$ = DATU$
  70. 4690 IF KODE = 4 THEN LSET A3$ = DATU$
  71. 4700 IF KODE = 5 THEN LSET A4$ = DATU$
  72. 4710 IF P1$ = "0000" THEN GOTO 4330
  73. 4720 IF KODE = 6 THEN LSET D1$ = DATU$
  74. 4730 IF KODE = 7 THEN LSET G1$ = DATU$
  75. 4740 IF KODE = 8 THEN LSET G2$ = DATU$
  76. 4750 IF KODE = 9 THEN LSET G3$ = DATU$
  77. 4760 GOTO 4330
  78. 4770 IF P1$ = "0000" THEN GOTO 6290
  79. 4780 PUT #1,REC%  'PUT CHANGED RECORD
  80. 4790 REM  **************************************************************************************************************
  81. 4800 REM                      WRITE FILE #1 'AFTER' CHANGE RECORD TO ACTIVITY LOG FILE
  82. 4810 REM  **************************************************************************************************************
  83. 4820 TC$="31"
  84. 4830 PC$=P1$
  85. 4840 PA$=A1$
  86. 4850 IF REC%=1 THEN BDIW = CVS(S2$)
  87. 4860 IF REC%=1 THEN BAMT = CVS(S3$)
  88. 4870 GOSUB 310
  89. 4880 REM  **************************************************************************************************************
  90. 4890 J = 0
  91. 4900 GOSUB 270     'MOVE CHECK DATA TO ARRAY
  92. 4910 FOR I = 1 TO 8
  93. 4920     CKCHG$ = "N"  'INITIALIZE TO "NO CHANGE" = N
  94. 4930     J = J + 1
  95. 4940     REM  **********************************************************************************************************
  96. 4950     REM                  WRITE FILE #2 'BEFORE' CHANGE RECORD TO ACTIVITY LOG FILE
  97. 4960     REM  **********************************************************************************************************
  98. 4970     TC$="30"
  99. 4980     CN%=CHEK1%(I)
  100. 4990     AC$=CHEK2$(I)
  101. 5000     TD$=CHEK3$(I)
  102. 5010     PA%=REC%
  103. 5020     PC$=P1$
  104. 5030     PA$=A1$
  105. 5040     TAMT=CHEK4(I)
  106. 5050     LACTM%=0
  107. 5060     LACTS%=0
  108. 5070     LAMT=0
  109. 5080     BDIW=0
  110. 5090     BAMT=0
  111. 5100     GOSUB 310
  112. 5110     REM  **********************************************************************************************************
  113. 5120     REM                                DISPLAY DATA IN CHECK RECORDS
  114. 5130     REM  **********************************************************************************************************
  115. 5140     CLS
  116. 5150     PRINT "  To change Payee ";P2$;" check records"
  117. 5160     PRINT "  Enter: Field No. and New Data"
  118. 5170     PRINT: PRINT "  FIELD": PRINT "   NO.  CURRENT DATA"
  119. 5180     PRINT "  ----- ------------"
  120. 5190     PRINT "    1   ";P2$;"     Payee Code"
  121. 5200     IF CHEK1%(I) = -1 THEN TRANS$ = "Deposit   "
  122. 5210     IF CHEK1%(I) = -2 THEN TRANS$ = "Interest  "
  123. 5220     IF CHEK1%(I) = -3 THEN TRANS$ = "Withdrawal"
  124. 5230     IF CHEK1%(I) > 0  THEN TRANS$ = "Check No. "
  125. 5240     PRINT "    2  ";
  126. 5250     PRINT USING "#####";CHEK1%(I);
  127. 5260     PRINT "     ";TRANS$
  128. 5270     PRINT "    3    ";CHEK2$(I);"       Activity Code"
  129. 5280     PRINT "    4  ";CHEK3$(I);"  Activity Date"
  130. 5290     IF CHEK1%(I) > 0  THEN TRANS$ = "Check     "
  131. 5300     PRINT "    5  ";
  132. 5310     PRINT USING "#####.##-";CHEK4(I);
  133. 5320     PRINT " Amount of ";TRANS$: COLOR 7,0
  134. 5330     PRINT: PRINT "    8   Get this Payee's next record"
  135. 5340     PRINT "    9   Select next Payee/End Job"
  136. 5350     PRINT: COLOR 0,7: PRINT "  Enter changes to record # ";J;" fields": COLOR 7,0: PRINT: LOCATE ,4
  137. 5360     Y = CSRLIN: X = POS(0)
  138. 5370     FIELDMAX% = 1: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  139. 5380     KODE1 = VAL(DATU$)
  140. 5390     IF KODE1 > 7 AND KODE1 < 10 THEN GOTO 5630
  141. 5400     IF (KODE1>0) AND (KODE1<6) THEN GOTO 5420
  142. 5410     LOCATE Y,X+3: COLOR 31,0: PRINT "  Invalid Field No., try again": COLOR 0,7: GOTO 5370
  143. 5420     LOCATE Y,X+3: PRINT STRING$(35," "): X = X+3: LOCATE Y,X  'ADJUST CURSOR COLUMN
  144. 5430     IF KODE1<>1 THEN GOTO 5470: ELSE COLOR 31,0: PRINT "  Payee # change is not allowed"
  145. 5440        LOCATE Y+1,X: PRINT "  Press any key to continue."
  146. 5450        IF INKEY$ = "" THEN GOTO 5450
  147. 5460        COLOR 7,0: GOTO 5140
  148. 5470     IF KODE1 = 2 THEN FIELDMAX% = 4: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOTO 5510
  149. 5480     IF KODE1 = 3 THEN FIELDMAX% = 1: NUM.ONLY% = FALSE%: GOTO 5510
  150. 5490     IF KODE1 = 4 THEN FIELDMAX% = 8: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOTO 5510
  151. 5500     IF KODE1 = 5 THEN FIELDMAX% = 8: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%
  152. 5510     GOSUB 320
  153. 5520     IF KODE1 = 3 THEN IF DATU$ = "" THEN DATU$ = SPACE$(1)
  154. 5530     IF KODE1 = 4 THEN IF DATU$ = "" THEN DATU$ = SPACE$(8)
  155. 5540     IF KODE1 = 2 THEN CHEK1%(I) = VAL(DATU$)
  156. 5550     IF KODE1 = 3 THEN CHEK2$(I) = DATU$
  157. 5560     IF KODE1 = 4 THEN CHEK3$(I) = DATU$
  158. 5570     IF KODE1 = 5 THEN CHEK4(I) = VAL(DATU$)
  159. 5580     CKCHG$ = "Y"  'SET TO Y AFTER CHANGES ARE MADE TO A CHECK RECORD
  160. 5590     COLOR 7,0: GOTO 5140
  161. 5600     REM  **********************************************************************************************************
  162. 5610     REM                WRITE FILE #2 'AFTER' CHANGE RECORD TO ACTIVITY LOG FILE
  163. 5620     REM  **********************************************************************************************************
  164. 5630     IF CKCHG$ = "N" THEN GOTO 6100  'DO NOT WRITE AUDIT TRAIL "AFTER CHANGES" RECORD IF NONE WERE MADE
  165. 5640     TC$="31"
  166. 5650     CN%=CHEK1%(I)
  167. 5660     AC$=CHEK2$(I)
  168. 5670     TD$=CHEK3$(I)
  169. 5680     PA%=REC%
  170. 5690     PC$=P1$
  171. 5700     PA$=A1$
  172. 5710     TAMT=CHEK4(I)
  173. 5720     LACTM%=0
  174. 5730     LACTS%=0
  175. 5740     LAMT=0
  176. 5750     BDIW=0
  177. 5760     BAMT=0
  178. 5770     IF BOOKS$ <> "Y" THEN GOTO 6080
  179. 5780     REM  --------------DISTRIBUTE THE 'CHANGE' TRANSACTION AMOUNT TO THE BOOKKEEPING SYSTEM ACCOUNTS---------------
  180. 5790     CLS
  181. 5800     PRINT  "  For the BOOKKEEPING SYSTEM, we need"
  182. 5810     PRINT  "  the Account Numbers and Difference"
  183. 5820     PRINT  "  Amount of this CHANGE Transaction."
  184. 5830     PRINT  "  Enter '0' (zero) if NO difference."
  185. 5840     PRINT: PRINT  "      Enter amount (+or-): ";: Y = CSRLIN: X = POS(0)
  186. 5850     FIELDMAX% = 9: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  187. 5860     T = VAL(DATU$)
  188. 5870     LOCATE Y,X+1: COLOR 0,7
  189. 5880     PRINT USING "#####.##-";T: COLOR 7,0
  190. 5890     IF ABS(T) <= 0 THEN GOTO 6080
  191. 5900     PRINT USING "  Amount to distribute is: #####.##-";T
  192. 5910     PRINT  "  Enter the following:"
  193. 5920     PRINT: PRINT SPC(10);"Major Account #: ";: Y = CSRLIN: X = POS(0)
  194. 5930     FIELDMAX% = 4: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  195. 5940     LACTM% = VAL(DATU$)
  196. 5950     PRINT: PRINT SPC(12);"Sub Account #: ";: Y = CSRLIN: X = POS(0)
  197. 5960     FIELDMAX% = 3: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  198. 5970     LACTS% = VAL(DATU$)
  199. 5980     PRINT: PRINT SPC(12);"Amount (+or-): ";: Y = CSRLIN: X = POS(0)
  200. 5990     FIELDMAX% = 9: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  201. 6000     LAMT = VAL(DATU$)
  202. 6010     LOCATE Y,X+1
  203. 6020     COLOR 0,7: PRINT USING "#####.##-";LAMT: COLOR 7,0
  204. 6030     GOSUB 310  'WRITE AUDIT TRAIL RECORD WHEN THERE ARE CHECK AMOUNT CHANGES
  205. 6040     T = T - LAMT
  206. 6050     IF ABS(T) > (8.999999E-03) THEN TAMT = 0:  PRINT USING "  Undistributed amount is: #####,.##-";T:  GOTO 5910
  207. 6060     GOTO 6100
  208. 6070     REM  ----------------------------------------------------------------------------------------------------------
  209. 6080     GOSUB 310  'WRITE AUDIT TRAIL RECORD WHEN CHECK AMOUNT DOES NOT CHANGE
  210. 6090     REM  ----------------------------------------------------------------------------------------------------------
  211. 6100     IF KODE1 = 9 THEN GOTO 6120
  212. 6110 NEXT I
  213. 6120 GOSUB 280     'MOVE DATA TO I/O BUFFER OF FILE #2
  214. 6130 CHANE% = CVI(L$)
  215. 6140 PUT #2,REC%
  216. 6150 IF KODE1 = 9 THEN GOTO 4040
  217. 6160 REM  ************************************************************************************************************
  218. 6170 REM                               GET NEXT FILE #2 RECORD, IF THERE IS ONE
  219. 6180 REM  **************************************************************************************************************
  220. 6190 IF CHANE% = 0 THEN GOTO 4040  'RETURN TO CHANGE ANOTHER PAYEE'S DATA ON DISKETTE FILES ********
  221. 6200 IF (CHANE%>M1%) AND (CHANE%<(M2%+1))    THEN GET #2,CHANE%: REC%=CHANE%: GOTO 4900
  222. 6210     PRINT "  Chaining record error on Payee ";P2$
  223. 6220     PRINT USING "  Chaining field is ####";CHANE%
  224. 6230     PRINT "  Valid chaining records are";M1%+1;"-";M2%
  225. 6240     COLOR 31,0: PRINT "  Correct File before rerunning this job": COLOR 7,0
  226. 6250     GOTO 330
  227. 6260 REM  **************************************************************************************************************
  228. 6270 REM                                CHANGE BANK STATEMENT FIELDS IN FILE #1
  229. 6280 REM  **************************************************************************************************************
  230. 6290 CLS
  231. 6300 PRINT "  BANK STATEMENT AS OF ";DATE$
  232. 6310 AMT = CVS(S1$)
  233. 6320 PRINT: PRINT "  Starting Bank Balance: ";
  234. 6330 PRINT USING "#####,.##-";AMT
  235. 6340 COLOR 0,7: PRINT "       Any adjustment?  ";: Y = CSRLIN: X = POS(0)
  236. 6350 FIELDMAX% = 10: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  237. 6360 AMT2 = VAL(DATU$)
  238. 6370 AMT = AMT + AMT2
  239. 6380 LOCATE Y,X+1: COLOR 0,7
  240. 6390 PRINT USING "#####,.##-";AMT: COLOR 7,0
  241. 6400 TAMT = AMT
  242. 6410 LSET S1$ = MKS$(AMT)
  243. 6420 AMT = CVS(S2$)
  244. 6430 PRINT: PRINT "  Deposits, Interest Received,":
  245. 6440 PRINT "    Withdrawals to-date: ";
  246. 6450 PRINT USING "#####,.##-";AMT
  247. 6460 COLOR 0,7: PRINT "       Any adjustment?  ";: Y = CSRLIN: X = POS(0)
  248. 6470 FIELDMAX% = 10: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  249. 6480 AMT2 = VAL(DATU$)
  250. 6490 AMT = AMT + AMT2
  251. 6500 LOCATE Y,X+1: COLOR 0,7
  252. 6510 PRINT USING "#####,.##-";AMT: COLOR 7,0
  253. 6520 TAMT = TAMT + AMT
  254. 6530 LSET S2$ = MKS$(AMT)
  255. 6540 AMT = CVS(S3$)
  256. 6550 PRINT: PRINT "  Amount of Checks"
  257. 6560 PRINT "        Written to-date: ";
  258. 6570 PRINT USING "#####,.##-";AMT
  259. 6580 COLOR 0,7: PRINT "        Any adjustment? ";: Y = CSRLIN: X = POS(0)
  260. 6590 FIELDMAX% = 10: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  261. 6600 AMT2 = VAL(DATU$)
  262. 6610 AMT = AMT + AMT2
  263. 6620 LOCATE Y,X+1: COLOR 0,7
  264. 6630 PRINT USING "#####,.##-";AMT: COLOR 7,0
  265. 6640 TAMT = TAMT - AMT
  266. 6650 LSET S3$ = MKS$(AMT)
  267. 6660 LSET S4$ = MKS$(TAMT)
  268. 6670 PRINT: PRINT "   Current Bank Balance: ";
  269. 6680 PRINT USING "#####,.##-";TAMT
  270. 6690 KINT% = CVI(S6$)
  271. 6700 PRINT: PRINT "  Number of Checks"
  272. 6710 PRINT "        Written to-date: ";
  273. 6720 PRINT USING "####-";KINT%
  274. 6730 COLOR 0,7: PRINT "        Any adjustment? ";: Y = CSRLIN: X = POS(0)
  275. 6740 FIELDMAX% = 5: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  276. 6750 AMT2 = VAL(DATU$)
  277. 6760 KINT% = KINT% + AMT2
  278. 6770 LOCATE Y,X+1: COLOR 0,7
  279. 6780 PRINT USING "####-";KINT%: COLOR 7,0
  280. 6790 LSET S6$ = MKI$(KINT%)
  281. 6800 PRINT: COLOR 0,7: PRINT "  Press any key to continue": COLOR 7,0
  282. 6810 IF INKEY$ = "" THEN GOTO 6810
  283. 6820 GOTO 4780  'RETURN TO PUT CHANGED RECORD TO DISK
  284. 6830 REM  **************************************************************************************************************
  285. 9000 GOTO 9000  'CHAIN MERGE AREA LAST STATEMENT
  286. *************************************************