home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG009.ARK
/
GL1.ASC
< prev
next >
Wrap
Text File
|
1984-04-29
|
6KB
|
192 lines
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