username@email.com
2021-09-10 83c4efe25b7b5ee027a34987f8ee508a379c1d47
zhengcaioa/Services/HrSalaryService.cs
@@ -126,62 +126,89 @@
                    }                    
                    var user = _context.PltUsers.Where(c => c.Id == updatepltRole.Userid).SingleOrDefault();
                    var buchangqian = (updatepltRole.Jiangjin??0) + (updatepltRole.Bufagongzi ?? 0) + (updatepltRole.Jiucuo ?? 0) + (updatepltRole.Peichang ?? 0);
                    var buchanghou = (dto.Jiangjin ?? 0) + (dto.Bufagongzi ?? 0) + (dto.Jiucuo ?? 0) + (dto.Peichang ?? 0);
                    updatepltRole.Daozhanggongzi += (buchanghou - buchangqian);
                    if (user.advancewages.HasValue && user.advancewages.Value > 0)
                    {
                        updatepltRole.Yufagongziheji += (buchanghou - buchangqian);
                    }
                    updatepltRole.Jiangjin = dto.Jiangjin;
                    updatepltRole.Bufagongzi = dto.Bufagongzi;
                    var sum_f = ((updatepltRole.Jibengongzi ?? 0) + (updatepltRole.Baomifei ?? 0) + (updatepltRole.Gongzuobutie ?? 0) +
                        (updatepltRole.Jiabangongzi ?? 0) + (updatepltRole.Shebao ?? 0) + (updatepltRole.Dianhuabutie ?? 0) +
                        (updatepltRole.Quanqinjiang ?? 0) + (updatepltRole.Jiaotngbutie ?? 0) + (updatepltRole.Jixiaoticheng ?? 0) +
                        dto.Jiangjin + dto.Bufagongzi) + dto.Jiucuo; ;
                    updatepltRole.Peichang = dto.Peichang;
                    updatepltRole.Jiucuo = dto.Jiucuo;
                    //updatepltRole.Daozhanggongzi = (updatepltRole.Daozhanggongzi ?? 0) + (updatepltRole.Jiangjin ?? 0) + (updatepltRole.Bufagongzi ?? 0) + (updatepltRole.Peichang ?? 0) + (updatepltRole.Jiucuo ?? 0);
                    //    //updatepltRole.Yufagongziheji = (updatepltRole.Yufagongziheji ?? 0) + (updatepltRole.Jiangjin ?? 0) + (updatepltRole.Bufagongzi ?? 0) + (updatepltRole.Peichang ?? 0) + (updatepltRole.Jiucuo ?? 0);
                    var sum_k = (updatepltRole.Shebaokou ?? 0) + (updatepltRole.Geshui ?? 0) + (updatepltRole.Dianhuafei ?? 0) +
                        (updatepltRole.Queqin ?? 0) + (updatepltRole.Fakuan ?? 0) + dto.Peichang;
                    //var sum_f = (updatepltRole.Jibengongzi ?? 0) + (updatepltRole.Baomifei ?? 0) + (updatepltRole.Gongzuobutie ?? 0) +
                    //    (updatepltRole.Jiabangongzi ?? 0) + (updatepltRole.Shebao ?? 0) +
                    //    (updatepltRole.Quanqinjiang ?? 0) + (updatepltRole.Jiaotngbutie ?? 0) + (updatepltRole.Jixiaoticheng ?? 0);
                    //decimal dianhuafei = 0;
                    //if ((updatepltRole.Dianhuabutie ?? 0) - (updatepltRole.Dianhuafei ?? 0) <= 0)
                    //{
                    //    dianhuafei = (updatepltRole.Dianhuafei ?? 0)-(updatepltRole.Dianhuabutie ?? 0);
                    //}
                    //var sum_k = (updatepltRole.Shebaokou ?? 0) + (updatepltRole.Geshui ?? 0) + dianhuafei +
                    //    (updatepltRole.Queqin ?? 0) + (updatepltRole.Fakuan ?? 0);
                    //updatepltRole.Daozhanggongzi = sum_f - sum_k;
                    //计算预发工资
                    if (user.advancewages.HasValue && user.advancewages.Value>0)
                    {
                        //上一次的工资
                        var bf= _context.HrSalaries.Where(c => c.Userid == user.Id && c.Islock== "Q" && c.RecStatus=="A").
                            OrderByDescending(c=>c.Year).ThenByDescending(c=>c.Month).FirstOrDefault();
                        var pc = user.advancewages.Value;
                        if (sum_f - sum_k > pc)
                        {
                            updatepltRole.Daozhanggongzi = sum_f - sum_k;
                            updatepltRole.Yufagongzi = 0;
                            if(bf!=null)
                            {
                                updatepltRole.Yufagongziheji = bf.Yufagongziheji??0 - (updatepltRole.Daozhanggongzi-pc);
                            }
                            else
                            {
                                updatepltRole.Yufagongziheji = (pc - updatepltRole.Daozhanggongzi);
                            }
                        }
                        else
                        {
                            //预发
                            updatepltRole.Daozhanggongzi = pc;
                            updatepltRole.Yufagongzi = pc - (sum_f - sum_k);
                            if (bf != null)
                            {
                                updatepltRole.Yufagongziheji =bf.Yufagongziheji??0+ updatepltRole.Yufagongzi;
                            }
                            else
                            {
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongzi;
                            }
                        }
                    }
                    else
                    {
                        updatepltRole.Daozhanggongzi = sum_f - sum_k;
                    }
                    ////计算预发工资
                    //{
                    //    //上一次的工资
                    //    var bf= _context.HrSalaries.Where(c => c.Userid == user.Id && c.Islock== "Q" && c.RecStatus=="A").
                    //        OrderByDescending(c=>c.Year).ThenByDescending(c=>c.Month).FirstOrDefault();
                    //    var pc = user.advancewages.Value;
                    //    if (sum_f - sum_k > pc)
                    //    {
                    //        updatepltRole.Daozhanggongzi = sum_f - sum_k;
                    //        updatepltRole.Yufagongzi = 0;
                    //        if(bf!=null)
                    //        {
                    //            updatepltRole.Yufagongziheji = bf.Yufagongziheji??0 - (updatepltRole.Daozhanggongzi-pc);
                    //        }
                    //        else
                    //        {
                    //            updatepltRole.Yufagongziheji = (pc - updatepltRole.Daozhanggongzi);
                    //        }
                    //    }
                    //    else
                    //    {
                    //        //预发
                    //        updatepltRole.Daozhanggongzi = pc;
                    //        updatepltRole.Yufagongzi = pc - (sum_f - sum_k);
                    //        if (bf != null)
                    //        {
                    //            updatepltRole.Yufagongziheji =bf.Yufagongziheji??0+ updatepltRole.Yufagongzi;
                    //        }
                    //        else
                    //        {
                    //            updatepltRole.Yufagongziheji = updatepltRole.Yufagongzi;
                    //        }
                    //    }
                    //}
                    //else
                    //{
                    //    updatepltRole.Daozhanggongzi = sum_f - sum_k;
                    //}
                    updatepltRole.Islock = "H";
                    updatepltRole.Modifier = dto.Modifier;