|
|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 11850 (0x2e4a)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »CHKREC_S«
└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1
└─⟦this⟧ »CHKREC_S«
/* CHECK RECONCILIATION PROGRAM 03/02/78 */
DCL CHKFILE FILE;
DCL 1 CHKFILE_REC,
2 CHK_NO FIXED(5),
2 CHK_AMT FIXED(7,2),
2 CHK_DATE,
3 CHK_MONTH FIXED(2),
3 CHK_DAY FIXED(2),
3 CHK_YEAR FIXED(2),
2 CHK_E# FIXED(4),
2 CHK_RTN CHAR(1),
2 RTN_DATE,
3 RTN_MONTH CHAR(2),
3 RTN_DAY CHAR(2),
3 RTN_YEAR CHAR(2),
2 CHK_FILL CHAR(7);
DCL DATE CHAR(6),
MONTH CHAR(2),
DAY CHAR(2),
YEAR CHAR(2),
ANS1 CHAR(1),
ANS3 CHAR(3),
ANS5 CHAR(5),
AMOUNT FIXED(7,2),
TOTAL_CHECKS FIXED(7),
TOTAL_AMT FIXED(11,2);
GET_DATE:
PUT FILE(D) SKIP LIST('ENTER TODAY"S DATE(mmddyy):');
GET SKIP LIST(DATE);
MONTH = SUBSTR(DATE,1,2);
DAY = SUBSTR(DATE,3,2);
YEAR = SUBSTR(DATE,5,2);
PUT FILE(D) EDIT(MONTH)(A)('/')(A)(DAY)(A)('/')(A)(YEAR)
(A)(' OK? ')(A);
GET SKIP LIST(ANS3);
IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO GET_DATE;
OPEN CHKFILE;
OPTIONS:
PUT FILE(D) SKIP EDIT('DO YOU WANT TO')(A(47))
('1)INPUT RETURNED CHECK NUMBERS')(A(47))
('2)PRINT OUTSTANDING CHECKS')(A(47))
('3)ENTER VOIDed CHECK NUMBER(S)')(A(49))
('ENTER CHOICE : ')(A);
GET SKIP LIST(ANS1);
IF (ANS1 = 'E') THEN GOTO END_OF_PGM;
IF (ANS1 = '1') ö (ANS1 = '3') THEN GOTO INPUT_CHECKS;
IF (ANS1 = '2') THEN GOTO PRINT_CHECKS;
GOTO OPTIONS;
INPUT_CHECKS:
PUT FILE(D) SKIP LIST('CHECK NUMBER:');
IRE: GET SKIP LIST(ANS5);
IF (SUBSTR(ANS5,1,1) = 'E') THEN GOTO OPTIONS;
IF (VERIFY(ANS5,' 0123456789') = 0) THEN DO;
PUT FILE(D) EDIT(ANS5)(A)(' IS INVALID')(A);
GET SKIP LIST('');
GOTO INPUT_CHECKS;
END;
CHK_NO = ANS5;
IF (CHK_NO = 0) THEN GOTO IRE;
PUT FILE(D) EDIT(CHK_NO)(P'99999')(' OK ? ')(X(47-18),A);
GET SKIP LIST(ANS3);
IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO INPUT_CHECKS;
ON ERROR GOTO NO_CHECK;
READ KEY(CHK_NO) FILE(CHKFILE) INTO(CHKFILE_REC);
IF (CHK_RTN = 'Y') THEN DO;
PUT SKIP EDIT('CHECK #')(A)(CHK_NO)(P'99999')
(' WAS ALREADY INPUT AS RETURNED ON ')(A)(RTN_MONTH)
(A)('/')(A)(RTN_DAY)(A)('/')(A)(RTN_YEAR)(A);
GOTO DISCREPANCY;
END;
IF (CHK_RTN = 'V') THEN DO;
PUT SKIP EDIT('CHECK #')(A(7))(CHK_NO)(P'99999')
(' Was Already Input as VOIDED on ')(A)(RTN_MONTH)
(A)('/')(A)(RTN_DAY)(A)('/')(A)(RTN_YEAR)(A);
GOTO DISCREPANCY;
END;
/* ************* SOMEHOW TEST DATE vs RETURN-DATE HERE ************ */
IF (ANS1 = '3') THEN PUT FILE(D) SKIP EDIT('* VOID *')(A(8));
IF (ANS1 = '1') THEN PUT FILE(D) SKIP EDIT('Returned')(A(8));
PUT FILE(D) EDIT(' CHECK#:')(A(8))(CHK_NO)(P'99999')
(' ')(A(26))('Employee#:')(A(10))(CHK_E#)(P'9999')
(' ')(A(33))('AMOUNT :')(A(10))(CHK_AMT)(P'$$$$9V.99')
(' ')(A(29))('CheckDate:')(A(10))(CHK_MONTH)(P'99')
('/')(A)(CHK_DAY)(P'99')('/')(A)(CHK_YEAR)(P'99')
(' ')(A(29))('OK ? ')(A);
GET SKIP LIST(ANS3);
IF (SUBSTR(ANS3,1,1) ¬= 'N') THEN DO;
/* NUMBER IS THERE & AMOUNTS ARE EQUAL */
CHK_RTN = 'V';
IF (ANS1 = '1') THEN CHK_RTN = 'Y';
RTN_MONTH = MONTH;
RTN_DAY = DAY;
RTN_YEAR = YEAR;
REWRITE FILE(CHKFILE) FROM(CHKFILE_REC);
GOTO INPUT_CHECKS;
END;
/* *********** HERE- Answer was NO, Something Amiss *********** */
DISCREPANCY:
PUT SKIP EDIT('************* CHECK DISCREPANCY ***********')(A);
PUT SKIP EDIT('CHECK #:')(A)(CHK_NO)(P'99999')(' Amt:')(A)
(CHK_AMT)(P'$$$$9V.99')(' Dated:')(A)(CHK_MONTH)(P'99')
('/')(A)(CHK_DAY)(P'99')('/')(A)(CHK_YEAR)(P'99');
PUT SKIP EDIT('for Employee #:')(A)(CHK_E#)(P'9999')
(' Return Date:')(A)(MONTH)(A)('/')(A)(DAY)(A)('/')
(A)(YEAR)(A);
PUT SKIP(3);
GOTO OPTIONS;
NO_CHECK:
PUT SKIP EDIT('CHECK #')(A)(CHK_NO)(P'99999')
(' IS NOT ON THE CHECK FILE')(A);
GOTO INPUT_CHECKS;
PRINT_CHECKS:
UNSPEC(CHKFILE) = 0;
TOTAL_CHECKS = 0;
TOTAL_AMT = 0;
PUT SKIP EDIT('OUTSTANDING CHECKS')(X(27),A);
PUT SKIP EDIT('AS OF ')(X(29),A)(MONTH)(A)('/')(A)
(DAY)(A)('/')(A)(YEAR)(A);
PUT SKIP(2) EDIT('CHECK')(X(15),A)('AMOUNT')(X(12),A)
('DATE')(X(5),A)('EMPLOYEE')(X(5),A);
READ_FILE:
ON ENDFILE GOTO EOP;
READ FILE(CHKFILE) INTO(CHKFILE_REC);
IF (CHK_RTN = 'Y') ö (CHK_RTN = 'V') THEN GOTO READ_FILE;
TOTAL_CHECKS = TOTAL_CHECKS + 1;
TOTAL_AMT = TOTAL_AMT + CHK_AMT;
PUT SKIP(3) EDIT(CHK_NO)(X(15),P'99999')(CHK_AMT)
(X(7),P'---,--9V.99')(CHK_MONTH)(X(3),P'99')('/')(A)
(CHK_DAY)(P'99')('/')(A)(CHK_YEAR)(P'99')(CHK_E#)(X(7),P'9999');
GOTO READ_FILE;
EOP: PUT SKIP(2) EDIT('* TOTALS *')(A)(TOTAL_CHECKS)(X(1),P'Z,ZZZ,ZZ9')
(TOTAL_AMT)(X(2),P'----,---,--9V.99');
PUT SKIP;
GOTO OPTIONS;
END_OF_PGM:
END;