home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / pay1pers.zip / WAGES.PRG < prev    next >
Text File  |  1987-01-15  |  5KB  |  160 lines

  1. ***  Procedure Wages (V 2.6)01/15/87
  2. ***  Copyright @ 1987, Martin J. Michaelson
  3. clear
  4. set talk off
  5. set bell off
  6. RESTORE FROM PAY_TAX
  7. SELECT 1
  8. USE PAY_PERS INDEX EMPNO
  9. SELECT 3
  10. USE PAY_YTD INDEX EMPNMytd
  11. STORE SPACE(1) TO QTR
  12. @ 1,15 SAY "WELCOME TO WEEKLY PAYROLL PROCESSING"
  13. @ 3,15 SAY "CURRENT PAYROLL QUARTER ?" GET QTR
  14. READ
  15. SELECT 2
  16. USE PAY_WEK&QTR INDEX WEEKLY&QTR,EMPNM&QTR
  17. STORE SPACE(8) TO WEEKEND
  18. STORE SPACE(3) TO EMP_NMBR
  19. STORE SPACE(8) TO GROSS
  20. STORE SPACE(6) TO SSFCIA
  21. store space(4) to disny
  22. hrot = 0.0
  23. hreg = 0.0
  24. STORE .F. TO PAYR
  25. DO WHILE .T.
  26.     CLEAR
  27.     @ 1,20 SAY "PAYROLL PROCESSING"
  28.     @ 3,20 SAY "WAGE PAYMENT SYSTEM"
  29.     @ 4, 8 SAY "WEEK ENDING : " GET WEEKEND PICTURE '99/99/99'
  30.     READ
  31.     IF WEEKEND = ' '
  32.         EXIT
  33.     ENDIF
  34.     DO NAMES
  35.     ACCEPT 'ENTER EMPLOYEE NAME: ' TO T_NAME
  36.     IF len(T_NAME) = 0
  37.       LOOP
  38.     ENDIF
  39.     SELECT 1
  40.     LOCATE FOR NAME = UPPER(T_NAME)
  41.     IF EOF() .OR. BOF()
  42.       @ 8, 6 SAY '<<< NO SUCH EMPLOYEE >>>'
  43.       LOOP
  44.     ENDIF
  45.     CLEAR
  46.     @ 3,20 SAY "PROCESSING INDIVIDUAL PAYROLL"
  47.     @ 6, 1 SAY NAME
  48.     @ 6,30 SAY 'EMP.No:'+ STR(EMP_NMBR,3)
  49.     @ 6,44 SAY 'PAY/HOUR:'+ STR(PAY_RATE,6,2)
  50.     @ 6,65 SAY 'DEDUCTS:'+ DED
  51.     @ 7, 1 say ' HOW MANY HRS(REG) DID '+TRIM(NAME)+' WORK?'
  52.     @ 7,54 get HREG PICT '99.9' range 1,40
  53.     @ 9, 1 say ' HOW MANY HRS(OVT) DID '+TRIM(NAME)+' WORK?'
  54.     @ 9,54 get HROT PICT '99.9' range 0,15
  55.     read
  56.     STORE ((HREG*A->PAY_RATE)+(HROT*A->PAY_RATE*1.5)) TO GROSS
  57.     SELECT 3
  58.     LOCATE FOR EMP_NMBR = A->EMP_NMBR
  59.       IF (GRO_YTD + GROSS) <FCGRO
  60.          STORE (GROSS * FICA) TO SSFCIA
  61.       ELSE
  62.          STORE ((FCGRO - GRO_YTD) * FICA) TO SSFCIA
  63.             IF SSFCIA < 0
  64.                STORE 0 TO SSFCIA
  65.             ENDIF                             
  66.       ENDIF
  67.     SELECT 2
  68.     APPEND BLANK
  69.     REPLACE EMP_NMBR WITH A->EMP_NMBR, WEEK_END WITH WEEKEND
  70.     REPLACE HRS_REG WITH HREG, HRS_OVT WITH HROT
  71.     REPLACE GRO_PAY WITH GROSS
  72.     REPLACE FCIA WITH SSFCIA     
  73.     store (gross * disab) to DISNY
  74.           if DISNY > dismax
  75.              store dismax to DISNY
  76.           endif
  77.     REPLACE DIS with DISNY
  78.     @ 11, 1 say '$ '+STR(GROSS,8,2)+' GROSS PAY, $ '+STR(SSFCIA,6,2)+'ì
  79. FCIA'
  80.     @ 12, 5 say "Federal Tax"
  81.     @ 13, 5 say "NYState Tax"
  82.     @ 14, 5 say "City Tax"
  83.     @ 15, 5 say "NYS Disab Tax"
  84.     @ 16, 5 say "Other Deducts"
  85.     @ 12,25 GET FWT PICTURE '9999.99'
  86.     @ 13,26 GET SWT PICTURE '999.99'
  87.     @ 14,26 GET CWT PICTURE '999.99'
  88.     @ 15,28 get DIS PICTURE '9.99'
  89.     @ 16,25 GET OTHER PICTURE '9999.99'
  90.     READ
  91.     *
  92.     REPLACE TOT_DED WITH (FCIA+FWT+SWT+CWT+DIS+OTHER)
  93.     REPLACE NET_PAY WITH (GRO_PAY-FCIA-FWT-SWT-CWT-DIS-OTHER)
  94.     SELECT 3
  95.     REPLACE GRO_YTD WITH (GRO_YTD + B->GRO_PAY)
  96.     REPLACE FCIA_YTD WITH (FCIA_YTD + B->FCIA)
  97.     REPLACE FWT_YTD WITH (FWT_YTD + B->FWT)
  98.     REPLACE SWT_YTD WITH (SWT_YTD + B->SWT)
  99.     REPLACE CWT_YTD WITH (CWT_YTD + B->CWT)
  100.     REPLACE DIS_YTD WITH (DIS_YTD + B->DIS)
  101.     REPLACE OTH_YTD WITH (OTH_YTD + B->OTHER)
  102.     REPLACE NET_YTD WITH (NET_YTD + B->NET_PAY)
  103.     SELECT 4
  104.     USE QTR&QTR INDEX QTREMP&QTR
  105.     LOCATE FOR EMP_NMBR = A->EMP_NMBR
  106.     REPLACE GRO_PAY WITH (GRO_PAY + B->GRO_PAY)
  107.     REPLACE FCIA WITH (FCIA + B->FCIA)
  108.     REPLACE FWT WITH (FWT + B->FWT)
  109.     REPLACE SWT WITH (SWT + B->SWT)
  110.     REPLACE CWT WITH (CWT + B->CWT)
  111.     REPLACE DIS WITH (DIS + B->DIS)
  112.     REPLACE TOT_DED WITH (TOT_DED + B->TOT_DED)
  113.     REPLACE NET_PAY WITH (NET_PAY + B->NET_PAY)
  114.     ?
  115.     SET PRINT ON 
  116.     ?
  117.     ? STR(EMP_NMBR,3)+'  '+A->NAME+'  '+WEEKEND
  118.     ?
  119.     ? 'HOURS '+STR(B->HRS_REG,4,1)+' Regular '+'ì
  120. '+STR(B->HRS_OVT,4,1)+' Overtime'
  121.     ? '       $'+STR(HREG*A->PAY_RATE,7,2)+'      $ 'ì
  122. +STR(HROT*1.5*A->PAY_RATE,7,2)+'   GROSS PAYì
  123. $'+STR(B->GRO_PAY,8,2)
  124.     ?
  125.     ?
  126.     ? 'Fed Tax,   FCIA,   NYS Tax, CtyTax, Disab,  OTHER, Totì
  127. Ded,   NET PAY'
  128.     ? '$ '+STR(B->FWT,7,2)+'  '+STR(B->FCIA,6,2)+'ì
  129. '+STR(B->SWT,6,2)+'  '+STR(B->CWT,6,2)+'  '+STR(B->DIS,5,2)+'ì
  130. '+STR(B->OTHER,7,2)+'  '+STR(B->TOT_DED,7,2)+'ì
  131. '+STR(B->NET_PAY,8,2)
  132.     ?
  133.     ?
  134.     ?
  135.     ?
  136.     SELECT 3
  137.     REPO FORM EMPYTD FOR EMP_NMBR = A->EMP_NMBR PLAIN NOEJECT
  138.     SET PRINT OFF
  139.     WAIT ' DO YOU WANT TO CONTINUE [Y or N] ?' TO X
  140.     IF .NOT. X $ 'Yy'
  141.         CLEAR
  142.         @ 6, 15 SAY " WEEKLY WAGE PAYMENT SYSTEM"
  143.         @ 8, 23 say " COMPLETE"
  144.         select 2
  145.         sum gro_pay,fcia,fwt,swt,cwt,dis,net_pay;
  146.          for week_end = weekend to mgro,mfcia,mf,ms,mc,mdis,mnet
  147.         select 5
  148.         use weektots
  149.         append blank
  150.         replace week with weekend, growage with mgro, fctot with mfcia,;
  151.         fwtot with mf,swtot with ms,cwtot with mc,distot with mdis,;
  152.         netwage with mnet
  153.         ? mgro,mfcia,mf,ms,mc,mdis,mnet
  154.         EXIT
  155.     ELSE
  156.       LOOP
  157.     ENDIF
  158. ENDDO WHILE PAYR
  159. RETURN
  160.