rem This is the Check Receipts Journal Transaction Entry Program %INCLUDE ALL.BAS dim k$(6,20),n(2,20) repeat$="-----------------------------" fill$=" " z5$="b:glck":z6$="b:glckback":z7$="b:glcksize" L$="$#,###,###,###.##" 535 FOR Z=1 TO 72:delim$=delim$+"=":NEXT Z 540 K$(6,1)="1 - NEW ENTRY":K$(6,2)="2 - EXAMINE EXISTING ENTRY" 550 K$(6,3)="3 - MODIFY EXISTING ENTRY" 560 K$(6,4)="4 - DELETE EXISTING ENTRY" 570 K$(6,5)="5 - CREATE NEW FILE":K$(6,6)="6 - CLEAR EXISTING FILE" 580 K$(6,7)="7 - BACK-UP AND SORT FILE":K$(6,8)="8 - LIST FILE" 590 K$(6,9)="9 - FINISHED" 1200 K$(2,1)="1 - CUST TAG #":K$(2,2)="2 - DEP ACCT #" 1202 K$(2,3)="3 - DATE" 1205 K$(2,4)="4 - FROM":K$(2,5)="5 - FOR(REMARKS)" 1210 K$(2,6)="6 - DEPOSIT SLIP(Y/N)":K$(2,7)="7 - AMOUNT OF CHECK" k$(2,8)="1st Entry Acct #" k$(2,9)="1st Entry Amount" k$(2,10)="2nd Entry Acct #" k$(2,11)="2nd Entry Amount" k$(2,12)="3rd Entry Acct #" k$(2,13)="3rd Entry Amount" k$(2,14)="4th Entry Acct #" k$(2,15)="4th Entry Amount" k$(2,16)="5th Entry Acct #" k$(2,17)="5th Entry Amount" k$(2,18)="6th Entry Acct #" k$(2,19)="6th Entry Amount" 1280 K$(2,20)="20- NONE" 1285 N(1,1)=6:N(1,2)=10:N(1,3)=8:N(1,4)=24:N(1,5)=24:N(1,6)=1 1290 N(1,7)=12:N(1,8)=10:N(1,9)=12:N(1,10)=10:N(1,11)=12:N(1,12)=10 1292 N(1,13)=12:N(1,14)=10:N(1,15)=12:N(1,16)=10:N(1,17)=12 1295 N(1,18)=10:N(1,19)=12 print clear$:print 1300 PRINT "This program does a number of things to speed data entry." 1302 PRINT 1342 PRINT "1. You will be asked to enter the BANK ACCOUNT # to be debited." 1344 PRINT " This number will be entered automatically in all records" 1346 PRINT " prepared during the rest of this set of entry operations." 1348 PRINT 1350 PRINT "2. The date will be entered as the CURRENT DATE." 1360 PRINT 1362 PRINT "3. The DEPOSIT SLIPS (Y/N) will automatically be set to 'Y'." 1364 PRINT " Should you wish to override this entry, select MENU option" 1366 PRINT " #6 when the program asks for any changes." 1370 PRINT 1372 PRINT "4. The amount of check should be entered as figures " 1374 PRINT " The program will force it to a positive (debit)" 1376 PRINT " amount." 1378 PRINT:INPUT "Type to continue. ";LINE TEMP$ 1400 PRINT CLEAR$:PRINT 1410 PRINT "Enter GENERAL LEDGER account number of the Bank Account for" 1415 PRINT "debit. Although account number validity will be checked before" 1420 PRINT "posting, time will be saved if the account number is entered" 1425 PRINT "correctly here." 1430 PRINT 1450 INPUT LINE BANKNUM$:BANKNUM=VAL(BANKNUM$) 1455 PRINT "Is ";BANKNUM;" the correct account number? (Y or N)." 1460 PRINT:INPUT LINE TEMP$ 1465 IF UCASE$(LEFT$(TEMP$,1)) <> "Y" THEN 1400 1500 if end #1 then 6000 if end #2 then 15000 open z5$ recl 250 as 1 close 1 open z7$ as 2 read #2;z2,z3 close 2 1600 REM 1620 PRINT CLEAR$ if z2>z3 then print "*** OUT OF RECORD SPACE ***" PRINT "CHECK RECEIPTS ENTRY PROGRAM" PRINT "----------------------------" PRINT:PRINT "THERE ARE ";Z3;" AVAILABLE RECORDS" PRINT "OF THESE THERE ARE:";TAB(30);(Z3-Z2)+1;" RECORDS OPEN" PRINT ;TAB(30);Z2-1;" RECORDS USED" PRINT 1650 PRINT "THIS IS A LIST OF OPERATIONS." 1655 PRINT 1660 FOR Z=1 TO 9:PRINT K$(6,Z):NEXT Z:PRINT 1665 PRINT "INDICATE WHAT YOU WOULD LIKE TO DO BY TYPING" 1670 PRINT "THE CORRESPONDING NUMBER." 1675 PRINT 1680 INPUT Z IF Z<1 OR Z>9 then 1620 1682 IF Z=1 THEN new$="N" 1685 ON Z GOSUB 2000,3000,4000,5000,6000,7000,8000,9000,10000 1690 FOR Z=1 TO 20:N(2,Z)=0:NEXT Z:N$="" 1700 FOR Z=1 TO 20:K$(3,Z)="":NEXT Z 1702 new$="" 1705 GOTO 1600 2000 IF Z2>Z3 THEN RETURN 2001 PRINT CLEAR$:PRINT 2005 PRINT "RECORD NUMBER";Z2:PRINT 2007 Z=1 2009 PRINT CUR$ 2010 PRINT TAB(30);LEFT$(REPEAT$,N(1,Z)) 2011 PRINT UP$ 2012 PRINT K$(2,Z);TAB(28); 2013 INPUT N(2,Z):PRINT CHR$(13) 2014 PRINT CLEAR$ 2015 N(2,2)=BANKNUM 2020 K$(3,3)=D$(1) 2025 K$(3,6)="Y" 2030 FOR Z=4 TO 5 PRINT CUR$ 2034 PRINT TAB(30);left$(repeat$,n(1,z)) PRINT UP$; 2038 PRINT k$(2,Z);TAB(28); 2040 INPUT LINE K$(3,Z):PRINT chr$(13) if len(k$(3,z))>n(1,z) then k$(3,z)=left$(k$(3,z),n(1,z)) 2044 I=(N(1,Z)-LEN(K$(3,Z))):K$(3,Z)=K$(3,Z)+left$(fill$,i) PRINT CLEAR$ 2048 NEXT Z 2050 Z=7 PRINT CUR$ 2054 PRINT TAB(30);left$(repeat$,n(1,z)) PRINT UP$; 2058 PRINT k$(2,Z);TAB(28); 2060 INPUT N(2,Z):PRINT chr$(13) PRINT CLEAR$ 2064 IF N(2,7)<0 THEN N(2,7)=ABS(N(2,7)) 2066 FOR Z=8.0 TO 19.0 STEP 2.0 PRINT CUR$ 2070 PRINT TAB(30);left$(repeat$,n(1,z)) PRINT UP$; 2074 PRINT k$(2,Z);TAB(28); 2076 INPUT N(2,Z):PRINT chr$(13) PRINT CLEAR$ PRINT CUR$ 2082 PRINT TAB(30);left$(repeat$,n(1,z+1)) PRINT UP$; 2086 PRINT k$(2,Z+1);TAB(28); 2088 INPUT N(2,Z+1):PRINT chr$(13) PRINT CLEAR$ PRINT CUR$ 2090 INPUT "Is this the last entry (Y or N)";LINE TEMP$ 2092 IF UCASE$(LEFT$(TEMP$,1))="Y" THEN 2096 2094 NEXT Z 2096 N$="" 2098 FOR Z=3 TO 6:N$=N$+K$(3,Z):NEXT Z 2100 Z1=Z2 2105 gosub 11000 2163 PRINT"TO MAKE A CHANGE, TYPE THE APPROPRIATE #. IF NONE TYPE 20, RETURN" 2164 INPUT Z 2165 IF Z>19 THEN 2216 2170 IF Z<1 THEN 2105 2175 IF Z>2 AND Z<7 THEN 2200 2180 PRINT TAB(30);left$(repeat$,n(1,z)) PRINT UP$; 2185 PRINT k$(2,Z);TAB(30); 2190 INPUT N(2,Z) 2195 GOTO 2225 2200 PRINT TAB(30);left$(repeat$,n(1,z)) PRINT UP$; 2205 PRINT k$(2,Z);TAB(30); 2210 INPUT LINE K$(3,Z) if len(k$(3,z))>n(1,z) then k$(3,z)=left$(k$(3,z),n(1,z)) 2215 I=(N(1,Z)-LEN(K$(3,Z))):K$(3,Z)=K$(3,Z)+left$(fill$,i) 2216 N$="" 2220 FOR Z=3 TO 6:N$=N$+K$(3,Z):NEXT Z 2225 INPUT "ANY MORE CHANGES";line temp$ 2230 IF left$(temp$,1)="y" OR left$(temp$,1)="Y" THEN 2105 2235 PRINT 2240 INPUT "IS RECORD TO BE ENTERED";line temp$ 2245 PRINT 2250 IF left$(temp$,1)="y" OR left$(temp$,1)="Y" THEN 2280 2255 IF left$(temp$,1)<>"n" AND left$(temp$,1)<>"N" THEN 2235 2260 PRINT clear$:PRINT 2270 PRINT "*** RECORD NOT ENTERED ***":PRINT:PRINT 2275 FOR Z=1 TO 200:NEXT Z:RETURN 2280 open z5$ recl 250 as 1 print #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) close 1 2295 IF new$="N" THEN Z2=Z2+1:open z7$ as 1:print #1;z2,z3:close 1 2300 RETURN 3000 PRINT clear$:PRINT 3005 INPUT "RECORD NUMBER";Z1 3010 IF Z1>=Z2 THEN 3000 3012 IF Z1<1 THEN RETURN 3015 open z5$ recl 250 as 1 read #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) 3022 Z9=1:FOR Z=3 TO 6:K$(3,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):next z 3025 CLOSE 1 3105 GOSUB 11000 3170 PRINT"FOR A NEW RECORD, TYPE N - TYPE F IF FINISHED.":INPUT line temp$ 3190 IF temp$="n" or temp$="N" THEN 3000 3195 RETURN 4000 PRINT clear$:PRINT 4005 N$="" 4010 INPUT "RECORD NUMBER";Z1 4015 IF Z1<1 THEN PRINT "*** NO SUCH RECORD ***":GOTO 1620 4020 IF Z1>Z3 THEN PRINT "*** OUT OF RANGE ***":GOTO 1620 4025 IF Z1>=Z2 THEN PRINT "NO RECORD NUMBER";Z1:GOTO 1620 4030 open z5$ recl 250 as 1 read #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) 4036 Z9=1:FOR Z=3 TO 6:K$(3,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):NEXT Z 4040 CLOSE 1 4045 IF N(2,1)=0 THEN PRINT "*** DELETED RECORD ***":GOTO 1620 4075 GOTO 2105 5000 PRINT clear$:PRINT 5010 INPUT "RECORD NUMBER";Z1 5015 IF Z1<1 THEN PRINT "*** NO SUCH RECORD ***":GOTO 1620 5020 IF Z1>Z3 THEN PRINT "*** OUT OF RANGE ***":GOTO 1620 5025 IF Z1>=Z2 THEN PRINT "NO RECORD NUMBER";Z1:GOTO 1620 5030 open z5$ recl 250 as 1 read #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) 5036 Z9=1:FOR Z=3 TO 6:K$(3,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):NEXT Z 5040 CLOSE 1 5105 GOSUB 11000 5200 INPUT "IS RECORD TO BE DELETED (MUST BE YES TO DELETE)";line temp$ 5205 IF left$(temp$,1)="n" OR left$(temp$,1)="N" THEN RETURN 5210 IF temp$<>"YES" THEN 5200 5215 N(2,1)=0 5220 open z5$ recl 250 as 1 print #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) 5230 close 1 5235 RETURN 6000 PRINT clear$:PRINT 6005 PRINT "IF YOU HAVE ARRIVED HERE, AND HAVE A CHECK RECEIPTS FILE" 6010 PRINT "ALREADY ON A DISK, YOU SHOULD INSTALL THAT DISK THEN" 6015 PRINT "TYPE THE LETTER C FOLLOWED BY A RETURN TO CONTINUE." 6020 PRINT 6025 PRINT "IF YOU WISH TO CREATE A NEW FILE, TYPE THE LETTER N" 6030 PRINT "FOLLOWED BY RETURN.":PRINT 6035 INPUT line temp$ 6040 IF temp$="c" OR temp$="C" THEN INITIALIZE:GOTO 1500 6045 PRINT clear$:PRINT 6050 INPUT "NUMBER OF RECORDS DESIRED";Z3 6055 PRINT 6060 n$="":for z=1 to 70:n$=n$+" ":next z for z=1 to 20:n(2,z)=0:next z create z5$ recl 250 as 1 6070 for z1=1 to z3+2 print #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) next z1 close 1 6095 PRINT clear$:PRINT 6100 PRINT "CHECK RECEIPTS FILE CREATED AND CLEARED.":PRINT 6105 PRINT z3;"RECORDS CREATED.":PRINT 6110 PRINT "TO CONTINUE, TYPE RETURN.":INPUT line temp$ Z2=1 create z7$ as 1:print #1;Z2,Z3:close 1 6115 GOTO 1500 7000 open z5$ recl 250 as 1 n$="":for z=1 to 70:n$=n$+" ":next z for z=1 to 20:n(2,z)=0:next z 7006 INPUT "ARE YOU SURE !!! (YES OR NO)";temp$ 7007 IF temp$<>"YES" THEN close 1:return 7010 FOR Z1=1 TO z3+2 print #1,z1; N(2,1),N(2,2),N$,N(2,7),N(2,8),N(2,9),N(2,10),\ N(2,11),N(2,12),N(2,13),N(2,14),\ N(2,15),N(2,16),N(2,17),N(2,18),N(2,19) 7025 next z1 7030 close 1 7035 PRINT clear$:PRINT 7040 PRINT "CHECK RECEIPTS FILE CLEARED!":PRINT 7045 PRINT "TO CONTINUE, TYPE RETURN." 7050 INPUT line temp$ Z2=1 open z7$ as 1:print #1;Z2,Z3:close 1 7060 RETURN 8000 CHAIN "GLCKSORT" 9000 print clear$:print:print "listing" p1=1:p2=1:p3=2 t3=0:t4=0:t5=0 lprinter open z5$ recl 250 as 1 for z0=1 to (z2/2)+1 gosub 9500 gosub 9100 if n(2,2)=0 then gosub 9800:goto 9090 gosub 9300 next z0 print chr$(12) console 9090 return 9100 for z1=p2 to p3 read #1,z1;n(2,1),n(2,2),n$,n(2,7),n(2,8),n(2,9),n(2,10),\ n(2,11),n(2,12),n(2,13),n(2,14),n(2,15),n(2,16),n(2,17),\ n(2,18),n(2,19) z9=1:for z=3 to 10:k$(3,z)=mid$(n$,z9,n(1,z)):z9=z9+n(1,z):next z if n(2,2)=0 then 9170 t5=t5+n(2,7) t1=0:t2=0 print:print:print gosub 11000 next z1 p2=p2+2:p3=p3+2 9170 return 9300 print print "report continues on next page" print print chr$(12) return 9500 print print print tab(66);"Page Number ";p1:p1=p1+1 print:print return 9800 print print "*** Summary ***":print print "Total Debits";tab(35);:print using l$;t3 print "Total Credits";tab(55);:print using l$;t4 print "Difference";tab(55);:print using l$;t3+t4:print print "Total receipts";tab(55);:print using l$;t5 print print "end of report" print chr$(12):for z=1 to 100:next z: print chr$(12) close 1 return 10000 CHAIN "master12" 11000 PRINT clear$; T1=0:T2=0 PRINT "RECORD NUMBER";Z1;TAB(31);"CHECK DISBURSEMENT ENTRY" PRINT K$(2,1);TAB(16);N(2,1);TAB(24);K$(2,2);N(2,2); PRINT TAB(51);K$(2,3);TAB(62);K$(3,3) PRINT K$(2,4);TAB(21);K$(3,4) PRINT K$(2,5);TAB(21);K$(3,5);TAB(51);K$(2,6);K$(3,6) PRINT K$(2,7);TAB(21);:print using l$;n(2,7):T1=T1+N(2,7) PRINT delim$ PRINT "POSTING #";TAB(11);"ACCT #";TAB(35);"DEBIT";TAB(55);"CREDIT" PRINT delim$ PRINT "#1";TAB(11);"8 -";N(2,8);TAB(31);"9 -"; IF N(2,9)<=0 THEN PRINT TAB(55);:print using l$;n(2,9):T2=T2+N(2,9) IF N(2,9)>0 THEN PRINT TAB(35);:print using l$;n(2,9):T1=T1+N(2,9) PRINT "#2";TAB(11);"10-";N(2,10);TAB(31);"11-"; IF N(2,11)<=0 THEN PRINT TAB(55);:print using l$;n(2,11):T2=T2+N(2,11) IF N(2,11)>0 THEN PRINT TAB(35);:print using l$;n(2,11):T1=T1+N(2,11) PRINT "#3";TAB(11);"12-";N(2,12);TAB(31);"13-"; IF N(2,13)<=0 THEN PRINT TAB(55);:print using l$;n(2,13):T2=T2+N(2,13) IF N(2,13)>0 THEN PRINT TAB(35);:print using l$;n(2,13):T1=T1+N(2,13) PRINT "#4";TAB(11);"14-";N(2,14);TAB(31);"15-"; IF N(2,15)<=0 THEN PRINT TAB(55);:print using l$;n(2,15):T2=T2+N(2,15) IF N(2,15)>0 THEN PRINT TAB(35);:print using l$;n(2,15):T1=T1+N(2,15) PRINT "#5";TAB(11);"16-";N(2,16);TAB(31);"17-"; IF N(2,17)<=0 THEN PRINT TAB(55);:print using l$;n(2,17):T2=T2+N(2,17) IF N(2,17)>0 THEN PRINT TAB(35);:print using l$;n(2,17):T1=T1+N(2,17) PRINT "#6";TAB(11);"18-";N(2,18);TAB(31);"19-"; IF N(2,19)<=0 THEN PRINT TAB(55);:print using l$;n(2,19):T2=T2+N(2,19) IF N(2,19)>0 THEN PRINT TAB(35);:print using l$;n(2,19):T1=T1+N(2,19) PRINT TAB(35);"=================";TAB(55);"=================" PRINT "TOTALS";TAB(35);:print using l$;t1;TAB(55);:print using l$;t2 PRINT:PRINT "DIFFERENCE";TAB(55);:print using l$;t1+t2:PRINT t3=t3+t1:t4=t4+t2:t5=t5+t1 return 15000 print clear$:print:print "CHECKING FILE LENGTH" PRINT:PRINT "*** PLEASE WAIT ***" open z5$ recl 250 as 1 z3=(size(z5$)*block.size)/250 for z2=1 to z3 read #1,z2;n(2,1),n(2,2) if n(2,2)=0 then 15300 next z2 15300 z3=int(z3)-2 close 1 create z7$ as 1 print #1;z2,z3 close 1 GOTO 1500