*!* 我國自1981年開徵個人所得稅以後,個稅起征點在長達20多年的時間裏一直維持在800元,曾經在2005年和2007年分兩次調高了個稅起征點。
*!* 2005年10月27日,十屆全國人大常委會第十八次會議于下午高票表決通過關於修改個人所得稅法的決定,修改後的個人所得稅法自2006年1月1日起施行。此次個人所得稅法,在兩處進行了修改。其中第六條第一款第一項修改:"工資、薪金所得,以每個月收入額減除費用1600元後的餘額,為應納稅所得額。"同時,對"個人所得稅稅率表一"的附注作相應修改。
*!* 2007年12月29日,十屆全國人大常委會第三十一次會議表決通過了關於修改個人所得稅法的決定。個人所得稅起征點自2008年3月1日起由1600元提高到2000元。這次修改,適應了居民基本生活消費支出增長的新情況,減輕了中低收入者的納稅負擔。
*!* 但兩次上調起征點造成了"中低收入者稅負減的少,高收入稅負減的多"的尷尬局面,若提至3000元,按照既有稅率計算月薪為5000元的納稅人稅負只能減少100元,而10.3萬元減少400元,個稅調整應注意解決這個問題。因此,個稅改革方案,要有效地解決中低收入群體對稅收改革的要求,還兼顧政府對稅收的需要,並使高收入群體的納稅負擔有據可依。稅收操作要簡單易行,降低稅收成本;要改變一個有缺陷的稅率即九級稅率。個稅改革要把握公平,公平的原則是:在起征點上,尋找一個公平、講理的稅率,讓收入低的少納稅而不是不納稅,讓收入高的多納稅但也要有個以理服人的依據,不是想怎麼收稅就怎麼收稅,而是對誰都公平。為此,建議你讀一讀劉朝陽委員的《突破個稅改革思維誤區》和《提高個稅起征點絕路逢生,建立自然累進稅率使個稅改革柳暗花明》,是在國際上都先進的思維。
function GetTaxRate
lPara iYear,iMonth,nSalary
nTaxRate=0
cAlias=alias()
*1.返回當前計算年月以後的最小年月的總月數
select min(tax_year*12+tax_Month) as minMonths from taxRateTable where tax_year*12+tax_Month>iYear*12+iMonth into curs tmp123
minMonths=tmp123.minMonths
use in tmp123
*2.返回當前計算年月對應的總月數
if minMonths>0
select max(tax_year*12+tax_Month) as currentMonths from TaxRateTable where tax_year*12+tax_Month<minMonths into curs tmpTax
else
select max(tax_year*12+tax_Month) as currentMonths from TaxRateTable into curs tmpTax
endif
currentMonths=tmpTax.currentMonths
*3.獲得當前年月應收金額對應的稅款
if currentMonths=0
*返回錯誤信息:沒有適合當前年月的稅率表
*!* messagebox("沒有適合當前<"+tran(iYear)+"年"+tran(iMonth)+"月>的稅率表,會返回的稅額為0")
return nSalary &&提示並產生錯誤,要不讓其返回0
else
select * from TaxRateTable where tax_year*12+tax_Month=currentMonths and (nSalary-Tax_Salary>Tax_Lower and nSalary-Tax_Salary<=Tax_Upper) into curs tmpTax
nTaxRate=(nSalary-tmpTax.Tax_Salary)*(tmpTax.Tax_Rate/100)-tmpTax.Tax_Deduct
endif
if not empty(cAlias)
select (cAlias)
endif
use in tmpTax
return nTaxRate
Function ReturnRowTotal
parameter cTable
local cAlias,nSum,cFilter
cAlias=alias()
cFilter=set("Filter")
if empty(cFilter)
cFilter=".T."
endif
nSum=0
if used(cTable)
sele field(1) from (cTable) into curs tmp9768 where &cFilter
nSum=reccount("tmp9768")
use in tmp9768
if not empty(cAlias)
sele (cAlias)
endif
endif
return nSum