Browse Source

计算工资
更改 病假按小时计算金额

leiy 1 year ago
parent
commit
09db046a6d
1 changed files with 9 additions and 8 deletions
  1. 9 8
      OASystem/OASystem.Api/OAMethodLib/PayrollComputation.cs

+ 9 - 8
OASystem/OASystem.Api/OAMethodLib/PayrollComputation.cs

@@ -622,7 +622,7 @@ namespace OASystem.API.OAMethodLib
                                     #region 累计类型扣款
                                     //1年假;2事假;3病假;4调休假;5婚假;6产假;7陪产假;8其他;9丧假
 
-                                    if (leaveType == 2) //
+                                    if (leaveType == 2) //调休
                                     {
                                         personalLeaveTotal += thisTypeDeduction;
                                     }
@@ -1133,7 +1133,7 @@ namespace OASystem.API.OAMethodLib
                     {
 
                         decimal leave_halfHour = Convert.ToDecimal(duration) / Convert.ToDecimal(0.5);
-                        typeDeduction = ConvertToDecimal( personalkLeave_dailywage_halfhour * leave_halfHour);
+                        typeDeduction = ConvertToDecimal(personalkLeave_dailywage_halfhour * leave_halfHour);
                         //duration = 11M;
                         if (duration >= 3 && duration < 7.5M) //单天请假三小时
                         {
@@ -1176,17 +1176,18 @@ namespace OASystem.API.OAMethodLib
                     // 病假日薪 *计算方式:日平均工资 = 成都市最低工资标准的80% /当月应出勤天数。 短期病假=当月15天内 
 
                     decimal chengDuMinimumWage_halrHour = _chengDuMinimumWage / work_days / halfHour;
-                    decimal sickLeave_dailywage_halfhour_deduction = personalkLeave_dailywage_day - chengDuMinimumWage_halrHour; //病假单位 0.5小时 扣款金额
+                    decimal sickLeave_dailywage_halfhour_deduction1 = (personalkLeave_dailywage_day / halfHour) - chengDuMinimumWage_halrHour; //病假单位 0.5小时 扣款金额
 
                     if (date_Range_type == "halfday")
                     {
                         mealDeduction = 10; //餐补扣款 
-                        typeDeduction = ConvertToDecimal( sickLeave_dailywage_halfhour_deduction * halfHour);
+                        typeDeduction = ConvertToDecimal( sickLeave_dailywage_halfhour_deduction1 * halfHour);
                     }
                     else if (date_Range_type == "hour")
                     {
                         decimal sickLeave_halfHour = duration / 0.5M;
-                        typeDeduction = ConvertToDecimal(personalkLeave_dailywage_day); ;
+                        typeDeduction = ConvertToDecimal(sickLeave_dailywage_halfhour_deduction1 * sickLeave_halfHour); 
+
                         if (duration >= 3 && duration < 7.5M) //单天请假三小时 && 请假时间在上午 则没有餐补
                         {
                             mealDeduction = 10; //餐补扣款
@@ -1197,7 +1198,7 @@ namespace OASystem.API.OAMethodLib
 
                             decimal leaveDays = Convert.ToDecimal(duration / 7.5M);
 
-                            typeDeduction = ConvertToDecimal(sickLeave_dailywage_halfhour_deduction * sickLeave_halfHour1);
+                            typeDeduction = ConvertToDecimal(sickLeave_dailywage_halfhour_deduction1 * sickLeave_halfHour1);
                             if (leaveDays % 1 == 0)
                             {
                                 mealDeduction = 10 * leaveDays; //餐补扣款
@@ -1206,12 +1207,12 @@ namespace OASystem.API.OAMethodLib
                             {
                                 mealDeduction = 10 * Convert.ToInt32(leaveDays);
 
-                                typeDeduction = ConvertToDecimal(sickLeave_dailywage_halfhour_deduction * Convert.ToInt32(leaveDays));
+                                typeDeduction = ConvertToDecimal(sickLeave_dailywage_halfhour_deduction1 * Convert.ToInt32(leaveDays));
 
                                 decimal sy_bingjiaunit = sickLeave_halfHour1 - Convert.ToDecimal(15.00M * Convert.ToInt32(leaveDays));
                                 if (sy_bingjiaunit > 0)
                                 {
-                                    typeDeduction += ConvertToDecimal(sickLeave_dailywage_halfhour_deduction * sy_bingjiaunit);
+                                    typeDeduction += ConvertToDecimal(sickLeave_dailywage_halfhour_deduction1 * sy_bingjiaunit);
                                 }
 
                                 //得到最后一天的请假时间 是否有餐补