home *** CD-ROM | disk | FTP | other *** search
- 10 ' PROGRAM NAME "GL1"
- 490 CLEAR 1500
- 500 INPUT "ENTER -Y TO MOUNT THE FILE";WY$
- 510 IF WY$<>"Y" THEN 530
- 520 UNLOAD 1:MOUNT 1
- 530 DIM B$(100) ' MATRIX FOR TRANSACTIONS
- 535 DIM II(16)
- 540 R$="R":F=1:D=1:BK$=" ":ZER$=" "
- 550 GL$="LEDGER"
- 560 PRINT "ENTER GENERAL LEDGER TRANSACTIONS"
- 570 PRINT
- 610 PRINT "ENTER -1- FOR HEADERS & BAL FWDS"
- 620 PRINT "ENTER -2- FOR CHECK TRANSACTIONS"
- 630 PRINT "ENTER -3- FOR VOUCHER TRANSACTIONS"
- 640 INPUT TY$
- 690 INPUT "ENTER -U- FOR UNBALANCED ENTRIES";U$
- 700 IF TY$="3" THEN TY$="2":T$="V":GOTO 730
- 710 IF TY$="2" THEN T$="C":GOTO 730
- 720 IF TY$="1" THEN 730 ELSE 690
- 730 INPUT "ENTER TRANSACTION MO & YR AS - MOYR";GD$
- 740 PRINT "100 ENTRIES MAX PER CHECK OR VOUCHER"
- 750 PRINT "ENTER -T- TO TOTAL TRANSACTIONS"
- 760 PRINT "ENTER -L- FOR LAST TRANSACTION" ' ALL TRANSACTIONS ENTERED
- 770 OPEN R$,F,GL$,D ' OPEN LEDGER FILE
- 780 A=2037 ' GET TABLE TO DETERMINE FILE START
- 790 GET #1,A
- 800 FOR II=1 TO 16 ' SEARCH(TABLE FOR CORRECT MONTH & YEAR
- 810 FIELD #1, (II-1)*8 AS D$, 8 AS D1$(II)
- 820 IF GD$=MID$(D1$(II),1,4) THEN 860 ' THIS IS CORRECT MONTH & YEAR
- 830 NEXT II
- 840 PRINT "NO FILE ADDRESS IN TABLE"
- 850 GOTO 850
- 860 REC$=MID$(D1$(II),5,4) ' LOAD FILE ADDRESS FROM TABLE
- 870 REC=VAL(REC$)
- 880 GET #1,REC ' GET FIRST RECORD
- 890 IF TY$="1" THEN 1970 ' IS IT A BALANCE FORWARD RECORD
- 900 '
- 910 ' ****** SET UP TERMINAL HEADINGS FOR TERMINAL INPUT ******
- 920 '
- 930 T#=0 ' COUNTER FOR DEBITS & CREDITS
- 940 H1$=" TRANS ACCT C/V AMOUNT"
- 950 H2$=" MODYYR NUMB NUMB DESCRIPTION....-$$$.$$$.$$"
- 960 S1=0 ' RE-SET ERROR SWITCH
- 970 I=1
- 980 FOR I=1 TO 100' FILE ENTRIES - 100 - MAX
- 990 PRINT H1$
- 1000 PRINT H2$
- 1010 INPUT A$ ' DATA INPUT LINE
- 1020 '
- 1030 '****** EDIT DATA ENTERED FOR ERRORS ******
- 1040 '
- 1050 IF MID$(A$,1,1)="T" THEN 1300 ' TO TOTAL CHECK OR VOUCHER
- 1060 IF MID$(A$,1,1)="L" THEN 1300 ' LAST ENTRY MADE
- 1070 IF MID$(A$,(LEN(A$)))="/" THEN 990
- 1080 IF MID$(A$,1,2)<"01" OR MID$(A$,1,2)>"13" THEN 1800
- 1090 IF MID$(A$,3,2)<"01" OR MID$(A$,3,2)>"31" THEN 1800
- 1100 IF MID$(A$,5,2)<"76" THEN 1800
- 1110 IF MID$(A$,7,1)>="1" THEN 1800
- 1120 IF MID$(A$,12,1)>="1" THEN 1800
- 1130 IF TY$="1" THEN 2030
- 1140 IF MID$(A$,17,1)>="1" THEN 1800
- 1150 IF MID$(A$,33,1)="-" THEN 1180
- 1160 IF MID$(A$,33,1)<"1" THEN 1180
- 1170 GOTO 1800
- 1180 IF MID$(A$,37,1)="." THEN 1210
- 1190 IF MID$(A$,37,1)<"1" THEN 1210
- 1200 GOTO 1800
- 1210 IF MID$(A$,41,1)<>"." THEN 1800
- 1220 '
- 1230 '****** CHECK FOR HIGHEST POSSIBLE ACCOUNT NUMBER ******
- 1240 '
- 1250 IF MID$(A$,8,4)>"7904" OR MID$(A$,8,4)<"1000" THEN 1800
- 1260 '
- 1270 IF LEN(A$)<>43 THEN 1800
- 1280 L=L+1
- 1290 LPRINT A$;SPC(5) USING "##";L ' PRINT OUT LINE NUMBER
- 1300 IF A$="T" OR A$="L" THEN 1910
- 1310 IF TY$="1" THEN 2190
- 1320 '
- 1330 '****** LOAD MATRIX - CHECK AND VOUCHERS ******
- 1340 '
- 1350 B$(I)=MID$(A$,1,6)+MID$(A$,8,4)+T$+MID$(A$,13,4)
- 1360 B$(I)=B$(I)+MID$(A$,18,16)+ZER$+MID$(A$,34,3)
- 1370 B$(I)=B$(I)+MID$(A$,38,3)+MID$(A$,41,3)+TY$
- 1380 C$=MID$(A$,33,4)+MID$(A$,38,3)+MID$(A$,41,3)
- 1390 TT#=VAL(C$)
- 1400 T#=T#+TT#
- 1410 IF S1=1 THEN 1450 ' CHECK ERROR SWITCH
- 1420 NEXT I
- 1430 PRINT "ERROR TO MANY TRANSACTIONS";CHR$(7);CHR$(7);CHR$(7);CHR$(7)
- 1440 GOTO 490
- 1450 PRINT SPC(32) USING "$#,###,###.##-";T# ' PRINT OUT TOTAL DEBITS &
- 1460 LPRINT SPC(30) USING "$#,###,###.##-";T#
- 1470 LPRINT
- 1480 L=0
- 1490 IF U$="U" THEN T#=0:GOTO 1660
- 1500 IF T#<.01# AND T#>-.01# THEN 1660' DR = CR GO TO PUT DISK
- 1510 '
- 1520 '****** OPTIONAL LINE CORRECTION ROUTINE ******
- 1530 '****** LINE PRINTER NECESSARY ******
- 1540 '
- 1550 PRINT "TO RE-START, GOTO RUN"
- 1560 INPUT "*** ERROR *** DR<>CR-ENTER ERROR LINE #";LN
- 1570 I=LN
- 1580 S1=1 ' TURN ERROR SWITCH ON
- 1590 E$=MID$(B$(I),31,11)
- 1600 TT#=VAL(E$)
- 1610 T#=T#-TT#
- 1620 GOTO 1010
- 1630 '
- 1640 '****** PROCESS AND WRITE OUT THIS TRANSACTION ******
- 1650 '
- 1660 FOR I=1 TO 100
- 1670 T#=0
- 1680 IF B$(I)="T" THEN 890' END OF THIS TRANSACTION
- 1690 GOSUB 2270
- 1700 NEXT I
- 1710 GOTO 1430
- 1720 LSW=1 ' TURN LAST RECORD SWITCH ON
- 1730 GOSUB 2270 ' GO PROCESS LAST RECORD
- 1740 CLOSE 1 ' CLOSE LEDGER FILE
- 1750 PRINT "EOJ" ' PRINT END OF JOB MESSAGE
- 1760 LOAD "GLMENU",0,R
- 1770 '
- 1780 ' ****** DATA ENTRY ERROR - RE-ENTER DATA ******
- 1790 '
- 1800 PRINT CHR$(7);CHR$(7);CHR$(7);CHR$(7);CHR$(7);CHR$(7)
- 1810 A$=ZZ$ ' CLEAR INPUT AREA TO BLANKS
- 1820 GOTO 990
- 1830 '
- 1840 '
- 1850 CLOSE 1
- 1860 UNLOAD 1
- 1870 PRINT "END OF DISK ERROR. THIS SHOULD NEVER OCCUR USING THIS"
- 1880 PRINT "PROGRAM. GL2 CHECKS TO MAKE SURE THERE IS ALWAYS ROOM"
- 1890 PRINT "FOR A ENTIRE MONTHS FILE."
- 1900 STOP
- 1910 IF A$="L" THEN 1720' LAST TRANSACTIONS TO PROCESS
- 1920 B$(I)=A$
- 1930 GOTO 1450
- 1940 '
- 1950 '****** SET UP TERMINAL LINE FOR ACCOUNT HEADER ******
- 1960 '
- 1970 H1$=" TRANS ACCT AMOUNT "
- 1980 H2$=" MODYYR NUMB ACCOUNT HEADER......-$.$$$.$$$.$$"
- 1990 GOTO 960
- 2000 '
- 2010 '****** EDIT BALANCE FORWARD - ACCOUNT HEADER ENTRIES ******
- 2020 '
- 2030 IF MID$(A$,33,1)="-" THEN 2060
- 2040 IF MID$(A$,33,1)<"1" THEN 2060
- 2050 GOTO 1800
- 2060 IF MID$(A$,35,1)="." THEN 2090
- 2070 IF MID$(A$,35,1)<"1" THEN 2090
- 2080 GOTO 1800
- 2090 IF MID$(A$,39,1)="." THEN 2120
- 2100 IF MID$(A$,39,1)<"1" THEN 2120
- 2110 GOTO 1800
- 2120 IF MID$(A$,43,1)<>"." THEN 1800
- 2130 IF MID$(A$,8,4)>"7904" OR MID$(A$,8,4)<"1000" THEN 1800
- 2140 IF LEN(A$)<>45 THEN 1800
- 2150 GOTO 1280
- 2160 '
- 2170 '****** LOAD MATRIX - BALANCE FORWARD-ACCOUNT HEADERS ******
- 2180 '
- 2190 B$(I)=MID$(A$,1,6)+MID$(A$,8,4)+MID$(A$,13,20)
- 2200 B$(I)=B$(I)+MID$(A$,33,2)+MID$(A$,36,3)+MID$(A$,40,6)
- 2210 B$(I)=B$(I)+TY$
- 2220 C$=(MID$(A$,33,2))+(MID$(A$,36,3))+(MID$(A$,40,6))
- 2230 GOTO 1390
- 2240 '
- 2250 '****** LOAD DISK OUTPUT AREA ******
- 2260 '
- 2270 FOR M=1 TO 3
- 2280 FIELD #1, (M-1)*42 AS D$,42 AS D1$(M)
- 2330 IF WSW=1 AND MID$(B$(I),1,2)<>MID$(D1$(M),1,2) THEN 2410
- 2340 IF MID$(D1$(M),1,3)="EOF" THEN 2410
- 2350 IF MID$(D1$(M),1,3)<"001" THEN 2410
- 2360 NEXT M
- 2370 REC=REC+1
- 2380 IF REC=2027 THEN 1850
- 2390 GET #1,REC
- 2400 GOTO 2270
- 2410 IF LSW=1 THEN 2460
- 2420 WSW=1
- 2430 RSET D1$(M)=MID$(B$(I),1,42)
- 2440 PUT #1,REC
- 2450 RETURN
- 2460 LSET D1$(M)="EOF"
- 2470 GOTO 2440
- 2480 END
-