|
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;