📄 calc_tax.prg
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* 文件名: CALC_TAX.PRG
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
MENUFLAG = .T.
TAXB = 'tb' + YM
RESTORE FROM taxjs ADDITIVE
IF TAX_XM1 = '@' .OR. TAX_XM2 = '@'
= MESSAGEBOX('当前, 本系统不需要计算个人所得税。' + CHR(13) + CHR(13) + ;
'若需要计算,请执行“系统设置”菜单的“选择应发工资、缴个人所得税项目”命令, 然后执行本命令。',64,'提示')
MENUFLAG = .F.
RETURN
ENDIF
if not file('&taxb..dbf')
= MESSAGEBOX('个人所得税表不存在。请执行“编辑个人所得税表的收入”功能!',64,'提示')
MENUFLAG = .F.
RETURN
ENDIF
WAIT WINDOW AT 12 , 30 NOWAIT '正在计算工资和个人所得税...'
use &taxb in 1
USE IN 2 taxrate
SELECT 1
REPLACE TB4 WITH (TB1 + TB2 + TB3)
REPLACE TB5 WITH (TAX_JS)
REPLACE TB6 WITH (TB4 - TB5)
REPLACE TB6 WITH (0) FOR TB6 <= 0
REPLACE TB7 WITH 0 , TB8 WITH 0 , TB9 WITH (0)
GO TOP
SCAN
SELECT TAXRATE
loca for &taxb..tb6>tax2 and &taxb..tb6<=tax3
IF .NOT. FOUND()
GO BOTTOM
ENDIF
SELECT (TAXB)
IF TB6 > 0
REPLACE TB7 WITH TAXRATE.TAX4 , TB8 WITH TAXRATE.TAX5
ENDIF
ENDSCAN
SELECT (TAXB)
REPLACE TB9 WITH (TB6 * TB7 / 100 - TB8)
SELECT 3
use &gzb order tag bmzgh
GO TOP
repl all &tax_xm2 with 0
GO TOP
SCAN
BMH1 = BMH
ZGBH1 = ZGBH
SELECT (TAXB)
LOCATE FOR BMH = BMH1 AND ZGBH = ZGBH1
IF FOUND()
SELECT (GZB)
repl &tax_xm2 with &taxb..tb9
ENDIF
SELECT (GZB)
ENDSCAN
use &gsb in 4
SELECT (GSB)
GO TOP
IF .NOT. EOF() AND .NOT. BOF()
GO 1
DO WHILE .NOT. EOF()
GSNR = ALLTRIM(XMM) + ' with ' + ALLTRIM(GS)
repl all &gsnr in &gzb
SKIP
ENDDO
ENDIF
SELECT (GZB)
FLUSH
SELECT (TAXB)
FLUSH
SELECT TAXRATE
USE
CLOSE TABLE
WAIT WINDOW AT 12 , 30 NOWAIT '计算工资和个人所得税工作已经完成!'
MENUFLAG = .F.
RETURN
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -