public ActionResult SalaryPaymentView()
        {
            ISalaryGrantBLL bLL = new SalaryGrantBLL();

            IOrgBLL orgBLL = new OrgBLL();

            List <SalaryPayment> list = bLL.GetAllSalaryPaymentFromDB();

            List <Models.SalaryPayment> salaryPaymentList = new List <Models.SalaryPayment>();

            if (list != null)
            {
                foreach (var sp in list)
                {
                    Models.SalaryPayment salaryPayment = new Models.SalaryPayment
                    {
                        Id          = sp.Id,
                        FileNumber  = sp.FileNumber,
                        TotalPerson = sp.TotalPerson,
                        TotalAmout  = sp.TotalAmout,
                        RegistTime  = sp.RegistTime,
                        FileState   = sp.FileState
                    };
                    ThirdOrg  thirdOrg  = orgBLL.GetThirdOrgById(sp.TOrgId);
                    SecondOrg secondOrg = orgBLL.GetSecondOrgById(thirdOrg.ParentOrgId);
                    FirstOrg  firstOrg  = orgBLL.GetFirstOrgById(secondOrg.ParentOrgId);

                    Models.FirstOrg firstOrgView = new Models.FirstOrg {
                        Id = firstOrg.Id, OrgLevel = firstOrg.OrgLevel, OrgName = firstOrg.OrgName
                    };
                    Models.SecondeOrg secondeOrgView = new Models.SecondeOrg {
                        Id = secondOrg.Id, OrgName = secondOrg.OrgName, OrgLevel = secondOrg.OrgLevel, ParentOrg = firstOrgView
                    };
                    Models.ThirdOrg thirdOrgView = new Models.ThirdOrg {
                        Id = thirdOrg.Id, ParentOrg = secondeOrgView, OrgLevel = thirdOrg.OrgLevel, OrgName = thirdOrg.OrgName
                    };

                    salaryPayment.ThirdOrg = thirdOrgView;

                    salaryPaymentList.Add(salaryPayment);
                }
            }

            ViewData["salaryPaymentList"] = salaryPaymentList;

            return(View());
        }
        public ActionResult PaymentSearch(FormCollection formCollection)
        {
            ISalaryGrantBLL salaryGrantBLL = new SalaryGrantBLL();

            IOrgBLL orgBLL = new OrgBLL();

            List <SalaryPayment> list = salaryGrantBLL.GetAllSalaryPaymentFromDB();

            if (formCollection["State"] != "10")
            {
                var l = from p in list
                        where p.FileState == (EnumState.SalaryPaymentStateEnum)Convert.ToInt32(formCollection["State"])
                        select p;

                list = l.ToList();
            }

            if (formCollection["BeginDate"] != "")
            {
                var l = from p in list
                        where p.CheckTime.Date >= Convert.ToDateTime(formCollection["BeginDate"])
                        select p;

                list = l.ToList();

                if (formCollection["EndDate"] != "")
                {
                    var l2 = from p in list
                             where p.CheckTime.Date <= Convert.ToDateTime(formCollection["EndDate"])
                             select p;

                    list = l2.ToList();
                }
            }
            else
            {
                if (formCollection["EndDate"] != "")
                {
                    var l = from p in list
                            where p.CheckTime.Date <= Convert.ToDateTime(formCollection["EndDate"])
                            select p;

                    list = l.ToList();
                }
            }

            List <Models.SalaryPayment> salaryPaymentList = new List <Models.SalaryPayment>();

            if (list != null)
            {
                foreach (var sp in list)
                {
                    Models.SalaryPayment salaryPayment = new Models.SalaryPayment
                    {
                        Id          = sp.Id,
                        FileNumber  = sp.FileNumber,
                        TotalPerson = sp.TotalPerson,
                        TotalAmout  = sp.TotalAmout,
                        RegistTime  = sp.RegistTime,
                        FileState   = sp.FileState
                    };
                    ThirdOrg  thirdOrg  = orgBLL.GetThirdOrgById(sp.TOrgId);
                    SecondOrg secondOrg = orgBLL.GetSecondOrgById(thirdOrg.ParentOrgId);
                    FirstOrg  firstOrg  = orgBLL.GetFirstOrgById(secondOrg.ParentOrgId);

                    Models.FirstOrg firstOrgView = new Models.FirstOrg {
                        Id = firstOrg.Id, OrgLevel = firstOrg.OrgLevel, OrgName = firstOrg.OrgName
                    };
                    Models.SecondeOrg secondeOrgView = new Models.SecondeOrg {
                        Id = secondOrg.Id, OrgName = secondOrg.OrgName, OrgLevel = secondOrg.OrgLevel, ParentOrg = firstOrgView
                    };
                    Models.ThirdOrg thirdOrgView = new Models.ThirdOrg {
                        Id = thirdOrg.Id, ParentOrg = secondeOrgView, OrgLevel = thirdOrg.OrgLevel, OrgName = thirdOrg.OrgName
                    };

                    salaryPayment.ThirdOrg = thirdOrgView;

                    salaryPaymentList.Add(salaryPayment);
                }
            }

            ViewData["salaryPaymentList"] = salaryPaymentList;

            return(View("SalaryPaymentView"));
        }
        public ActionResult SalaryPaymentDetail(string id)
        {
            ISalaryGrantBLL salaryGrantBLL = new SalaryGrantBLL();

            IStaffBLL staffBLL = new StaffBLL();

            ISalaryBLL salaryBLL = new SalaryBLL();

            ISalaryItemBLL salaryItemBLL = new SalaryItemBLL();

            IOrgBLL orgBLL = new OrgBLL();

            List <StaffPayment> staffPaymentList = salaryGrantBLL.GetAllStaffPaymentByPaymentId(Convert.ToInt32(id));

            List <Models.StaffPayment> staffPaymentListView = new List <Models.StaffPayment>();

            foreach (var sp in staffPaymentList)
            {
                Models.StaffPayment staffPayment = new Models.StaffPayment
                {
                    Id         = sp.Id,
                    OddAmout   = sp.OddAmout,
                    MinusAmout = sp.MinusAmout
                };

                //获取Model.StaffSalary,为StaffPayment装载StaffSalary
                StaffSalary        staffSalary     = salaryGrantBLL.GetStaffSalaryById(sp.StaffSalaryId);
                Models.StaffSalary staffSalaryView = new Models.StaffSalary
                {
                    Id = staffSalary.Id,
                    StaffFileNumber = staffSalary.StaffFileNumber
                };

                Staff staff = staffBLL.GetStaffById(staffSalary.StaffId);
                staffSalaryView.Staff = new Models.Staff {
                    Id = staff.Id, StaffName = staff.StaffName
                };

                ThirdOrg  thirdOrg  = orgBLL.GetThirdOrgById(staff.ThirdOrgId);
                SecondOrg secondOrg = orgBLL.GetSecondOrgById(thirdOrg.ParentOrgId);
                FirstOrg  firstOrg  = orgBLL.GetFirstOrgById(secondOrg.ParentOrgId);

                Models.FirstOrg firstOrgView = new Models.FirstOrg {
                    Id = firstOrg.Id, OrgLevel = firstOrg.OrgLevel, OrgName = firstOrg.OrgName
                };
                Models.SecondeOrg secondeOrgView = new Models.SecondeOrg {
                    Id = secondOrg.Id, OrgName = secondOrg.OrgName, OrgLevel = secondOrg.OrgLevel, ParentOrg = firstOrgView
                };
                staffSalaryView.ThirdOrg = new Models.ThirdOrg {
                    Id = thirdOrg.Id, ParentOrg = secondeOrgView, OrgLevel = thirdOrg.OrgLevel, OrgName = thirdOrg.OrgName
                };

                SalaryStandard        salaryStandard     = salaryBLL.GetSalaryStandardById(staffSalary.StandardId);
                Models.SalaryStandard salaryStandardView = new Models.SalaryStandard
                {
                    Id           = salaryStandard.Id,
                    StandardName = salaryStandard.StandardName,
                };
                List <StandardMapItem> standardMapItemList = salaryBLL.GetAllStandardMapItemByStandardId(salaryStandard.Id);
                foreach (var item in standardMapItemList)
                {
                    SalaryItem salaryItem = salaryItemBLL.GetSalaryItemById(item.ItemId);

                    Models.SalaryItem salaryItemView = new Models.SalaryItem
                    {
                        Id   = salaryItem.Id,
                        Name = salaryItem.Name
                    };

                    salaryStandardView.ItemAmout.Add(salaryItemView, item.Amout);;
                }

                staffSalaryView.SalaryStandard = salaryStandardView;

                staffPayment.StaffSalary = staffSalaryView;



                SalaryPayment salaryPayment = salaryGrantBLL.GetSalaryPaymentById(sp.PaymentId);
                staffPayment.SalaryPayment = new Models.SalaryPayment
                {
                    Id          = salaryPayment.Id,
                    TotalPerson = salaryPayment.TotalPerson,
                    TotalAmout  = salaryPayment.TotalAmout,
                    FileState   = salaryPayment.FileState,
                    FileNumber  = salaryPayment.FileNumber,
                    Registrant  = salaryPayment.Registrant,
                    RegistTime  = salaryPayment.RegistTime,
                    TotalReal   = salaryPayment.TotalReal,
                    CheckBy     = salaryPayment.CheckBy,
                    CheckTime   = salaryPayment.CheckTime
                };


                staffPaymentListView.Add(staffPayment);
            }

            ViewData["staffPaymentListView"] = staffPaymentListView;

            return(View());
        }
        public ActionResult SalaryGrantSubmitReg(FormCollection formCollection)
        {
            ISalaryGrantBLL salaryGrantBLL = new SalaryGrantBLL();

            //获取发放的人数,即StaffPayment的数量
            int count = Convert.ToInt32(formCollection["Count"]);

            //获取发放的薪酬单的id
            int salaryPaymentId = Convert.ToInt32(formCollection["SalaryPaymentId"]);

            SalaryPayment salaryPayment = salaryGrantBLL.GetSalaryPaymentById(salaryPaymentId);

            decimal total = salaryPayment.TotalAmout;

            decimal totalReal = total;

            string action = "";

            if (formCollection["SalaryPaymentCheck"] == "Checked")
            {
                salaryPayment.FileState = EnumState.SalaryPaymentStateEnum.Checked;
                salaryPayment.CheckBy   = formCollection["CheckBy"];
                salaryPayment.CheckTime = DateTime.Now;
                action = "SalaryPaymentWaitCheck";
            }
            else
            {
                salaryPayment.FileState  = EnumState.SalaryPaymentStateEnum.WaitCheck;
                salaryPayment.Registrant = formCollection["Registrant"];
                action = "SalaryPaymentWaitReg";
            }

            for (int i = 0; i < count; i++)
            {
                //获取StaffPayment 的id
                int staffPaymentId = Convert.ToInt32(formCollection["StaffPaymentId" + i]);

                //获取对应id的Odd和Minus
                decimal odd   = Convert.ToDecimal(formCollection["OddAmout" + staffPaymentId]);
                decimal minus = Convert.ToDecimal(formCollection["MinusAmout" + staffPaymentId]);

                totalReal += odd;
                totalReal -= minus;

                if (!salaryGrantBLL.UpdateStaffPayOddAndMinus(staffPaymentId, odd, minus))
                {
                    TempData["error"] = "操作失败";
                    return(RedirectToAction(action));
                }
            }

            salaryPayment.TotalReal  = totalReal;
            salaryPayment.RegistTime = DateTime.Now;



            if (!salaryGrantBLL.SaveSalaryPayment(salaryPayment))
            {
                TempData["error"] = "操作失败";
                return(RedirectToAction(action));
            }

            TempData["info"] = "操作成功";
            return(RedirectToAction(action));
        }
示例#5
0
        /// <summary>
        /// 保存员工档案
        /// </summary>
        /// <param name="formCollection">表单容器</param>
        /// <returns>设置提示信息并重定向</returns>
        public ActionResult SaveStaff(FormCollection formCollection)
        {
            IStaffBLL bLL = new StaffBLL();

            Staff staff = new Staff();

            Type type = typeof(Staff);

            foreach (var p in type.GetProperties())
            {
                if (p.Name != "FileState" && p.Name != "IsDel" && p.Name != "ImagePath" && p.Name != "Id" && p.Name != "StaffFileNumber")
                {
                    p.SetValue(staff, Convert.ChangeType(formCollection[p.Name], p.PropertyType));
                }
            }

            if (formCollection["Id"] != null)
            {
                staff.Id = Convert.ToInt32(formCollection["Id"]);
            }

            if (formCollection["StaffFile"] == "Checked")
            {
                staff.FileState = EnumState.StaffFileStateEnum.Checked;
            }
            else
            {
                staff.FileState = EnumState.StaffFileStateEnum.WaitCheck;
            }

            staff.IsDel = false;

            if (formCollection["StaffFileNumber"] != null)
            {
                staff.StaffFileNumber = formCollection["StaffFileNumber"];
            }
            else
            {
                staff.StaffFileNumber = DateTime.Now.Year.ToString() + formCollection["FirstOrg"] + formCollection["SecondOrg"] + formCollection["ThirdOrgId"] + new Random().Next(10, 99).ToString();
            }


            if (formCollection["ImagePath"] != null)
            {
                staff.ImagePath = formCollection["ImagePath"];
            }

            if (Request.Files["StaffImage"].ContentLength > 10)
            {
                HttpPostedFileBase file = Request.Files["StaffImage"];

                string path = @"/UploadFiles/" + Guid.NewGuid().ToString() + file.FileName;

                file.SaveAs(Server.MapPath(path));

                staff.ImagePath = path;
            }

            if (bLL.SaveStaff(staff))
            {
                if (formCollection["StaffFile"] == "Checked")
                {
                    //复核之后,员工档案应该生效,因此需要往StaffSalary中插入记录,薪酬统计时是使用StaffSalary表的

                    ISalaryGrantBLL salaryGrantBLL = new SalaryGrantBLL();

                    if (salaryGrantBLL.SaveStaffSalary(new StaffSalary {
                        StaffFileNumber = staff.StaffFileNumber, StaffId = staff.Id, StandardId = staff.StandardId, TOrgId = staff.ThirdOrgId
                    }))
                    {
                        TempData["info"] = "复核通过";
                        return(Redirect("/StaffManage/StaffCheck"));
                    }
                    else
                    {
                        TempData["error"] = "复核失败";
                        return(Redirect("/StaffManage/StaffCheck"));
                    }
                }
                else
                {
                    TempData["info"] = "保存成功";
                    return(Redirect("/StaffManage/StaffView"));
                }
            }
            else
            {
                TempData["error"] = "保存失败";
                return(Redirect(Request.UrlReferrer.AbsoluteUri));
            }
        }