Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FUNCTION computegovt(pempno,pdtpay,pgross)
- lempno = pempno
- ldtpay = pdtpay
- lgross = pgross
- STORE 0 TO ltran_gross,ltran_ssr,ltran_ssy,ltran_mede,ltran_medr,ltran_ecc,ltran_hdmfe,ltran_pagr
- SELECT dtpay,amt_gross,amt_tax,amt_ssy,amt_ssr,amt_ecc,amt_mede,amt_medr,amt_hdmf,amt_pagr ;
- FROM t_pay WHERE empno = lempno INTO CURSOR govtlst
- SELECT govtlst
- GO TOP
- DO WHILE !EOF()
- IF LEFT(dtpay,2) = LEFT(ldtpay,2)
- IF dtpay = ldtpay
- SKIP
- LOOP
- ENDIF
- ltran_gross = ltran_gross + amt_gross
- ltran_ssr = ltran_ssr + amt_ssr
- ltran_ssy = ltran_ssy + amt_ssy
- ltran_mede = ltran_mede + amt_mede
- ltran_medr = ltran_medr + amt_medr
- ltran_ecc = ltran_ecc + amt_ecc
- ltran_hdmfe = ltran_hdmfe + amt_hdmf
- ltran_pagr = ltran_pagr + amt_pagr
- ENDIF
- SKIP
- ENDDO
- lssr = (ssyer(ltran_gross+lgross) - ltran_ssr)
- lssy = (ssyee(ltran_gross+lgross) - ltran_ssy)
- lecc = (ecc(ltran_gross+lgross) - ltran_ecc)
- lmede = (mede(ltran_gross+lgross) - ltran_mede)
- lmedr = (medr(ltran_gross+lgross) - ltran_medr)
- IF ltran_pagr > 100
- lpagr = 0.00
- ELSE
- lpagr = (ltran_gross+lgross)*.02
- lpagr = IIF(lpagr > 100,100-ltran_pagr,lpagr-ltran_pagr)
- ENDIF
- lhdmfe = lpagr
- SELECT t_pay
- REPLACE amt_ssy WITH lssy
- REPLACE amt_ssr WITH lssr
- REPLACE amt_ecc WITH lecc
- REPLACE amt_mede WITH lmede
- REPLACE amt_medr WITH lmedr
- REPLACE amt_hdmf WITH lhdmfe
- REPLACE amt_pagr WITH lpagr
- *annual tax computation
- SELECT cutoff
- SET ORDER TO dtpay
- SEEK ldtpay
- STORE 0 TO lytax,lygross,lysss,lymede,lyhdmfe,ljntax,ldtax
- Select govtlst
- Go Top
- Do While !Eof()
- If dtpay = ldtpay
- Skip
- Loop
- Endif
- lygross = lygross + amt_gross
- lytax = lytax + amt_tax
- lysss = lysss + amt_ssy
- lymede = lymede + amt_mede
- lyhdmfe = lyhdmfe + amt_hdmf
- If Left(dtpay,2)<'12'
- ljntax = ljntax + amt_tax
- Else
- ldtax = ldtax + amt_tax
- ENDIF
- SELECT govtlst
- Skip
- Enddo
- ltotgross = (lygross+lgross+hrm.amt_pgross)-(lysss+lssy+hrm.amt_psss+lymede+lmede+hrm.amt_pmed+lyhdmfe+lhdmfe+ hrm.amt_phdmf)
- If t_pay.lastpay = 'Y'
- Select tax_e
- Seek hrm.taxcode
- ltotex = Iif(Found(),tax_e.exem_amt,0.00)
- ltotgross = ltotgross-ltotex
- ldue = anntax(ltotgross)
- ltax = ldue - (lytax + hrm.amt_ptax)
- Else
- ltotgross = (ltotgross*24)
- ltotgross = ltotgross/cutoff.divisor
- SELECT tax_e
- SEEK hrm.taxcode
- ltotex = IIF(FOUND(),tax_e.exem_amt,0.00)
- ltotgross = ltotgross-ltotex
- lamt_tax = anntax(ltotgross)
- ldue = (lamt_tax * cutoff.divisor)/24
- ltax = ldue - (lytax + hrm.amt_ptax)
- IF hrm.taxexempt OR ltax<0
- ltax = 0
- ENDIF
- ENDIF
- Select hrm
- Replace amt_ygross With lygross+lgross
- If Left(ldtpay,2)<'12'
- Replace amt_taxJN With ljntax + ltax
- Else
- Replace amt_taxd With ldtax+ltax
- Endif
- Select t_pay
- Replace amt_tax With ltax
- SELECT t_pay
- REPLACE amt_tax WITH ltax
- ENDFUNC
Advertisement
Add Comment
Please, Sign In to add comment