Browse Source

计算工资 4.9

leiy 1 year ago
parent
commit
aeb4e89df8

+ 19 - 20
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -272,30 +272,29 @@ namespace OASystem.API.Controllers
 
             wageSheets = _result.Data;
 
-            //var add = await _wageSheetRep._sqlSugar.Insertable(wageSheets).ExecuteCommandAsync();
-            //if (add <= 0)
-            //{
-            //    return Ok(JsonView(false, "操作失败!"));
-            //}
+            var add = await _wageSheetRep._sqlSugar.Insertable(wageSheets).ExecuteCommandAsync();
+            if (add <= 0)
+            {
+                return Ok(JsonView(false, "操作失败!"));
+            }
 
             #endregion
 
             #region 处理返回数据
-
-            List <WageSheetItemInfoView> wageSheetItems = new List<WageSheetItemInfoView>();
-            wageSheetItems = _mapper.Map<List<WageSheetItemInfoView>>(wageSheets);
-            wageSheetItems = wageSheetItems.Select(it => 
-                    {
-                        UserNameView? uName1 = new UserNameView();
-                        UserNameView? uName2 = new UserNameView();
-                        uName1 = userNames.Where(it1 => it.UserId == it1.Id).FirstOrDefault();
-                        if (uName1 != null)  it.Name = uName1.CnName;
-
-                        uName2 = userNames.Where(it1 => it.LastUpdateUserId == it1.Id).FirstOrDefault();
-                        if (uName2 != null) it.LastUpdateUserName = uName2.CnName;
-
-                        return it; }
-                    ).ToList();
+            //List <WageSheetItemInfoView> wageSheetItems = new List<WageSheetItemInfoView>();
+            //wageSheetItems = _mapper.Map<List<WageSheetItemInfoView>>(wageSheets);
+            //wageSheetItems = wageSheetItems.Select(it => 
+            //        {
+            //            UserNameView? uName1 = new UserNameView();
+            //            UserNameView? uName2 = new UserNameView();
+            //            uName1 = userNames.Where(it1 => it.UserId == it1.Id).FirstOrDefault();
+            //            if (uName1 != null)  it.Name = uName1.CnName;
+
+            //            uName2 = userNames.Where(it1 => it.LastUpdateUserId == it1.Id).FirstOrDefault();
+            //            if (uName2 != null) it.LastUpdateUserName = uName2.CnName;
+
+            //            return it; }
+            //        ).ToList();
             #endregion
 
             sw.Stop();

+ 2 - 2
OASystem/OASystem.Api/OAMethodLib/PayrollComputation.cs

@@ -113,7 +113,7 @@ namespace OASystem.API.OAMethodLib
 
                 //月 - 应发工资
                 decimal amountPayable = pm_wsInfo.Basic + pm_wsInfo.Floats + pm_wsInfo.PostAllowance + pm_wsInfo.GarmentWashSubsidies + pm_wsInfo.CommunicationSubsidies +
-                    pm_wsInfo.TrafficSubsidies + pm_wsInfo.InformationSecurityFee + pm_wsInfo.OperationBonus + pm_wsInfo.SpecialAllowance + pm_wsInfo.OtherSubsidies + pm_wsInfo.GroupCost;
+                    pm_wsInfo.TrafficSubsidies + pm_wsInfo.InformationSecurityFee + pm_wsInfo.OperationBonus + pm_wsInfo.OtherSubsidies + pm_wsInfo.GroupCost;
 
                 // 日薪 = *计算方式:日平均工资 = 月工资/当月应出勤天数。
                 decimal dailyWage = ConvertToDecimal(amountPayable / work_days);
@@ -608,7 +608,7 @@ namespace OASystem.API.OAMethodLib
                 #region 应发合计 实发合计 扣款合计(假勤扣款,其他扣款,社保扣款,公积金代扣,个税扣款)
 
                 decimal mealTotal = meal_subsidy - meal_deduction;  //餐补
-                decimal salaryTotal = amountPayable + mealTotal;    //应发合计
+                decimal salaryTotal = amountPayable + mealTotal + pm_wsInfo.SpecialAllowance;    //应发合计
 
                 //扣款合计 不含个税
                 decimal eductionTotal = sickLeaveTotal + personalLeaveTotal + beLate_deduction + early_deduction + absenteeism_deduction + unprinted_deduction + other_deduction +

+ 3 - 1
OASystem/OASystem.Domain/Entities/PersonnelModule/Pm_WageSheet.cs

@@ -86,7 +86,8 @@ namespace OASystem.Domain.Entities.PersonnelModule
         public decimal OperationBonus { get; set; }
 
         /// <summary>
-        /// 特殊津贴
+        /// 过节费
+        /// 不纳入计算日工资
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(8,2)")]
         public decimal SpecialAllowance { get; set; } = 0.00M;
@@ -105,6 +106,7 @@ namespace OASystem.Domain.Entities.PersonnelModule
 
         /// <summary>
         /// 餐补
+        /// 不纳入日工资计算
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(8,2)")]
         public decimal Mealsupplement { get; set; }

+ 10 - 4
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/WageSheetRepository.cs

@@ -107,17 +107,16 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
 
             #region 计算工资
 
-            //应发合计
+            //应发合计 //计算日工资
             decimal salary = pm_WageSheet.Basic + pm_WageSheet.Floats + pm_WageSheet.PostAllowance + pm_WageSheet.GarmentWashSubsidies + pm_WageSheet.CommunicationSubsidies + pm_WageSheet.GroupCost +
-                             pm_WageSheet.TrafficSubsidies + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OperationBonus + pm_WageSheet.SpecialAllowance + pm_WageSheet.OtherSubsidies + 
-                             pm_WageSheet.Mealsupplement;
+                             pm_WageSheet.TrafficSubsidies + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OperationBonus + pm_WageSheet.OtherSubsidies;
             //扣款合计
             decimal totalDeduction = pm_WageSheet.SickLeave + pm_WageSheet.SomethingFalse + pm_WageSheet.LateTo + pm_WageSheet.LeaveEarly + pm_WageSheet.Absenteeism + pm_WageSheet.NotPunch +
                                      pm_WageSheet.ReservedFunds + pm_WageSheet.WithholdingInsurance + pm_WageSheet.OtherDeductions + pm_WageSheet.OtherDeductions;
 
             //实发合计 不含个税
             decimal actualTotal = salary - totalDeduction;
-            pm_WageSheet.Should = salary;
+            pm_WageSheet.Should = salary + pm_WageSheet.SpecialAllowance + pm_WageSheet.Mealsupplement;
             pm_WageSheet.TotalDeductions = totalDeduction;
             pm_WageSheet.TotalRealHair = actualTotal;
             pm_WageSheet.AfterTax = actualTotal - pm_WageSheet.WithholdingTax;
@@ -145,6 +144,13 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
             }
             else if(dto.Status == 2) //修改
             {
+                //修改时 更改其他 费用基数时 假勤 费用也将更改 
+                if (string.IsNullOrEmpty(dto.Ex_ItemsRemark))
+                {
+                    List<Ex_Items> ex_Items = new List<Ex_Items>();
+
+                }
+
                 int update = await _sqlSugar.Updateable(pm_WageSheet)
                                             .IgnoreColumns(it =>  new { it.CreateUserId, it.CreateTime,it.DeleteUserId,it.DeleteTime })
                                             .WhereColumns(it => new { it.Id })