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
/
CPMUG044.ARK
/
G_L010.BAS
< prev
next >
Wrap
BASIC Source File
|
1985-02-10
|
6KB
|
171 lines
REMARK +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REMARK + GENERAL LEDGER DIRECT POSTING ENTRY/PRINT +
REMARK + VERS. OF 3.00 PM 8/8/79 +
REMARK +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DIM G2$(5),G3(5),D(7)
%INCLUDE CURSOR
GOTO 6000
%INCLUDE SUBS1
%INCLUDE GENINFO
%INCLUDE ACCTFILE
%INCLUDE POSTFILE
%INCLUDE BINSERCH
%INCLUDE G/L-INFO
825 IF LINE.COUNT%<55 THEN RETURN REMARK LINE PRINTER ROUTINE
PAGE.COUNT%=PAGE.COUNT%+1
PRINT CHR$(12);TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE";
X0=G3(1):GOSUB 680.5
PRINT
PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE";PAGE.COUNT%
PRINT
FOR I%=1 TO 3
PRINT"ACCOUNT SOURCE DATE REF AMOUNT";
IF I%<3 THEN PRINT">-----<";
NEXT I%
PRINT:PRINT
LINE.COUNT%=6
RETURN
4020 IF EXTERNAL.POSTING.EXTENT% + DIRECT.POSTING.EXTENT% < \ REMARK STOP PROGRAM IF POSTING FILES ARE FULL
MAXIMUM.POSTING.RECORDS% THEN RETURN
PRINT CURSOR.HOME$:PRINT:PRINT"FILE FULL - RUN G/L UPDATE"
PRINT "KEY <RETURN> TO EXIT"
X1=148:X2=1:X3=0:X4=0:GOSUB 345
GOTO 6340
5000 X1=335:GOSUB 210 REMARK ENTER MONTH AND DAY FOR POSTING DATE FIELD
PRINT TAB(18)
A1=0
X1=336:X2=4:X3=0:X4=9999:GOSUB 345 REMARK ENTER DATE
IF X0=0 THEN 5040
P3=X0/100
A1=INT(X0/100) REMARK CHECK FOR VALID MONTH
IF A1<1 OR A1>12 THEN X2$="BAD DATE":GOSUB 615:GOTO 5000
A1=X0-A1*100 REMARK CHECK FOR VALID DAY
IF A1<1 OR A1>31 THEN X2$="BAD DATE":GOSUB 615:GOTO 5000
5040 X1=335:GOSUB 210 REMARK DISPLAY MONTH/DAY
PRINT USING "##/##";INT(P3),(P3-INT(P3))*100
RETURN
5060 X1=398:X2=6:X3=0:X4=999999:GOSUB 345 REMARK ENTER REFERENCE NUMBER FIELD
P4=X0
RETURN
5080 X1=457:X2=11:X3=-9999999.99:X4=9999999.99:GOSUB 345 REMARK ENTER POSTING FIELD AMOUNT
P5=X0
X1=491:GOSUB 210 REMARK DISPLAY NEW ACCOUNT BALANCE
PRINT USING MASKA$;D(1)+P5
RETURN
6000 MASKA$=" #########.##" REMARK START OF MAIN PROGRAM
MASKB$="#####.# ## ##/## ######-#######.##"
MASKC$="### TOTAL DIRECT POSTINGS $$#######.##"
6010 MAXIMUM.POSTING.RECORDS%=3600
OPEN "G/I0F010.DAT" AS 1,"G/L0F110.DAT" RECL 157 AS 2,\ REMARK OPEN FILES
"G/L0F030.DAT" RECL 36 AS 3,\
"G/L0F130.DAT" AS 5, "CRT" RECL 1100 AS 19
FILE.NO%=1:GOSUB 700 REMARK GET GENERAL INFORMATION FILE
FILE.NO%=5:GOSUB .314 REMARK GET G/L INFORMATION FILE
GOSUB 4020 REMARK CHECK POSTING FILES' RECORD LENGTHS
6040 P2=3 REMARK SET ACCOUNT TYPE FIELD FOR DIRECT POSTINGS
X0=2:GOSUB 260 REMARK LOAD CRT MASK
X2=1:X3=0:X4=2:X2$="ENTER OPERATION (0=EXIT, 1=POST, 2=PRINT)" REMARK REQUEST OPERATION CODE
GOSUB 665
ON X0+1 GOTO 6340,6060,6200 REMARK BRANCH TO APPROPRIATE PROGRAM AREA
REMARK ENTER DIRECT POSTINGS
6060 X1=264:X2=7:X3=0:X4=99999.9:GOSUB 345 REMARK ENTER ACCOUNT NUMBER
P1=X0
IF X0=0 THEN 6040
RECORD.COUNT%=ACCOUNT.FILE.EXTENT%
Y2=2
K1=P1
GOSUB 10.60 REMARK CHECK ACCOUNT FILE FOR RECORD
IF H=-1 THEN X2$="NOT ON FILE":GOSUB 615:GOTO 6060
FILE.NO%=2:RECORD.NO%=L:GOSUB 3500 REMARK RETREIVE ACCOUNT DATA
P3=(INT(G3(1)/100))/100 REMARK SET POSTING DATE TO TODAY'S DATE
P4=0:P5=0
X1=272:GOSUB 210 REMARK DISPLAY ACCOUNT DATA
PRINT L1$;TAB(64)
GOSUB 5040
IF L4%=2 THEN X0$="BALANCE SHEET"\
ELSE X0$="INCOME STMT"
X1=348:GOSUB 210
PRINT X0$;", ";
IF L5%=2 THEN X0$="CREDIT"\
ELSE X0$="DEBIT"
PRINT X0$;" "
X1=44:GOSUB 215
PRINT USING MASKA$;D(1)
GOSUB 5060 REMARK ENTER REFERENCE
GOSUB 5080 REMARK ENTER AMOUNT
6140 X2=1:X3=0:X4=4:X2$="ENTER FIELD TO CHANGE (0=NONE; 4=CANCEL)" REMARK ALLOW CHANGES TO ENTRIES
GOSUB 665
IF X0=0 THEN 6160
IF X0=4 THEN X0=2:GOSUB 260:GOTO 6060 REMARK CANCEL THE POSTING
ON X0 GOSUB 5000,5060,5080 REMARK BRANCH TO CHANGE APPROPRIATE FIELD
GOTO 6140
6160 FILE.NO%=3
RECORD.NO% = DIRECT.POSTING.EXTENT% + 1
GOSUB 3650 REMARK SAVE THE POSTING
X2$="RECORDED":GOSUB 615
DIRECT.POSTING.EXTENT% = DIRECT.POSTING.EXTENT% + 1
CLOSE 5
OPEN "G/L0F130.DAT" AS 5
FILE.NO%=5
GOSUB .315 REMARK SAVE NEW EXTENT ON INFORMATION FILE
GOSUB 4020 REMARK CHECK POSTING FILES' RECORD LENGTHS
X0=2:GOSUB 260 REMARK REFRESH CRT MASK
GOTO 6060
6200 N=0:N1=0 REMARK PRINT SECTION - INITIALIZE VARIABLES
H1%=3
LINE.COUNT%=60
PAGE.COUNT%=0
LPRINTER
X4$="DIRECT GENERAL LEDGER POSTINGS":A1=110
GOSUB 825
FILE.NO%=3
IF DIRECT.POSTING.EXTENT%=0 THEN GOTO 6040 REMARK CHECK FOR EMPTY FILE
FOR RECORD.NO%=1 TO DIRECT.POSTING.EXTENT% REMARK START PRINT ROUTINE
GOSUB 3600 REMARK RETRIEVE NEXT POSTING
H1%=H1%+1
IF H1%=4 THEN\ REMARK THREE POSTINGS PRINTED PER LINE.
REMARK START FOURTH POSTING AT NEW LINE
PRINT:\
LINE.COUNT%=LINE.COUNT%+1:\
X4$="DIRECT GENERAL LEDGER POSTINGS":A1=110:\
GOSUB 825:H1%=1
PRINT USING MASKB$;P1,P2,INT(P3),100*(P3-INT(P3)),P4,P5; REMARK PRINT POSTING DATA
IF H1%<3 THEN PRINT">-----<";
N=N+1
N1=N1+P5
NEXT RECORD.NO%
PRINT:PRINT:PRINT TAB(35)
PRINT USING MASKC$;N,N1 REMARK PRINT TOTALS
GOTO 6040
REMARK END PROGRAM
6340 X2=1:X3=0:X4=1:X2$="DO YOU WANT A DIRECT POSTING LISTING?" REMARK ENCOURAGE PRINTING ANY POSTINGS JUST ENTERED
GOSUB 665
IF X0=1 THEN 6200
PRINT CLEAR.SCREEN$;"G/L DIRECT POSTING LOADING MENU"
CHAIN "G/L000" REMARK RELOAD MENU
FILE.NO%=3
IF DIRECT.POSTING.EXTENT%=0 THEN GOTO 6040 REMARK CHECK FOR EMPTY FILE
FOR RECORD.NO%=1 TO DIRECT.POSTING.E