希望能給大家帶來幫助,請只做參考用,主要是請看11個計算的步驟註釋說明。
2 /// 計算工資算法
3 /// </summary>
4 /// <param name="departmentID">部門主鍵</param>
5 /// <param name="targetYearMonth">目標年月</param>
6 /// <returns>影響的行數</returns>
7 public int Calculate(String departmentID, String targetYearMonth)
8 {
9 int returnValue = 0;
10 BaseParameterDao parameterDao = new BaseParameterDao(this.DbHelper, this.UserInfo);
11 String qiZhengE = parameterDao.GetParameter("System", "SalaryPersonalIncomeTax", "QiZhengE");
12 String year = targetYearMonth.Substring(0, 4);
13 String month = targetYearMonth.Substring(5);
14 DataTable dataTable = this.SearchByDepartment(departmentID, year, month, false);
15 // 01 檢查個人所得稅起徵額是否爲空的?
16 this.CheckPersonalIncomeTax(dataTable, qiZhengE);
17 // 02 稅前應加項合計
18 this.GetSum(dataTable, "稅前應加項目", BaseSalaryTable.FieldShuiQianYingJiaXiang);
19 // 03 稅前應扣項合計
20 this.GetSum(dataTable, "稅前應扣項目", BaseSalaryTable.FieldShuiQianYingKouXiang);
21 // 04 基金補貼保險類合計,例如三金
22 this.GetSum(dataTable, "基金保險補貼類", BaseSalaryTable.FieldJiJinBaoXianBuTieLei);
23 // 05 納稅項合計[記稅工資,是否納稅項目來計算]
24 this.GetSalaryTax(dataTable);
25 // 06 計算個人所得稅相關數據
26 this.GetPersonalIncomeTax(dataTable);
27 // 07 計算應發工資
28 this.GetSalary(dataTable);
29 // 08 計算稅後應扣項目
30 this.GetSum(dataTable, "稅後代加項目", BaseSalaryTable.FieldShuiHouDaiJiaXiang);
31 // 09 計算稅後應加項目
32 this.GetSum(dataTable, "稅後代扣項目", BaseSalaryTable.FieldShuiHouDaiKouXiang);
33 // 10 計算實發工資
34 this.GetRealSalary(dataTable);
35 // 11 將計算結果保存到數據庫
36 BaseSalaryEntity salaryEntity = null;
37 BaseSalaryDao salaryDao = new BaseSalaryDao(this.DbHelper, this.UserInfo);
38 foreach (DataRow dataRow in dataTable.Rows)
39 {
40 if (dataRow.RowState == DataRowState.Modified)
41 {
42 salaryEntity = new BaseSalaryEntity(dataRow);
43 returnValue += salaryDao.UpdateEntity(salaryEntity);
44 }
45 }
46 return returnValue;
47 }
48
posted on 2009-05-03 11:34 不僅僅是通用權限設計 閱讀(1679) 評論(15) 編輯 收藏
評論
你今天把首頁承包了得了。
反正近期發的人也少,就承包給你吧。
我覺得你應該把各步的公式都寫出來,那個纔是有用的……
#2樓[樓主] 回覆 引用 查看
休息在家裏也沒事情幹,所以多寫了幾個帖子,大家見諒,平時忙項目也沒心情寫blog,大家也消消氣。
我看到,如何計算應繳個人所得稅? 使用SQL,理解SQL
http://www.cnblogs.com/Chinese-xu/archive/2009/05/03/1448036.html
大家都對這個很有興趣嘛,反映也積極,所以寫了以上的帖子,
其實,現在不流行,用一個超級複雜的sql語句把非常複雜的預算都搞定了,
因爲這個超級複雜的sql語句實在是不好維護,甚至過了一段時間,寫這個
SQL語句的人自己也不懂當時是怎麼寫的,後期也不好維護這個超級變態的
東西。
現在流行的是,面向對象變成,可以把這複雜的步驟分解成N個方法,
然後都用一個個簡單的方法,就把一個複雜的過程搞定了,
例如,你的個人所得稅徵收表,沒有存在數據庫裏,存在xml文件裏了,
你還能寫sql語句嗎?數據庫里根本就沒這個表,以上是面向對象編程的
一個思想之一,分解成若干個易於理解的步驟,別人都好調試好理解,
擺脫了對數據庫的過於依賴。都是很清晰的一個個處理步驟,菜鳥也容
易修改維護系統了。
我們不能指望新手能寫出超級複雜的sql語句,但是能指望他有條有理的分步驟
把一個複雜的任務分解成N個簡單的任務,然後順利完成每個簡單的小步驟。
這也是這幾年我的深刻體會,對軟件項目認識的明顯提高之處。
#3樓 回覆 引用
自從微軟的.net2。0出來泛幸list,就很少用datatablse dataset,習慣datatable的應該還是用1.1的時候用習慣了吧,也說明這些年你沒有與時俱進呀.哦,在批量更新的時候還得用一下table,不過不是你的循環方式,個人認爲,循環批量更新是很糟糕的寫法
面向對象的3個特點 封裝 繼承 多態
跟數據是存放到數據庫或者xml來說沒什麼影響
ps:我今年大3
#4樓 回覆 引用
對你來說,我就是新人,可是看了lz的博客,我變自信了,多開發5年又如何#5樓 回覆 引用 查看
不過也不能啥東西都不放到數據庫啊?面向對象不是用來擺脫對數據庫的依賴的
吧一個大問題分解成若干個易於理解的步驟纔是面向對象希望大家都去做的。
並且,這些步驟要正確封裝到合適的對象裏
#6樓 回覆 引用 查看
@matz自從泛型啥的出來以後
程序裏的if和for是越用越少了
#7樓[樓主] 回覆 引用 查看
承認,應該用泛型,狡辯一下,此貼不是爲了表明技術,是爲了
表達計算 計算工資的步驟。
但是我還是虛心學習,多謝 徐少俠的指點, 我聽進去了。
#8樓[樓主] 回覆 引用 查看
我也的確是從.NET1.1開始的,你說得很有道理。#9樓 回覆 引用 查看
這東西會計會給你算好的,不會少扣你的。話說我們的稅都被拿去XXXX了
#10樓[樓主] 回覆 引用 查看
猶豫我們的老會計總是算不好,被我們公司炒魷魚了,現在我們也在爲客戶做薪資管理模塊,也需要我們程序自動計算,
不需要 會計自己算了,省事一些。
#11樓 回覆 引用 查看
有個人類會計的話,很多帳會好算點如果每個公司都是電腦會計,稅務局是高興了。老總不一定都高興的。
曾經聽過這麼一個故事:
外國財務軟件公司到中國來投標項目,會後中方企業老總說老外的東西不行。
老外的銷售那個急啊?一定要問哪裏不好!
“你們的財務系統能做幾套帳啊?我們這裏至少要做5套的。”
“稅務局、工商局、當地政府、媒體,最後自己還要有一套,最好是能有.....”
“唉,你怎麼!”
老外的銷售已經暈了
呵呵
#12樓 回覆 引用 查看
凡是需要寫註釋的地方,都用一個方法調用來代替註釋,方法體是原來需要註釋的代碼,方法名是原來的註釋。這樣你就不用寫註釋了,代碼也就乾淨了。
#13樓 回覆 引用
--引用--------------------------------------------------matz: 對你來說,我就是新人,可是看了lz的博客,我變自信了,多開發5年又如何
--------------------------------------------------------
謙虛是美德,你沒開發過5年,很多東西就硬比不上。你說別人要一個經驗5年上的,還是要你?做項目,就是靠做。光扛着一頭跑,沒用。
#14樓 回覆 引用
--引用--------------------------------------------------matz: 對你來說,我就是新人,可是看了lz的博客,我變自信了,多開發5年又如何
--------------------------------------------------------
用不着發表這些東西,等你工作5年後是什麼樣子!
#15樓[樓主] 回覆 引用 查看
估計他工作5年後:能買個頂級寶馬車加別野,或者開發出中國第一套操作系統,或者數據庫系統,
或者是全中國最牛B的管理軟件,或者世界流行的開發語言。
我可憐的老爸當了40年教師,現在還是退休教師,若像我們搞IT的,
第一年是助理工程師,第二年是程序員,第三年是高級程序員
第四年系統架構師,第五年項目精力,第六年公司的老闆,
我老闆按這個發展,現在應該是接近國家主席纔對。
我也是主席的兒子了,也牛了,不用這麼辛苦寫程序混飯吃了。