* PAYCHEK.GET * Calls data from file for [ayroll processing. Offers searching * and update options. * Uses Paychek.Ed to update files, Paychek.Fmt to print checks * and Paychek.Out for screen display. * SELECT SECONDARY USE TRANSFIL INDEX TRANSFIL SELECT PRIMARY STORE ' T ' TO Gselect STORE T TO Gmore STORE 'N' TO Gdel DO WHILE Gmore ERASE ************************** * Display current record * ************************** IF &Gselect DO PAYCHEK.OUT ENDIF STORE ' ' TO Gcmd @ 21,10 SAY ' ENTER N FOR NEXT, P FOR PREVIOUS ' @ 22,10 SAY ' S FOR SEARCH, M TO PROCESS CHECKS' IF Gselect <> ' T ' @ 23, 4 SAY '**' ENDIF @ 23,10 SAY 'PRESS RETURN WHEN DONE' GET Gcmd READ ************** SEARCH ****************** IF !(Gcmd)='S' STORE T TO Smore DO WHILE Smore ERASE * Get fields to search for @ 1, 0 SAY '=========================================================' @ 2,28 SAY 'PAYROLL RECORD SEARCH ' @ 3,28 SAY '---------------------' @ 4, 0 SAY 'LAST NAME' STORE ' ' TO Mlast @ 4,10 GET Mlast @ 4,24 SAY 'FIRST' @ 4,42 SAY 'INITIAL' @ 5, 0 SAY 'SOC SEC NUMBER' STORE '000-00-0000' TO Mssno @ 5,15 SAY Mssno PICTURE '999-99-9999' @ 6, 8 SAY 'ON VACATION' @ 6,40 SAY 'TERMINATED' @ 8, 0 SAY 'PAY:' @ 9, 4 SAY 'REGULAR' @ 9,23 SAY 'OVERTIME' @ 9,44 SAY 'SICK PAY' @ 10, 4 SAY 'GROSS' @ 10,40 SAY 'TAXABLE' @ 12, 0 SAY 'DEDUCTIONS' @ 13, 4 SAY 'WITHHELD' @ 13,40 SAY 'FICA' @ 14, 4 SAY 'INSURANCE' @ 14,40 SAY 'PENSION' @ 15,24 SAY 'NET PAY' @ 21,10 SAY ' PLEASE ENTER VALUES TO SEARCH FOR: ' IF Gselect <> ' T ' @ 23, 4 SAY '**' ENDIF READ **************************** * Exit from loop if found. * **************************** GOTO TOP STORE TRIM(Mssno+Mlast) TO Gkey IF Gselect=' T ' FIND &Gkey IF #<>0 STORE F TO Smore ELSE @ 22,10 SAY ' NOT FOUND ' @ 23,10 SAY ' TRY AGAIN (Y/N)? ' SET CONSOLE OFF WAIT TO Gagain SET CONSOLE ON IF !(Gagain) <> 'Y' STORE F TO Smore ENDIF Y RELEASE Gagain ENDIF # <> 0 ELSE LOCATE FOR ssno+Mlast = Mssno+Mlast .AND. &Gselect IF .NOT. EOF STORE F TO Smore ELSE @ 22,10 SAY ' NOT FOUND ' @ 23,10 SAY ' TRY AGAIN (Y/N)?' SET CONSOLE OFF WAIT TO Gagain SET CONSOLE ON IF !(Gagain) <> 'Y' STORE F TO Smore ENDIF Y RELEASE Gagain ENDIF EOF ENDIF Gselect = t ENDDO Smore RELEASE Smore RELEASE Gkey ELSE ******************************** ***** Gcmd = N => NEXT ***** ******************************** IF !(Gcmd) = 'N' STORE T TO Gno DO WHILE Gno SKIP IF &Gselect STORE F TO Gno ENDIF IF EOF STORE F TO Gno STORE ' T ' TO Gselect @ 23, 4 SAY ' ' ENDIF ENDDO RELEASE Gno ELSE ************************************** ***** Gcmd = P => PREVIOUS ***** ************************************** IF !(Gcmd) = 'P' STORE ' T ' TO Gselect @ 23,4 SAY ' ' SKIP -1 ELSE IF !(Gcmd) = 'M' STORE T TO Mmore DO WHILE Mmore STORE ' ' TO Mmd @ 21,10 SAY ' ENTER C TO FIGURE PAY, D TO DELETE' @ 22,10 SAY ' P TO PRINT CHECKS' IF Gselect <> ' T ' @ 23, 4 SAY '**' ENDIF @ 23,10 SAY ' PRESS RETURN WHEN DONE ' ' GET Mmd READ IF !(Mmd) = 'C' ERASE IF Gselect <> ' T ' @ 23, 4 SAY '**' ENDIF * Edit record DO PAYCHEK.ED ELSE IF !(Mmd) = 'D' STORE 'N' TO Gans IF Gselect <> ' T ' @ 23, 4 SAY '**' ENDIF @ 23,10 SAY ' ARE YOU SURE (Y/N)?' @ 23,28 GET Gans READ IF !(Gans) = 'Y' DELETE STORE 'Y' TO Gdel ENDIF RELEASE Gans ELSE IF !(Mmd) = 'P' @ 23,10 SAY ' PLEASE SET UP THE PRINTER ' SET CONSOLE OFF WAIT STORE checkno+1 to checkno DO TRANSFILE SET CONSOLE ON SET FORMAT TO PRINT DO PAYCHEK.FMT SET FORMAT TO SCREEN ELSE STORE F TO Mmore ENDIF F ENDIF P ENDIF D ENDIF E ENDDO Mmore RELEASE Mmore, Mmd ELSE STORE F TO Gmore ENDIF M ENDIF P ENDIF N ENDIF S ENDDO Gmore IF Gdel = 'Y' STORE 'N' TO Gans @ 23,10 SAY 'WANT TO PERMANENTLY DELETE RECORD (Y/N)?' @ 23,49 GET Gans READ IF Gans = 'Y' PACK ELSE RECALL ALL ENDIF RELEASE Gans ENDIF Gans RELEASE Gcmd, Gmore, Gdel, Gselect  IF Gans = 'Y' PACK ELSE RECALL ALL ENDIF RELEASE Gans ENDIF Gans RELEASE Gcmd, Gmore, Gdel, Gselect  TO Mchkfica STORE 0.00 TO Mins STORE 0.00 TO Mpension STORE 0.00 TO Mnet ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ