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

  1. 4000 COLOR 7,0: REM  ***************************************************************************************************
  2. 4010 REM     'CHECKRES' SUBROUTINE TO RESTART - SET FILE #2 RECORDS FOR PRIOR YEAR TO ZERO IF THEY HAVE CLEARED BANK
  3. 4020 REM  **************************************************************************************************************
  4. 4030 CLS
  5. 4040 PRINT "  Have you COPIED the Payee Files "
  6. 4050 PRINT: PRINT "  to a backup diskette prior to this"
  7. 4060 PRINT: PRINT "  Job selection??? (i.e. PAYEE.MAS and"
  8. 4070 PRINT: PRINT "  CHECK.REC).       Reply Y or N ";
  9. 4080 C$ = INKEY$: IF C$ = "" THEN 4080
  10. 4090 PRINT C$
  11. 4100 IF C$ = "Y" OR C$ = "y" THEN GOTO 4160
  12. 4110 PRINT: PRINT "  COPY the Payee Files for backup then"
  13. 4120 PRINT: PRINT "  restart this job."
  14. 4130 PRINT: PRINT "  Press any key to continue. "
  15. 4140 IF INKEY$ = "" THEN GOTO 4140
  16. 4150 GOTO 260   'RETURN TO PAMUTILY MENU
  17. 4160 GOSUB 270   'OPEN PAYEE FILES
  18. 4170 COLOR 7,0: CLS: PRINT "  Enter prior year"
  19. 4180 PRINT: PRINT "    Such as:  81  (for 1981)"
  20. 4190 PRINT: COLOR 0,7: PRINT "    Year ===>";: Y = CSRLIN: X = POS(0)
  21. 4200 FIELDMAX% = 2: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 330
  22. 4210 YEAR$ = DATU$
  23. 4220 IF YEAR$ = "" THEN CLOSE #1,#2: GOTO 260  'IF NULL INPUT, DO NOT RUN THIS JOB
  24. 4230 L% = 9  'ARRAY ELEMENTS 9 to (M3%)
  25. 4240 FOR I = 1 TO M1%
  26. 4250     J = I
  27. 4260     GET #2,J
  28. 4270     IF ASC(F2$)=255 THEN GOTO 4490
  29. 4280     GOSUB 280  'MOVE FILE #2 TO ARRAY
  30. 4290     FOR K = 1 TO 8
  31. 4300         IF YEAR$ >= MID$(CHEK3$(K),7,2) THEN IF CHEK2$(K)<>SPACE$(1) THEN GOTO 4380
  32. 4310         IF CHEK4(K) > 9.999999E-04 THEN CHEK1%(L%)= CHEK1%(K): CHEK2$(L%) = CHEK2$(K): CHEK3$(L%) = CHEK3$(K): CHEK4(L%) = CHEK4(K): CHEK5%(L%) = I: L% = L% + 1
  33. 4320         IF L% <= M3% THEN GOTO 4380
  34. 4330           COLOR 0,7: PRINT "  Arrays are filled to limit of ";M3%
  35. 4340           PRINT "  Enlarge array limits,"
  36. 4350           PRINT "  RESTORE Payee File #2 (CHECK.REC)"
  37. 4360           COLOR 31,0: PRINT "  then rerun this Job"
  38. 4370           GOTO 340  'CANCEL THIS RUN
  39. 4380         CHEK1%(K) = 0
  40. 4390         CHEK2$(K) = SPACE$(1)
  41. 4400         CHEK3$(K) = SPACE$(8)
  42. 4410         CHEK4(K) = 0
  43. 4420     NEXT K
  44. 4430     GOSUB 290  'MOVE ARRAY FIELDS TO FILE #2
  45. 4440     CHANE% = CVI(L$)
  46. 4450     LSET L$ = MKI$(0)
  47. 4460     IF (J>M1%) THEN LSET F2$ = CHR$(255): LSET P2$=SPACE$(4)
  48. 4470     PUT #2,J
  49. 4480     IF CHANE%<>0 THEN J = CHANE%: GOTO 4260
  50. 4490 NEXT I
  51. 4500 CHEK1%(L%) = 9999  'ARRAY DELIMITER
  52. 4510 REM  **************************************************************************************************************
  53. 4520 REM                   INITIALIZE BANK STATEMENT RECORD TO START ACCUMULATIONS FOR NEW YEAR
  54. 4530 REM  **************************************************************************************************************
  55. 4540 GET #1,1
  56. 4550 IF F1$="$" THEN GOTO 4610
  57. 4560     COLOR 0,7: PRINT "  Invalid record code for"
  58. 4570     PRINT "  Bank Statement File #1 record";P1$
  59. 4580     PRINT "  Position 5 should be: $ "
  60. 4590     PRINT "            instead of:";F1$
  61. 4600     GOTO 340  'CANCEL THIS RUN
  62. 4610 TAMT = CVS(S4$): AMT = 0
  63. 4620 PRINT: PRINT: PRINT "  Bank Statement Balance is: ";
  64. 4630 PRINT USING "#####,.##";TAMT
  65. 4640 PRINT: COLOR 0,7: PRINT "  Press ENTER KEY ONLY if above"
  66. 4650 PRINT: PRINT "  balance is correct, else enter the"
  67. 4660 PRINT: PRINT "  correct balance now: ";: Y = CSRLIN: X = POS(0)
  68. 4670 FIELDMAX% = 9: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 330
  69. 4680 AMT = VAL(DATU$)
  70. 4690 LOCATE Y,X+1: COLOR 0,7: PRINT USING "#####,.##";AMT: COLOR 7,0
  71. 4700 IF AMT = 0 THEN AMT = TAMT
  72. 4710 LSET S1$ = MKS$(AMT)
  73. 4720 LSET S2$ = MKS$(0)
  74. 4730 LSET S3$ = MKS$(0)
  75. 4740 LSET S4$ = MKS$(AMT)
  76. 4750 LSET S5$ = MKI$(M1%+1)
  77. 4760 LSET S6$ = MKI$(0)
  78. 4770 PUT #1,1
  79. 4780 REM  **************************************************************************************************************
  80. 4790 REM                         INITIALIZE CHECK OVERFLOW RECORDS TO ZEROS AND SPACES
  81. 4800 REM  **************************************************************************************************************
  82. 4810 FOR I = (M1%+1) TO M2%
  83. 4820     GET #2,I
  84. 4830     LSET L$=MKI$(0)
  85. 4840     LSET F2$=CHR$(255)
  86. 4850     LSET P2$=SPACE$(4)
  87. 4860     FOR K = 1 TO 8
  88. 4870         CHEK1%(K) = 0
  89. 4880         CHEK2$(K) = SPACE$(1)
  90. 4890         CHEK3$(K) = SPACE$(8)
  91. 4900         CHEK4(K) = 0
  92. 4910     NEXT K
  93. 4920     GOSUB 290  'MOVE ARRAYS TO I/O BUFFER OF FILE #2
  94. 4930     PUT #2,I
  95. 4940 NEXT I
  96. 4950 REM  **************************************************************************************************************
  97. 4960 REM        RE-ENTER FILE #2 PRIOR YEAR RECORDS WHICH HAVE NOT CLEARED THE BANK PLUS THE CURRENT YEARS RECORDS
  98. 4970 REM  **************************************************************************************************************
  99. 4980 FOR L% = 9 TO M3%
  100. 4990     IF CHEK1%(L%) = 9999 THEN GOTO 5510
  101. 5000     I = CHEK5%(L%)
  102. 5010     IF (I>0) AND (I<(M1%+1)) THEN GET #2,I: SVADDRS% = I: SAVEP2$ = P2$: GOTO 5130
  103. 5020       LPRINT "Invalid record address ";I
  104. 5030       LPRINT "Research and correct
  105. 5040       LPRINT "Check/Code =  ";CHEK1%(L%)
  106. 5050       LPRINT "Activity date ";CHEK3$(L%)
  107. 5060       LPRINT "Amount is   ";
  108. 5070       LPRINT USING "#####,.##";CHEK4(L%)
  109. 5080       LPRINT
  110. 5090       GOTO 5500
  111. 5100     REM  **********************************************************************************************************
  112. 5110     REM            TEST CHECK NO. FIELD FOR ZEROS TO FIND NEXT SLOT FOR ENTERING THIS ACTIVITY
  113. 5120     REM  **********************************************************************************************************
  114. 5130     GOSUB 280  'READ FILE #2 RECORDS TO ARRAY
  115. 5140     FOR K = 1 TO 8
  116. 5150         IF CHEK1%(K) = 0 THEN GOTO 5440
  117. 5160     NEXT K
  118. 5170     REM  **********************************************************************************************************
  119. 5180     REM               TEST CHAINING FIELD TO GET LAST FILE #2 RECORD IN THIS PAYEES CHAIN
  120. 5190     REM  **********************************************************************************************************
  121. 5200     CHANE% = CVI(L$)
  122. 5210     IF CHANE% = 0 THEN GOTO 5390
  123. 5220     IF (CHANE%>M1%) AND (CHANE%<(M2%+1)) THEN GOTO 5280
  124. 5230       COLOR 0,7: PRINT "  Chaining record error on Payee ";P2$
  125. 5240       PRINT USING "  Chaining field has Record No. ####";CHANE%
  126. 5250       PRINT "  Valid chaining records are ";M1%+1;"-";M2%
  127. 5260       COLOR 31,0: PRINT "  Correct File then rerun this Job"
  128. 5270       GOTO 340  'Cancel this run
  129. 5280     GET #2,CHANE%
  130. 5290     SVADDRS% = CHANE%
  131. 5300     IF SAVEP2$=P2$ THEN GOTO 5130
  132. 5310       COLOR 0,7: PRINT "  Chaining Payee No. is unequal"
  133. 5320       PRINT "  to File #2 Payee No. - ERROR!!!"
  134. 5330       PRINT "  The First   File #2 is:";SAVEP2$
  135. 5340       PRINT "  The Chained File #2 is:";P2$
  136. 5350       GOTO 340  'Cancel this run
  137. 5360     REM  **********************************************************************************************************
  138. 5370     REM           CURRENT FILE #2 RECORD IS FULL, CREATE A CHAINED FILE #2 RECORD FOR THIS PAYEE
  139. 5380     REM  **********************************************************************************************************
  140. 5390     GOSUB 300   'CREATE NEXT FILE #2 RECORD FOR THIS PAYEE
  141. 5400     GOTO 5130
  142. 5410     REM  **********************************************************************************************************
  143. 5420     REM                           UPDATE FILE #2 RECORD WITH THIS ACTIVITY
  144. 5430     REM  **********************************************************************************************************
  145. 5440     CHEK1%(K) = CHEK1%(L%)
  146. 5450     CHEK2$(K) = CHEK2$(L%)
  147. 5460     CHEK3$(K) = CHEK3$(L%)
  148. 5470     CHEK4(K) = CHEK4(L%)
  149. 5480     GOSUB 290  `MOVE ARRAY FIELDS TO FILE #2 I/O BUFFER
  150. 5490     PUT #2,SVADDRS%
  151. 5500 NEXT L%
  152. 5510 CLOSE #1,#2
  153. 5520 GOTO 260  'RETURN TO JOB CHOICES MENU
  154. 5530 REM  --------------------------------------------------------------------------------------------------------------
  155. 9000 GOTO 9000  'CHAIN MERGE AREA LAST STATEMENT
  156. --------------------------------------------------------------