* WTWO.CMD * Calculates and prints W-2 forms. ERASE * Designate Transfil as the source of date SELECT SECONDARY USE TRANSFIL INDEX TRANSFIL * Temporarily use Paychek to identify employee. SELECT PRIMARY STORE 23 TO Wsize STORE ' ' TO Wslct STORE 'Y' TO Wans * Provide for individual printings. @ 21,10 SAY 'PRINT INDIVIDUAL FORM (Y/N)?' GET Wans READ @ 21, 10 IF !(Wans) = 'Y' @ 21,10 SAY 'PLEASE ENTER SOCIAL SECURITY NUMBER' @ 23,10 GET Wslct READ @ 21,10 @ 23,10 ELSE STORE 'T' TO Wslct ENDIF * Prepare fo print GOTO TOP @ 23,10 SAY ' PLEASE SET UP YOUR PRINTER ' SET CONSOLE OFF WAIT SET CONSOLE ON * Repeat until file ends. DO WHILE .NOT. EOF STORE P.ssno TO Wslct IF Wslct <> ' ' * Go to Transfil for data. Store to variables representing * positions on the form. SELECT SECONDARY STORE empid TO MQ1:02 STORE company TO MQ1:03 STORE cstreet TO MQ1:04 STORE ccity TO MQ1:05 STORE cstate TO MQ1:06 STORE czip TO MQ1:07 STORE ssno TO MQ1:08 * Add calculated values. SUM S.whhold TO MQ1:09 FOR S.ssno=Wslct SUM S.taxable TO MQ1:10 FOR S.ssno=Wslct * Determine maximum Social Security pay. Calculate withholding. SUM S.taxable TO MQ1:12 FOR S.ssno=Wslct IF MQ1:12>ficamax STORE ficamax TO MQ1:12 ENDIF STORE MQ1:12*dedfica TO MQ1:11 * Identify employee. STORE P.last TO MQ1:13 STORE P.first TO MQ1:14 STORE P.initial TO MQ1:15 ELSE * Skip invalid records. SELECT PRIMARY SKIP LOOP ENDIF * Set print format SET PRINT ON ? ' '+STR(MQ1:02,11,0) ? ' '+MQ1:03 ? ' '+MQ1:04 ? ' '+MQ1:05 ? ' '+MQ1:06+' '+MQ1:07 ? ? ' '+MQ1:08+' '+STR(MQ1:09,11,2)+' '+STR(MQ1:10, 11,2); +' '+STR(MQ1:11, 11,2) ? ' '+STR(MQ1:12, 11,2) ? ' '+MQ1:13+' '+MQ1:14+' '+MQ1:15 ? ? ? ? ? ? ? ? ? ? ? ? * Return to top SELECT PRIMARY SKIP ENDDO NOT EOF SET PRINT OFF SET CONSOLE ON RELEASE Wsize, Wans, Wslct RELEASE MQ1:01, MQ1:02, MQ1:03, MQ1:04 RELEASE MQ1:05, MQ1:06, MQ1:07, MQ1:08 RELEASE MQ1:09, MQ1:10, MQ1:11, MQ1:12 RELEASE MQ1:13, MQ1:14, MQ1:15 RETURN :" STORE ' ' to Choice SET CONSOLE OFF WAIT to Choice STORE !(Choice) to Choice SET CONSOLE ON DO CASE CASE Choice='1' DO EMPLOYEE CASE Choice='2' DO Payroll CASE Choice='3' * DO Payable ? 'Accounts payable' CASE Choice='4' * DO Receive ? 'Accounts receivable' CASE Choice='R' ERASE