/// <summary>
        /// 新增员工合同信息
        /// </summary>
        /// <param name="personnelContract">员工合同数据集</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True失败返回false</returns>
        public bool AddPersonnelContract(HR_PersonnelLaborContract personnelContract, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext datatContxt = CommentParameter.DepotDataContext;

                var result = from a in datatContxt.HR_PersonnelLaborContract
                             where a.WorkID == personnelContract.WorkID &&
                             a.LaborContractTempletID == personnelContract.LaborContractTempletID
                             select a;

                if (result.Count() > 0)
                {
                    error = "【" + personnelContract.WorkID + "】员工,已签订同种版本的合同!";
                    return(false);
                }

                datatContxt.HR_PersonnelLaborContract.InsertOnSubmit(personnelContract);
                datatContxt.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
        /// <summary>
        /// 初始员工合同的数据集
        /// </summary>
        /// <returns>员工合同</returns>
        HR_PersonnelLaborContract GetPersonnelContract()
        {
            string[] s = txtTemplet.Text.Split(' ');
            HR_PersonnelLaborContract personnelContract = new HR_PersonnelLaborContract();

            personnelContract.WorkID = txtProposer.Tag.ToString();
            personnelContract.LaborContractTempletID = Convert.ToInt32(txtTemplet.Tag);
            personnelContract.LaborContractStatusID  = m_laborServer.GetContractStatusByName(cmbStatus.Text);
            personnelContract.Recorder   = BasicInfo.LoginID;
            personnelContract.RecordTime = ServerTime.Time;
            personnelContract.Remark     = txtRemark.Text;
            personnelContract.BeginTime  = dtpBeginTime.Value;
            personnelContract.EndTime    = dtpEndTime.Value;

            return(personnelContract);
        }
        public bool UpdatePersonnelContract(string workID, DateTime date)
        {
            try
            {
                DepotManagementDataContext datatContxt = CommentParameter.DepotDataContext;

                var result = from a in datatContxt.HR_PersonnelLaborContract
                             where a.WorkID == workID && (a.LaborContractTempletID == 1 || a.LaborContractTempletID == 3)
                             select a;

                if (result.Count() == 1)
                {
                    HR_PersonnelLaborContract laborContract = result.Single();

                    if (date < laborContract.EndTime)
                    {
                        laborContract.LaborContractStatusID = 8;
                    }
                    else
                    {
                        laborContract.LaborContractStatusID = 7;
                    }
                }

                var resultList = from a in datatContxt.HR_PersonnelLaborContract
                                 where a.WorkID == workID && (a.LaborContractTempletID == 2)
                                 select a;

                if (resultList.Count() == 1)
                {
                    HR_PersonnelLaborContract laborContract = resultList.Single();

                    laborContract.LaborContractStatusID = 6;
                }

                datatContxt.SubmitChanges();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        /// <summary>
        /// 修改员工合同信息
        /// </summary>
        /// <param name="personnelContractOld">员工原始合同数据集</param>
        /// <param name="personnelContractNew">员工新合同数据集</param>
        /// <param name="flag">状态标志</param>
        /// <param name="billNo">合同编号</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True失败返回false</returns>
        public bool UpdatePersonnelContract(HR_PersonnelLaborContractHistory personnelContractOld,
                                            HR_PersonnelLaborContract personnelContractNew, bool flag, int billNo, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext datatContxt = CommentParameter.DepotDataContext;

                var result = from a in datatContxt.HR_PersonnelLaborContract
                             where a.WorkID == personnelContractNew.WorkID &&
                             a.ID == billNo
                             select a;

                if (result.Count() == 0)
                {
                    error = "【" + personnelContractNew.WorkID + "】员工,还没有此合同,请点击【添加】!";
                    return(false);
                }

                HR_PersonnelLaborContract personnelLabor = result.Single();
                personnelLabor.BeginTime              = personnelContractNew.BeginTime;
                personnelLabor.EndTime                = personnelContractNew.EndTime;
                personnelLabor.LaborContractStatusID  = personnelContractNew.LaborContractStatusID;
                personnelLabor.LaborContractTempletID = personnelContractNew.LaborContractTempletID;
                personnelLabor.Recorder               = BasicInfo.LoginID;
                personnelLabor.RecordTime             = ServerTime.Time;
                personnelLabor.Remark = personnelContractNew.Remark;

                datatContxt.HR_PersonnelLaborContractHistory.InsertOnSubmit(personnelContractOld);

                //if (flag)
                //{
                //    var resultList = from c in datatContxt.HR_PersonnelArchive
                //                     where c.WorkID == personnelLabor.WorkID
                //                     select c;

                //    if (resultList.Count() > 0)
                //    {
                //        HR_PersonnelArchiveChange personnelChange = new HR_PersonnelArchiveChange();
                //        HR_PersonnelArchive personnel = resultList.Single();

                //        personnelChange.WorkID = personnel.WorkID;
                //        personnelChange.Name = personnel.Name;
                //        personnelChange.WorkPost = new OperatingPostServer().GetOperatingPostByPostCode(personnel.WorkPost);
                //        personnelChange.JobTitle = new JobTitleServer().GetJobTitleByJobID(personnel.JobTitleID);
                //        personnelChange.JoinDate = Convert.ToDateTime(personnel.JoinDate);
                //        personnelChange.GraduationYear = personnel.GraduationYear;
                //        personnelChange.BecomeRegularEmployeeDate = personnel.BecomeRegularEmployeeDate;
                //        personnelChange.Sex = personnel.Sex;
                //        personnelChange.DeptName = new OrganizationServer().GetDeptByDeptCode(personnel.Dept).部门名称;
                //        personnelChange.Dept = personnel.Dept;
                //        personnelChange.Birthday = personnel.Birthday;
                //        personnelChange.Nationality = personnel.Nationality;
                //        personnelChange.Race = personnel.Race;
                //        personnelChange.Birthplace = personnel.Birthplace;
                //        personnelChange.Party = personnel.Party;
                //        personnelChange.ID_Card = personnel.ID_Card;
                //        personnelChange.College = personnel.College;
                //        personnelChange.EducatedDegree = personnel.EducatedDegree;
                //        personnelChange.EducatedMajor = personnel.EducatedMajor;
                //        personnelChange.FamilyAddress = personnel.FamilyAddress;
                //        personnelChange.PostCode = personnel.PostCode;
                //        personnelChange.Phone = personnel.Phone;
                //        personnelChange.Speciality = personnel.Speciality;
                //        personnelChange.MobilePhone = personnel.MobilePhone;
                //        personnelChange.TrainingAmount = personnel.TrainingAmount;
                //        personnelChange.ChangePostAmount = personnel.ChangePostAmount;
                //        personnelChange.Bank = personnel.Bank;
                //        personnelChange.BankAccount = personnel.BankAccount;
                //        personnelChange.QQ = personnel.QQ;
                //        personnelChange.Email = personnel.Email;
                //        personnelChange.Hobby = personnel.Hobby;
                //        personnelChange.SocietySecurityNumber = personnel.SocietySecurityNumber;
                //        personnelChange.MaritalStatus = personnel.MaritalStatus;
                //        personnelChange.LengthOfSchooling = personnel.LengthOfSchooling;
                //        personnelChange.JobNature = personnel.JobNature;
                //        personnelChange.PersonnelStatus = "在职";
                //        personnelChange.ArchivePosition = personnel.ArchivePosition;
                //        personnelChange.TakeJobDate = personnel.TakeJobDate;

                //        if (personnel.Photo != null)
                //        {
                //            personnelChange.Photo = personnel.Photo;
                //        }

                //        if (personnel.Annex != null)
                //        {
                //            personnelChange.Annex = personnel.Annex;
                //            personnelChange.AnnexName = personnel.AnnexName;
                //        }

                //        if (personnel.ResumeID != 0)
                //        {
                //            personnelChange.ResumeID = personnel.ResumeID;
                //        }

                //        personnelChange.Remark = personnel.Remark;
                //        personnelChange.ChangerCode = BasicInfo.LoginID;
                //        personnelChange.ChangeTime = ServerTime.Time;

                //        personnel.PersonnelStatus = 3;
                //        personnel.DimissionDate = personnelContractNew.EndTime;

                //        if (!new PersonnelArchiveServer().UpdatePersonnelArchive(personnelChange, personnel, out error))
                //        {
                //            error = "信息有误,请检查!";
                //            return false;
                //        }
                //    }
                //}

                datatContxt.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
예제 #5
0
        /// <summary>
        /// 新增或修改员工离职申请信息
        /// </summary>
        /// <param name="dimission">员工离职数据集</param>
        /// <param name="type">进行步骤(提交申请/部门负责人审批/人力资源部审批/分管领导审批/总经理批准)</param>
        /// <param name="error">错误信息</param>
        /// <returns>返回单据编号,失败返回0</returns>
        public string AddAndUpdateDimission(HR_DimissionBill dimission, string type, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.HR_DimissionBill
                             where a.WorkID == dimission.WorkID && a.Date.Month == dimission.Date.Month &&
                             a.Date.Day == dimission.Date.Day
                             select a;

                switch (type)
                {
                case "提交申请":

                    if (result.Count() > 0)
                    {
                        error = "不能重复提交离职申请!";
                        return("0");
                    }

                    dataContxt.HR_DimissionBill.InsertOnSubmit(dimission);

                    break;

                case "部门负责人审批":
                    if (result.Count() == 1)
                    {
                        HR_DimissionBill dimiList = result.Single();

                        dimiList.DeptAuthorize      = dimission.DeptAuthorize;
                        dimiList.DeptOpinion        = dimission.DeptOpinion;
                        dimiList.DeptSignature      = dimission.DeptSignature;
                        dimiList.DeptSignatureDate  = dimission.DeptSignatureDate;
                        dimiList.AllowDimissionDate = dimission.AllowDimissionDate;

                        if (!dimission.DeptAuthorize)
                        {
                            dimiList.BillStatus = DimissionBillStatus.已完成.ToString();
                        }
                        else
                        {
                            dimiList.BillStatus = DimissionBillStatus.等待人力资源审阅.ToString();
                        }
                    }
                    break;

                case "人力资源部审批":
                    if (result.Count() == 1)
                    {
                        HR_DimissionBill dimiList = result.Single();

                        dimiList.HR_Opinion       = dimission.HR_Opinion;
                        dimiList.HR_Signature     = dimission.HR_Signature;
                        dimiList.HR_SignatureDate = dimission.HR_SignatureDate;
                        dimiList.BillStatus       = DimissionBillStatus.等待分管领导审核.ToString();
                    }
                    break;

                case "分管领导审批":
                    if (result.Count() == 1)
                    {
                        HR_DimissionBill dimiList = result.Single();

                        dimiList.LeaderAuthorize     = dimission.LeaderAuthorize;
                        dimiList.LeaderOpinion       = dimission.LeaderOpinion;
                        dimiList.LeaderSignature     = dimission.LeaderSignature;
                        dimiList.LeaderSignatureDate = dimission.LeaderSignatureDate;

                        if (!dimission.LeaderAuthorize)
                        {
                            dimiList.BillStatus = DimissionBillStatus.已完成.ToString();
                        }
                        else
                        {
                            dimiList.BillStatus = DimissionBillStatus.等待总经理批准.ToString();
                        }
                    }
                    break;

                case "总经理批准":
                    if (result.Count() == 1)
                    {
                        HR_DimissionBill dimiList = result.Single();

                        dimiList.GM_Authorize     = dimission.GM_Authorize;
                        dimiList.GM_Opinion       = dimission.GM_Opinion;
                        dimiList.GM_Signature     = dimission.GM_Signature;
                        dimiList.GM_SignatureDate = dimission.GM_SignatureDate;
                        dimiList.BillStatus       = DimissionBillStatus.已完成.ToString();

                        if (dimission.GM_Authorize)
                        {
                            if (!new OperatingPostServer().UpdateLessDeptPost(dimiList.Dept,
                                                                              new OperatingPostServer().GetOperatingPostByPostName(dimiList.WorkPost).岗位编号, out error))
                            {
                                error = "信息有误!";
                                return("0");
                            }

                            var resultManager = from c in dataContxt.HR_DeptManager
                                                where c.ManagerWorkID == dimission.WorkID
                                                select c;

                            if (resultManager.Count() > 0)
                            {
                                dataContxt.HR_DeptManager.DeleteAllOnSubmit(resultManager);
                            }

                            var resultStatus = from e in dataContxt.HR_PersonnelArchive
                                               where e.WorkID == dimission.WorkID
                                               select e;

                            if (resultStatus.Count() > 0)
                            {
                                HR_PersonnelArchive personnel = resultStatus.Single();

                                personnel.PersonnelStatus = 3;
                                personnel.Remark          = dimiList.AllowDimissionDate + "离职";
                            }

                            var resultLaborTemp = from j in dataContxt.View_HR_PersonnelLaborContract
                                                  where j.员工编号 == dimission.WorkID && j.类别 == "合同类"
                                                  select j;

                            if (resultLaborTemp.Count() > 0)
                            {
                                int billID = resultLaborTemp.Single().编号;

                                var resultLabor = from j in dataContxt.HR_PersonnelLaborContract
                                                  where j.ID == billID
                                                  select j;

                                HR_PersonnelLaborContract labor = resultLabor.Single();

                                if (resultLabor.Single().EndTime > dimission.AllowDimissionDate)
                                {
                                    labor.LaborContractStatusID = 8;
                                }
                                else
                                {
                                    labor.LaborContractStatusID = 7;
                                }
                            }
                        }
                    }
                    break;

                default:
                    break;
                }

                dataContxt.SubmitChanges();

                var resultList = from a in dataContxt.HR_DimissionBill
                                 where a.WorkID == dimission.WorkID && a.Date == dimission.Date && a.Reason == dimission.Reason
                                 select a;

                if (resultList.Count() > 0)
                {
                    return(resultList.Single().ID.ToString());
                }
                else
                {
                    error = "未知编号!";
                    return("0");
                }
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return("0");
            }
        }