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
/
CPMUG045.ARK
/
P_R070.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
3KB
|
73 lines
REMARK ***********************************************\
* P/R070.BAS TRANS. ACCUMULATE TO SUMMARY *\
* 5/14/79 9:48 AM *\
***********************************************
%INCLUDE CURSOR
DIM T2(8),B1(5)
DEF FNEXACT(X0,X1,X2)=X0*1000+X1*10+X2
GOTO 6000
5120 IF END #Y4 THEN 5122
READ #Y4;T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8) REMARK READ RECORD FROM TRANSACTION FILE
RETURN
5122 R1=99
IF R2=99 THEN RETURN REMARK IF END OF FILE WAS REACHED ON TRANSACTION FILE,\
READ RECORDS FROM THE PAYROLL SUMMARY FILE.
READ #Y5;T2(1),T2(2),T2(3),T2(7),T2(8)
R1=0
RETURN
5130 IF END #Y5 THEN 5132
READ #Y5;B1(1),B1(2),B1(3),B1(4),B1(5) REMARK READ JOB POSTING VARIABLES FROM JOB POSTING FILE
IF B1(1)=9000000000 THEN B1(1)=0:GOTO 5132 REMARK IF END OF FILE, SET FLAG
RETURN
5132 R2=99
IF R1=99 THEN RETURN
REMARK IF END OF FILE REACHED ON P/R SUMMARY FILE,\
GET NEXT RECORD FROM THE TRANSACTION FILE.
READ #Y4;B1(1),B1(2),B1(3),X0,X0,X0,B1(4),B1(5)
R2=0
RETURN
5140 IF B1(1)=0 THEN RETURN
PRINT #Y6;B1(1),B1(2),B1(3),B1(4),B1(5) REMARK WRITE TRANSACTION SUMMARY RECORD
FOR I%=1 TO 5:B1(I%)=0:NEXT I% REMARK RE-INITIALIZE TRANSACTION SUMMARY RECORD
RETURN
6000 PRINT CLEAR.SCREEN$;"P/R TRANSACTION SUMMARY":PRINT
PRINT "KEY RETURN TO BEGIN; CTRL-C TO EXIT"
6000.1 IF CONSTAT%=0 THEN 6000.1
A%=CONCHAR%
IF A% = 03H THEN\
PRINT CLEAR.SCREEN$;"P/R TRANS. SUMMARY LOADING MENU":\ REMARK IF CTRL-C WAS PRESSED, LOAD MENU
CHAIN "P/R000"
IF A% <> 0DH THEN GOTO 6000.1 REMARK IF <RETURN> WAS NOT HIT, WAIT FOR KEYSTROKE
PRINT:PRINT "WORKING...DO NOT INTERRUPT "
Y4=1
Y5=2
Y6=3
OPEN "P/R0F040.DAT" RECL 42 AS Y4 REMARK OPEN PAYROLL TRANSACTION FILE
OPEN "P/R0F050.DAT" RECL 30 AS Y5 REMARK OPEN P/R TRANSACTION SUMMARY FILE
CREATE "WORKFILE.DAT" RECL 30 AS Y6 REMARK CREATE OUTPUT WORK FILE
GOSUB 5120 REMARK READ FIRST TRANSACTION RECORD
GOSUB 5130 REMARK "" "" SUMMARY RECORD
6100 IF R1=99 AND R2=99 THEN 9999 REMARK IF END OF BOTH FILES, END PROGRAM
6135 IF FNEXACT(B1(1),B1(2),B1(3))=FNEXACT(T2(1),T2(2),T2(3)) THEN\
B1(4)=B1(4)+T2(7):B1(5)=B1(5)+T2(8):GOSUB 5120:GOTO 6100 REMARK IF DUPLICATE RECORD, ACCUMULATE HOURS & AMOUNTS
IF FNEXACT(B1(1),B1(2),B1(3)) < FNEXACT(T2(1),T2(2),T2(3))\
OR R1=99 THEN GOSUB 5140:GOSUB 5130 REMARK IF SUMMARY RECORD IS LOWER,\
WRITE IT TO WORKFILE
6150 IF FNEXACT(B1(1),B1(2),B1(3)) > FNEXACT(T2(1),T2(2),T2(3)) \
OR R2=99 THEN\
PRINT #Y6;T2(1),T2(2),T2(3),T2(7),T2(8):GOSUB 5120 REMARK IF TRANSACTION RECORD IS LOWER,\
WRITE IT OUT TO WORKFILE
GOTO 6100
9999 IF B1(1)=9000000000 OR T2(1)=9000000000 THEN 9999.5
GOSUB 5140 REMARK WRITE LAST TRANSACTION SUMMARY RECORD
B1(1)=9000000000
GOSUB 5140 REMARK WRITE TRAILER RECORD TO SUMMARY FILE
9999.5 CLOSE 1,2,3
OPEN "P/R0F050.DAT" AS 1
DELETE 1
A%=RENAME("P/R0F050.DAT","WORKFILE.DAT") REMARK SCRATCH SUMMARY FILE; REPLACE IT WITH WORK FILE
9999.9 PRINT "P/R TRANSACTIONS TRANSFER TO JOB POSTING"
CHAIN "P/R080" REMARK LOAD MENU