|
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: 68098 (0x10a02) Types: Q1_Text, reclen=79 Notes: q1file Names: »TAXPGM_S«
└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1 └─⟦this⟧ »TAXPGM_S«
/* Taxfile Record Length 330 w/ 4 Such Records Each State/City/Federal */ /* SECTIONED Sunday - March 26th 1978 */ DCL OTHERTAX FILE; DCL F_OR_C(2) CHAR(4) INIT('FICA','SUI '); DCL F_OR_D(2) CHAR(4) INIT('FUTA','SDI '); DCL BIGTAX FIXED(5,3); DCL T_CODE CHAR(1); DCL ANS CHAR(1); DCL ANS2 CHAR(2); DCL ANS3 CHAR(3); DCL ANS7 CHAR(7); DCL ANS_AMT FIXED(7,2); DCL HOURS5 CHAR(5); DCL DEDN FIXED(7,2); DCL DATE CHAR(6); DCL MARYTAL(2) CHAR(10) INIT('SINGLE','MARRIED'); DCL PERP FIXED(3,1); DCL MORE_TAX FIXED(4,2); DCL PAYFREQ(4) CHAR(10) INIT('MONTHLY','SemiMONTLY','BiWEEKLY','WEEKLY'); DCL 1 OTHER, 2 OTAX(4), /* 1-MONTHLY 2-SemiMONTHLY 3-BiWEEKLY 4-WEEKLY */ 3 STOC CHAR(2), /* STATE */ 3 OOWH CHAR(1), /* 1-4:STATE TAX 5:CITY 9:FEDTAX */ 3 OOWC CHAR(5), /* 1st 5 Char of CITY if CITYTAX */ 3 OXM$ FIXED(6,2), /* Exemption $ Amount */ 3 OMOC CHAR(1), /* 1-Marital figures in TAX */ /* Determination 2-It don't */ 3 TSPX FIXED(4,4), /* Commuter or Transportat'n TAX */ /* NOTE TSPX DOES NOT take Marital Status into consideration */ /* NOR DOES it provide for a Base Wage Amount - is this OK ? */ 3 OS_D(2), /* 1-SUI 2-Disability EMPLOYEE */ 4 ORATE FIXED(4,4), 4 OBASE FIXED(7,2), 3 ODWGS(2) FIXED(7,2), /* For Deductions Computation */ 3 ODAMT(2) FIXED(5,2), /* Deduction Amounts */ 3 O_PCT FIXED(3,3), /* Gross Wages * PCT */ 3 OLESS FIXED(5,2), /* minus LESS = Deduction */ 3 OM(2), /* 1-SINGLE 2-MARRIED */ 4 OBLT(14) FIXED(7,2), /* "BUT LESS THAN" Wages */ 4 OBTX(14) FIXED(5,2), /* base TAX Amount */ 4 OPCT(14) FIXED(3,3); /* % To be applied to */ /* Gross Wages - OBLT(I-1) */ DCL 1 OTAXES, 2 ST_C CHAR(2), 2 O_WH CHAR(1), 2 O_WC CHAR(5), 2 OEXM$ FIXED(6,2), 2 OMAR CHAR(1), 2 TRNX FIXED(4,4), 2 O_SD(2), 3 ORA FIXED(4,4), 3 OBA FIXED(7,2), 2 WAGEZ(2) FIXED(7,2), 2 D_AMT(2) FIXED(5,2), 2 PCT FIXED(3,3), 2 LESS FIXED(5,2), 2 MARS(2), 3 SOBLT(14) FIXED(7,2), 3 SOBTX(14) FIXED(5,2), 3 SOPCT(14) FIXED(3,3); DCL 1 S_OR_M, /* *** Single OR Married *** */ 2 R_MAX(14) FIXED(7,2), 2 B_TAX(14) FIXED(5,2), 2 PCT_DIF(14) FIXED(3,3); DCL 1 SUITABLE, /* State Tax = SUI, Federal Tax = FICA */ 2 SPC FIXED(4,4), 2 SW_B FIXED(7,2); DCL 1 DISABILTY, /* State Tax = Disability, Federal Tax = FUTA */ 2 DP_C FIXED(4,4), 2 DW_B FIXED(7,2); RMSG: PUT FILE(D) SKIP LIST('THIS ROUTINE NOT YET INCLUDED'); GET SKIP LIST(''); GOTO EOP; /* *** Taxfiles Re-Initialization & Creation Routines *** */ /* PRINT ROUTINES for TAX FILE PROGRAM - April 2nd 1978 */ /*********************************************/ /* */ /* BEWARE DEDN in PUT Statements - $$$9V.99 */ /* Is not Large enuf to show true content of */ /* Variable - It Was Increased fm FIXED(6,2) */ /* */ /*********************************************/ PRINTLIST:PROC; UNSPEC(OTHERTAX) = 0; KKEY = 0; RR: ON ENDFILE GOTO PL_MSG; READ FILE(OTHERTAX) INTO(OTAX); KKEY = KKEY + 1; IF (STOC = '00') THEN GOTO RR; IF (STOC = 'FD') THEN DO; PUT SKIP EDIT('FEDERAL Tax File')(A); GOTO RR; END; PUT SKIP EDIT(STOC)(A)(' STATE ')(A); IF (OOWH = '2') THEN DO; PUT EDIT(' - ')(A)(OOWC)(A)(' City ')(A); END; PUT EDIT('Tax File')(A); GOTO RR; PL_MSG: IF (KKEY > 0) THEN GOTO PLR; KKEY = 57; GOTO PLR; PLR: PUT SKIP; RETURN; END; XPLAIN_T:PROC; PUT SKIP(5); PUT SKIP EDIT('TAXFILES ARE SET-UP ALONG THE EXACT')(A) (' CALCULATION METHOD. ')(A); PUT SKIP(4); PUT SKIP EDIT('WHERE TAX CALCULATIONS PROVIDE FOR')(A) (' DEDUCTIONS -')(A(26))('YOU WILL BE PROMPTED FOR')(A); PUT SKIP; PUT SKIP EDIT('W1, W2, D1, D2, ADJ, &')(X(60),A); PUT SKIP EDIT('ö GROSS WAGES ö DEDUCTION ö')(X(17),A); PUT SKIP EDIT('-----------------')(A)('ö')(A) ('--------------ö-------------ö')(A) (' ')(A(13))('PCT AS IN TABLE FOR EACH')(A); PUT SKIP EDIT('A) LESS THAN ö (W1) 9999.99 ö ')(A) ('(D1) 999.99 ö')(A); PUT SKIP EDIT('-----------------')(A)('ö')(A) ('--------------ö-------------ö')(A) (' ')(A(13))('PAYFREQUENCY: MONTHLY,')(A); PUT SKIP EDIT('B) MORE THAN ö (W2) 9999.99 ö')(A) (' (D2) 999.99 ö')(A); PUT SKIP EDIT('Semi-MONTHLY, Bi-WEEKLY,')(X(60),A); PUT SKIP EDIT('(ADJ) 999.99 (PCT) 99.9')(X(19),A); PUT SKIP EDIT('& WEEKLY')(X(60),A); PUT SKIP EDIT('FOR GROSS-WAGES BETWEEN A) & B) ABOVE')(A); PUT SKIP EDIT('DEDUCTION = (GROSS-WAGES * PCT) - ADJ')(A); PUT SKIP(7); PUT SKIP EDIT('FOR TAX AMOUNT TO BE WITHHELD -')(A); PUT SKIP(2); PUT SKIP EDIT(' WAGES AFTER DEDUCTIONS ö AMOUNT')(A) (' TO BE WITHHELD IS THE SUM OF -')(A); PUT SKIP EDIT(' AND EXEMPTIONS ö')(A); PUT SKIP EDIT('AT LEAST ö BUT LESS ö BASE')(A) (' ö ö THIS % ö EXCESS')(A); PUT SKIP EDIT('ö THAN ö AMOUNT ö')(X(11),A) (' PLUS ö OF ö OVER')(A); PUT SKIP EDIT('-----------ö-------------ö-----------')(A) ('ö')(A)('------')(A)('ö')(A)('----------')(A) ('ö')(A)('--------')(A); PUT SKIP EDIT('A)99999.99 ö (W)99999.99 ö(B) 999.99 ö')(A) (' ö (P) 99.9 ö A)')(A); PUT SKIP(3); PUT SKIP EDIT('YOU WILL BE PROMPTED FOR (W), ')(A) ('(B), & (P) AS IN TABLE FOR EACH')(A); PUT SKIP; PUT SKIP EDIT('PAYFREQUENCY. YOU MAY ENTER UPTO')(A) (' 14 VALUES FOR EACH. FOR YOUR')(A); PUT SKIP; PUT SKIP EDIT('LAST ENTRY, (WHERE (W) IS GIVEN AS: ')(A) (' "For A) and UP" ), ENTER')(A); PUT SKIP; PUT SKIP EDIT('(W) =99999.99')(A); PUT SKIP(15); RETURN; END; PRINT_FILE:PROC; IF (KKEY = 7) THEN DO; ANS2 = 'FD'; GOTO PT0; END; IF (KKEY = 3) THEN GOTO P2; PTX: PUT FILE(D) SKIP EDIT('ENTER STATE CODE : ')(A); GET SKIP LIST(ANS2); PUT FILE(D) SKIP EDIT('IS THIS A CITY TAXTABLE ? ')(A); PXR: GET SKIP LIST(ANS3); ANS = SUBSTR(ANS3,1,1); IF (ANS = 'Y') THEN DO; PUT FILE(D) EDIT(' ENTER 1st 5 CHARACTERS OF CITY : ')(A); GET SKIP LIST(HOURS5); GOTO PT1; END; IF (ANS ¬= 'N') THEN GOTO PXR; PT0: HOURS5 = '*****'; PT1: ON ERROR GOTO P_MSG1; /* MSG3 */ READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX); IF (HOURS5 = '*****') & (OOWH ¬= '5') THEN GOTO P2; IF (HOURS5 = OOWC) THEN GOTO P2; /* IMPORTANT NOTE : Below Does Not Insure Correct State - */ /* Only That The City is The Same Name , BEWARE ! */ P1: ON ENDFILE GOTO P_MSG3; /* MSG7 */ READ FILE(OTHERTAX) INTO(OTAX); IF (HOURS5 ¬= OOWC) THEN GOTO P1; IF (STOC ¬= ANS2) THEN GOTO P1; P2: N = 0; IF (OMOC ¬= '2') THEN N = 1; PR: DO I = 1 TO 4; OTAXES = OTAX(I); NAI = N; IF (N = 0) THEN NAI = 1; S_OR_M = MARS(NAI); /* Put TEST to Skip Deductions HERE */ PUT SKIP(5); PUT SKIP EDIT('TAXFILE - ')(A); IF (STOC = 'FD') THEN DO; PUT EDIT('FEDERAL')(A); GOTO P4; END; PUT EDIT(STOC)(A)(' STATE -')(A); IF (OOWH ¬= '5') THEN GOTO P4; PUT EDIT(OOWC)(A)(' CITY -')(A); P4: PUT SKIP(2); PUT SKIP EDIT(PAYFREQ(I))(A)( ' DEDUCTIONS TABLE -')(A); IF (N = 0) THEN GOTO PN; PUT EDIT(' FOR ')(A)(MARYTAL(NAI))(A); PN: PUT SKIP; PUT SKIP EDIT('ö GROSS WAGES ö DEDUCTION ö')(X(17),A); PUT SKIP EDIT('-----------------ö--------------ö')(A) ('-------------ö')(A); PUT SKIP EDIT(' LESS THAN ö (W1)')(A)(WAGEZ(1)) (P'$$$$9V.99')(' ö (D1) ')(A)(D_AMT(1))(P'$$9V.99')(' ö')(A); PUT SKIP EDIT('-----------------ö--------------ö')(A) ('-------------ö')(A); PUT SKIP EDIT(' MORE THAN ö (W2)')(A)(WAGEZ(2)) (P'$$$$9V.99')(' ö (D2) ')(A)(D_AMT(2))(P'$$9V.99')(' ö')(A); PUT SKIP; PERP = PCT * 100; PUT SKIP EDIT('(ADJ) ')(X(19),A)(LESS)(P'$$9V.99')(' (PCT) ') (A)(PERP)(P'99V.9')(' %')(A); PUT SKIP(3); PUT SKIP EDIT('EXEMPTION AMOUNT FOR ')(A) (PAYFREQ(I))(A)(' PAY-FREQUENCY : ')(A)(OEXM$)(P'$$$9V.99'); PUT SKIP(3); PUT SKIP EDIT(PAYFREQ(I))(A)(' TAX TABLE -')(A); IF (N = 0) THEN GOTO PN2; PUT EDIT(' For ')(A)(MARYTAL(NAI))(A); PN2: PUT SKIP; PUT SKIP EDIT(' WAGES AFTER DEDUCTIONS ö AMOUNT')(A) (' TO BE WITHHELD IS THE SUM OF -')(A); PUT SKIP EDIT(' AND EXEMPTIONS ö')(A); PUT SKIP EDIT('AT LEAST ö BUT LESS ö BASE')(A) (' ö ö THIS % ö EXCESS')(A); PUT SKIP EDIT('ö THAN ö AMOUNT ö')(X(11),A) (' PLUS ö OF ö OVER')(A); DO J = 1 TO 14; PUT SKIP EDIT('-----------ö-------------ö-----------')(A) ('ö------ö----------ö--------')(A); PUT SKIP EDIT(J)(P'9')(')')(A); DEDN = R_MAX(J - 1); PERP = PCT_DIF(J) * 100; IF (J = 1) THEN DEDN = 0; PUT EDIT(DEDN)(P'$$$$9V.99')(' ö (W)')(A) (R_MAX(J))(P'$$$$9V.99')(' ö(B) ')(A)(B_TAX(J))(P'$$9V.99') (' ö ö (P) ')(A)(PERP)(P'99V.9')(' ö')(A) (DEDN)(P'$$$9V.99'); IF (J = 14) THEN GOTO PN3; IF (R_MAX(J + 1) = 0) THEN DO; J = J + J; PUT SKIP(28 - J); GOTO PN4; END; PN3: END; PN4: PUT SKIP(8); END; IF (N = 0) THEN GOTO EP; IF (N = 1) THEN DO; N = 2; GOTO PR; END; GOTO EP; P_MSG1: IF (ANS2 = 'FD') THEN GOTO P_MSG2; PUT FILE(D) SKIP EDIT('SORRY - No ')(A(11))(ANS2)(A(2)) (' State File In Your TaxFile')(A(27)); GET SKIP LIST(''); GOTO EP; P_MSG2: KKEY = 57; GOTO EP; P_MSG3: PUT FILE(D) SKIP EDIT('NO ')(A(3))(HOURS5)(A(5))(ANS2) (A(2))(' File Found In Your TaxFile')(A(27)); GET SKIP LIST(''); GOTO EP; EP: RETURN; END; /* TaxFile Initialization Module - March 29th 1978 */ TAX_INIT:PROC; PUT FILE(D) SKIP EDIT('Your TaxFile has Not Been Initialized') (A(47))('DO You Want to')(A(18))('1)Initialize Your Tax File') (A(47))('2)Exit This Program')(A(49))('ENTER CHOICE : ')(A); TIR: GET SKIP LIST(ANS); IF (ANS = '2') THEN GOTO TI2; IF (ANS ¬= '1') THEN GOTO TIR; GOTO TII; TI2: KKEY = 5; GOTO XTI; TII: OPEN OTHERTAX; ST_C = '00'; OEXM$ = 0; TRNX = 0; PCT = 0; LESS = 0; SPC = 0; SW_B = 0; DO I = 1 TO 14; R_MAX(I) = 0; B_TAX(I) = 0; PCT_DIF(I) = 0; END; R_MAX(14) = 99999.99; O_WH = '2'; O_WC = ' '; ANS = '2'; BEG: DO I = 1 TO 2; O_SD(I) = SUITABLE; WAGEZ(I) = 99999; D_AMT(I) = 0; MARS(I) = S_OR_M; END; OMAR = ANS; DO I = 1 TO 4; OTAX(I) = OTAXES; END; WRITE FILE(OTHERTAX) FROM(OTAX); IF (ST_C = '00') THEN DO; ANS = '1'; ST_C = 'FD'; O_WH = '9'; O_WC = ' '; GOTO BEG; END; CLOSE OTHERTAX; CALL XPLAIN_T; XTI: RETURN; END; /* FICA and SUI/Unemployment Tax Change Routine */ F_OR_S:PROC; /************************************************************************/ /* */ /* This Routine Applies To FEDERAL & STATE Files ONLY, NOT To CITY Ones */ /* */ /************************************************************************/ ON ERROR GOTO FS_MSG; READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX); IF (VERIFY(OOWH,'12349') = 0) THEN DO; RR_F_S: ON ENDFILE GOTO FS_MSG; READ FILE(OTHERTAX) INTO(OTAX); IF (ANS2 ¬= STOC) ö (VERIFY(OOWH,'12349') = 0) THEN DO; GOTO RR_F_S; END; END; SUITABLE = OS_D(1); DISABILTY = OS_D(2); FSR: MORE_TAX = SPC * 100; ANS3 = ANS2; IF (KKEY = 1) THEN ANS3 = ' '; PUT FILE(D) SKIP EDIT(ANS3)(A(47))('CURRENT ')(A) (F_OR_C(KKEY))(A)(' Rate : ')(A)(MORE_TAX)(P'Z9V.99') ('% BASE Wage : ')(A)(SW_B)(P'ZZZZ9V.99')('NEW VALUES ')(A) ('Rate : ')(A); GET SKIP LIST(MORE_TAX); PUT FILE(D) EDIT(MORE_TAX)(P'Z9V.99')('% BASE Wage : ')(A); GET SKIP LIST(ANS_AMT); PUT FILE(D) EDIT(ANS_AMT)(P'ZZZZ9V.99')(' ')(A(8)) (F_OR_D(KKEY))(A(4))(' Rate : ')(A(8)); BIGTAX = DP_C * 100; IF (KKEY = 1) THEN BIGTAX = DP_C; PUT FILE(D) EDIT(BIGTAX)(P'Z9V.999')('% BASE Wage :')(A(13)) (DW_B)(P'ZZZZ9V.99')('NEW VALUES ')(A(13))('Rate : ') (A(7)); GET SKIP LIST(BIGTAX); PUT FILE(D) EDIT(BIGTAX)(P'Z9V.999')('% BASE Wage :')(A(13)); GET SKIP LIST(DW_B); PUT FILE(D) EDIT(DW_B)(P'ZZZZ9V.99')('OK ? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FSR; SPC = MORE_TAX * .01; DP_C = BIGTAX * .01; IF (KKEY = 1) THEN DP_C = BIGTAX; SW_B = ANS_AMT; DO I = 1 TO 4; OTAXES = OTAX(I); OS_D(1) = SUITABLE; OS_D(2) = DISABILTY; OTAX(I) = OTAXES; END; UNSPEC(OTHERTAX) = UNSPEC(OTHERTAX) - 4; WRITE FILE(OTHERTAX) FROM(OTAX); OPEN OTHERTAX; PUT SKIP(2); PUT SKIP EDIT('CURRENT Value ')(A)(ANS2)(A(3))(F_OR_C(KKEY)) (A)(' Rate : ')(A)(ORATE * 100)(P'Z9V.99')('% BASE Wage : ') (A)(OBASE)(P'$$$$9V.99'); GOTO F_S_R; FS_MSG: IF (KKEY = 2) THEN DO; PUT FILE(D) SKIP EDIT(ANS2)(A)(' Tax Record NOT FOUND')(A); GET SKIP LIST(''); GOTO F_S_R; END; KKEY = 57; GOTO F_S_R; F_S_R: RETURN; END; /* FEDERAL RECORD ROUTINE HERE - Init & Re-Init are the Same */ FEDERAL_TAX:PROC; FTA0: ON ERROR GOTO TMSG; READ KEY('FD') FILE(OTHERTAX) INTO(OTAX); DO I = 1 TO 4; OTAXES = OTAX(I); FTA: PUT FILE(D) SKIP EDIT(PAYFREQ(I))(A(10))(' PAY FREQUENCY')(A(37)) ('EXEMPTION AMOUNT : ')(A); GET SKIP LIST(OEXM$); PUT FILE(D) EDIT(OEXM$)(P'$$$9V.99')(' OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FTA; FM: PUT FILE(D) SKIP EDIT('SOCIAL SECURITY TAX - FICA')(A(47)) ('ENTER PCT : ')(A(12)); /* MORE_TAX Should be Changed to FIXED(5,3), and */ /* SPC, DP_C, ORA, ORATE Should be Changed to FIXED(5,5) */ GET SKIP LIST(SPC); PUT FILE(D) EDIT(SPC)(P'V.999')('%')(A(6)) ('TAXABLE WAGES : ')(A(16)); GET SKIP LIST(SW_B); PUT FILE(D) EDIT(SW_B)(P'$$$$9V.99') (' FEDERAL DISABILITY - FUTA')(A(48))('ENTER PCT : ')(A(13)); GET SKIP LIST(MORE_TAX); DP_C = (MORE_TAX * .01); PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')('%')(A(5)) ('TAXABLE WAGES : ')(A(16)); GET SKIP LIST(DW_B); PUT FILE(D) EDIT(DW_B)(P'$$$$9V.99')('OK ? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FM; FM2: O_SD(1) = SUITABLE; O_SD(2) = DISABILTY; FTA1: PUT FILE(D) SKIP EDIT('FOR DEDUCTIONS CONSIDERATION FOR ')(A) (PAYFREQ(I))(A(14))('ENTER W1 : ')(A); GET SKIP LIST(WAGEZ(1)); PUT FILE(D) EDIT(WAGEZ(1))(P'$$$9V.99')('ENTER W2 : ')(X(8),A); GET SKIP LIST(WAGEZ(2)); PUT FILE(D) EDIT(WAGEZ(2))(P'$$$9V.99')('ENTER D1 : ')(X(3),A); GET SKIP LIST(D_AMT(1)); PUT FILE(D) EDIT(D_AMT(1))(P'$$9V.99')('ENTER D2 : ')(X(9),A); GET SKIP LIST(D_AMT(2)); PUT FILE(D) EDIT(D_AMT(2))(P'$$9V.99')(' ')(A) ('ENTER PCT : ')(A); GET SKIP LIST(PERP); PCT = (PERP * .01); PUT FILE(D) EDIT(PERP)(P'99V.9')('% ')(A) (' ENTER ADJ : ')(A); GET SKIP LIST(LESS); PUT FILE(D) EDIT(LESS)(P'$$9V.99')(' OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO FTA1; DO J = 1 TO 2; S_OR_M = MARS(J); F10: M = 7; F1: M = M - 7; F2: PUT FILE(D) SKIP EDIT(PAYFREQ(I))(A(10))(' TX AMT TO BE ')(A) ('WITHHELD FOR ')(A)(MARYTAL(J))(A(10)); FTA2: DO L = 1 TO 7; M = M + 1; PUT FILE(D) EDIT(M)(P'99')(')')(A)('ENTER W:')(A); GET SKIP LIST(R_MAX(M)); PUT FILE(D) EDIT(R_MAX(M))(P'$$$9V.99')(' ENTER B:')(A); GET SKIP LIST(B_TAX(M)); PUT FILE(D) EDIT(B_TAX(M))(P'$$9V.99')(' ENTER P:')(A); GET SKIP LIST(PERP); PCT_DIF(M) = (PERP * .01); PUT FILE(D) EDIT(PERP)(P'99V.9')('%')(A); END; PUT FILE(D) EDIT('OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO F1; MARS(J) = S_OR_M; IF (M < 9) THEN GOTO F2; END; OTAX(I) = OTAXES; END; OFT1: UNSPEC(OTHERTAX) = UNSPEC(OTHERTAX) - 4; WRITE FILE(OTHERTAX) FROM(OTAX); OPEN OTHERTAX; OFT2: KKEY = 3; N = 1; CALL PRINT_FILE; GOTO FT_R; TMSG: KKEY = 57; GOTO FT_R; FT_R: RETURN; END; /* THIS IS THE CITY and STATE ROUTINES for TAX PROGRAM */ STATE_CITY:PROC; AST: PUT FILE(D) SKIP EDIT('ENTER STATE CODE : ')(A); GET SKIP LIST(ANS2); PUT FILE(D) EDIT(ANS2)(A)(' OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST; AST1: PUT FILE(D) SKIP EDIT('IS THIS A CITY TAXTABLE ? ')(A); A1R: GET SKIP LIST(ANS3); ANS = SUBSTR(ANS3,1,1); HOURS5 = ' '; /* State Record */ IF (ANS = 'Y') THEN DO; T_CODE = '5'; /* City Record, No SUI or FICA */ K = 1; /* Re-Initializing Flag */ AST2: HOURS5 = ' '; PUT FILE(D) SKIP EDIT('ENTER 1st 5 CHARACTERS OF CITY : ')(A); GET SKIP LIST(HOURS5); PUT FILE(D) EDIT(HOURS5)(A)(' OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST2; /* GOTO AST3; */ ON ERROR GOTO NEW_C1; READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX); IF (OOWH ¬= '5') THEN DO; C_READ: ON ENDFILE GOTO NEW_C2; READ FILE(OTHERTAX) INTO(OTAX); IF (ANS2 ¬= STOC) ö (HOURS5 ¬= OOWC) ö (OOWH ¬= '5') THEN DO; GOTO C_READ; END; GOTO AS5; END; GOTO AS5; NEW_C1: PUT FILE(D) SKIP EDIT('NOTE: You Have No ')(A)(ANS2)(A) (' STATE File In Your Tax File')(A); GET SKIP LIST(''); NEW_C2: K = 0; /* New CITY Tax Record */ OPEN OTHERTAX; ON ERROR GOTO C_S_MSG; READ KEY('00') FILE(OTHERTAX) INTO(OTAX); STOC = ANS2; OOWC = HOURS5; OOWH = '5'; GOTO AS5; END; IF (ANS ¬= 'N') THEN GOTO A1R; /* T_CODE = '1'; */ K = 1; AST3: ON ERROR GOTO NEW_S2; /* This is New State Rec w/ No City Yet */ READ KEY(ANS2) FILE(OTHERTAX) INTO(OTAX); IF (VERIFY(OOWH,'1234') = 0) THEN DO; /* Not a State File */ ADR: ON ENDFILE GOTO NEW_S1; /* New State but City Already In File */ READ FILE(OTHERTAX) INTO(OTAX); IF (ANS2 ¬= STOC) ö (VERIFY(OOWH,'1234') = 0) THEN GOTO ADR; GOTO GOT_REC; END; GOTO GOT_REC; NEW_S1: PUT FILE(D) SKIP EDIT('You Have a ')(A)(ANS2)(A) (' CITY File, But No STATE One')(A); GET SKIP LIST(''); NEW_S2: K = 0; OPEN OTHERTAX; ON ERROR GOTO C_S_MSG; READ KEY('00') FILE(OTHERTAX) INTO(OTAX); STOC = ANS2; HOURS5 = ' '; OOWH = '2'; GOTO GOT_REC; /* If found, then taxfile is being Re-Initialized & K = 1 */ /* If Not Found, Then This Is a New Tax Record, And K = 0 */ GOT_REC: PUT FILE(D) SKIP EDIT('For ')(A(4))(STOC)(A(3))('State, Is SickPay') (A(21))('1)SUI-SDI Taxable')(A(47))('2)FICA Taxable') (A(47))('3)BOTH Taxable')(A(47))('4)NEITHER Taxable') (A(49))('ENTER CHOICE : ')(A); GR_RE: GET SKIP LIST(ANS); IF (VERIFY(ANS,'1234') = 0) THEN GOTO GR_RE; OOWH = ANS; AS5: PUT FILE(D) SKIP EDIT('FOR ')(A)(STOC)(A)(' TAX ')(A) ('CALCULATIONS, DOES MARITAL STATUS MATTER? ')(A); AST7: GET SKIP LIST(ANS3); /*****************************/ /* N is Marital Status Flag */ /* 1- Marital Status Matters */ /* Zero - It Does not Matter */ /*****************************/ ANS = SUBSTR(ANS3,1,1); N = 0; IF (ANS = 'Y') THEN DO; N = 1; OMOC = '1'; GOTO SM; END; IF (ANS ¬= 'N') THEN GOTO AST7; OMOC = '2'; /* CT:PUT FILE(D) SKIP EDIT(STOC)(A)(' COMMUTATION TAX-PERCENT : ')(A); GET SKIP LIST(MORE_TAX); TRNX = (MORE_TAX * .01); PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')('% OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO CT; */ SM: SUITABLE = O_SD(1); DISABILTY = O_SD(2); IF (OOWH = '5') THEN GOTO AST5; PUT FILE(D) SKIP EDIT(STOC)(A(3))('STATE UNEMPLOYMENT INSURANCE TAX') (A(44))('ENTER PCT : ')(A(13)); GET SKIP LIST(MORE_TAX); SPC = (MORE_TAX * .01); PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')(' %')(A(5)) ('TAXABLE WAGES : ')(A(16)); GET SKIP LIST(SW_B); PUT FILE(D) EDIT(SW_B)(P'$$$$9V.99') (STOC)(A(3))('STATE DISABILITY INSURANCE TAX')(A(44)) ('ENTER PCT : ')(A(13)); GET SKIP LIST(MORE_TAX); DP_C = (MORE_TAX * .01); PUT FILE(D) EDIT(MORE_TAX)(P'99V.99')(' %')(A(5)) ('TAXABLE WAGES : ')(A(16)); GET SKIP LIST(DW_B); PUT FILE(D) EDIT(DW_B)(P'$$$$9V.99')('OK ? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO SM; SM2: O_SD(1) = SUITABLE; O_SD(2) = DISABILTY; AST5: DO I = 1 TO 4; OTAXES = OTAX(I); ST_C = STOC; O_WH = OOWH; O_WC = OOWC; O_SD(1) = SUITABLE; O_SD(2) = DISABILTY; /* TRNX = (MORE_TAX * .01); */ AST6: PUT FILE(D) SKIP EDIT(PAYFREQ(I))(A(10))(' PAY ')(A) ('FREQUENCY')(A(32))('EXEMPTION AMOUNT : ')(A); A6R: GET SKIP LIST(ANS7); IF (ANS7 = ' ') THEN GOTO AT14; /* Skip This P_FREQ */ IF (VERIFY(ANS7,' 0123456789.') = 0) THEN GOTO A6R; OEXM$ = ANS7; PUT FILE(D) EDIT(OEXM$)(P'$$$9V.99')(' OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST6; AST8: PUT FILE(D) SKIP EDIT('FOR DEDUCTIONS CONSIDERATION FOR ')(A); IF (VERIFY(O_WH,'1234') ¬= 0) THEN GOTO A81; PUT FILE(D) EDIT(O_WC)(A)(' CITY -')(A(9)); GOTO A82; A81: PUT FILE(D)EDIT(ST_C)(A)(' STATE -')(A(12)); A82: PUT FILE(D) EDIT('ENTER W1 : ')(A); A8R: GET SKIP LIST(ANS7); IF (ANS7 = ' ') THEN GOTO ASTE; /** Skip DEDUCTIONS **/ IF (VERIFY(ANS7,' .0123456789') = 0) THEN GOTO A8R; WAGEZ(1) = ANS7; PUT FILE(D) EDIT(WAGEZ(1))(P'$$$9V.99')('ENTER W2 : ') (X(8),A); GET SKIP LIST(WAGEZ(2)); PUT FILE(D) EDIT(WAGEZ(2))(P'$$$9V.99')(' ')(A(3)) ('ENTER D1 : ')(A); GET SKIP LIST(D_AMT(1)); PUT FILE(D) EDIT(D_AMT(1))(P'$$9V.99')('ENTER D2 : ') (X(9),A); GET SKIP LIST(D_AMT(2)); PUT FILE(D) EDIT(D_AMT(2))(P'$$9V.99')(' ')(A) ('ENTER PCT : ')(A); GET SKIP LIST(PERP); PCT = (PERP * .01); PUT FILE(D) EDIT(PERP)(P'99V.9')('% ')(A) (' ENTER ADJ : ')(A); GET SKIP LIST(LESS); PUT FILE(D) EDIT(LESS)(P'$$9V.99')(' OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO AST8; ASTE: DO J = 1 TO 2; S_OR_M = MARS(J); AST9: M = 7; A9: M = M - 7; /* ** Provide to Indicate MARRIED or SINGLE in Display ** */ AT10: PUT FILE(D) SKIP EDIT('FOR TAX AMOUNT TO BE WITHHELD FOR ')(A); IF (VERIFY(O_WH,'1234') ¬= 0) THEN GOTO AT12; PUT FILE(D) EDIT(O_WC)(A)(' CITY - ')(A); GOTO AT11; AT12: PUT FILE(D) EDIT(ST_C)(A)(' STATE - ')(A); AT11: DO L = 1 TO 7; M = M + 1; AT13: PUT FILE(D) EDIT(M)(P'99')(')')(A)('ENTER W:')(A); G13: GET SKIP LIST(ANS7); /* MEANS TO SKIP XCESS DATA */ JJ = 0; IF (ANS7 = ' ') THEN DO; JJ = 5; GOTO NA; END; IF (VERIFY(ANS7,' .0123456789') = 0) THEN GOTO G13; R_MAX(M) = ANS7; PUT FILE(D) EDIT(R_MAX(M))(P'$$$9V.99')(' ENTER B:')(A); GET SKIP LIST(B_TAX(M)); PUT FILE(D) EDIT(B_TAX(M))(P'$$9V.99')(' ENTER P:')(A); GET SKIP LIST(PERP); PCT_DIF(M) = (PERP * .01); PUT FILE(D) EDIT(PERP)(P'99V.9')('%')(A); END; NA: PUT FILE(D) EDIT('OK? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO A9; IF (M < 9) & (JJ = 0) THEN GOTO AT10; MARS(J) = S_OR_M; IF (N = 0) THEN DO; MARS(2) = S_OR_M; GOTO AT14; END; END; AT14: OTAX(I) = OTAXES; AT15: END; IF (K = 0) THEN GOTO AT16; UNSPEC(OTHERTAX) = UNSPEC(OTHERTAX) - 4; WRITE FILE(OTHERTAX) FROM(OTAX); OPEN OTHERTAX; GOTO CS_P; AT16: CALL SEOF(OTHERTAX); WRITE FILE(OTHERTAX) FROM(OTAX); AT17: CLOSE OTHERTAX; OPEN OTHERTAX; GOTO CS_P; C_S_MSG: KKEY = 57; GOTO CSR; CS_P: KKEY = 3; CALL PRINT_FILE; CSR: RETURN; END; /* MAIN Portion of TAX FILE PROGRAM */ OPEN OTHERTAX; KKEY = 0; TOP: IF (KKEY = 5) THEN GOTO EOP; PUT FILE(D) SKIP EDIT('DO YOU WANT')(A(27))('1)FEDERAL') (A(47))('2)STATE')(A(47))('3)FICA/FUTA')(A(47))('4)SUI/SDI') (A(47)) /* ('5)Transportation Tax')(A(47)) */ ('5)PrintLIST of FILES')(A(49))('ENTER CHOICE : ')(A); TR: GET SKIP LIST(ANS3); ANS = SUBSTR(ANS3,1,1); IF (ANS = 'E') ö (ANS = '0') THEN GOTO EOP; IF (VERIFY(ANS,'123456') = 0) THEN GOTO TR; IF (ANS = '1') THEN GOTO T1; /* OFT */ IF (ANS = '2') THEN GOTO T2; /* OST */ IF (ANS = '3') THEN GOTO T3; /* FTA0 */ IF (ANS = '4') THEN GOTO T4; /* AST */ /* IF (ANS = '5') THEN GOTO T5; AST */ GOTO T6; /* HERE ANS = '5' */ T1: PUT FILE(D) SKIP EDIT('DO YOU WISH TO')(A(18)) ('1)ALTER FEDERAL FILE')(A(47))('2)PRINT FILE LISTING') (A(49))('ENTER CHOICE : ')(A); T1R: GET SKIP LIST(ANS3); ANS = SUBSTR(ANS3,1,1); IF (ANS = 'E') ö (ANS = '0') THEN GOTO TOP; IF (ANS = '2') THEN GOTO C_PRINT_F; IF (ANS ¬= '1') THEN GOTO T1R; KKEY = 0; CALL FEDERAL_TAX; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; T2: PUT FILE(D) SKIP EDIT('DO YOU WANT TO')(A(18)) ('1)ADD or CHANGE FILE(S)')(A(47))('2)PRINT PARTICULAR FILE(S)') (A(49))('ENTER CHOICE : ')(A); T2R: GET SKIP LIST(ANS3); ANS = SUBSTR(ANS3,1,1); IF (ANS = 'E') ö (ANS = '0') THEN GOTO TOP; IF (ANS = '1') THEN GOTO C_STATE; /* AST */ IF (ANS = '2') THEN GOTO C_PRINT_S; /* PTX */ GOTO T2R; C_STATE: KKEY = 0; CALL STATE_CITY; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; C_PRINT: CALL PRINT_FILE; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; C_PRINT_F: KKEY = 7; GOTO C_PRINT; C_PRINT_S: KKEY = 0; GOTO C_PRINT; /* KKEY = 0; */ T6: CALL PRINTLIST; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; T3: ANS2 = 'FD'; KKEY = 1; CALL F_OR_S; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; T4: PUT FILE(D) SKIP EDIT('ENTER STATE CODE : ')(A); GET SKIP LIST(ANS2); PUT FILE(D) EDIT(ANS2)(A)(' OK ? ')(A); GET SKIP LIST(ANS3); IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO T4; KKEY = 2; CALL F_OR_S; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; /* T5: KKEY = 0; CALL TRANS_COMMUTER; IF (KKEY = 57) THEN CALL TAX_INIT; GOTO TOP; */ EOP: END;