|
|
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: 37525 (0x9295)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »DPTPGM_S«
└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1
└─⟦this⟧ »DPTPGM_S«
/* This Program - DEPARTMT File Maintenance - April 15th 1978 */
DCL DEPARTMT FILE;
DCL OLDNO FIXED(3);
DCL OLDNAME CHAR(16);
DCL WHICH(2) CHAR(3) INIT('YTD','QTD');
DCL ANS CHAR(1);
DCL ANS3 CHAR(3);
DCL ANS9 CHAR(9);
DCL ANS10 CHAR(10);
DCL ANS16 CHAR(16);
DCL GROSS_FICA FIXED(9,2);
DCL DNUM FIXED(3);
DCL J BINARY INIT(0);
DCL JJ BINARY INIT(0);
DCL JJJ BINARY INIT(0);
DCL 1 DEPARTMENT,
2 ID# FIXED(3), /* Department Number */
2 INM CHAR(16), /* Department Name-Optional */
2 ISEX(2) BINARY, /* 1- # of Males, 2- # of F */
2 ITOTALS(2), /* 1 - YTD , 2 - QTD */
3 IVAC FIXED(8,2), /* Number of Vacation Hours */
3 ISICK FIXED(8,2), /* Number of Sick Hours */
3 IREG FIXED(8,2), /* Number of Regular Hours */
3 IOVER FIXED(8,2), /* Number of Overtime Hours */
3 IOTHRA FIXED(9,2), /* "Other-Taxable" Amount */
3 IOTHRB FIXED(9,2), /* "Other-NonTaxble" Amount */
3 IVAC$ FIXED(9,2), /* Total Vacation Amount */
3 ISICK$ FIXED(9,2), /* Total Sick Amount */
3 IREG$ FIXED(9,2), /* Total Regular Pay Amount */
3 IOT$ FIXED(9,2), /* Total Overtime Pay Amt */
3 IGROSS FIXED(9,2), /* Total Gross for Departmt */
3 IFEDTX FIXED(9,2), /* Total Federal Tax Amount */
3 IFICA FIXED(7,2), /* Total FICA Tax Amount */
3 ISUI FIXED(7,2), /* Total SUI & DIS Amount */
3 ISTATE FIXED(9,2), /* Total State Taxes Amount */
3 ICITY FIXED(9,2), /* Total City Taxes Amount */
2 DCOUNTER CHAR(2), /* '00'-Ready for current Pay-Freq #M,F */
2 IFILLER(4) CHAR(10) INIT(' ',' ',' ',' Y');
DCL 1 TINIT,
2 SVAC FIXED(8,2) INIT(0),
2 SSICK FIXED(8,2) INIT(0),
2 SREG FIXED(8,2) INIT(0),
2 SOVER FIXED(8,2) INIT(0),
2 SOTHRA FIXED(9,2) INIT(0),
2 SOTHRB FIXED(9,2) INIT(0),
2 SVAC$ FIXED(9,2) INIT(0),
2 SSICK$ FIXED(9,2) INIT(0),
2 SREG$ FIXED(9,2) INIT(0),
2 SOT$ FIXED(9,2) INIT(0),
2 SGROSS FIXED(9,2) INIT(0),
2 SFEDTX FIXED(9,2) INIT(0),
2 SFICA FIXED(7,2) INIT(0),
2 SSUI FIXED(7,2) INIT(0),
2 SSTATE FIXED(9,2) INIT(0),
2 SCITY FIXED(9,2) INIT(0);
/* Hours And Pay Amounts Procedure HERE */
HOURS_AND_PAY:PROC;
I = ANS;
TINIT = ITOTALS(I);
J = 0;
JJ = 0;
JJJ = 0;
HD: J = 1;
PUT FILE(D) SKIP EDIT('View/Modify')(A(14))
('Department:')(A(11))(ID#)(P'ZZ9')(' ')(A(3))
(INM)(A(16))(' ')(A(7))(WHICH(I))(A(3))(' TOTALS- ')
(A(10))('Hours & Amounts Paid')(A(20))(' ')(A(7));
PUT FILE(D) EDIT(J)(P'Z9')(')#Reg Hrs:')(A(11));
IF (J = JJ) THEN DO;
HD1: GET SKIP LIST(ANS9);
ANS = SUBSTR(ANS9,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H1E;
IF (VERIFY(ANS9,' .0123456789') = 0) THEN GOTO HD1;
SREG = ANS9;
JJJ = 1;
JJ = 27;
H1E: END;
J = J + 1; /* J = 2 */
PUT FILE(D) EDIT(SREG)(P'ZZZZZ9V.99')(', ')(A(2))
(J)(P'Z9')(')Reg Pay:')(A(10));
IF (J = JJ) THEN DO;
HD2: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H2E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO HD2;
SREG$ = ANS10;
JJJ = 1;
JJ = 27;
H2E: END;
PUT FILE(D) EDIT(SREG$)(P'$$$$$$9V.99')(' ')(A);
J = J + 1; /* J = 3 */
PUT FILE(D) EDIT(J)(P'Z9')(')#O/T Hrs:')(A(11));
IF (J = JJ) THEN DO;
HD3: GET SKIP LIST(ANS9);
ANS = SUBSTR(ANS9,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H3E;
IF (VERIFY(ANS9,' .0123456789') = 0) THEN GOTO HD3;
SOVER = ANS9;
JJJ = 1;
JJ = 27;
H3E: END;
J = J + 1; /* J = 4 */
PUT FILE(D) EDIT(SOVER)(P'ZZZZZ9V.99')(', ')(A(2))
(J)(P'Z9')(')O/T Pay:')(A(10));
IF (J = JJ) THEN DO;
HD4: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H4E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO HD4;
SOT$ = ANS10;
JJJ = 1;
JJ = 27;
H4E: END;
PUT FILE(D) EDIT(SOT$)(P'$$$$$$9V.99')(' ')(A);
J = J + 1; /* J = 5 */
PUT FILE(D) EDIT(J)(P'Z9')(')#Sick Hrs:')(A(11));
HD5: IF (J = JJ) THEN DO;
GET SKIP LIST(ANS9);
ANS = SUBSTR(ANS9,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H5E;
IF (VERIFY(ANS9,' .0123456789') = 0) THEN GOTO HD5;
SSICK = ANS9;
JJJ = 1;
JJ = 27;
H5E: END;
J = J + 1; /* J = 6 */
PUT FILE(D) EDIT(SSICK)(P'ZZZZZ9V.99')(', ')(A(2))
(J)(P'Z9')(')Sick Pay:')(A(10));
IF (J = JJ) THEN DO;
HD6: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H6E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO HD6;
SSICK$ = ANS10;
JJJ = 1;
JJ = 27;
H6E: END;
PUT FILE(D) EDIT(SSICK$)(P'$$$$$$9V.99')(' ')(A);
J = J + 1; /* J = 7 */
PUT FILE(D) EDIT(J)(P'Z9')(')Vac Hrs:')(A(11));
IF (J = JJ) THEN DO;
HD7: GET SKIP LIST(ANS9);
ANS = SUBSTR(ANS9,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H7E;
IF (VERIFY(ANS9,' .0123456789') = 0) THEN GOTO HD7;
SVAC = ANS9;
JJJ = 1;
JJ = 27;
H7E: END;
J = J + 1; /* J = 8 */
PUT FILE(D) EDIT(SVAC)(P'ZZZZZ9V.99')(', ')(A(2))
(J)(P'Z9')(')Vac Pay:')(A(10));
IF (J = JJ) THEN DO;
HD8: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H8E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO HD8;
SVAC$ = ANS10;
JJJ = 1;
JJ = 27;
H8E: END;
PUT FILE(D) EDIT(SVAC$)(P'$$$$$$9V.99')(' ')(A);
J = J + 1; /* J = 9 */
PUT FILE(D) EDIT('OtherPay-')(A(9))(J)(P'Z9')(')Tx:')(A(4));
IF (J = JJ) THEN DO;
HD9: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO H9E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO HD9;
SOTHRA = ANS10;
JJJ = 1;
JJ = 27;
H9E: END;
J = J + 1; /* J = 10*/
PUT FILE(D) EDIT(SOTHRA)(P'$$$$$$9V.99')(', ')(A(2))
(J)(P'Z9')(')NonTx:')(A(7));
IF (J = JJ) THEN DO;
HDT: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO HTE;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO HDT;
SOTHRB = ANS10;
JJJ = 1;
JJ = 27;
HTE: END;
PUT FILE(D) EDIT(SOTHRB)(P'$$$$$$9V.99')(' OK ? ')(A);
HD_ASK:
GET SKIP LIST(ANS3);
ANS = SUBSTR(ANS3,1,1);
IF (ANS = 'Y') ö (ANS = ' ') THEN GOTO HD_RETURN;
IF (VERIFY(ANS,'N123456789') = 0) THEN GOTO HD_ASK;
IF (ANS ¬= 'N') THEN DO;
JJ = ANS3;
IF (JJ > 10) THEN DO;
JJ = 0;
GOTO HD_ASK;
END;
GOTO HD;
END;
PUT FILE(D) EDIT('ENTER # Of Item To Be Changed : ')(A);
HD_ASK1:
GET SKIP LIST(ANS3);
IF (VERIFY(ANS3,' 0123456789') = 0) THEN GOTO HD;
JJ = ANS3;
IF (JJ > 10) THEN DO;
JJ = 0;
GOTO HD_ASK1;
END;
GOTO HD;
HD_RETURN:
IF (JJJ > 0) THEN DO;
ITOTALS(I) = TINIT;
REWRITE FILE(DEPARTMT) FROM(DEPARTMENT);
END;
JJJ = 0;
JJ = 0;
J = 0;
RETURN;
END;
/* Gross And Tax Amounts Procedure HERE */
GROSS_AND_TAX:PROC;
I = ANS;
TINIT = ITOTALS(I);
J = 0;
JJ = 0;
JJJ = 0;
GD: J = 1;
PUT FILE(D) SKIP EDIT('View/Modify')(A(14))('Department:')
(A(11))(ID#)(P'ZZ9')(' ')(A(3))(INM)(A(16))
(' ')(A(47))(' ')(A(8))(WHICH(I))(A(3))(' TOTALS- ')
(A(9))('Gross & Tax Amounts')(A(19))(' ')(A(8));
PUT FILE(D) EDIT(J)(P'Z9')(')GrossPay:')(A(10));
IF (J = JJ) THEN DO;
GD1: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO G1E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO GD1;
SGROSS = ANS10;
JJJ = 1;
JJ = 27;
G1E: END;
J = J + 1; /* J = 2 */
GROSS_FICA = SGROSS - SSICK$;
PUT FILE(D) EDIT(SGROSS)(P'$$$$$$9V.99')
(' (Less SickPay=')(A(15))(GROSS_FICA)(P'$$$$$$9V.99');
PUT FILE(D) EDIT(J)(P'Z9')(')Fed Tax :')(A(10));
IF (J = JJ) THEN DO;
GD2: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO G2E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO GD2;
SFEDTX = ANS10;
JJJ = 1;
JJ = 27;
G2E: END;
J = J + 1; /* J = 3 */
PUT FILE(D) EDIT(SFEDTX)(P'$$$$$$9V.99')(' ')(A(5))
(J)(P'Z9')(')FICA :')(A(7));
IF (J = JJ) THEN DO;
GD3: GET SKIP LIST(ANS9);
ANS = SUBSTR(ANS9,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO G3E;
IF (VERIFY(ANS9,' .0123456789') = 0) THEN GOTO GD3;
SFICA = ANS9;
JJJ = 1;
JJ = 27;
G3E: END;
J = J + 1; /* J = 4 */
PUT FILE(D) EDIT(SFICA)(P'$$$$$9V.99')(' ')(A(2))
(J)(P'Z9')(')State(s):')(A(10));
IF (J = JJ) THEN DO;
GD4: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO G4E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO GD4;
SSTATE = ANS10;
JJJ = 1;
JJ = 27;
G4E: END;
J = J + 1; /* J = 5 */
PUT FILE(D) EDIT(SSTATE)(P'$$$$$$9V.99')(' ')(A(3))
(J)(P'Z9')(')SUI-SDI :')(A(10));
IF (J = JJ) THEN DO;
GD5: GET SKIP LIST(ANS9);
ANS = SUBSTR(ANS9,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO G5E;
IF (VERIFY(ANS9,' .0123456789') = 0) THEN GOTO GD5;
SSUI = ANS9;
JJJ = 1;
JJ = 27;
G5E: END;
PUT FILE(D) EDIT(SSUI)(P'$$$$$9V.99')(' ')(A(2));
IF (SCITY > 0) THEN DO;
J = J + 1; /* J = 7 */
PUT FILE(D) EDIT(J)(P'Z9')(')CITY Tax(es) :')(A(15));
IF (J = JJ) THEN DO;
GD6: GET SKIP LIST(ANS10);
ANS = SUBSTR(ANS10,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO G6E;
IF (VERIFY(ANS10,' .0123456789') = 0) THEN GOTO GD6;
SCITY = ANS10;
JJJ = 1;
JJ = 27;
G6E: END;
PUT FILE(D) EDIT(SCITY)(P'$$$$$$9V.99')(' ')(A(20));
END;
PUT FILE(D) EDIT('OK ? ')(A);
GD_ASK:
GET SKIP LIST(ANS3);
ANS = SUBSTR(ANS3,1,1);
IF (ANS = 'Y') ö (ANS = ' ') THEN GOTO GD_RETURN;
IF (VERIFY(ANS,'N1234567') = 0) THEN GOTO GD_ASK;
IF (ANS ¬= 'N') THEN DO;
JJ = ANS;
IF (JJ > J) THEN DO;
JJ = 0;
GOTO GD_ASK;
END;
GOTO GD;
END;
PUT FILE(D) EDIT('ENTER # Of Item To Be Changed : ')(A);
GD_ASK1:
GET SKIP LIST(ANS);
IF (VERIFY(ANS,' 01234567') = 0) THEN GOTO GD;
JJ = ANS;
IF (JJ > J) THEN DO;
JJ = 0;
GOTO GD_ASK1;
END;
GOTO GD;
GD_RETURN:
IF (JJJ > 0) THEN DO;
ITOTALS(I) = TINIT;
REWRITE FILE(DEPARTMT) FROM(DEPARTMENT);
END;
JJJ = 0;
JJ = 0;
J = 0;
RETURN;
END;
/* MAIN Part of DEPARTMT Maintenance Program Follows */
DM: OPEN DEPARTMT;
PUT FILE(D) SKIP EDIT('View / Modify Department')(A(94))
('ENTER DEPARTMENT#: ')(A);
DM1: GET SKIP LIST(ANS3);
ANS = SUBSTR(ANS3,1,1);
IF (ANS = 'E') ö (ANS = '0') THEN GOTO EOP;
IF (VERIFY(ANS3,' 0123456789') = 0) THEN GOTO DM1;
DNUM = ANS3;
IF (DNUM = 0) THEN GOTO DM1;
DM2: ON ERROR GOTO D_MSG;
READ KEY(DNUM) FILE(DEPARTMT) INTO(DEPARTMENT) KEYTO(ID#);
DM3: J = 1; /* J = 1 */
PUT FILE(D) SKIP EDIT('View/Modify ')(A(14))
('Department:')(A(11))(ID#)(P'ZZ9')(' ')(A(3))
(INM)(A(16))('DO YOU WANT-')(A(16))('1)CHANGE Dept#:')(A(15));
IF (J = JJ) THEN DO;
D3R: GET SKIP LIST(ANS3);
ANS = SUBSTR(ANS3,1,1);
IF (ANS = 'E') ö (ANS = '0') THEN GOTO D3E;
IF (VERIFY(ANS3,' 0123456789') = 0) THEN GOTO D3R;
OLDNO = ID#;
ID# = ANS3;
IF (ID# > 0) THEN JJJ = 1;
IF (ID# = 0) THEN ID# = OLDNO;
JJ = 27;
GOTO DM3;
D3E: END;
J = J + 1;
PUT FILE(D) EDIT(ID#)(P'ZZ9')(' ')(A(29))('2)DeptName:')(A(11));
IF (J = JJ) THEN DO;
GET SKIP LIST(ANS16);
ANS = SUBSTR(ANS16,1,1);
IF (ANS = 'E') ö (ANS = ' ') THEN GOTO D4E;
OLDNAME = INM;
INM = ANS16;
JJJ = 1;
JJ = 27;
GOTO DM3;
D4E: END;
J = J + 1;
PUT FILE(D) EDIT(INM)(A(16))(' ')(A(20))
('3)QTD or 4)YTD Hours & Pay Amts')(A(47))
('5)QTD or 6)YTD Gross & Tax Amts')(A(47))
('7)All Of 3 thru 6 Above')(A(49)); /* (A(47))
('Print Of 8)This, 9)All Dept(s)')(A(49))
('ENTER CHOICE : ')(A); */
PUT FILE(D) EDIT('ENTER CHOICE : ')(A);
D5R: GET SKIP LIST(ANS);
IF (JJJ > 0) THEN DO;
REWRITE FILE(DEPARTMT) FROM(DEPARTMENT);
JJJ = 0;
END;
IF (ANS = 'E') ö (ANS = '0') THEN GOTO DM;
IF (VERIFY(ANS,'123456789') = 0) THEN GOTO D5R;
IF (ANS = '1') THEN GOTO CHANGE1;
IF (ANS = '2') THEN GOTO CHANGE2;
IF (ANS = '3') THEN GOTO CHANGE3;
IF (ANS = '4') THEN GOTO CHANGE4;
IF (ANS = '5') THEN GOTO CHANGE5;
IF (ANS = '6') THEN GOTO CHANGE6;
IF (ANS = '7') THEN GOTO CHANGE7;
/* IF (ANS = '8') THEN GOTO PRINT1;
IF (ANS = '9') THEN GOTO PRINT2; */
GOTO DM3; /* Until 8) & 9) Operative */
CHANGE1:
JJ = 1;
GOTO DM3;
CHANGE2:
JJ = 2;
GOTO DM3;
CHANGE3:
ANS = '2';
CALL HOURS_AND_PAY;
GOTO DM3;
CHANGE4:
ANS = '1';
CALL HOURS_AND_PAY;
GOTO DM3;
CHANGE5:
ANS = '2';
CALL GROSS_AND_TAX;
GOTO DM3;
CHANGE6:
ANS = '1';
CALL GROSS_AND_TAX;
GOTO DM3;
CHANGE7:
ANS = '2';
CALL HOURS_AND_PAY;
ANS = '2';
CALL GROSS_AND_TAX;
ANS = '1';
CALL HOURS_AND_PAY;
ANS = '1';
CALL GROSS_AND_TAX;
GOTO DM3;
/* PRINT1:
CALL PRINT_FILE;
GOTO DM3;
PRINT2:
OPEN DEPARTMT;
P2: ON ENDFILE GOTO DM;
READ FILE(DEPARTMT) INTO(DEPARTMENT);
CALL PRINT_FILE;
GOTO P2; */
GOTO EOP;
D_MSG:
PUT FILE(D) SKIP EDIT('DEPARTMENT#:')(A)(DNUM)(P'ZZ9')
(' Not Found')(A);
GET SKIP LIST('');
GOTO DM;
EOP: CALL TYPIST('PAYROLL┣0d┫',8);
END;