Пример #1
0
        private int GetCustomPerms(string menuCode, T_HR_EMPLOYEE emp)
        {
            int perm = 99;

            //过滤自定义的权限

            foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
            {
                PermissionWS.T_SYS_ENTITYMENUCUSTOMPERM[] custPerms;
                //查看有没有岗位的特别权限
                custPerms = PermClient.GetCustomPostMenuPerms(menuCode, ep.T_HR_POST.POSTID);
                if (custPerms != null && custPerms.Count() > 0)
                {
                    perm = Convert.ToInt32(AssignedObjectType.Post);
                }

                //查看有没有部门的特别权限
                custPerms = PermClient.GetCustomDepartMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID);
                if (custPerms != null && custPerms.Count() > 0)
                {
                    perm = Convert.ToInt32(AssignedObjectType.Department);
                }

                //查看有没有公司的特别权限
                custPerms = PermClient.GetCustomCompanyMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);
                if (custPerms != null && custPerms.Count() > 0)
                {
                    perm = Convert.ToInt32(AssignedObjectType.Company);
                }
            }

            return(perm);
        }
Пример #2
0
 public void EmployeeAdd(T_HR_EMPLOYEE entity, string companyID, ref string strMsg)
 {
     using (EmployeeBLL bll = new EmployeeBLL())
     {
         bll.EmployeeAdd(entity, companyID, ref strMsg);
     }
 }
Пример #3
0
 public void EmployeeAddOrUpdate(T_HR_EMPLOYEE entity, ref string strMsg)
 {
     using (EmployeeBLL bll = new EmployeeBLL())
     {
         bll.EmployeeAddOrUpdate(entity, ref strMsg);
     }
 }
Пример #4
0
        /// <summary>
        /// 选择异动人员
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LookUp_FindClick(object sender, EventArgs e)
        {
            #region
            OrganizationLookup lookup = new OrganizationLookup();

            lookup.SelectedObjType = OrgTreeItemTypes.Personnel;
            lookup.SelectedClick  += (obj, ev) =>
            {
                //  SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                List <ExtOrgObj> ent = lookup.SelectedObj as List <ExtOrgObj>;

                if (ent != null && ent.Count > 0)
                {
                    ExtOrgObj companyInfo = ent.FirstOrDefault();
                    ExtOrgObj post        = (ExtOrgObj)companyInfo.ParentObject;
                    string    postid      = post.ObjectID;
                    //  fromPostLevel=(post as SMT.Saas.Tools.OrganizationWS.T_HR_POST).POSTLEVEL.ToString();

                    ExtOrgObj dept   = (ExtOrgObj)post.ParentObject;
                    string    deptid = dept.ObjectID;

                    // ExtOrgObj corp = (ExtOrgObj)dept.ParentObject;
                    SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY corp = (dept.ObjectInstance as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT).T_HR_COMPANY;
                    string corpid = corp.COMPANYID;

                    T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
                    temp = ent.FirstOrDefault().ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;

                    lkEmployeeName.DataContext = temp;
                }
            };

            lookup.Show <string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            #endregion
        }
Пример #5
0
        private int GetCustomPerms(string menuCode, T_HR_EMPLOYEE emp)
        {
            int perm = 99;

            return(perm);     //暂时未实现

            //过滤自定义的权限
            //emp =
            //if (!emp.T_HR_EMPLOYEEPOST.IsLoaded)
            //{
            //    emp.T_HR_EMPLOYEEPOST.Load();
            //}
            if (emp != null)
            {
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (!ep.T_HR_POSTReference.IsLoaded)
                    {
                        ep.T_HR_POSTReference.Load();
                    }

                    if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                    {
                        ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();
                    }

                    if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENT != null && ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.IsLoaded == false)
                    {
                        ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.Load();
                    }

                    IQueryable <T_SYS_ENTITYMENUCUSTOMPERM> custPerms;
                    //查看有没有岗位的特别权限
                    EntityMenuCustomPermBLL bll = new EntityMenuCustomPermBLL();


                    custPerms = bll.GetCustomPostMenuPerms(menuCode, ep.T_HR_POST.POSTID);
                    if (custPerms != null && custPerms.Count() > 0)
                    {
                        perm = Convert.ToInt32(AssignObjectType.Post);
                    }

                    //查看有没有部门的特别权限
                    custPerms = bll.GetCustomDepartMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID);
                    if (custPerms != null && custPerms.Count() > 0)
                    {
                        perm = Convert.ToInt32(AssignObjectType.Department);
                    }

                    //查看有没有公司的特别权限
                    custPerms = bll.GetCustomCompanyMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);
                    if (custPerms != null && custPerms.Count() > 0)
                    {
                        perm = Convert.ToInt32(AssignObjectType.Company);
                    }
                }
            }

            return(perm);
        }
Пример #6
0
        private string CombinSalaryEmployeeInfo(T_HR_EMPLOYEE entEmployee)
        {
            string strTemp = string.Empty;

            if (entEmployee == null)
            {
                return(strTemp);
            }

            strTemp = entEmployee.EMPLOYEEID + ";" + entEmployee.OWNERCOMPANYID;
            return(strTemp);
        }
Пример #7
0
        public EmployeeEntryAddForm(T_HR_EMPLOYEE ent, int employeeType)
        {
            InitializeComponent();

            Employee          = ent;
            this.employeeType = employeeType;

            this.Loaded += (sender, args) =>
            {
                InitParas();
            };
        }
Пример #8
0
        /// <summary>
        /// 获取当前员工ID隶属于公司的所有岗位
        /// </summary>
        /// <param name="filterString"></param>
        /// <param name="queryParas"></param>
        /// <param name="employeeID"></param>
        private void SetPostFilter(ref string filterString, ref List <object> queryParas, string employeeID)
        {
            if (string.IsNullOrEmpty(filterString))
            {
                return;
            }
            EmployeeBLL   bll = new EmployeeBLL();
            T_HR_EMPLOYEE emp = bll.GetEmployeeByID(employeeID);

            if (!emp.T_HR_EMPLOYEEPOST.IsLoaded)
            {
                emp.T_HR_EMPLOYEEPOST.Load();
            }
            foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
            {
                if (!ep.T_HR_POSTReference.IsLoaded)
                {
                    ep.T_HR_POSTReference.Load();
                }

                if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                {
                    ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();
                }

                if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENT != null && ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.IsLoaded == false)
                {
                    ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.Load();
                }

                //var ent = DataContext.T_HR_DEPARTMENT.Where(s => s.T_HR_COMPANY.COMPANYID == ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);
                //if (ent != null)
                //{
                //    foreach (var tempEnt in ent)
                //    {
                //        if (!string.IsNullOrEmpty(filterString))
                //            filterString += " OR ";
                //        filterString += "T_HR_DEPARTMENT.DEPARTMENTID==@" + queryParas.Count().ToString();
                //        queryParas.Add(tempEnt.DEPARTMENTID);
                //    }
                //}

                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " OR ";
                }
                filterString += "POSTID==@" + queryParas.Count().ToString();
                queryParas.Add(ep.T_HR_POST.POSTID);

                //下级公司
                //SetInferiorCompany(ep, ref filterString, ref queryParas);
            }
        }
Пример #9
0
        public EmployeeEntryAddForm(T_HR_EMPLOYEE ent, int employeeType)
        {
            InitializeComponent();

            Employee = ent;
            this.employeeType = employeeType;

            this.Loaded += (sender, args) =>
            {
                InitParas();
            };

        }
Пример #10
0
        /// <summary>
        /// 未正式启用的考勤记录
        /// </summary>
        /// <param name="entEmployees">员工集合</param>
        /// <param name="dtStart">上班起始日期</param>
        /// <param name="dtEnd">上班截止日期</param>
        public void DeleteUnEffectiveRecordByDate(T_HR_COMPANY entCompany, T_HR_EMPLOYEE entEmployee, DateTime dtStart, DateTime dtEnd, ref DateTime dtRes)
        {
            try
            {
                if (entEmployee == null)
                {
                    return;
                }

                string strEmployeeID = entEmployee.EMPLOYEEID;

                var dels = from ac in dal.GetObjects()
                           where ac.EMPLOYEEID == strEmployeeID && ac.OWNERCOMPANYID == entCompany.COMPANYID &&
                           ac.ATTENDANCEDATE >= dtStart && ac.ATTENDANCEDATE <= dtEnd
                           orderby ac.ATTENDANCEDATE descending
                           select ac;

                if (dels.Count() == 0)
                {
                    return;
                }

                foreach (T_HR_ATTENDANCERECORD entAttRd in dels)
                {
                    try
                    {
                        if (!string.IsNullOrWhiteSpace(entAttRd.ATTENDANCESTATE))
                        {
                            continue;
                        }

                        Tracer.Debug("初始化考勤删除未启用的员工初始化考勤记录,员工姓名:" + entAttRd.EMPLOYEENAME + " 时间:" + entAttRd.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd"));
                        dal.Delete(entAttRd);
                    }
                    catch (Exception ex)
                    {
                        Tracer.Debug("删除员工" + entEmployee.EMPLOYEECNAME + "考勤初始化记录异常:" + " 考勤日期:" + entAttRd.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd")
                                     + " 异常原因:" + ex.ToString());
                        continue;
                    }
                }

                //dal.SaveContextChanges();
            }
            catch (Exception ex)
            {
                dtRes = dtEnd;
                Utility.SaveLog("删除员工考勤初始化记录出错,执行函数为:DeleteUnEffectiveRecordByDate, 出错原因:" + ex.ToString());
            }
        }
Пример #11
0
        /// <summary>
        /// 选择员工
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LookUp_FindClick(object sender, EventArgs e)
        {
            //Dictionary<string, string> cols = new Dictionary<string, string>();
            //cols.Add("EMPLOYEECODE", "T_HR_EMPLOYEE.EMPLOYEECODE");
            //cols.Add("EMPLOYEECNAME", "T_HR_EMPLOYEE.EMPLOYEECNAME");
            //cols.Add("EMPLOYEEENAME", "T_HR_EMPLOYEE.EMPLOYEEENAME");
            //LookupForm lookup = new LookupForm(SMT.Saas.Tools.OrganizationWS.EntityNames.Employee,
            //    typeof(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST[]), cols);

            //lookup.SelectedClick += (o, ev) =>
            //{
            //    SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent = lookup.SelectedObj as SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST; ;

            //    if (ent != null)
            //    {
            //        lkEmployeeName.DataContext = ent.T_HR_EMPLOYEE;
            //    }
            //};

            //lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            OrganizationLookup lookup = new OrganizationLookup();

            lookup.SelectedObjType = OrgTreeItemTypes.Personnel;
            lookup.SelectedClick  += (obj, ev) =>
            {
                SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;

                if (ent != null)
                {
                    lkEmployeeName.DataContext = ent;
                    //  SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE temp = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                    T_HR_EMPLOYEE entity = new T_HR_EMPLOYEE();
                    entity.EMPLOYEEID        = ent.EMPLOYEEID;
                    entity.EMPLOYEECNAME     = ent.EMPLOYEECNAME;
                    entity.OWNERPOSTID       = ent.OWNERPOSTID;
                    entity.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID;
                    entity.OWNERCOMPANYID    = ent.OWNERCOMPANYID;

                    PensionMaster.OWNERCOMPANYID    = ent.OWNERCOMPANYID;
                    PensionMaster.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID;
                    PensionMaster.OWNERPOSTID       = ent.OWNERPOSTID;
                    PensionMaster.OWNERID           = ent.EMPLOYEEID; //ent.OWNERID; ownerid为空 改成employeeid
                    PensionMaster.T_HR_EMPLOYEE     = entity;
                }
            };

            lookup.Show <string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
        }
Пример #12
0
        /// <summary>
        /// 查看本公司的所有公司信息
        /// </summary>
        /// <param name="filterString"></param>
        /// <param name="paras"></param>
        /// <param name="EmployeeID"></param>
        private void SetCompanyFilter(ref string filterString, ref List <object> queryParas, string employeeID)
        {
            if (string.IsNullOrEmpty(filterString))
            {
                return;
            }
            EmployeeBLL   bll = new EmployeeBLL();
            T_HR_EMPLOYEE emp = bll.GetEmployeeByID(employeeID);

            if (!emp.T_HR_EMPLOYEEPOST.IsLoaded)
            {
                emp.T_HR_EMPLOYEEPOST.Load();
            }

            foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " OR ";
                }

                filterString += "COMPANYID==@" + queryParas.Count().ToString();

                if (!ep.T_HR_POSTReference.IsLoaded)
                {
                    ep.T_HR_POSTReference.Load();
                }

                if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                {
                    ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();
                }

                if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENT != null && ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.IsLoaded == false)
                {
                    ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.Load();
                }

                queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);
                //查看是否有下级公司
                SetInferiorCompany(ep, ref filterString, ref queryParas);
            }
        }
Пример #13
0
 void client_GetPerformaceRewardByIDCompleted(object sender, GetPerformaceRewardByIDCompletedEventArgs e)
 {
     if (e.Error != null && !string.IsNullOrEmpty(e.Error.Message))
     {
         Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(e.Error.Message));
     }
     else
     {
         if (e.Result == null)
         {
             Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("NOTFOUND"));
             return;
         }
         performanceRewardRecord = e.Result;
         this.DataContext        = performanceRewardRecord;
         T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE();
         employee.EMPLOYEECNAME     = performanceRewardRecord.EMPLOYEENAME;
         lkEmployeeName.DataContext = employee;
         RefreshUI(RefreshedTypes.AuditInfo);
         SetToolBar();
     }
 }
Пример #14
0
        public T_HR_EMPLOYEE GetQueryAgent(string UserId, string ModCode)
        {
            ProxySettingsBLL       psbll = new ProxySettingsBLL();
            PersonnelServiceClient psc   = new PersonnelServiceClient();

            if (psbll.IsExistAGENTForUser(UserId))
            {
                T_OA_AGENTSET AgentList = psbll.GetQueryAgent(UserId, ModCode);

                T_HR_EMPLOYEE employee = null;

                if (AgentList != null)
                {
                    T_HR_EMPLOYEEPOST[] tmps = psc.GetEmployeePostByPostID(AgentList.AGENTPOSTID);
                    if (tmps != null && tmps.Count() > 0)
                    {
                        employee = tmps[0].T_HR_EMPLOYEE;
                    }
                    else
                    {
                        T_HR_EMPLOYEE[] tmp = psc.GetEmployeeLeader(UserId, 0);
                        if (tmp != null && tmp.Count() > 0)
                        {
                            employee = tmp[0];//返回该岗位员工的直接上级
                        }
                    }
                }
                else
                {
                    T_HR_EMPLOYEE[] tmp = psc.GetEmployeeLeader(UserId, 0);
                    if (tmp != null && tmp.Count() > 0)
                    {
                        employee = tmp[0];//返回该岗位员工的直接上级
                    }
                }
                return(employee);
            }
            return(null);
        }
Пример #15
0
        /// <summary>
        ///  考勤异常提醒xml
        /// </summary>
        /// <param name="employeeCheck"></param>
        public void GetAbnormRecordCheckEngineXml(T_HR_EMPLOYEE entTemp)
        {
            DateTime      dtStart = System.DateTime.Now;
            List <object> objArds = new List <object>();

            objArds.Add(entTemp.OWNERCOMPANYID);
            objArds.Add("HR");
            objArds.Add("T_HR_EMPLOYEE");
            objArds.Add(entTemp.EMPLOYEEID);
            objArds.Add(dtStart.ToString("yyyy/MM/d"));
            objArds.Add(dtStart.ToString("HH:mm"));
            objArds.Add("");
            objArds.Add("");
            objArds.Add("你的考勤数据出现异常,请及时处理");
            objArds.Add("");
            objArds.Add(Utility.strEngineFuncWSSite);
            objArds.Add("EventTriggerProcess");
            objArds.Add("<Para Name=\"AbnormRecordCheckAlarm\" Name=\"EMPLOYEEID\" Value=\"" + entTemp.EMPLOYEEID + "\"></Para>");
            objArds.Add("Г");
            objArds.Add("basicHttpBinding");

            Utility.SendEngineEventTriggerData(objArds);
        }
Пример #16
0
        private string GetAssignObjectName(string type, string objectID)
        {
            string name = "";

            int objectType = -1;

            int.TryParse(type, out objectType);

            switch ((AssignObjectType)objectType)
            {
            case AssignObjectType.Company:
                CompanyBLL   cbll    = new CompanyBLL();
                T_HR_COMPANY company = cbll.GetCompanyById(objectID);
                name = (company == null) ? "" : company.CNAME;
                break;

            case AssignObjectType.Department:
                DepartmentBLL   dbll   = new DepartmentBLL();
                T_HR_DEPARTMENT depart = dbll.GetDepartmentById(objectID);
                name = (depart == null) ? "" : depart.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME;
                break;

            case AssignObjectType.Post:
                PostBLL   pbll = new PostBLL();
                T_HR_POST post = pbll.GetPostById(objectID);
                name = (post == null) ? "" : post.T_HR_POSTDICTIONARY.POSTNAME;
                break;

            case AssignObjectType.Employee:
                EmployeeBLL   ebll     = new EmployeeBLL();
                T_HR_EMPLOYEE employee = ebll.GetEmployeeByID(objectID);
                name = (employee == null) ? "" : employee.EMPLOYEECNAME;
                break;
            }

            return(name);
        }
Пример #17
0
 /// <summary>
 /// 员工入职录入社保记录
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public string PensionMasterByEmployeeAdd(T_HR_EMPLOYEE entity)
 {
     try
     {
         T_HR_PENSIONMASTER pension = new T_HR_PENSIONMASTER();
         pension.PENSIONMASTERID = Guid.NewGuid().ToString();
         pension.T_HR_EMPLOYEEReference.EntityKey =
             new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_EMPLOYEE", "EMPLOYEEID", entity.EMPLOYEEID);
         pension.OWNERCOMPANYID    = entity.OWNERCOMPANYID;
         pension.OWNERDEPARTMENTID = entity.OWNERDEPARTMENTID;
         pension.OWNERPOSTID       = entity.OWNERPOSTID;
         pension.OWNERID           = entity.OWNERID;
         pension.CREATEUSERID      = entity.CREATEUSERID;
         pension.CREATEDATE        = DateTime.Now;
         pension.ISVALID           = "0";
         dal.Add(pension);
         return("{SAVESUCCESSED}");
     }
     catch (Exception ex)
     {
         SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "PensionMasterByEmployeeAdd:" + ex.Message);
         throw ex;
     }
 }
        void DocDistrbuteClient_GetDocDistrbuteInfosCompleted(object sender, GetDocDistrbuteInfosCompletedEventArgs e)
        {
            try
            {
                if (e.Error == null)
                {
                    if (e.Result != null)
                    {
                        List<SMT.SaaS.OA.UI.SmtOACommonOfficeService.T_OA_DISTRIBUTEUSER> distributeList = e.Result.ToList();

                        foreach (var h in distributeList)
                        {
                            object obj = new object();
                            SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj extOrgObj = new SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj();
                            if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Company).ToString())
                            {
                                T_HR_COMPANY tmp = new T_HR_COMPANY();
                                tmp.COMPANYID = h.VIEWER;
                                tmp.CNAME = "";
                                obj = tmp;
                            }
                            else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Department).ToString())
                            {
                                T_HR_DEPARTMENT tmp = new T_HR_DEPARTMENT();
                                tmp.DEPARTMENTID = h.VIEWER;
                                T_HR_DEPARTMENTDICTIONARY tmpdict = new T_HR_DEPARTMENTDICTIONARY();
                                tmpdict.DEPARTMENTNAME = "";
                                tmp.T_HR_DEPARTMENTDICTIONARY = tmpdict;
                                obj = tmp;
                            }
                            else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Post).ToString())
                            {
                                T_HR_POST tmp = new T_HR_POST();
                                tmp.POSTLEVEL = System.Convert.ToDecimal(h.VIEWER);
                                T_HR_POSTDICTIONARY tmpdict = new T_HR_POSTDICTIONARY();
                                tmpdict.POSTNAME = "";
                                tmp.T_HR_POSTDICTIONARY = tmpdict;

                                obj = tmp;
                            }
                            else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Personnel).ToString())
                            {
                                T_HR_EMPLOYEE tmp = new T_HR_EMPLOYEE();
                                tmp.EMPLOYEEID = h.VIEWER;
                                tmp.EMPLOYEECNAME = "";
                                obj = tmp;
                            }
                            extOrgObj.ObjectInstance = obj;

                            issuanceExtOrgObj.Add(extOrgObj);
                        }
                        BindData();
                    }
                }
                else
                    Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), e.Error.Message);
            }
            catch (Exception ex)
            {
                //HtmlPage.Window.Alert(ex.ToString());
                Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(ex.Message.ToString()));
            }
        }
Пример #19
0
        /// <summary>
        /// 获取指定条件的公共假期设置信息
        /// </summary>
        /// <param name="strOrderBy">排序字段</param>
        /// <param name="strFilter">查询语句</param>
        /// <param name="objArgs">查询参数集合</param>
        /// <param name="employeeID">员工ID</param>
        /// <returns>返回请假类型</returns>
        public IQueryable <T_HR_LEAVETYPESET> GetLeaveTypeSetRdListByEmployeeID(string strOrderBy, string strFilter, string employeeID, params object[] objArgs)
        {
            var q = from l in dal.GetObjects <T_HR_LEAVETYPESET>()
                    select l;

            if (objArgs.Count() > 0 && !string.IsNullOrEmpty(strFilter))
            {
                q = q.Where(strFilter, objArgs);
            }
            EmployeeBLL   employeeBLL = new EmployeeBLL();
            T_HR_EMPLOYEE employee    = employeeBLL.GetEmployeeByID(employeeID);

            if (employee == null)
            {
                //不存在员工
                return(null);
            }
            string strBirthDay = string.Empty;
            string strSex      = string.Empty;

            if (employee.BIRTHDAY != null)
            {
                strBirthDay = employee.BIRTHDAY.ToString();
            }
            if (employee.SEX != null)
            {
                //0  女性  1 男性
                strSex = employee.SEX.ToString();
            }
            DateTime dtBirthday = new DateTime();
            DateTime dtYouth    = new DateTime();

            DateTime.TryParse(strBirthDay, out dtBirthday);
            DateTime.TryParse(DateTime.Now.Year.ToString() + "-05-04", out dtYouth);

            List <T_HR_LEAVETYPESET> listSets = new List <T_HR_LEAVETYPESET>();

            foreach (var ent in q)
            {
                //五四
                if (ent.LEAVETYPEVALUE == "12")
                {
                    //小于等于28岁才有五四青年节
                    if (dtBirthday.AddYears(28) >= dtYouth)
                    {
                        listSets.Add(ent);
                    }
                }
                //三八
                else if (ent.LEAVETYPEVALUE == "13")
                {
                    if (strSex == "0")
                    {
                        listSets.Add(ent);
                    }
                }
                else
                {
                    if (ent.SEXRESTRICT != "2")
                    {
                        //性别不是为不限
                        if (ent.SEXRESTRICT == strSex)
                        {
                            listSets.Add(ent);
                        }
                    }
                    else
                    {
                        listSets.Add(ent);
                    }
                }
            }

            return(listSets.AsQueryable().OrderBy(strOrderBy));
        }
Пример #20
0
        /// <summary>
        /// 保存KPI明细记录信息(接口专用)
        /// </summary>
        /// <param name="kpirecord"></param>
        /// <param name="AppraiseeID"></param>
        /// <param name="AppraiserID"></param>
        /// <param name="score"></param>
        /// <param name="scoretype"></param>
        /// <returns></returns>
        public T_HR_KPIRECORD SaveKPIRecordInterface(T_HR_KPIRECORD kpirecord, string AppraiseeID, string AppraiserID, int score, int scoretype)
        {
            try
            {
                bool isAdd = false; //判断是否为添加的标示。

                T_HR_KPIRECORD record = GetKPIRecordInterface(kpirecord.BUSINESSCODE);
                if (record == null)
                {
                    isAdd  = true;
                    record = InitialKPIRecordInterface(kpirecord);
                }
                //获取权限字段
                EmployeeBLL   bllEmployee = new EmployeeBLL();
                T_HR_EMPLOYEE ep          = bllEmployee.GetEmployeeByID(AppraiseeID);
                if (ep != null)
                {
                    record.OWNERID           = ep.OWNERID;
                    record.OWNERPOSTID       = ep.OWNERPOSTID;
                    record.OWNERDEPARTMENTID = ep.OWNERDEPARTMENTID;
                    record.OWNERCOMPANYID    = ep.OWNERCOMPANYID;
                }
                switch (scoretype)
                {
                //系统评分
                case 0:
                    record.SYSTEMSCORE  = score;
                    record.APPRAISEEID  = AppraiseeID;
                    record.UPDATEUSERID = AppraiseeID;
                    break;

                //手动评分
                case 1:
                    record.MANUALSCORE  = score;
                    record.APPRAISEEID  = AppraiseeID;
                    record.APPRAISERID  = AppraiserID;
                    record.UPDATEUSERID = AppraiserID;
                    break;

                //抽查评分
                case 2:
                    record.RANDOMSCORE    = score;
                    record.APPRAISEEID    = AppraiseeID;
                    record.RANDOMPERSONID = AppraiserID;
                    record.UPDATEUSERID   = AppraiserID;
                    break;
                }


                if (record.SYSTEMSCORE != null && //不需要机打,或者已经打过
                    record.MANUALSCORE != null && //不需要人打,或者已经打过
                    record.RANDOMSCORE != null)    //不需要抽查,或者已经打过
                {
                    record.SUMSCORE = CulcalateScore(record);
                }

                using (KPIRecordBll bll = new KPIRecordBll())
                {
                    record.UPDATEDATE = System.DateTime.Now; //修改时间
                    if (isAdd)
                    {
                        bll.KPIRecordAddInterface(record); //添加KPI明细记录
                    }
                    else
                    {
                        bll.KPIRecordUpdate(record); //修改KPI明细记录
                    }
                    return(record);
                }
            }
            catch (Exception ex)
            {
                Utility.SaveLog(ex.ToString());
                return(null);
            }
        }
Пример #21
0
        public string UpdateEmployeeInfo(EmployeeInfo employeeInfo)
        {
            StringBuilder     StrReturn = new StringBuilder();
            XmlWriterSettings settings  = new XmlWriterSettings();

            settings.Indent             = true;
            settings.OmitXmlDeclaration = true;
            try
            {
                using (XmlWriter writer = XmlWriter.Create(StrReturn, settings))
                {
                    var ents = from ent in dal.GetObjects <T_SYS_USER>()
                               where ent.USERNAME == employeeInfo.loginAccount
                               select ent;
                    if (ents.Count() > 0)
                    {
                        PersonnelServiceClient client = new PersonnelServiceClient();

                        T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE();
                        if (ents.FirstOrDefault() != null)
                        {
                            T_SYS_USER    UserInfo    = ents.FirstOrDefault();
                            T_HR_EMPLOYEE CachePerson = client.GetEmployeeByID(UserInfo.EMPLOYEEID);
                            CachePerson.REMARK        = employeeInfo.Remark;
                            CachePerson.OFFICEPHONE   = employeeInfo.Tel;
                            CachePerson.MOBILE        = employeeInfo.Mobile;
                            CachePerson.FAMILYADDRESS = employeeInfo.Address;
                            string StringRef = "";
                            Tracer.Debug("更新员工信息" + UserInfo.EMPLOYEEID + " " + StringRef + System.DateTime.Now);

                            if (CachePerson != null)
                            {
                                CachePerson.T_HR_RESUMEReference = null;
                                client.EmployeeUpdate(CachePerson, UserInfo.OWNERCOMPANYID, ref StringRef);
                                if (StringRef == "")
                                {
                                    HrInstantMessageWS.InstantMessagingServiceClient InstantMessage = new InstantMessagingServiceClient();
                                    EmployeeModel employeeHr = new EmployeeModel();
                                    employeeHr = InstantMessage.GetSingelEmployee(UserInfo.EMPLOYEEID);
                                    if (employeeHr != null)
                                    {
                                        writer.WriteStartElement("BizRegReq");
                                        writer.WriteStartElement("Employee");
                                        writer.WriteAttributeString("EmployeeId", employeeHr.EmployeeId);
                                        writer.WriteAttributeString("EmployeeName", employeeHr.EmployeeName);
                                        writer.WriteAttributeString("LoginAccount", UserInfo.USERNAME);
                                        writer.WriteAttributeString("Sex", "");
                                        writer.WriteAttributeString("Age", "");
                                        writer.WriteAttributeString("PostName", "");//待完善
                                        writer.WriteAttributeString("Email", employeeHr.Email);
                                        writer.WriteAttributeString("Address", employeeHr.Address);
                                        writer.WriteAttributeString("AddCode", "");//没有默认为空
                                        writer.WriteAttributeString("Mobile", employeeHr.Mobile);
                                        writer.WriteAttributeString("Tel", employeeHr.Tel);
                                        writer.WriteAttributeString("Nation", "");
                                        writer.WriteAttributeString("Province", "");
                                        writer.WriteAttributeString("City", "");
                                        writer.WriteAttributeString("Remark", employeeHr.Remark);
                                        writer.WriteEndElement(); //完成Employee节点
                                        writer.WriteEndElement(); //完成BizRegReq节点
                                        //writer.Flush();
                                    }
                                }
                                else
                                {
                                    ErrorMessage(writer, "修改员工信息错误,请联系管理员");
                                }
                            }
                            else
                            {
                                ErrorMessage(writer, "没有获取到该员工信息");
                            }
                        }
                        else
                        {
                            ErrorMessage(writer, "没有获取到该员工信息");
                        }
                    }
                    else
                    {
                        ErrorMessage(writer, "没有获取到该员工信息");
                    }
                    writer.Flush();
                }
            }
            catch (Exception ex)
            {
                using (XmlWriter catchError = XmlWriter.Create(StrReturn, settings))
                {
                    ErrorMessage(catchError, "服务器错误");
                    Tracer.Debug("即时通讯-UpdateEmployeeInfo:" + ex.ToString() + System.DateTime.Now);
                    catchError.Flush();
                }
            }
            return(StrReturn.ToString().Replace("\r", "").Replace("\n", ""));
        }
Пример #22
0
        private int GetCustomPerms(string menuCode, T_HR_EMPLOYEE emp)
        {
            int perm = 99;

            //过滤自定义的权限

            foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
            {

                PermissionWS.T_SYS_ENTITYMENUCUSTOMPERM[] custPerms;
                //查看有没有岗位的特别权限
                custPerms = PermClient.GetCustomPostMenuPerms(menuCode, ep.T_HR_POST.POSTID);
                if (custPerms != null && custPerms.Count() > 0)
                    perm = Convert.ToInt32(AssignedObjectType.Post);

                //查看有没有部门的特别权限
                custPerms = PermClient.GetCustomDepartMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID);
                if (custPerms != null && custPerms.Count() > 0)
                    perm = Convert.ToInt32(AssignedObjectType.Department);

                //查看有没有公司的特别权限
                custPerms = PermClient.GetCustomCompanyMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);
                if (custPerms != null && custPerms.Count() > 0)
                    perm = Convert.ToInt32(AssignedObjectType.Company);
            }

            return perm;
        }
Пример #23
0
        /// <summary>
        /// 根据权限过滤
        /// </summary>
        /// <param name="filterString"></param>
        /// <param name="queryParas"></param>
        /// <param name="userID"></param>
        /// <param name="entityName"></param>
        protected void SetOrganizationFilter(ref string filterString, ref System.Collections.Generic.List <object> queryParas, string employeeID, string entityName)
        {
            //获取用户
            SysUserBLL UserBll = new SysUserBLL();
            T_SYS_USER user    = UserBll.GetUserByEmployeeID(employeeID);

            V_EMPLOYEEPOST vemp = employeeBll.GetEmployeeDetailByID(user.EMPLOYEEID);

            if (vemp == null)
            {
                return;
            }
            T_HR_EMPLOYEE emp = vemp.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE;


            //获取正常的角色用户权限

            IQueryable <V_Permission> plist = UserBll.GetUserMenuPerms(entityName, user.SYSUSERID);

            IQueryable <V_Permission> perms = plist;

            if (perms == null)
            {
                return;
            }

            //获取查询的权限,值越小,权限越大
            int maxPerm  = -1;
            var permlist = perms.Where(p => p.Permission.PERMISSIONVALUE == "3");

            if (permlist.Count() > 0)
            {
                maxPerm = permlist.Min(p => Convert.ToInt32(p.RoleMenuPermission.DATARANGE));
            }
            //perms.Where(p => p.Permission.PERMISSIONVALUE == "3").Min(p => Convert.ToInt32(p.RoleMenuPermission.DATARANGE));
            //var maxPerm = "2";



            //if (!emp.T_HR_EMPLOYEEPOST.IsLoaded)
            //{
            //    emp.T_HR_EMPLOYEEPOST.Load();
            //}

            //获取自定义权限
            int custPerm = GetCustomPerms(entityName, emp);

            if (custPerm < maxPerm)
            {
                maxPerm = custPerm;
            }

            //看整个公司的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Company))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERCOMPANYID==@" + queryParas.Count().ToString();


                    //暂时先去掉
                    //if (!ep.T_HR_POSTReference.IsLoaded)
                    //    ep.T_HR_POSTReference.Load();

                    //if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                    //    ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();

                    //if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENT != null && ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.IsLoaded == false)
                    //    ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.Load();

                    queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);

                    i++;
                }
                filterString += ") ";
            }


            //看部门的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Department))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERDEPARTMENTID==@" + queryParas.Count().ToString();

                    if (!ep.T_HR_POSTReference.IsLoaded)
                    {
                        ep.T_HR_POSTReference.Load();
                    }

                    if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                    {
                        ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();
                    }

                    queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID);

                    i++;
                }
                filterString += ") ";
            }


            //看岗位的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Post))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERPOSTID==@" + queryParas.Count().ToString();

                    if (!ep.T_HR_POSTReference.IsLoaded)
                    {
                        ep.T_HR_POSTReference.Load();
                    }

                    queryParas.Add(ep.T_HR_POST.POSTID);

                    i++;
                }
                filterString += ") ";
            }

            //看员工
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Employee))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += "OWNERID==@" + queryParas.Count().ToString();
                queryParas.Add(employeeID);
            }
        }
Пример #24
0
        /// <summary>
        /// 根据帐号获取员工信息
        /// </summary>
        /// <param name="loginAccount"></param>
        /// <returns></returns>
        public string GetEmployeeInfo(string loginAccount)
        {
            StringBuilder     StrReturn = new StringBuilder();
            XmlWriterSettings settings  = new XmlWriterSettings();

            settings.Indent             = true;
            settings.OmitXmlDeclaration = true;
            try
            {
                using (XmlWriter writer = XmlWriter.Create(StrReturn, settings))
                {
                    using (CommDal <T_HR_EMPLOYEE> cdl = new CommDal <T_HR_EMPLOYEE>())
                    {
                        var ents = from ent in cdl.GetObjects <T_HR_EMPLOYEE>()
                                   where ent.EMPLOYEEENAME == loginAccount
                                   select ent;
                        if (ents.Count() > 0)
                        {
                            EmployeeModel employee = new EmployeeModel();

                            if (ents.FirstOrDefault() != null)
                            {
                                T_HR_EMPLOYEE UserInfo = ents.FirstOrDefault();
                                employee = GetSingelEmployee(UserInfo.EMPLOYEEID);
                                if (employee != null)
                                {
                                    writer.WriteStartElement("BizRegReq");
                                    writer.WriteStartElement("Employee");
                                    writer.WriteAttributeString("EmployeeId", employee.EmployeeId);
                                    writer.WriteAttributeString("EmployeeName", employee.EmployeeName);
                                    writer.WriteAttributeString("LoginAccount", employee.LoginAccount);
                                    writer.WriteAttributeString("Sex", employee.Sex);
                                    //writer.WriteAttributeString("Age", "");
                                    writer.WriteAttributeString("PostName", employee.PostName);
                                    writer.WriteAttributeString("Email", employee.Email);
                                    writer.WriteAttributeString("Address", employee.Address);
                                    writer.WriteAttributeString("AddCode", "");//没有默认为空
                                    writer.WriteAttributeString("Mobile", employee.Mobile);
                                    writer.WriteAttributeString("Tel", employee.Tel);
                                    writer.WriteAttributeString("Nation", "");
                                    writer.WriteAttributeString("Province", "");
                                    writer.WriteAttributeString("City", "");
                                    writer.WriteAttributeString("PostID", employee.PostID);
                                    writer.WriteAttributeString("Remark", employee.Remark);
                                    writer.WriteAttributeString("CompanyName", employee.CompanyName);
                                    writer.WriteEndElement(); //完成Employee节点
                                    writer.WriteEndElement(); //完成BizRegReq节点
                                }
                                else
                                {
                                    ErrorMessage(writer, "没有获取到该员工信息");
                                }
                            }
                            else
                            {
                                ErrorMessage(writer, "没有获取到该员工信息");
                            }
                        }
                        else
                        {
                            ErrorMessage(writer, "没有获取到该员工信息");
                        }
                        writer.Flush();
                    }
                }
            }
            catch (Exception ex)
            {
                using (XmlWriter catchError = XmlWriter.Create(StrReturn, settings))
                {
                    ErrorMessage(catchError, "服务器错误");
                    Tracer.Debug("即时通讯-GetEmployeeInfo:" + ex.ToString() + System.DateTime.Now);
                    catchError.Flush();
                }
            }
            return(StrReturn.ToString().Replace("\r", "").Replace("\n", ""));
        }
Пример #25
0
        private bool Save()
        {
            List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll();
            RefreshUI(RefreshedTypes.ShowProgressBar);
            if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE)
            {
                SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                T_HR_EMPLOYEE ent = new T_HR_EMPLOYEE();
                ent.EMPLOYEEID = employee.EMPLOYEEID;
                ent.EMPLOYEECNAME = employee.EMPLOYEECNAME;
                ent.OWNERPOSTID = employee.OWNERPOSTID;
                ent.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                ent.OWNERCOMPANYID = employee.OWNERCOMPANYID;

                EmployeeCheck.EMPLOYEECODE = employee.EMPLOYEECODE;
                EmployeeCheck.EMPLOYEENAME = employee.EMPLOYEECNAME;
                EmployeeCheck.OWNERID = employee.EMPLOYEEID;
                EmployeeCheck.OWNERPOSTID = employee.OWNERPOSTID;
                EmployeeCheck.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                EmployeeCheck.OWNERCOMPANYID = employee.OWNERCOMPANYID;
                EmployeeCheck.T_HR_EMPLOYEE = ent;
                //EmployeeCheck.T_HR_EMPLOYEE = employee;
            }
            else
            {
                //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"));
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"),
                Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;
            }
            if (validators.Count > 0)
            {
                //could use the content of the list to show an invalid message summary somehow
                // Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), validators.Count.ToString() + " invalid validators");
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;
            }
            if (string.IsNullOrEmpty(dpBeregulardate.Text.Trim()))
            {
                //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "BEREGULARDATE"));
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "BEREGULARDATE"),
               Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;
            }
            else
            {
                //对转正日期作校验
                bool isRightTime = true;
                string strBeregularDate = dpBeregulardate.Text;
                string strReportDate = txtReportDate.Text;
                string strOndutyDate = txtOndutyDate.Text;
                //报道时间
                DateTime beregularDate = Convert.ToDateTime(strBeregularDate);
                if(!string.IsNullOrEmpty(strReportDate))
                {
                    DateTime reportDate = Convert.ToDateTime(strReportDate);
                    if (reportDate != null && reportDate > beregularDate)
                    {
                        isRightTime = false;
                    }
                }
                //到岗时间
                if (!string.IsNullOrEmpty(strOndutyDate))
                {
                    DateTime ondutyDate = Convert.ToDateTime(strOndutyDate);
                    if (ondutyDate != null && ondutyDate > beregularDate)
                    {
                        isRightTime = false;
                    }
                }
                //弹出警告窗
                if (!isRightTime)
                {
                    ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), "抱歉,转正时间须晚于入职时间和到岗时间.",
                   Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                    RefreshUI(RefreshedTypes.HideProgressBar);
                    return false;
                }
            }
            
            if (FormType == FormTypes.New)
            {
                EmployeeCheck.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                EmployeeCheck.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                EmployeeCheck.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
                EmployeeCheck.OWNERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;

                string strMsg = "";
                client.EmployeeCheckAddAsync(EmployeeCheck, strMsg);

            }
            else
            {
                EmployeeCheck.UPDATEDATE = System.DateTime.Now;
                EmployeeCheck.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; ;

                client.EmployeeCheckUpdateAsync(EmployeeCheck, "Edit");
            }

            return true;
        }
Пример #26
0
        /// <summary>
        /// 选择异动人员
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LookUp_FindClick(object sender, EventArgs e)
        {
            #region 废弃代码
            //Dictionary<string, string> cols = new Dictionary<string, string>();
            //cols.Add("EMPLOYEECODE", "T_HR_EMPLOYEE.EMPLOYEECODE");
            //cols.Add("EMPLOYEECNAME", "T_HR_EMPLOYEE.EMPLOYEECNAME");
            //cols.Add("EMPLOYEEENAME", "T_HR_EMPLOYEE.EMPLOYEEENAME");
            //LookupForm lookup = new LookupForm(SMT.Saas.Tools.OrganizationWS.EntityNames.Employee,
            //    typeof(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST[]), cols);

            //lookup.SelectedClick += (o, ev) =>
            //{
            //    SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent = lookup.SelectedObj as SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST;

            //    if (ent != null)
            //    {
            //        lkEmployeeName.DataContext = ent.T_HR_EMPLOYEE;
            //        HandleEmployeeChanged(ent);
            //    }
            //};

            //lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            #endregion 

            #region
            OrganizationLookup lookup = new OrganizationLookup();

            lookup.SelectedObjType = OrgTreeItemTypes.Personnel;
            lookup.SelectedClick += (obj, ev) =>
            {
                //  SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                List<ExtOrgObj> ent = lookup.SelectedObj as List<ExtOrgObj>;

                if (ent != null && ent.Count > 0)
                {
                    
                    ExtOrgObj companyInfo = ent.FirstOrDefault();
                    ExtOrgObj post = (ExtOrgObj)companyInfo.ParentObject;
                    string postid = post.ObjectID;
                    //  fromPostLevel=(post as SMT.Saas.Tools.OrganizationWS.T_HR_POST).POSTLEVEL.ToString();

                    ExtOrgObj dept = (ExtOrgObj)post.ParentObject;
                    string deptid = dept.ObjectID;

                    // ExtOrgObj corp = (ExtOrgObj)dept.ParentObject;
                    SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY corp = (dept.ObjectInstance as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT).T_HR_COMPANY;
                    string corpid = corp.COMPANYID;

                    T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
                    temp = ent.FirstOrDefault().ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                    
                    
                    //如果是员工主兼互换,必须选择主岗位 zhangwei modify 2014-3-6
                    var selectPost = temp.T_HR_EMPLOYEEPOST.Where(s => s.T_HR_POST.POSTID == postid).FirstOrDefault();
                    if (isMainPostChanged && selectPost.ISAGENCY != "0")
                    {
                        MessageBox.Show("请选择主岗位");
                        return;
                    }

                    //异动前岗位级别
                    pgCaution.Text = string.Empty;
                    if (temp.T_HR_EMPLOYEEPOST != null)
                    {
                        // fromPostLevel = temp.T_HR_EMPLOYEEPOST.FirstOrDefault().POSTLEVEL.ToString();
                        //postChange.FROMPOSTLEVEL = temp.T_HR_EMPLOYEEPOST.FirstOrDefault().POSTLEVEL;

                        ///Modified by 罗捷
                        ///做是否是兼职岗位的判断
                        ///modified by zhangwei 去掉兼职岗位判断 2013-12-2
                        //string isAgencyPara = temp.T_HR_EMPLOYEEPOST.Where(s => s.T_HR_POST.POSTID == postid).FirstOrDefault().ISAGENCY;
                        //BanChangeAgencyPost(isAgencyPara);            


                        postChange.FROMPOSTLEVEL = temp.T_HR_EMPLOYEEPOST.Where(s => s.T_HR_POST.POSTID == postid).FirstOrDefault().POSTLEVEL;
                        fromPostLevel = postChange.FROMPOSTLEVEL.ToString();
                        foreach (T_SYS_DICTIONARY item in cbxFromPostLevel.ItemsSource)
                        {
                            if (item.DICTIONARYVALUE == postChange.FROMPOSTLEVEL)
                            {
                                cbxFromPostLevel.SelectedItem = item;
                                break;
                            }
                        }
                    }

                    lkEmployeeName.DataContext = temp;

                    PostChange.EMPLOYEECODE = temp.EMPLOYEECODE;
                    PostChange.EMPLOYEENAME = temp.EMPLOYEECNAME;
                    PostChange.OWNERID = temp.EMPLOYEEID;

                    PostChange.T_HR_EMPLOYEE = new T_HR_EMPLOYEE();
                    postChange.T_HR_EMPLOYEE.EMPLOYEEID = temp.EMPLOYEEID;
                    postChange.T_HR_EMPLOYEE.EMPLOYEECNAME = temp.EMPLOYEECNAME;
                    postChange.T_HR_EMPLOYEE.OWNERPOSTID = temp.OWNERPOSTID;
                    postChange.T_HR_EMPLOYEE.OWNERDEPARTMENTID = temp.OWNERDEPARTMENTID;
                    postChange.T_HR_EMPLOYEE.OWNERCOMPANYID = temp.OWNERCOMPANYID;
                    postChange.T_HR_EMPLOYEE.EMPLOYEECODE = temp.EMPLOYEECODE;
                    postChange.T_HR_EMPLOYEE.EMPLOYEEENAME = temp.EMPLOYEEENAME;

                    // txtFromCompanyID.Text = corp.ObjectName;
                    txtFromCompanyID.Text = corp.CNAME;
                    txtFromDepartmentID.Text = dept.ObjectName;
                    txtFromPostID.Text = post.ObjectName;

                    PostChange.FROMCOMPANYID = corp.COMPANYID;
                    PostChange.FROMDEPARTMENTID = dept.ObjectID;
                    PostChange.FROMPOSTID = post.ObjectID;
                    client.GetAllPostByEmployeeIDAsync(PostChange.T_HR_EMPLOYEE.EMPLOYEEID);
                    orgClient.GetPostByIdAsync(PostChange.FROMPOSTID, "");
                    //luojie 获取借款信息
                    isSave = false;
                    if (pgCaution.Visibility==Visibility.Collapsed)
                        ShowOuterPostchangeState();
                    //GetPersonAccountData();
                }

            };

            lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            #endregion

        }
Пример #27
0
        /// <summary>
        /// 对指定公司,指定的员工,按照指定的考勤方案应用生成指定时段内的考勤初始化记录
        /// </summary>
        /// <param name="entTemp"></param>
        /// <param name="entCompany"></param>
        /// <param name="entEmployees"></param>
        /// <param name="dtAsignDate"></param>
        /// <returns></returns>
        private string AsignAttendSolForEmployees(T_HR_ATTENDANCESOLUTIONASIGN entTemp, T_HR_COMPANY entCompany, List <T_HR_EMPLOYEE> entEmployees, DateTime dtAsignDate)
        {
            string strRes = string.Empty;

            try
            {
                decimal dWorkMode = entTemp.T_HR_ATTENDANCESOLUTION.WORKMODE.Value;
                string  strAttendanceSolutionID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID;

                int iWorkMode = 0;
                int.TryParse(dWorkMode.ToString(), out iWorkMode);

                List <int> iWorkDays = new List <int>();
                Utility.GetWorkDays(iWorkMode, ref iWorkDays);

                SchedulingTemplateDetailBLL          bllTemplateDetail  = new SchedulingTemplateDetailBLL();
                List <T_HR_SCHEDULINGTEMPLATEDETAIL> entTemplateDetails = new List <T_HR_SCHEDULINGTEMPLATEDETAIL>();

                var q = bllTemplateDetail.GetTemplateDetailRdListByAttendanceSolutionId(strAttendanceSolutionID);

                if (q == null)
                {
                    Tracer.Debug("考勤初始化考勤班次不存在");
                    return("{NOTFOUND}");
                }

                entTemplateDetails = q.ToList();

                if (entTemplateDetails == null)
                {
                    Tracer.Debug("考勤初始化考勤班次不存在");
                    return("{NOTFOUND}");
                }

                if (entTemplateDetails.Count == 0)
                {
                    Tracer.Debug("考勤初始化考勤班次不存在");
                    return("{NOTFOUND}");
                }

                int iTotalDay = 0;
                //DateTime dtCheck = new DateTime();
                DateTime dtStart = DateTime.Parse(dtAsignDate.ToString("yyyy-MM") + "-1");

                //DateTime dtStart = DateTime.Parse("2012-10-1");

                if (entTemp.STARTDATE > dtStart)
                {
                    dtStart = entTemp.STARTDATE.Value;
                }

                DateTime dtInitAttandRecordEndDate = dtStart.AddMonths(1).AddDays(-1);

                AttendanceRecordBLL      bllAttRd         = new AttendanceRecordBLL();
                EmployeeLevelDayCountBLL bllLevelDayCount = new EmployeeLevelDayCountBLL();
                EmployeeEntryBLL         bllEntry         = new EmployeeEntryBLL();
                LeftOfficeConfirmBLL     bllConfirm       = new LeftOfficeConfirmBLL();

                //操作表T_HR_EMPLOYEELEVELDAYCOUNT数据的方式:0:直接逐条新增或修改;
                //1:先把要新增或修改的记录存到内存,然后一次性提交到数据库修改

                Tracer.Debug("开始生成员工考勤初始化记录,总员工数:" + entEmployees.Count());
                for (int n = 0; n < entEmployees.Count(); n++)
                {
                    bool AttendNoCheck = false;
                    try
                    {
                        T_HR_EMPLOYEE item_emp = entEmployees[n];
                        DateTime      dtInitAttandRecordStartDate = new DateTime();

                        #region 判断是否免打卡
                        //如果是免打卡的用户,在这里还是需要初始化,因为结算的时候需要计算出勤天数
                        if (!entTemp.T_HR_ATTENDANCESOLUTIONReference.IsLoaded)
                        {
                            entTemp.T_HR_ATTENDANCESOLUTIONReference.Load();
                        }
                        if (entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCETYPE == (Convert.ToInt32(Common.AttendanceType.NoCheck) + 1).ToString())//考勤方案设置为不考勤
                        {
                            AttendNoCheck = true;
                            Tracer.Debug("初始化员工,考勤方案设置为免打卡,员工姓名:"
                                         + entEmployees.FirstOrDefault().EMPLOYEECNAME
                                         + " 考勤方案名:" + entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONNAME);
                        }

                        #endregion

                        #region 初始化开始日期大于结束日期
                        dtInitAttandRecordStartDate = dtStart;

                        if (dtInitAttandRecordStartDate >= dtInitAttandRecordEndDate)
                        {
                            Tracer.Debug("初始化员工考勤记录被跳过,dtInitAttandRecordStartDate >= dtEnd" + ",员工姓名" + item_emp.EMPLOYEECNAME);
                            continue;
                        }
                        #endregion

                        #region 判断员工状态,是否有入职记录,是否已离职,入职,离职日期
                        string usedAttendSolutionName = ",使用的考勤方案:" + entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONNAME
                                                        + ",当前线程id:" + Thread.CurrentThread.ManagedThreadId;
                        Tracer.Debug("初始化员工考勤记录:员工状态:" + item_emp.EMPLOYEESTATE + ",员工姓名" + item_emp.EMPLOYEECNAME
                                     + usedAttendSolutionName);
                        if (item_emp.EMPLOYEESTATE == "0")
                        {
                            T_HR_EMPLOYEEENTRY entEntry = bllEntry.GetEmployeeEntryByEmployeeID(item_emp.EMPLOYEEID);
                            if (entEntry == null)
                            {
                                Tracer.Debug("初始化员工考勤记录被跳过,该员工入职为空" + ",员工姓名" + item_emp.EMPLOYEECNAME);
                                continue;
                            }
                            TimeSpan tsStart = entEntry.ONPOSTDATE.Value - dtInitAttandRecordStartDate;
                            TimeSpan tsEnd   = dtInitAttandRecordEndDate - entEntry.ONPOSTDATE.Value;
                            if (tsStart.Days >= 0 && tsEnd.Days >= 0)
                            {
                                Tracer.Debug("初始化员工考勤记录开始日期被修改:entEntry.ONPOSTDATE.Value > dtInitAttandRecordStartDate" + ",员工姓名" + item_emp.EMPLOYEECNAME
                                             + " 入职日期:" + entEntry.ENTRYDATE.Value.ToString("yyyy-MM-dd")
                                             + " 到岗日期:" + entEntry.ONPOSTDATE.Value.ToString("yyyy-MM-dd"));
                                dtInitAttandRecordStartDate = new DateTime(entEntry.ONPOSTDATE.Value.Year, entEntry.ONPOSTDATE.Value.Month, entEntry.ONPOSTDATE.Value.Day);
                            }

                            if (tsEnd.Days < 0)
                            {
                                Tracer.Debug("初始化员工考勤记录被跳过:员工到岗日期大于考勤初始化结束日期entEntry.ONPOSTDATE.Value > dtEnd" + ",员工姓名" + item_emp.EMPLOYEECNAME
                                             + " 入职日期:" + entEntry.ENTRYDATE.Value.ToString("yyyy-MM-dd")
                                             + " 到岗日期:" + entEntry.ONPOSTDATE.Value.ToString("yyyy-MM-dd")
                                             + " 考勤初始化结束日期:" + dtInitAttandRecordEndDate);
                                continue;
                            }
                        }
                        if (item_emp.EMPLOYEESTATE == "1")
                        {
                            T_HR_EMPLOYEEENTRY entEntry = bllEntry.GetEmployeeEntryByEmployeeID(item_emp.EMPLOYEEID);
                            if (entEntry == null)
                            {
                                Tracer.Debug("该员工入职为空" + ",员工姓名" + item_emp.EMPLOYEECNAME);
                                continue;
                            }

                            if (entEntry.ONPOSTDATE.Value > dtInitAttandRecordStartDate && entEntry.ONPOSTDATE.Value < dtInitAttandRecordEndDate)
                            {
                                Tracer.Debug("初始化员工考勤记录开始日期被修改:entEntry.ONPOSTDATE.Value > dtInitAttandRecordStartDate" + ",员工姓名" + item_emp.EMPLOYEECNAME
                                             + " 入职日期:" + entEntry.ENTRYDATE.Value.ToString("yyyy-MM-dd")
                                             + " 到岗日期:" + entEntry.ONPOSTDATE.Value.ToString("yyyy-MM-dd"));
                                dtInitAttandRecordStartDate = new DateTime(entEntry.ONPOSTDATE.Value.Year, entEntry.ONPOSTDATE.Value.Month, entEntry.ONPOSTDATE.Value.Day);
                            }

                            TimeSpan ts3 = entEntry.ONPOSTDATE.Value - dtInitAttandRecordEndDate;
                            if (ts3.Days > 0)
                            {
                                Tracer.Debug("初始化员工考勤记录被跳过,员工入职日期大于本月最后一天" + ",员工姓名" + item_emp.EMPLOYEECNAME);
                                continue;
                            }
                        }
                        else if (item_emp.EMPLOYEESTATE == "2")
                        {
                            T_HR_LEFTOFFICECONFIRM entConfirm = bllConfirm.GetLeftOfficeConfirmByEmployeeId(item_emp.EMPLOYEEID);
                            if (entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value < dtStart)
                            {
                                Tracer.Debug("初始化员工考勤记录被跳过,entConfirm.STOPPAYMENTDATE !=null && entConfirm.STOPPAYMENTDATE.Value < dtStart" + ",员工姓名" + item_emp.EMPLOYEECNAME);
                                continue;
                            }

                            if (entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value > dtStart && entConfirm.STOPPAYMENTDATE.Value < dtInitAttandRecordEndDate)
                            {
                                dtInitAttandRecordEndDate = new DateTime(entConfirm.STOPPAYMENTDATE.Value.Year, entConfirm.STOPPAYMENTDATE.Value.Month, entConfirm.STOPPAYMENTDATE.Value.Day);
                            }

                            if (entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value < dtStart)
                            {
                                Tracer.Debug("初始化员工考勤记录被跳过,entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value < dtStart" + ",员工姓名" + item_emp.EMPLOYEECNAME);
                                continue;
                            }
                        }
                        #endregion

                        TimeSpan ts = dtInitAttandRecordEndDate.Subtract(dtInitAttandRecordStartDate);
                        iTotalDay = ts.Days;

                        T_HR_SCHEDULINGTEMPLATEMASTER entTemplateMaster = entTemplateDetails[0].T_HR_SCHEDULINGTEMPLATEMASTER;
                        int iCircleDay = 0;
                        if (entTemplateMaster.SCHEDULINGCIRCLETYPE == (Convert.ToInt32(Common.SchedulingCircleType.Month) + 1).ToString())
                        {
                            iCircleDay = 31;
                        }
                        else if (entTemplateMaster.SCHEDULINGCIRCLETYPE == (Convert.ToInt32(Common.SchedulingCircleType.Week) + 1).ToString())
                        {
                            iCircleDay = 7;
                        }

                        int iPeriod = iTotalDay / iCircleDay;
                        if (iTotalDay % iCircleDay >= 0)
                        {
                            iPeriod += 1;
                        }

                        OutPlanDaysBLL bllOutPlanDays = new OutPlanDaysBLL();
                        IQueryable <T_HR_OUTPLANDAYS> entOutPlanDays = bllOutPlanDays.GetOutPlanDaysRdListByEmployeeID(item_emp.EMPLOYEEID);

                        string strVacDayType  = (Convert.ToInt32(Common.OutPlanDaysType.Vacation) + 1).ToString();
                        string strWorkDayType = (Convert.ToInt32(Common.OutPlanDaysType.WorkDay) + 1).ToString();
                        IQueryable <T_HR_OUTPLANDAYS> entVacDays  = entOutPlanDays.Where(s => s.DAYTYPE == strVacDayType);
                        IQueryable <T_HR_OUTPLANDAYS> entWorkDays = entOutPlanDays.Where(s => s.DAYTYPE == strWorkDayType && s.STARTDATE >= dtInitAttandRecordStartDate && s.ENDDATE <= dtInitAttandRecordEndDate);
                        //IQueryable<T_HR_OUTPLANDAYS> entVacWorkDays = entOutPlanDays.Where(s => s.STARTDATE >= dtInitAttandRecordStartDate && s.ENDDATE <= dtInitAttandRecordEndDate);
                        //例外工作日考勤初始化记录公共假期
                        CreateOutPlanWorkDay(entCompany, item_emp, entTemp, entTemplateDetails, entWorkDays, AttendNoCheck);
                        //IQueryable<T_HR_OUTPLANDAYS> entVacWorkHalfDays
                        //    = entVacDays.Where(s => s.STARTDATE >= dtInitAttandRecordStartDate
                        //    && s.ENDDATE <= dtInitAttandRecordEndDate && s.ISHALFDAY=="1");
                        int addCount    = 0;
                        int updateCount = 0;
                        for (int i = 0; i < iPeriod; i++)
                        {
                            for (int j = 0; j < iCircleDay; j++)
                            {
                                #region 开始生成员工考勤初始化记录
                                try
                                {
                                    int      m         = (i * iCircleDay) + j;
                                    DateTime dtCurDate = dtInitAttandRecordStartDate.AddDays(m);

                                    if (dtCurDate > entTemp.ENDDATE.Value)
                                    {
                                        break;
                                    }

                                    bool isVacDay = false;

                                    if (iWorkDays.Contains(Convert.ToInt32(dtCurDate.DayOfWeek)) == false)
                                    {
                                        continue;
                                    }

                                    if (entVacDays.Count() > 0)
                                    {
                                        foreach (T_HR_OUTPLANDAYS item_Vac in entVacDays)
                                        {
                                            if (item_Vac.STARTDATE.Value <= dtCurDate && item_Vac.ENDDATE >= dtCurDate)
                                            {
                                                //如果是公共假期并未设置半天,设为公共假期不考勤
                                                if (string.IsNullOrEmpty(item_Vac.ISHALFDAY))
                                                {
                                                    isVacDay = true;
                                                    break;
                                                }
                                                if (!string.IsNullOrEmpty(item_Vac.ISHALFDAY) &&
                                                    item_Vac.ISHALFDAY == "0")
                                                {
                                                    isVacDay = true;
                                                    break;
                                                }
                                                else
                                                { //例外工作日考勤初始化记录(公共假期半天休息,还有半天上班也需要初始化考勤记录)
                                                }
                                            }
                                        }
                                    }

                                    if (isVacDay)
                                    {
                                        continue;
                                    }

                                    T_HR_SCHEDULINGTEMPLATEDETAIL item = entTemplateDetails.Where(c => c.SCHEDULINGDATE == (j + 1).ToString()).FirstOrDefault();

                                    var qc = from ar in dal.GetObjects <T_HR_ATTENDANCERECORD>()
                                             where //ar.OWNERCOMPANYID == entCompany.COMPANYID &&
                                             ar.EMPLOYEEID == item_emp.EMPLOYEEID && ar.ATTENDANCEDATE == dtCurDate
                                             select ar;

                                    T_HR_ATTENDANCERECORD entUpdate = qc.FirstOrDefault();
                                    if (entUpdate == null)
                                    {
                                        T_HR_ATTENDANCERECORD entAttRd = new T_HR_ATTENDANCERECORD();
                                        entAttRd.ATTENDANCERECORDID   = System.Guid.NewGuid().ToString().ToUpper();
                                        entAttRd.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID;
                                        entAttRd.EMPLOYEEID           = item_emp.EMPLOYEEID;
                                        entAttRd.EMPLOYEECODE         = item_emp.EMPLOYEECODE;
                                        entAttRd.EMPLOYEENAME         = item_emp.EMPLOYEECNAME;
                                        entAttRd.ATTENDANCEDATE       = dtCurDate;

                                        //外键实体
                                        //entAttRd.T_HR_SHIFTDEFINE = item.T_HR_SHIFTDEFINE;
                                        entAttRd.T_HR_SHIFTDEFINEReference.EntityKey = new EntityKey("TM_SaaS_OA_EFModelContext.T_HR_SHIFTDEFINE", "SHIFTDEFINEID", item.T_HR_SHIFTDEFINE.SHIFTDEFINEID);

                                        //第一段工作时间
                                        entAttRd.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME;
                                        entAttRd.FIRSTENDTIME   = item.T_HR_SHIFTDEFINE.FIRSTENDTIME;

                                        //第二段工作时间
                                        entAttRd.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME;
                                        entAttRd.SECONDENDTIME   = item.T_HR_SHIFTDEFINE.SECONDENDTIME;

                                        //第三段工作时间
                                        entAttRd.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME;
                                        entAttRd.THIRDENDTIME   = item.T_HR_SHIFTDEFINE.THIRDENDTIME;

                                        //第四段工作时间
                                        entAttRd.FOURTHENDTIME   = item.T_HR_SHIFTDEFINE.FOURTHENDTIME;
                                        entAttRd.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME;
                                        //查询公共假期设置判断是否只上半天班公共假期
                                        var qVacDay = from ent in entVacDays
                                                      where ent.STARTDATE == entAttRd.ATTENDANCEDATE
                                                      select ent;
                                        if (qVacDay.Count() > 0)
                                        {
                                            var set = qVacDay.FirstOrDefault();
                                            if (!string.IsNullOrEmpty(set.ISHALFDAY))
                                            {
                                                if (set.ISHALFDAY == "1")
                                                {
                                                    if (set.PEROID == "0")//上午
                                                    {
                                                        string msg = "考勤初始化(新增)-检测到假期设置了休假(半天):"
                                                                     + " 员工:" + entAttRd.EMPLOYEENAME
                                                                     + " 日期:" + entAttRd.ATTENDANCEDATE
                                                                     + " 休假分段(0上午):" + set.PEROID;
                                                        Tracer.Debug(msg);
                                                        entAttRd.REMARK           = msg;
                                                        entAttRd.NEEDFRISTATTEND  = "0"; //上午不上班
                                                        entAttRd.NEEDSECONDATTEND = "1"; //下午上班
                                                    }
                                                    else if (set.PEROID == "1")
                                                    {
                                                        string msg = "考勤初始化(新增)-检测到假期设置了休假(半天):"
                                                                     + " 员工:" + entAttRd.EMPLOYEENAME
                                                                     + " 日期:" + entAttRd.ATTENDANCEDATE
                                                                     + " 休假分段(1下午):" + set.PEROID;
                                                        Tracer.Debug(msg);
                                                        entAttRd.REMARK           = msg;
                                                        entAttRd.NEEDFRISTATTEND  = "1"; //上午上班
                                                        entAttRd.NEEDSECONDATTEND = "0"; //下午不上班
                                                    }
                                                }
                                            }
                                        }

                                        //权限
                                        entAttRd.OWNERCOMPANYID    = item_emp.OWNERCOMPANYID;
                                        entAttRd.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID;
                                        entAttRd.OWNERPOSTID       = item_emp.OWNERPOSTID;
                                        entAttRd.OWNERID           = item_emp.OWNERID;

                                        entAttRd.CREATEUSERID       = entTemp.CREATEUSERID;
                                        entAttRd.CREATEDATE         = DateTime.Now;
                                        entAttRd.REMARK            += entTemp.REMARK;
                                        entAttRd.UPDATEUSERID       = entTemp.UPDATEUSERID;
                                        entAttRd.UPDATEDATE         = DateTime.Now;
                                        entAttRd.CREATECOMPANYID    = entTemp.CREATECOMPANYID;
                                        entAttRd.CREATEDEPARTMENTID = entTemp.CREATEDEPARTMENTID;
                                        entAttRd.CREATEPOSTID       = entTemp.CREATEPOSTID;

                                        if (AttendNoCheck)
                                        {
                                            entAttRd.ATTENDANCESTATE = "1";//免打卡员工
                                            Tracer.Debug("设置为免打孔员工,考勤默认为已出勤," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + entAttRd.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd")
                                                         + usedAttendSolutionName);
                                        }
                                        else
                                        {
                                            entAttRd.ATTENDANCESTATE = string.Empty;    //新生成的考勤记录,出勤状态为空
                                        }
                                        Tracer.Debug("开始新增员工T_HR_ATTENDANCERECORD记录,日期:" + dtCurDate.ToString("yyyy-MM-dd") + ",员工姓名:" + item_emp.EMPLOYEECNAME
                                                     + ",初始化考勤状态:" + entAttRd.ATTENDANCESTATE + usedAttendSolutionName);
                                        addCount += dal.Add(entAttRd);
                                    }
                                    else
                                    {
                                        if (AttendNoCheck)                   //免打孔
                                        {
                                            entUpdate.ATTENDANCESTATE = "1"; //免打卡员工  //非免打卡员工,跳过
                                            Tracer.Debug("设置为免打孔员工,考勤默认为已出勤," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + entUpdate.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd")
                                                         + usedAttendSolutionName);
                                        }
                                        else
                                        {
                                            if (!string.IsNullOrEmpty(entUpdate.ATTENDANCESTATE))
                                            {
                                                Tracer.Debug("更新考勤初始化记录,已存在的考勤初始化记录状态为: " + entUpdate.ATTENDANCESTATE + " ,跳过不再生成" + ",员工姓名:" + item_emp.EMPLOYEECNAME
                                                             + ",考勤状态:" + entUpdate.ATTENDANCESTATE + usedAttendSolutionName);
                                                continue;                             //如果存在直接跳过
                                            }
                                            entUpdate.ATTENDANCESTATE = string.Empty; //新生成的考勤记录,出勤状态为空
                                        }
                                        Tracer.Debug("更新考勤初始化记录,ATTENDANCESTATE考勤状态为空,日期:" + dtCurDate.ToString("yyyy-MM-dd") + ",员工姓名:" + item_emp.EMPLOYEECNAME
                                                     + ",初始化考勤状态:" + entUpdate.ATTENDANCESTATE + usedAttendSolutionName);
                                        entUpdate.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID;
                                        entUpdate.EMPLOYEEID           = item_emp.EMPLOYEEID;
                                        entUpdate.EMPLOYEECODE         = item_emp.EMPLOYEECODE;
                                        entUpdate.EMPLOYEENAME         = item_emp.EMPLOYEECNAME;
                                        entUpdate.ATTENDANCEDATE       = dtCurDate;

                                        entUpdate.T_HR_SHIFTDEFINE = item.T_HR_SHIFTDEFINE;

                                        //第一段工作时间
                                        entUpdate.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME;
                                        entUpdate.FIRSTENDTIME   = item.T_HR_SHIFTDEFINE.FIRSTENDTIME;

                                        //第二段工作时间
                                        entUpdate.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME;
                                        entUpdate.SECONDENDTIME   = item.T_HR_SHIFTDEFINE.SECONDENDTIME;

                                        //第三段工作时间
                                        entUpdate.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME;
                                        entUpdate.THIRDENDTIME   = item.T_HR_SHIFTDEFINE.THIRDENDTIME;

                                        //第四段工作时间
                                        entUpdate.FOURTHENDTIME   = item.T_HR_SHIFTDEFINE.FOURTHENDTIME;
                                        entUpdate.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME;

                                        //查询公共假期设置判断是否只上半天班
                                        var qVacDay = from ent in entVacDays
                                                      where ent.STARTDATE == entUpdate.ATTENDANCEDATE
                                                      select ent;
                                        if (qVacDay.Count() > 0)
                                        {
                                            var set = qVacDay.FirstOrDefault();
                                            if (!string.IsNullOrEmpty(set.ISHALFDAY))
                                            {
                                                if (set.ISHALFDAY == "1")
                                                {
                                                    if (set.PEROID == "0")//上午
                                                    {
                                                        string msg = "考勤初始化(修改)-检测到假期设置了休假(半天):"
                                                                     + " 员工:" + entUpdate.EMPLOYEENAME
                                                                     + " 日期:" + entUpdate.ATTENDANCEDATE
                                                                     + " 上班分段(0上午):" + set.PEROID;
                                                        Tracer.Debug(msg);
                                                        entUpdate.REMARK           = msg;
                                                        entUpdate.NEEDFRISTATTEND  = "0"; //上午不上班休息
                                                        entUpdate.NEEDSECONDATTEND = "1"; //下午上班
                                                    }
                                                    else if (set.PEROID == "1")
                                                    {
                                                        string msg = "考勤初始化(修改)-检测到假期设置了休假(半天):"
                                                                     + " 员工:" + entUpdate.EMPLOYEENAME
                                                                     + " 日期:" + entUpdate.ATTENDANCEDATE
                                                                     + " 上班分段(1下午):" + set.PEROID;
                                                        Tracer.Debug(msg);
                                                        entUpdate.REMARK           = msg;
                                                        entUpdate.NEEDFRISTATTEND  = "1"; //上午上班
                                                        entUpdate.NEEDSECONDATTEND = "0"; //下午不上班休息
                                                    }
                                                }
                                            }
                                        }

                                        //权限
                                        entUpdate.OWNERCOMPANYID    = item_emp.OWNERCOMPANYID;
                                        entUpdate.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID;
                                        entUpdate.OWNERPOSTID       = item_emp.OWNERPOSTID;
                                        entUpdate.OWNERID           = item_emp.OWNERID;

                                        entUpdate.REMARK      += entTemp.REMARK;
                                        entUpdate.UPDATEUSERID = entTemp.UPDATEUSERID;
                                        entUpdate.UPDATEDATE   = DateTime.Now;

                                        updateCount += dal.Update(entUpdate);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Tracer.Debug("生成考勤初始化记录出错:" + item_emp.EMPLOYEECNAME + ex.ToString() + usedAttendSolutionName);
                                    continue;
                                }
                                #endregion
                            }
                        }
                        //bllLevelDayCount.CalculateEmployeeLevelDayCount(entTemp, item_emp, strOperationType);
                        //int saveCount=dal.SaveContextChanges();
                        Tracer.Debug(n + "生成员工:" + item_emp.EMPLOYEECNAME + " 考勤记录成功,开始日期" + dtStart.ToString("yyyy-MM-dd") + "结束日期:"
                                     + dtInitAttandRecordEndDate.ToString("yyyy-MM-dd") + "共新增考勤记录" + addCount.ToString() + " 更新记录条数:" + updateCount
                                     + usedAttendSolutionName);
                    }
                    catch (Exception ex)
                    {
                        Tracer.Debug("生成考勤初始化记录出错:" + entEmployees[n].EMPLOYEECNAME + ex.ToString());
                        continue;
                    }
                }
                Tracer.Debug("生成所有员工考勤记录成功,开始日期" + dtStart.ToString("yyyy-MM-dd") + "结束日期:" + dtInitAttandRecordEndDate.ToString("yyyy-MM-dd"));
                strRes = "{SAVESUCCESSED}";
            }
            catch (Exception ex)
            {
                Tracer.Debug("生成考勤初始化记录出错:" + ex.ToString());
                strRes = ex.Message.ToString();
            }

            return(strRes);
        }
Пример #28
0
        /// <summary>
        /// 对指定员工生成列外日期的考勤作息记录
        /// </summary>
        /// <param name="entCompany">员工所在公司</param>
        /// <param name="item_emp">员工信息</param>
        /// <param name="entTemp">考勤方案分配</param>
        /// <param name="entTemplateDetails">作息方案</param>
        /// <param name="entWorkDays">调剂工作日</param>
        private void CreateOutPlanWorkDay(T_HR_COMPANY entCompany, T_HR_EMPLOYEE item_emp, T_HR_ATTENDANCESOLUTIONASIGN entTemp,
                                          List <T_HR_SCHEDULINGTEMPLATEDETAIL> entTemplateDetails, IQueryable <T_HR_OUTPLANDAYS> entWorkDays, bool AttendNoCheck)
        {
            if (entWorkDays == null)
            {
                return;
            }

            if (entWorkDays.Count() == 0)
            {
                return;
            }

            List <DateTime> listWorkDay = new List <DateTime>();

            foreach (T_HR_OUTPLANDAYS entOutPlanDay in entWorkDays)
            {
                TimeSpan ts         = entOutPlanDay.ENDDATE.Value.Subtract(entOutPlanDay.STARTDATE.Value);
                int      iDayPeriod = ts.Days;
                iDayPeriod += 1;//实际天数应包含起始天数

                for (int i = 0; i < iDayPeriod; i++)
                {
                    DateTime dtTemp = entOutPlanDay.STARTDATE.Value.AddDays(i);
                    listWorkDay.Add(dtTemp);
                }
            }

            if (listWorkDay.Count() == 0)
            {
                return;
            }

            for (int j = 0; j < listWorkDay.Count(); j++)
            {
                int      m         = 0;
                DateTime dtCurDate = listWorkDay[j];
                m = dtCurDate.Day;

                T_HR_SCHEDULINGTEMPLATEDETAIL item = entTemplateDetails.Where(c => c.SCHEDULINGDATE == m.ToString()).FirstOrDefault();

                var qc = from ar in dal.GetObjects <T_HR_ATTENDANCERECORD>()
                         where //ar.OWNERCOMPANYID == entCompany.COMPANYID &&
                         ar.EMPLOYEEID == item_emp.EMPLOYEEID && ar.ATTENDANCEDATE == dtCurDate
                         select ar;

                T_HR_ATTENDANCERECORD entUpdate = qc.FirstOrDefault();
                if (entUpdate == null)
                {
                    T_HR_ATTENDANCERECORD entAttRd = new T_HR_ATTENDANCERECORD();
                    entAttRd.ATTENDANCERECORDID   = System.Guid.NewGuid().ToString().ToUpper();
                    entAttRd.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID;
                    entAttRd.EMPLOYEEID           = item_emp.EMPLOYEEID;
                    entAttRd.EMPLOYEECODE         = item_emp.EMPLOYEECODE;
                    entAttRd.EMPLOYEENAME         = item_emp.EMPLOYEECNAME;
                    entAttRd.ATTENDANCEDATE       = dtCurDate;
                    if (item.T_HR_SHIFTDEFINE == null)
                    {
                        Tracer.Debug("生成员工列外工作日期错误,排班定义T_HR_SCHEDULINGTEMPLATEDETAIL:" + item.T_HR_SCHEDULINGTEMPLATEMASTER.TEMPLATENAME + " T_HR_SHIFTDEFINE为Null");
                        return;
                    }
                    entAttRd.T_HR_SHIFTDEFINEReference.EntityKey = new EntityKey("TM_SaaS_OA_EFModelContext.T_HR_SHIFTDEFINE", "SHIFTDEFINEID", item.T_HR_SHIFTDEFINE.SHIFTDEFINEID);

                    //第一段工作时间
                    entAttRd.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME;
                    entAttRd.FIRSTENDTIME   = item.T_HR_SHIFTDEFINE.FIRSTENDTIME;

                    //第二段工作时间
                    entAttRd.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME;
                    entAttRd.SECONDENDTIME   = item.T_HR_SHIFTDEFINE.SECONDENDTIME;

                    //第三段工作时间
                    entAttRd.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME;
                    entAttRd.THIRDENDTIME   = item.T_HR_SHIFTDEFINE.THIRDENDTIME;

                    //第四段工作时间
                    entAttRd.FOURTHENDTIME   = item.T_HR_SHIFTDEFINE.FOURTHENDTIME;
                    entAttRd.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME;

                    //查询公共假期设置判断是否只上半天班公共假期
                    var q = from ent in entWorkDays
                            where ent.STARTDATE == entAttRd.ATTENDANCEDATE
                            select ent;
                    if (q.Count() > 0)
                    {
                        var set = q.FirstOrDefault();
                        if (!string.IsNullOrEmpty(set.ISHALFDAY))
                        {
                            if (set.ISHALFDAY == "1")
                            {
                                if (set.PEROID == "0")//上午
                                {
                                    string msg = "考勤初始化(新增)CreateOutPlanWorkDay-检测设置了半天工作日:"
                                                 + " 员工:" + entAttRd.EMPLOYEENAME
                                                 + " 日期:" + entAttRd.ATTENDANCEDATE
                                                 + " 上班分段(0上午):" + set.PEROID;
                                    Tracer.Debug(msg);
                                    entAttRd.NEEDFRISTATTEND  = "1"; //上午上班
                                    entAttRd.NEEDSECONDATTEND = "0"; //下午不上班
                                    entAttRd.REMARK           = msg;
                                }
                                else if (set.PEROID == "1")
                                {
                                    string msg = "考勤初始化(新增)-检测设置了半天工作日:"
                                                 + " 员工:" + entAttRd.EMPLOYEENAME
                                                 + " 日期:" + entAttRd.ATTENDANCEDATE
                                                 + " 上班分段(1下午):" + set.PEROID;
                                    Tracer.Debug(msg);
                                    entAttRd.REMARK           = msg;
                                    entAttRd.NEEDFRISTATTEND  = "0"; //上午不上班
                                    entAttRd.NEEDSECONDATTEND = "1"; //下午上班
                                }
                            }
                        }
                    }
                    entAttRd.ATTENDANCESTATE = string.Empty;    //新生成的考勤记录,出勤状态为空

                    //权限
                    entAttRd.OWNERCOMPANYID    = item_emp.OWNERCOMPANYID;
                    entAttRd.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID;
                    entAttRd.OWNERPOSTID       = item_emp.OWNERPOSTID;
                    entAttRd.OWNERID           = item_emp.OWNERID;

                    entAttRd.CREATEUSERID       = entTemp.CREATEUSERID;
                    entAttRd.CREATEDATE         = DateTime.Now;
                    entAttRd.REMARK            += entTemp.REMARK;
                    entAttRd.UPDATEUSERID       = entTemp.UPDATEUSERID;
                    entAttRd.UPDATEDATE         = DateTime.Now;
                    entAttRd.CREATECOMPANYID    = entTemp.CREATECOMPANYID;
                    entAttRd.CREATEDEPARTMENTID = entTemp.CREATEDEPARTMENTID;
                    entAttRd.CREATEPOSTID       = entTemp.CREATEPOSTID;
                    if (AttendNoCheck)
                    {
                        entAttRd.ATTENDANCESTATE = "1";               //免打卡员工
                    }
                    dal.Add(entAttRd);
                    Tracer.Debug("初始化设置的例外工作日考勤记录新增记录," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + dtCurDate.ToString("yyyy-MM-dd"));
                }
                else
                {
                    Tracer.Debug("初始化设置的例外工作日考勤记录已存在,跳过," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + dtCurDate.ToString("yyyy-MM-dd"));
                    //continue;//如果已考勤直接跳过
                    if (!string.IsNullOrEmpty(entUpdate.ATTENDANCESTATE))
                    {
                        continue;
                    }

                    entUpdate.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID;
                    entUpdate.EMPLOYEEID           = item_emp.EMPLOYEEID;
                    entUpdate.EMPLOYEECODE         = item_emp.EMPLOYEECODE;
                    entUpdate.EMPLOYEENAME         = item_emp.EMPLOYEECNAME;
                    entUpdate.ATTENDANCEDATE       = dtCurDate;

                    entUpdate.T_HR_SHIFTDEFINE = item.T_HR_SHIFTDEFINE;

                    //第一段工作时间
                    entUpdate.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME;
                    entUpdate.FIRSTENDTIME   = item.T_HR_SHIFTDEFINE.FIRSTENDTIME;

                    //第二段工作时间
                    entUpdate.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME;
                    entUpdate.SECONDENDTIME   = item.T_HR_SHIFTDEFINE.SECONDENDTIME;

                    //第三段工作时间
                    entUpdate.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME;
                    entUpdate.THIRDENDTIME   = item.T_HR_SHIFTDEFINE.THIRDENDTIME;

                    //第四段工作时间
                    entUpdate.FOURTHENDTIME   = item.T_HR_SHIFTDEFINE.FOURTHENDTIME;
                    entUpdate.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME;

                    //查询公共假期设置判断是否只上半天班公共假期
                    var q = from ent in entWorkDays
                            where ent.STARTDATE == entUpdate.ATTENDANCEDATE
                            select ent;
                    if (q.Count() > 0)
                    {
                        var set = q.FirstOrDefault();
                        if (!string.IsNullOrEmpty(set.ISHALFDAY))
                        {
                            if (set.ISHALFDAY == "1")
                            {
                                if (set.PEROID == "0")//上午
                                {
                                    string msg = "考勤初始化(修改)CreateOutPlanWorkDay-检测设置了半天工作日:"
                                                 + " 员工:" + entUpdate.EMPLOYEENAME
                                                 + " 日期:" + entUpdate.ATTENDANCEDATE
                                                 + " 上班分段(0上午):" + set.PEROID;
                                    Tracer.Debug(msg);
                                    entUpdate.REMARK           = msg;
                                    entUpdate.NEEDFRISTATTEND  = "1"; //上午上班
                                    entUpdate.NEEDSECONDATTEND = "0"; //下午不上班
                                }
                                else if (set.PEROID == "1")
                                {
                                    string msg = "考勤初始化(修改)-检测设置了半天工作日:"
                                                 + " 员工:" + entUpdate.EMPLOYEENAME
                                                 + " 日期:" + entUpdate.ATTENDANCEDATE
                                                 + " 上班分段(1下午):" + set.PEROID;
                                    Tracer.Debug(msg);
                                    entUpdate.REMARK           = msg;
                                    entUpdate.NEEDFRISTATTEND  = "0"; //上午不上班
                                    entUpdate.NEEDSECONDATTEND = "1"; //下午上班
                                }
                            }
                        }
                    }
                    entUpdate.ATTENDANCESTATE = string.Empty;    //新生成的考勤记录,出勤状态为空

                    //权限
                    entUpdate.OWNERCOMPANYID    = item_emp.OWNERCOMPANYID;
                    entUpdate.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID;
                    entUpdate.OWNERPOSTID       = item_emp.OWNERPOSTID;
                    entUpdate.OWNERID           = item_emp.OWNERID;

                    entUpdate.REMARK      += entTemp.REMARK;
                    entUpdate.UPDATEUSERID = entTemp.UPDATEUSERID;
                    entUpdate.UPDATEDATE   = DateTime.Now;

                    dal.UpdateFromContext(entUpdate);
                }
            }
        }
Пример #29
0
        /// <summary>
        /// 根据传回的xml生成员工入职
        /// </summary>
        /// <param name="eGFunc"></param>
        /// <returns></returns>
        private static string AddEmployeeEntry(IEnumerable <XElement> eGFunc)
        {
            try
            {
                if (eGFunc.Count() == 0)
                {
                    return("");
                }

                string strEmployeeID        = string.Empty;
                string strOwnerID           = string.Empty;
                string strOwnerPostID       = string.Empty;
                string strOwnerDepartmentID = string.Empty;
                string strOwnerCompanyID    = string.Empty;
                string Name            = string.Empty;
                int    PROBATIONPERIOD = 0;
                string Idnumber        = string.Empty;
                string sex             = string.Empty;

                string isAcceptemploied = string.Empty;
                string createuserid     = string.Empty;

                foreach (var q in eGFunc)
                {
                    string strName = q.Attribute("Name").Value;
                    switch (strName)
                    {
                    case "EMPLOYEEID":
                        strEmployeeID = q.Attribute("Value").Value;
                        break;

                    case "OWNERID":
                        strOwnerID = q.Attribute("Value").Value;
                        break;

                    case "OWNERPOSTID":
                        strOwnerPostID = q.Attribute("Value").Value;
                        break;

                    case "OWNERDEPARTMENTID":
                        strOwnerDepartmentID = q.Attribute("Value").Value;
                        break;

                    case "OWNERCOMPANYID":
                        strOwnerCompanyID = q.Attribute("Value").Value;
                        break;

                    case "NAME":
                        Name = q.Attribute("Value").Value;
                        break;

                    case "IDCARDNUMBER":
                        Idnumber = q.Attribute("Value").Value;
                        break;

                    case "SEX":
                        sex = q.Attribute("Value").Value;
                        break;

                    case "PROBATIONPERIOD":
                        PROBATIONPERIOD = int.Parse(q.Attribute("Value").Value);
                        break;

                    case "ISACCEPTEMPLOIED":
                        isAcceptemploied = q.Attribute("Value").Value;
                        break;

                    case "CREATEUSERID":
                        createuserid = q.Attribute("Value").Value;
                        break;
                    }
                }
                //if (isAcceptemploied != "2")
                //{
                //    return string.Empty;
                //}

                PersonnelService   ser      = new PersonnelService();
                T_HR_EMPLOYEEENTRY entry    = new T_HR_EMPLOYEEENTRY();
                T_HR_EMPLOYEE      employee = new T_HR_EMPLOYEE();
                T_HR_EMPLOYEEPOST  epost    = new T_HR_EMPLOYEEPOST();
                employee.EMPLOYEEID        = Guid.NewGuid().ToString();
                employee.EMPLOYEECNAME     = Name;
                employee.IDNUMBER          = Idnumber.Replace("{", "").Replace("}", "");
                employee.OWNERCOMPANYID    = strOwnerCompanyID.Replace("{", "").Replace("}", "");
                employee.OWNERDEPARTMENTID = strOwnerDepartmentID.Replace("{", "").Replace("}", "");
                employee.OWNERPOSTID       = strOwnerPostID.Replace("{", "").Replace("}", "");
                employee.OWNERID           = employee.EMPLOYEEID.Replace("{", "").Replace("}", "");
                employee.CREATEDATE        = DateTime.Now;
                employee.SEX          = sex;
                employee.CREATEUSERID = createuserid;

                epost.EMPLOYEEPOSTID           = Guid.NewGuid().ToString();
                epost.ISAGENCY                 = "0";
                epost.CREATEDATE               = DateTime.Now;
                epost.T_HR_POST                = new T_HR_POST();
                epost.T_HR_POST.POSTID         = employee.OWNERPOSTID;
                epost.T_HR_EMPLOYEE            = new T_HR_EMPLOYEE();
                epost.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID;
                epost.CREATEUSERID             = createuserid;
                epost.CHECKSTATE               = "0";

                entry.EMPLOYEEENTRYID          = Guid.NewGuid().ToString();
                entry.CHECKSTATE               = "0";
                entry.PROBATIONPERIOD          = PROBATIONPERIOD;
                entry.T_HR_EMPLOYEE            = new T_HR_EMPLOYEE();
                entry.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID;
                entry.CREATEDATE               = System.DateTime.Now;
                entry.EMPLOYEEPOSTID           = epost.EMPLOYEEPOSTID;
                entry.OWNERCOMPANYID           = employee.OWNERCOMPANYID;
                entry.OWNERDEPARTMENTID        = employee.OWNERDEPARTMENTID;
                entry.OWNERPOSTID              = employee.OWNERPOSTID;
                entry.OWNERID      = employee.EMPLOYEEID;
                entry.CREATEUSERID = createuserid;


                ser.AddEmployeeEntry(employee, entry, epost);
                return(entry.EMPLOYEEENTRYID);
            }
            catch (Exception e)
            {
                string abc = "<HR>Message=[" + e.Message + "]" + "<HR>Source=[" + e.Source + "]<HR>StackTrace=[" + e.StackTrace + "]<HR>TargetSite=[" + e.TargetSite + "]";
                Tracer.Debug(abc);
                return(abc);
            }
        }
Пример #30
0
        /// <summary>
        /// 根据传回的xml生成员工合同
        /// </summary>
        /// <param name="eGFunc"></param>
        /// <returns></returns>
        private static string AddEmployeeContract(IEnumerable <XElement> eGFunc)
        {
            SMT.Foundation.Log.Tracer.Debug("开始添加员工合同信息");
            try
            {
                if (eGFunc.Count() == 0)
                {
                    return("");
                }

                string strEmployeeID        = string.Empty;
                string strOwnerID           = string.Empty;
                string strOwnerPostID       = string.Empty;
                string strOwnerDepartmentID = string.Empty;
                string strOwnerCompanyID    = string.Empty;

                foreach (var q in eGFunc)
                {
                    string strName = q.Attribute("Name").Value;
                    switch (strName)
                    {
                    case "EMPLOYEEID":
                        strEmployeeID = q.Attribute("Value").Value;
                        break;

                    case "OWNERID":
                        strOwnerID = q.Attribute("Value").Value;
                        break;

                    case "OWNERPOSTID":
                        strOwnerPostID = q.Attribute("Value").Value;
                        break;

                    case "OWNERDEPARTMENTID":
                        strOwnerDepartmentID = q.Attribute("Value").Value;
                        break;

                    case "OWNERCOMPANYID":
                        strOwnerCompanyID = q.Attribute("Value").Value;
                        break;
                    }
                }


                OrganizationService ser = new OrganizationService();

                T_HR_EMPLOYEECONTRACT entity = new T_HR_EMPLOYEECONTRACT();
                entity.EMPLOYEECONTACTID        = Guid.NewGuid().ToString();
                entity.T_HR_EMPLOYEE            = new T_HR_EMPLOYEE();
                entity.T_HR_EMPLOYEE.EMPLOYEEID = strEmployeeID.Replace("{", "").Replace("}", "");
                //  entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL();
                SMT.Foundation.Log.Tracer.Debug("合同员工ID:" + entity.T_HR_EMPLOYEE.EMPLOYEEID);

                entity.CHECKSTATE         = ((int)CheckStates.UnSubmit).ToString();
                entity.EDITSTATE          = ((int)EditStates.UnActived).ToString();
                entity.CREATEDATE         = DateTime.Now;
                entity.OWNERID            = strOwnerID;
                entity.OWNERPOSTID        = strOwnerPostID;
                entity.OWNERDEPARTMENTID  = strOwnerDepartmentID;
                entity.OWNERCOMPANYID     = strOwnerCompanyID;
                entity.CREATEUSERID       = strOwnerID;
                entity.CREATEPOSTID       = strOwnerPostID;
                entity.CREATEDEPARTMENTID = strOwnerDepartmentID;
                entity.CREATECOMPANYID    = strOwnerCompanyID;
                string           strMsg = "";
                PersonnelService ps     = new PersonnelService();
                T_HR_EMPLOYEE    emp    = ps.GetEmployeeByID(entity.T_HR_EMPLOYEE.EMPLOYEEID);
                if (emp != null)
                {
                    entity.OWNERID           = emp.EMPLOYEEID;
                    entity.OWNERPOSTID       = emp.OWNERPOSTID;
                    entity.OWNERDEPARTMENTID = emp.OWNERDEPARTMENTID;
                    entity.OWNERCOMPANYID    = emp.OWNERCOMPANYID;
                    ps.EmployeeContractAdd(entity, ref strMsg);
                }
                else
                {
                    SMT.Foundation.Log.Tracer.Debug("引擎触发员工合同记录失败");
                }
                SMT.Foundation.Log.Tracer.Debug("合同工ID:" + entity.EMPLOYEECONTACTID);
                SMT.Foundation.Log.Tracer.Debug("开始添加员工信息:" + emp.EMPLOYEECNAME);

                SMT.Foundation.Log.Tracer.Debug("添加完员工信息的结果:" + strMsg);
                return(entity.EMPLOYEECONTACTID);
            }
            catch (Exception e)
            {
                string abc = "<HR>Message=[" + e.Message + "]" + "<HR>Source=[" + e.Source + "]<HR>StackTrace=[" + e.StackTrace + "]<HR>TargetSite=[" + e.TargetSite + "]";
                Tracer.Debug(abc);
                return(abc);
            }
        }
Пример #31
0
        /// <summary>
        /// 根据传回的XML,添加员工社保档案
        /// </summary>
        /// <param name="xele"></param>
        private static string AddPensionMaster(IEnumerable <XElement> eGFunc)
        {
            try
            {
                if (eGFunc.Count() == 0)
                {
                    return("");
                }

                string strEmployeeID        = string.Empty;
                string strOwnerID           = string.Empty;
                string strOwnerPostID       = string.Empty;
                string strOwnerDepartmentID = string.Empty;
                string strOwnerCompanyID    = string.Empty;

                foreach (var q in eGFunc)
                {
                    string strName = q.Attribute("Name").Value;
                    switch (strName)
                    {
                    case "EMPLOYEEID":
                        strEmployeeID = q.Attribute("Value").Value;
                        break;

                    case "OWNERID":
                        strOwnerID = q.Attribute("Value").Value;
                        break;

                    case "OWNERPOSTID":
                        strOwnerPostID = q.Attribute("Value").Value;
                        break;

                    case "OWNERDEPARTMENTID":
                        strOwnerDepartmentID = q.Attribute("Value").Value;
                        break;

                    case "OWNERCOMPANYID":
                        strOwnerCompanyID = q.Attribute("Value").Value;
                        break;
                    }
                }


                PersonnelService ser        = new PersonnelService();
                string           employeeid = strEmployeeID.Replace("{", "").Replace("}", "");
                //注释获取社保的原因:如果兼职的则存在,这样待办还是有,但实际社保却没有添加
                //var pensionTmp = ser.GetPensionMasterByEmployeeID(employeeid);
                //if (pensionTmp == null)
                //{

                T_HR_PENSIONMASTER entity = new T_HR_PENSIONMASTER();
                entity.PENSIONMASTERID          = Guid.NewGuid().ToString();
                entity.T_HR_EMPLOYEE            = new T_HR_EMPLOYEE();
                entity.T_HR_EMPLOYEE.EMPLOYEEID = employeeid;
                //  entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL();

                entity.CARDID             = string.Empty;
                entity.COMPUTERNO         = string.Empty;
                entity.CHECKSTATE         = ((int)CheckStates.UnSubmit).ToString();
                entity.EDITSTATE          = ((int)EditStates.UnActived).ToString();
                entity.CREATEDATE         = DateTime.Now;
                entity.OWNERID            = strOwnerID;
                entity.OWNERPOSTID        = strOwnerPostID;
                entity.OWNERDEPARTMENTID  = strOwnerDepartmentID;
                entity.OWNERCOMPANYID     = strOwnerCompanyID;
                entity.CREATEUSERID       = strOwnerID;
                entity.CREATEPOSTID       = strOwnerPostID;
                entity.CREATEDEPARTMENTID = strOwnerDepartmentID;
                entity.CREATECOMPANYID    = strOwnerCompanyID;
                string        strMsg = "";
                T_HR_EMPLOYEE emp    = ser.GetEmployeeByID(entity.T_HR_EMPLOYEE.EMPLOYEEID);
                if (emp != null)
                {
                    entity.OWNERID           = emp.EMPLOYEEID;
                    entity.OWNERPOSTID       = emp.OWNERPOSTID;
                    entity.OWNERDEPARTMENTID = emp.OWNERDEPARTMENTID;
                    entity.OWNERCOMPANYID    = emp.OWNERCOMPANYID;
                }
                ser.PensionMasterAdd(entity, ref strMsg);
                return(entity.PENSIONMASTERID);
                //}
                //else
                //{
                //    return pensionTmp.PENSIONMASTERID;
                //}
            }
            catch (Exception e)
            {
                string abc = "<HR>Message=[" + e.Message + "]" + "<HR>Source=[" + e.Source + "]<HR>StackTrace=[" + e.StackTrace + "]<HR>TargetSite=[" + e.TargetSite + "]";
                Tracer.Debug(abc);
                return(abc);
            }
        }
Пример #32
0
        public List <T_HR_PENSIONDETAIL> ReadExcelDataFirst()
        {
            string StrFile = FileName;
            List <T_HR_PENSIONDETAIL> ListDetails = new List <T_HR_PENSIONDETAIL>();

            try
            {
                SMT.Foundation.Core.BaseDAL dal        = new SMT.Foundation.Core.BaseDAL();
                Dictionary <string, Int32>  dictIndexs = new Dictionary <string, Int32>();

                ReadExcelColumn(dictIndexs);
                //excel读取开始行号
                int beginRow = Convert.ToInt32(ImportConfig.STARTROW.GetValueOrDefault(2));
                //excel读取结束行号
                int endRow = Convert.ToInt32(ImportConfig.ENDROW.GetValueOrDefault(2));


                int i = 1;
                System.Text.UTF8Encoding code = new UTF8Encoding();
                using (StreamReader sr = new StreamReader(StrFile, Encoding.GetEncoding("gb2312")))
                {
                    string line;
                    // Read and display lines from the file until the end of
                    // the file is reached.

                    //while ((line = sr.ReadLine()) != null)
                    while (!string.IsNullOrEmpty(line = sr.ReadLine()))
                    {
                        string[] lineTmp = line.Split(',');
                        if (i >= beginRow && i <= endRow)
                        {
                            //创建一个实列
                            Type   type   = EntityInstance.GetType();
                            object entity = Activator.CreateInstance(type);

                            //得到excel二维数组当前行中A列的值
                            //r = (Range)workSheet.Cells[i, "A"];
                            //string value = r.Text.ToString().Trim();

                            #region 实例化对像
                            foreach (T_HR_IMPORTSETDETAIL detail in ImportConfig.T_HR_IMPORTSETDETAIL)
                            {
                                if (!string.IsNullOrEmpty(detail.EXECELCOLUMN))
                                {
                                    //r = (Range)workSheet.Cells[i, detail.EXECELCOLUMN];
                                    ////r = (Range)workSheet.Cells[i, "D"];
                                    //string value = r.Text.ToString().Trim();
                                    int index = 0;
                                    //把列名拆成字符数组
                                    char[] tmps = detail.EXECELCOLUMN.ToUpper().ToCharArray();
                                    if (tmps.Length == 1)
                                    {
                                        //列名是一个字母 直接从字典查出列对应的索引
                                        index = dictIndexs[tmps[0].ToString()];
                                    }
                                    else
                                    {
                                        //列名是双字符  计算出列对应的索引
                                        index = (dictIndexs[tmps[0].ToString()] + 1) * 26 + (dictIndexs[tmps[1].ToString()]);
                                    }
                                    // int index = Convert.ToInt32(dictIndexs[detail.EXECELCOLUMN.ToUpper()]);
                                    string       value = lineTmp[index].Trim();
                                    PropertyInfo prop  = type.GetProperty(detail.ENTITYCOLUMNCODE);
                                    if (prop != null)
                                    {
                                        if (!string.IsNullOrEmpty(value))
                                        {
                                            if (prop.PropertyType.BaseType == typeof(System.ValueType))
                                            {
                                                if (prop.PropertyType.ToString().Contains(typeof(DateTime).ToString()))
                                                {
                                                    prop.SetValue(entity, Convert.ToDateTime(value), null);
                                                }
                                                else
                                                {
                                                    decimal tmpValue;
                                                    decimal.TryParse(value, out tmpValue);
                                                    prop.SetValue(entity, tmpValue, null);
                                                }
                                            }
                                            else
                                            {
                                                prop.SetValue(entity, value, null);
                                            }
                                        }
                                    }
                                }
                            }
                            #endregion
                            PropertyInfo prop1 = type.GetProperty("PENSIONDETAILID");
                            prop1.SetValue(entity, Guid.NewGuid().ToString(), null);
                            PropertyInfo prop2 = type.GetProperty("OWNERCOMPANYID");
                            prop2.SetValue(entity, paras["OWNERCOMPANYID"], null);
                            PropertyInfo prop3 = type.GetProperty("OWNERDEPARTMENTID");
                            prop3.SetValue(entity, paras["OWNERDEPARTMENTID"], null);
                            PropertyInfo prop4 = type.GetProperty("OWNERPOSTID");
                            prop4.SetValue(entity, paras["OWNERPOSTID"], null);
                            PropertyInfo prop5 = type.GetProperty("OWNERID");
                            prop5.SetValue(entity, paras["OWNERID"], null);
                            PropertyInfo prop6 = type.GetProperty("CREATEUSERID");
                            prop6.SetValue(entity, paras["CREATEUSERID"], null);
                            PropertyInfo prop7 = type.GetProperty("PENSIONYEAR");
                            prop7.SetValue(entity, Convert.ToDecimal(paras["YEAR"]), null);
                            PropertyInfo prop8 = type.GetProperty("PENSIONMOTH");
                            prop8.SetValue(entity, Convert.ToDecimal(paras["MONTH"]), null);
                            PropertyInfo prop9 = type.GetProperty("CREATEDATE");
                            prop9.SetValue(entity, System.DateTime.Now, null);

                            T_HR_PENSIONDETAIL tmpDetail = entity as T_HR_PENSIONDETAIL;
                            string             idnumber  = string.Empty;
                            if (string.IsNullOrEmpty(tmpDetail.IDNUMBER))
                            {
                                idnumber = "Null0";
                            }
                            else
                            {
                                idnumber = tmpDetail.IDNUMBER.ToString();
                            }
                            //查询员工身份证号和正式员工是否存在
                            var employee = from e in dal.GetObjects <T_HR_EMPLOYEE>()
                                           where e.IDNUMBER == idnumber && e.EDITSTATE == "1"
                                           select e;
                            if (employee.Count() > 0)
                            {
                                T_HR_EMPLOYEE entCurEmp = employee.FirstOrDefault();
                                if (tmpDetail.EMPLOYEEID != entCurEmp.EMPLOYEEID)
                                {
                                    tmpDetail.EMPLOYEEID = entCurEmp.EMPLOYEEID;
                                }
                            }
                            else
                            {
                                tmpDetail.IDNUMBER = idnumber + "此身份证号无效或员工已离职";

                                //Tracer.Debug("PensionImport:" + i.ToString() + "行,没有员工身份证为此号码:" + idnumber);
                            }
                            ListDetails.Add(tmpDetail);
                        }
                        i++;
                    }
                }

                return(ListDetails);
            }
            catch (Exception ex)
            {
                //TODO: 写成导入日志
                //throw ex;
                Tracer.Debug("My error" + ex.Message);

                return(null);
            }
        }
Пример #33
0
        private void lkEmployee_FindClick(object sender, EventArgs e)
        {
            T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
            Form.Salary.ResignForm form = new SMT.HRM.UI.Form.Salary.ResignForm();
            EntityBrowser browser = new EntityBrowser(form);
            form.SaveClicked += (obj, ev) =>
            {

                temp.EMPLOYEEID = form.SelectedEmployees.FirstOrDefault().EMPLOYEEID;
                temp.EMPLOYEECNAME = form.SelectedEmployees.FirstOrDefault().EMPLOYEENAME;
                temp.EMPLOYEECODE = form.SelectedEmployees.FirstOrDefault().EMPLOYEECODE;
                temp.OWNERID = form.SelectedEmployees.FirstOrDefault().OWNERID;
                temp.OWNERPOSTID = form.SelectedEmployees.FirstOrDefault().OWNERPOSTID;
                temp.OWNERDEPARTMENTID = form.SelectedEmployees.FirstOrDefault().OWNERDEPARTMENTID;
                temp.OWNERCOMPANYID = form.SelectedEmployees.FirstOrDefault().OWNERCOMPANYID;
                lkEmployee.DataContext = temp;
                lkEmployee.TxtLookUp.Text = temp.EMPLOYEECNAME + "-" + form.SelectedEmployees.FirstOrDefault().PostName
                    + "-" + form.SelectedEmployees.FirstOrDefault().DepartmentName + "-" + form.SelectedEmployees.FirstOrDefault().CompanyName;
            };
            //form.MinWidth = 450;
            form.Height = 450;
            browser.Height = 400;
            //browser.ReloadDataEvent += new EntityBrowser.refreshGridView(browser_ReloadDataEvent);
            browser.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });

        }
Пример #34
0
        private bool Save()
        {
            //  List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll();
            string strMsg = "";
            RefreshUI(RefreshedTypes.ShowProgressBar);
            if (string.IsNullOrEmpty(lkEmployeeName.TxtLookUp.Text))
            {
                //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"));
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"),
                Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;
            }

            //if (validators.Count > 0)
            //{
            //    Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("REQUIREDFIELDS"));
            //    RefreshUI(RefreshedTypes.HideProgressBar);
            //    return false;
            //}
            if (!SMT.SaaS.FrameworkUI.Common.Utility.CheckDataIsValid(Group1))
            {
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;
            }
            if (cbInsuranceType.SelectedIndex < 0)
            {

                //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "INSURANCECATEGORY"));
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "INSURANCECATEGORY"),
                Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;


            }
            if (!string.IsNullOrEmpty(dpStartDate.Text) && !string.IsNullOrEmpty(dpLastDate.Text))
            {
                DateTime startDate = Convert.ToDateTime(dpStartDate.Text);
                DateTime lastDate = Convert.ToDateTime(dpLastDate.Text);
                if (startDate > lastDate)
                {
                    //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("DATEERROR", "STARTDATE,LASTDATE"));
                    ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("DATEERROR", "STARTDATE,LASTDATE"),
              Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                    RefreshUI(RefreshedTypes.HideProgressBar);
                    return false;
                }

            }
            if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE)
            {
                SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
                temp.EMPLOYEEID = employee.EMPLOYEEID;
                temp.EMPLOYEECNAME = employee.EMPLOYEECNAME;
                temp.EMPLOYEECODE = employee.EMPLOYEECODE;
                temp.EMPLOYEEENAME = employee.EMPLOYEEENAME;
                temp.OWNERPOSTID = employee.OWNERPOSTID;
                temp.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                temp.OWNERCOMPANYID = employee.OWNERCOMPANYID;

                EmployeeInsurance.OWNERID = employee.EMPLOYEEID;
                EmployeeInsurance.OWNERPOSTID = employee.OWNERPOSTID;
                EmployeeInsurance.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                EmployeeInsurance.OWNERCOMPANYID = employee.OWNERCOMPANYID;

                EmployeeInsurance.T_HR_EMPLOYEE = temp;
            }
            if (FormType == FormTypes.New)
            {
                //所属
                EmployeeInsurance.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                EmployeeInsurance.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                EmployeeInsurance.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
                EmployeeInsurance.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                EmployeeInsurance.CREATEDATE = DateTime.Now;


                client.EmployeeInsuranceAddAsync(EmployeeInsurance, strMsg);
            }
            else
            {
                EmployeeInsurance.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                EmployeeInsurance.UPDATEDATE = DateTime.Now;
                client.EmployeeInsuranceUpdateAsync(EmployeeInsurance, strMsg, "Edit");
            }

            return true;
        }
Пример #35
0
 void client_GetPerformaceRewardByIDCompleted(object sender, GetPerformaceRewardByIDCompletedEventArgs e)
 {
     if (e.Error != null && !string.IsNullOrEmpty(e.Error.Message))
     {
         Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(e.Error.Message));
     }
     else
     {
         if (e.Result == null)
         {
             Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("NOTFOUND"));
             return;
         }
         performanceRewardRecord = e.Result;
         this.DataContext = performanceRewardRecord;
         T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE();
         employee.EMPLOYEECNAME = performanceRewardRecord.EMPLOYEENAME;
         lkEmployeeName.DataContext = employee;
         RefreshUI(RefreshedTypes.AuditInfo);
         SetToolBar();
     }
 }
Пример #36
0
        /// <summary>
        /// 获取确认单信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void client_GetLeftOfficeConfirmByIDCompleted(object sender, GetLeftOfficeConfirmByIDCompletedEventArgs e)
        {
            if (e.Error != null && e.Error.Message != "")
            {
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("ERRORINFO"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Error);
            }
            else
            {
                if (e.Result == null)
                {
                    ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("NOTFOUND"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Error);
                    return;
                }
                LeftOfficeConfirm = e.Result;
                client.GetAllPostByEmployeeIDAsync(LeftOfficeConfirm.EMPLOYEEID);
                if (FormType == FormTypes.Resubmit)
                {
                    LeftOfficeConfirm.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString();

                }
                if (LeftOfficeConfirm.CHECKSTATE != Convert.ToInt32(CheckStates.UnSubmit).ToString())
                {
                    dpStopPaymentDate.IsEnabled = false;
                    dpConfirmDate.IsEnabled = false;
                }
                //  this.DataContext = LeftOfficeConfirm.T_HR_LEFTOFFICE;
                this.DataContext = LeftOfficeConfirm;

                //显示所属公司和岗位
                List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY> listCompany = Application.Current.Resources["SYS_CompanyInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY>;
                txtCompany.Text = (from ent in listCompany
                                   where ent.COMPANYID == LeftOfficeConfirm.OWNERCOMPANYID
                                   select ent).FirstOrDefault().CNAME;
                List<SMT.Saas.Tools.OrganizationWS.T_HR_POST> listPost = Application.Current.Resources["SYS_PostInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_POST>;
                //txtPost.Text = (from ent in listPost
                //                where ent.POSTID == LeftOfficeConfirm.OWNERPOSTID
                //                select ent).FirstOrDefault().T_HR_POSTDICTIONARY.POSTNAME;
                var postName = (from ent in listPost
                                where ent.POSTID == LeftOfficeConfirm.OWNERPOSTID
                                select ent).FirstOrDefault();
                if (postName != null)
                {
                    txtPost.Text = postName.T_HR_POSTDICTIONARY.POSTNAME;
                }
                else
                {
                    oClient.GetPostByIdAsync(LeftOfficeConfirm.OWNERPOSTID);
                }
                //显示姓名
                T_HR_EMPLOYEE etmp = new T_HR_EMPLOYEE();
                etmp.EMPLOYEECNAME = LeftOfficeConfirm.EMPLOYEECNAME;
                etmp.EMPLOYEEID = LeftOfficeConfirm.EMPLOYEEID;
                lkEmployeeName.DataContext = etmp;

                //有离职申请 禁用控件
                if (LeftOfficeConfirm.T_HR_LEFTOFFICE != null)
                {
                    EnabledControl();
                }

                if (LeftOfficeConfirm.STOPPAYMENTDATE != null)
                {
                    dpStopPaymentDate.Text = LeftOfficeConfirm.STOPPAYMENTDATE.ToString();
                }
                //if (LeftOfficeConfirm.CONFIRMDATE != null)
                //{
                //    dpConfirmDate.Text = LeftOfficeConfirm.CONFIRMDATE.ToString();
                //}
               // fbClient.GetLeavingUserAsync(LeftOfficeConfirm.EMPLOYEEID);
                //oaClient.GetEmployeeNotReturnListByUserIdAsync(LeftOfficeConfirm.EMPLOYEEID);

                System.Collections.ObjectModel.ObservableCollection<string> CreateUserIDs = new System.Collections.ObjectModel.ObservableCollection<string>();
                CreateUserIDs.Add(LeftOfficeConfirm.CREATEUSERID);
                CreateUserIDs.Add(LeftOfficeConfirm.EMPLOYEEID);
                client.GetEmployeeToEngineAsync(CreateUserIDs);
                //获取员工借还款
                GetPersonAccountData();
            }
        }
Пример #37
0
 public string AddEmployeeEntry(T_HR_EMPLOYEE employee, T_HR_EMPLOYEEENTRY entity, T_HR_EMPLOYEEPOST ent)
 {
     using (EmployeeEntryBLL bll = new EmployeeEntryBLL())
     {
         return bll.EmployeeEntryAdd(employee, entity, ent);
     }
 }
Пример #38
0
        private bool Save()
        {
            string strMsg = "";

            //  List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll();
            RefreshUI(RefreshedTypes.ShowProgressBar);
            if (!CheckData())
            {
                needsubmit = false;
                isSubmit   = false;
                return(false);
            }

            if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE)
            {
                SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                T_HR_EMPLOYEE ent = new T_HR_EMPLOYEE();
                ent.EMPLOYEEID        = employee.EMPLOYEEID;
                ent.EMPLOYEECNAME     = employee.EMPLOYEECNAME;
                ent.OWNERPOSTID       = employee.OWNERPOSTID;
                ent.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                ent.OWNERCOMPANYID    = employee.OWNERCOMPANYID;

                EmployeeContract.OWNERCOMPANYID    = employee.OWNERCOMPANYID;
                EmployeeContract.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                EmployeeContract.OWNERPOSTID       = employee.OWNERPOSTID;
                EmployeeContract.OWNERID           = employee.OWNERID;
                EmployeeContract.T_HR_EMPLOYEE     = ent;
            }


            //上传的文件
            //ctrFile.FormID = EmployeeContract.EMPLOYEECONTACTID;
            //ctrFile.Save();
            //日期转换
            if (falseRabtn.IsChecked == true)
            {
                EmployeeContract.TODATE    = Convert.ToDateTime(dpEndDate.Text).ToShortDateString();
                EmployeeContract.NOENDDATE = "0";
            }
            else
            {
                EmployeeContract.NOENDDATE = "1";
                dpEndDate.Text             = "";
                nudDay.Value          = 0;
                nudDay.IsEnabled      = false;
                employeeContractIsSet = false;
            }

            if (FormType == FormTypes.New)
            {
                //所属
                EmployeeContract.CREATECOMPANYID    = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                EmployeeContract.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                EmployeeContract.CREATEPOSTID       = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;

                //EmployeeContract.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString();

                client.EmployeeContractAddAsync(EmployeeContract, strMsg);
            }
            else
            {
                EmployeeContract.UPDATEDATE   = System.DateTime.Now;
                EmployeeContract.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;;
                //client.GetEmployeeContractEngineXmlAsync(EmployeeContract);
                client.EmployeeContractUpdateAsync(EmployeeContract, "Edit");
            }
            return(true);
        }
Пример #39
0
 public LeftOfficeConfirmForm(FormTypes formType, T_HR_LEFTOFFICE leftOffice)
 {
     InitializeComponent();
     FormType = formType;
     LeftOfficeConfirm = new T_HR_LEFTOFFICECONFIRM();
     LeftOfficeConfirm.T_HR_LEFTOFFICE = new T_HR_LEFTOFFICE();
     LeftOfficeConfirm.T_HR_LEFTOFFICE.DIMISSIONID = leftOffice.DIMISSIONID;
     LeftOfficeConfirm.CONFIRMID = Guid.NewGuid().ToString();
     LeftOfficeConfirm.EMPLOYEEID = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
     LeftOfficeConfirm.OWNERID = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
     LeftOfficeConfirm.OWNERPOSTID = leftOffice.OWNERPOSTID;
     LeftOfficeConfirm.OWNERDEPARTMENTID = leftOffice.OWNERDEPARTMENTID;
     LeftOfficeConfirm.OWNERCOMPANYID = leftOffice.OWNERCOMPANYID;
     LeftOfficeConfirm.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
     LeftOfficeConfirm.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString();
     LeftOfficeConfirm.CREATEDATE = DateTime.Now;
     LeftOfficeConfirm.CONFIRMDATE = DateTime.Now;
    // this.dpConfirmDate.Text = DateTime.Now.ToString("yyyy/MM/dd");//奇怪
     LeftOfficeConfirm.EMPLOYEECNAME = leftOffice.T_HR_EMPLOYEE.EMPLOYEECNAME;
     LeftOfficeConfirm.APPLYDATE = leftOffice.APPLYDATE;
     LeftOfficeConfirm.LEFTOFFICEDATE = leftOffice.LEFTOFFICEDATE;
     LeftOfficeConfirm.EMPLOYEEPOSTID = leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID;
     LeftOfficeConfirm.LEFTOFFICECATEGORY = leftOffice.LEFTOFFICECATEGORY;
     LeftOfficeConfirm.LEFTOFFICEREASON = leftOffice.LEFTOFFICEREASON;
     LeftOfficeConfirm.REMARK = leftOffice.REMARK;
     List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY> listCompany = Application.Current.Resources["SYS_CompanyInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY>;
     txtCompany.Text = (from ent in listCompany
                        where ent.COMPANYID == leftOffice.OWNERCOMPANYID
                        select ent).FirstOrDefault().CNAME;
     List<SMT.Saas.Tools.OrganizationWS.T_HR_POST> listPost = Application.Current.Resources["SYS_PostInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_POST>;
     
     txtPost.Text = (from ent in listPost
                     where ent.POSTID == leftOffice.OWNERPOSTID
                     select ent).FirstOrDefault().T_HR_POSTDICTIONARY.POSTNAME;
     
     T_HR_EMPLOYEE ep = new T_HR_EMPLOYEE();
     ep.EMPLOYEECNAME = LeftOfficeConfirm.EMPLOYEECNAME;
     ep.EMPLOYEEID = LeftOfficeConfirm.EMPLOYEEID;
     createUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
     
     InitParas("fromLeftoffice");
     conformID = "fromLeftoffice";
     EnabledControl();
     SetToolBar();
     this.DataContext = LeftOfficeConfirm;
     lkEmployeeName.DataContext = ep;
    // fbClient.GetLeavingUserAsync(LeftOfficeConfirm.EMPLOYEEID);
     //oaClient.GetEmployeeNotReturnListByUserIdAsync(LeftOfficeConfirm.EMPLOYEEID);
     //获取员工借还款
     client.GetAllPostByEmployeeIDAsync(LeftOfficeConfirm.EMPLOYEEID);
     GetPersonAccountData();
 }
Пример #40
0
        private void LookUp_FindClick(object sender, EventArgs e)
        {
            #region
            OrganizationLookup lookup = new OrganizationLookup();

            lookup.SelectedObjType = OrgTreeItemTypes.Personnel;
            lookup.SelectedClick += (obj, ev) =>
            {
                List<ExtOrgObj> ent = lookup.SelectedObj as List<ExtOrgObj>;

                if (ent != null && ent.Count > 0)
                {
                    ExtOrgObj companyInfo = ent.FirstOrDefault();
                    ExtOrgObj post = (ExtOrgObj)companyInfo.ParentObject;
                    string postid = post.ObjectID;
                    ExtOrgObj dept = (ExtOrgObj)post.ParentObject;
                    string deptid = dept.ObjectID;
                    SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY corp = (dept.ObjectInstance as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT).T_HR_COMPANY;
                    string corpid = corp.COMPANYID;

                    T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
                    temp = ent.FirstOrDefault().ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;

                    lkEmployeeName.DataContext = temp;
                    Employee.FATHEREMPLOYEEID = temp.EMPLOYEEID;
                }

            };

            lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            #endregion

        }
Пример #41
0
        //获取发布对象
        void DocDistrbuteClient_GetDocDistrbuteInfosCompleted(object sender, GetDocDistrbuteInfosCompletedEventArgs e)
        {
            try
            {
                if (e.Error == null)
                {
                    if (e.Result != null)
                    {
                        List<SMT.SaaS.OA.UI.SmtOACommonOfficeService.T_OA_DISTRIBUTEUSER> distributeList = e.Result.ToList();

                        foreach (var h in distributeList)
                        {
                            object obj = new object();
                            SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj extOrgObj = new SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj();
                            if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Company).ToString())
                            {
                                T_HR_COMPANY tmp = new T_HR_COMPANY();
                                tmp.COMPANYID = h.VIEWER;
                                //tmp.CNAME = "";
                                tmp.CNAME = Utility.GetCompanyName(tmp.COMPANYID);
                                obj = tmp;
                            }
                            else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Department).ToString())
                            {
                                T_HR_DEPARTMENT tmp = new T_HR_DEPARTMENT();
                                tmp.DEPARTMENTID = h.VIEWER;
                                T_HR_DEPARTMENTDICTIONARY tmpdict = new T_HR_DEPARTMENTDICTIONARY();
                                //tmpdict.DEPARTMENTNAME = "";
                                tmpdict.DEPARTMENTNAME = Utility.GetDepartmentName(h.VIEWER);
                                tmp.T_HR_DEPARTMENTDICTIONARY = tmpdict;
                                obj = tmp;
                            }
                            else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Post).ToString())
                            {
                                T_HR_POST tmp = new T_HR_POST();
                                tmp.POSTLEVEL = System.Convert.ToDecimal(h.VIEWER);
                                T_HR_POSTDICTIONARY tmpdict = new T_HR_POSTDICTIONARY();
                                //tmpdict.POSTNAME = "";
                                tmpdict.POSTNAME = Utility.GetPostName(h.VIEWER);
                                tmp.T_HR_POSTDICTIONARY = tmpdict;

                                obj = tmp;
                            }
                            else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Personnel).ToString())
                            {
                                T_HR_EMPLOYEE tmp = new T_HR_EMPLOYEE();
                                tmp.EMPLOYEEID = h.VIEWER;
                                tmp.EMPLOYEECNAME = "";
                                obj = tmp;
                            }
                            extOrgObj.ObjectInstance = obj;

                            issuanceExtOrgObj.Add(extOrgObj);
                        }
                        BindData();
                    }
                }
                else
                    Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), e.Error.Message);
            }
            catch (Exception ex)
            {
                //HtmlPage.Window.Alert(ex.ToString());
                Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(ex.Message.ToString()));
            }
        }
Пример #42
0
        void LeftOfficeForm_Loaded(object sender, RoutedEventArgs e)
        {
            //重载提交按钮-提交先保存
            EntityBrowser entBrowser = this.FindParentByType<EntityBrowser>();
            entBrowser.BtnSaveSubmit.Click -= new RoutedEventHandler(entBrowser.btnSubmit_Click);
            entBrowser.BtnSaveSubmit.Click += new RoutedEventHandler(BtnSaveSubmit_Click);
            #region 原来的
            if (FormType == FormTypes.Browse || FormType == FormTypes.Audit)
            {
                this.IsEnabled = false;
            }
            #endregion
            if (FormType == FormTypes.New)
            {
                LeftOffice = new T_HR_LEFTOFFICE();
                LeftOffice.DIMISSIONID = Guid.NewGuid().ToString();
                LeftOffice.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                LeftOffice.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString();
                LeftOffice.CREATEDATE = DateTime.Now;
                leftOffice.APPLYDATE = DateTime.Now;
                LeftOffice.OWNERCOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                LeftOffice.OWNERDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                LeftOffice.OWNERPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;
                LeftOffice.OWNERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;

                T_HR_EMPLOYEE employeeTmp = new T_HR_EMPLOYEE();
                employeeTmp.EMPLOYEEID = Common.CurrentLoginUserInfo.EmployeeID;
                employeeTmp.EMPLOYEECNAME = Common.CurrentLoginUserInfo.EmployeeName;
                LeftOffice.T_HR_EMPLOYEE = employeeTmp;

                dpApplyDate.Text = System.DateTime.Now.ToShortDateString();
                lkEmployeeName.DataContext = employeeTmp;
                createUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
                client.GetPostsActivedByEmployeeIDAsync(employeeTmp.EMPLOYEEID);
                SetToolBar();
            }
            else
            {
                RefreshUI(RefreshedTypes.ShowProgressBar);
                lkEmployeeName.IsEnabled = false;
                GetEmployeeViewsPaging();
                client.GetLeftOfficeByIDAsync(leftofficeID);
            }
            //设置默认值:新建时,离职类型只有辞职,其他的都不要
            //cbxEmployeeType.SelectedValue = "1";
            //cbxEmployeeType.IsEnabled = false;
        }
Пример #43
0
        public decimal GetMaxDays(List <T_HR_EMPLOYEE> listEmployees, List <T_HR_EMPLOYEEENTRY> entrys, List <T_HR_EMPLOYEEPOST> employeePosts, T_HR_EMPLOYEELEVELDAYCOUNT employeeFreeCount, bool isBreak, List <T_HR_ATTENDFREELEAVE> freeLeaves)
        {
            decimal deDays = 0;

            try
            {
                //获取某个员工的入职信息
                var qw = from ent in entrys
                         where ent.T_HR_EMPLOYEE.EMPLOYEEID == employeeFreeCount.EMPLOYEEID
                         select ent;
                //获取员工的岗位信息
                var qp = from ent in employeePosts
                         where ent.T_HR_EMPLOYEE.EMPLOYEEID == employeeFreeCount.EMPLOYEEID &&
                         ent.T_HR_EMPLOYEE.OWNERCOMPANYID == employeeFreeCount.OWNERCOMPANYID
                         select ent;
                var entEmployees = from ent in listEmployees
                                   where ent.EMPLOYEEID == employeeFreeCount.EMPLOYEEID
                                   select ent;

                //isBreak 为true 调用处则跳出循环
                if (qw == null)
                {
                    isBreak = true;
                }
                if (qp == null)
                {
                    isBreak = true;
                }
                if (entEmployees == null)
                {
                    isBreak = true;
                }
                T_HR_EMPLOYEE     entEmployee = entEmployees.FirstOrDefault();
                T_HR_EMPLOYEEPOST entPost     = qp.FirstOrDefault();
                if (entPost == null)
                {
                    isBreak = true;
                }
                T_HR_EMPLOYEEENTRY entEntry = qw.FirstOrDefault();
                if (entEntry == null)
                {
                    isBreak = true;
                }
                DateTime dtEntryDate = entEntry.ENTRYDATE.Value;
                TimeSpan tsWorkTime = DateTime.Now.Subtract(dtEntryDate);
                decimal  dCurWorkAge = 0, dEmployeePostLevel = 0;
                dCurWorkAge = decimal.Round(tsWorkTime.Days / 30, 0);
                decimal.TryParse(entPost.POSTLEVEL.ToString(), out dEmployeePostLevel);
                foreach (T_HR_ATTENDFREELEAVE entAttendFreeLeave in freeLeaves)
                {
                    T_HR_LEAVETYPESET entLeaveTypeSet = entAttendFreeLeave.T_HR_LEAVETYPESET;
                    if (entLeaveTypeSet == null)
                    {
                        continue;
                    }

                    string strVacType  = entLeaveTypeSet.LEAVETYPEVALUE;
                    string strFineType = entLeaveTypeSet.FINETYPE;

                    //如果是调休假,就不需要自动生成
                    if (strVacType == (Convert.ToInt32(Common.LeaveTypeValue.AdjustLeave) + 1).ToString())
                    {
                        continue;
                    }

                    //获取假期标准的带薪假设置记录
                    FreeLeaveDaySetBLL bllFreeLeave = new FreeLeaveDaySetBLL();
                    IQueryable <T_HR_FREELEAVEDAYSET> entFreeLeaves = bllFreeLeave.GetFreeLeaveDaySetByLeaveTypeID(entLeaveTypeSet.LEAVETYPESETID);

                    if (strFineType != (Convert.ToInt32(Common.LeaveFineType.Free) + 1).ToString())
                    {
                        continue;
                    }

                    decimal dPostLevelStrict = 0;
                    decimal.TryParse(entLeaveTypeSet.POSTLEVELRESTRICT, out dPostLevelStrict);

                    if (dPostLevelStrict > dEmployeePostLevel)
                    {
                        continue;
                    }

                    if (entLeaveTypeSet.ENTRYRESTRICT == (Convert.ToInt32(Common.IsChecked.Yes) + 1).ToString())
                    {
                        if (entEmployee.EMPLOYEESTATE != "1")
                        {
                            continue;
                        }
                    }

                    if (entLeaveTypeSet.SEXRESTRICT != "2")
                    {
                        if (entLeaveTypeSet.SEXRESTRICT != entEmployee.SEX)
                        {
                            continue;
                        }
                    }

                    if (!string.IsNullOrEmpty(entLeaveTypeSet.POSTLEVELRESTRICT))
                    {
                        decimal dPostLeavlStrict = decimal.Parse(entLeaveTypeSet.POSTLEVELRESTRICT);
                    }

                    int     j            = -1;
                    decimal dLeaveDay    = 0;
                    string  LeaveDayName = string.Empty;
                    if (entFreeLeaves.Count() > 0)
                    {
                        for (int i = 0; i < entFreeLeaves.Count(); i++)
                        {
                            if (entFreeLeaves.ToList()[i].MINIMONTH > dCurWorkAge)
                            {
                                continue;
                            }

                            if (entFreeLeaves.ToList()[i].MAXMONTH < dCurWorkAge)
                            {
                                continue;
                            }

                            dLeaveDay    = entFreeLeaves.ToList()[i].LEAVEDAYS.Value;
                            LeaveDayName = entLeaveTypeSet.LEAVETYPENAME;
                            j            = i;
                            break;
                        }
                    }
                    else
                    {
                        dLeaveDay = entLeaveTypeSet.MAXDAYS.Value;
                        j         = 1;
                    }

                    decimal dAddDays = 0;
                    if (j > -1)
                    {
                        if (entFreeLeaves.Count() > 0)
                        {
                            if (j == 0)
                            {
                                dAddDays = dLeaveDay;
                            }
                            else
                            {
                                dAddDays = dLeaveDay - entFreeLeaves.ToList()[j - 1].LEAVEDAYS.Value;
                            }
                        }
                        else
                        {
                            dAddDays = dLeaveDay;
                        }
                    }
                    string strNumOfDecDefault = "0.5";
                    dAddDays  = RoundOff(dAddDays, strNumOfDecDefault, 1);
                    dLeaveDay = RoundOff(dLeaveDay, strNumOfDecDefault, 1);
                    deDays    = dAddDays;
                }
            }
            catch (Exception ex)
            {
            }
            return(deDays);
        }
Пример #44
0
        private void ImportSalaryRecordItem(ref string UImsg, ref string msg, string strIDNUMBER, string strEmployeeName, string strSalaryItemName, string strSalaryItemSUM, T_HR_EMPLOYEE employee, T_HR_EMPLOYEESALARYRECORD record, T_HR_SALARYARCHIVE salaryAchive)
        {
            T_HR_EMPLOYEESALARYRECORDITEM SalaryItem = new T_HR_EMPLOYEESALARYRECORDITEM();

            SalaryItem.SALARYRECORDITEMID = Guid.NewGuid().ToString();

            SalaryItem.T_HR_EMPLOYEESALARYRECORDReference.EntityKey =
                new EntityKey(qualifiedEntitySetName + "T_HR_EMPLOYEESALARYRECORD", "EMPLOYEESALARYRECORDID", record.EMPLOYEESALARYRECORDID);

            var item = (from ent in dal.GetObjects <T_HR_SALARYARCHIVEITEM>()
                        join entb in dal.GetObjects <T_HR_SALARYITEM>()
                        on ent.SALARYITEMID equals entb.SALARYITEMID
                        where entb.SALARYITEMNAME == strSalaryItemName &&
                        ent.T_HR_SALARYARCHIVE.SALARYARCHIVEID == salaryAchive.SALARYARCHIVEID
                        select ent).FirstOrDefault();

            if (item != null)
            {
                SalaryItem.SALARYITEMID     = item.SALARYITEMID;
                SalaryItem.SALARYARCHIVEID  = salaryAchive.SALARYARCHIVEID;
                SalaryItem.SALARYSTANDARDID = item.SALARYSTANDARDID;
                SalaryItem.ORDERNUMBER      = item.ORDERNUMBER;
                SalaryItem.SUM        = AES.AESEncrypt(strSalaryItemSUM);
                SalaryItem.REMARK     = "文件导入";
                SalaryItem.CREATEDATE = System.DateTime.Now;
                int iadd = dal.Add(SalaryItem);

                if (iadd >= 1)
                {
                    msg = "薪资项目导入成功,受影响的条数:" + iadd + " 身份证号码:" + strIDNUMBER
                          + " 导入的员工姓名:" + strEmployeeName + " 根据身份证号查到的员工姓名:" + employee.EMPLOYEECNAME
                          + " 薪资项目名:" + strSalaryItemName + " 薪资项目金额:" + strSalaryItemSUM;
                    UImsg += msg + System.Environment.NewLine;
                    Tracer.Debug(msg);
                }
                else
                {
                    msg = "薪资项目导入失败,受影响的条数:" + iadd + " 身份证号码:" + strIDNUMBER
                          + " 导入的员工姓名:" + strEmployeeName + " 根据身份证号查到的员工姓名:" + employee.EMPLOYEECNAME
                          + " 薪资项目名:" + strSalaryItemName + " 薪资项目金额:" + strSalaryItemSUM;
                    UImsg += msg + System.Environment.NewLine;
                    Tracer.Debug(msg);
                }
            }
            else
            {
                msg = "薪资项目导入在公司薪资项目或薪资档案中未找到相关薪资项目!" + " 身份证号码:" + strIDNUMBER
                      + " 导入的员工姓名:" + strEmployeeName + " 根据身份证号查到的员工姓名:" + employee.EMPLOYEECNAME
                      + " 薪资项目名:" + strSalaryItemName + " 薪资项目金额:" + strSalaryItemSUM;
                UImsg += msg + System.Environment.NewLine;
                Tracer.Debug(msg);
            }
        }
Пример #45
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        private bool Save()
        {
            // List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll();
            RefreshUI(RefreshedTypes.ShowProgressBar);
            SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
            //是否选择员工
            if (employee != null)
            {
                T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
                temp.EMPLOYEEID = employee.EMPLOYEEID;
                temp.EMPLOYEECNAME = employee.EMPLOYEECNAME;
                temp.OWNERID = employee.EMPLOYEEID;
                temp.OWNERPOSTID = employee.OWNERPOSTID;
                temp.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                temp.OWNERCOMPANYID = employee.OWNERCOMPANYID;
                LeftOffice.T_HR_EMPLOYEE = temp;

                // flowClient.IsExistFlowDataByUserIDAsync(employee.EMPLOYEEID);
                //  LeftOffice.T_HR_EMPLOYEE = employee;


            }
            else
            {
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"),
                    Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                RefreshUI(RefreshedTypes.HideProgressBar);
                return false;
            }

            SaveLeftOffice();


            return true;
        }
Пример #46
0
        /// <summary>
        /// 选择员工
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LookUp_FindClick(object sender, EventArgs e)
        {
            //Dictionary<string, string> cols = new Dictionary<string, string>();
            //cols.Add("EMPLOYEECODE", "T_HR_EMPLOYEE.EMPLOYEECODE");
            //cols.Add("EMPLOYEECNAME", "T_HR_EMPLOYEE.EMPLOYEECNAME");
            //cols.Add("EMPLOYEEENAME", "T_HR_EMPLOYEE.EMPLOYEEENAME");
            //LookupForm lookup = new LookupForm(SMT.Saas.Tools.OrganizationWS.EntityNames.Employee,
            //    typeof(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST[]), cols);

            //lookup.SelectedClick += (o, ev) =>
            //{
            //    SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent = lookup.SelectedObj as SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST; ;

            //    if (ent != null)
            //    {
            //        lkEmployeeName.DataContext = ent.T_HR_EMPLOYEE;
            //    }
            //};

            //lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            OrganizationLookup lookup = new OrganizationLookup();

            lookup.SelectedObjType = OrgTreeItemTypes.Personnel;
            lookup.SelectedClick += (obj, ev) =>
            {
                SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;

                if (ent != null)
                {
                    lkEmployeeName.DataContext = ent;
                    //  SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE temp = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                    T_HR_EMPLOYEE entity = new T_HR_EMPLOYEE();
                    entity.EMPLOYEEID = ent.EMPLOYEEID;
                    entity.EMPLOYEECNAME = ent.EMPLOYEECNAME;
                    entity.OWNERPOSTID = ent.OWNERPOSTID;
                    entity.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID;
                    entity.OWNERCOMPANYID = ent.OWNERCOMPANYID;

                    PensionMaster.OWNERCOMPANYID = ent.OWNERCOMPANYID;
                    PensionMaster.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID;
                    PensionMaster.OWNERPOSTID = ent.OWNERPOSTID;
                    PensionMaster.OWNERID = ent.EMPLOYEEID; //ent.OWNERID; ownerid为空 改成employeeid
                    PensionMaster.T_HR_EMPLOYEE = entity;
                }
            };

            lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
        }
Пример #47
0
        private bool Save()
        {
            string strMsg = "";
            //  List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll();
            RefreshUI(RefreshedTypes.ShowProgressBar);
            if (!CheckData())
            {
                needsubmit = false;
                isSubmit = false;
                return false;
            }

            if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE)
            {
                SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE;
                T_HR_EMPLOYEE ent = new T_HR_EMPLOYEE();
                ent.EMPLOYEEID = employee.EMPLOYEEID;
                ent.EMPLOYEECNAME = employee.EMPLOYEECNAME;
                ent.OWNERPOSTID = employee.OWNERPOSTID;
                ent.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                ent.OWNERCOMPANYID = employee.OWNERCOMPANYID;
                
                EmployeeContract.OWNERCOMPANYID = employee.OWNERCOMPANYID;
                EmployeeContract.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                EmployeeContract.OWNERPOSTID = employee.OWNERPOSTID;
                EmployeeContract.OWNERID = employee.OWNERID;
                EmployeeContract.T_HR_EMPLOYEE = ent;
              
            }


            //上传的文件
            //ctrFile.FormID = EmployeeContract.EMPLOYEECONTACTID;
            //ctrFile.Save();
            //日期转换
            if (falseRabtn.IsChecked == true)
            {
                EmployeeContract.TODATE = Convert.ToDateTime(dpEndDate.Text).ToShortDateString();
                EmployeeContract.NOENDDATE = "0";
                
            }
            else
            {
                EmployeeContract.NOENDDATE = "1";
                dpEndDate.Text = "";
                nudDay.Value = 0;
                nudDay.IsEnabled = false;
                employeeContractIsSet = false;
            }
               
            if (FormType == FormTypes.New)
            {
                //所属
                EmployeeContract.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                EmployeeContract.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                EmployeeContract.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;

                //EmployeeContract.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString();

                client.EmployeeContractAddAsync(EmployeeContract, strMsg);
            }
            else
            {
                EmployeeContract.UPDATEDATE = System.DateTime.Now;
                EmployeeContract.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; ;
                //client.GetEmployeeContractEngineXmlAsync(EmployeeContract);
                client.EmployeeContractUpdateAsync(EmployeeContract, "Edit");
             
              
            }
            return true;
        }
Пример #48
0
        private void HandleEmployeeChanged(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent)
        {
            //给员工赋值
            T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE();
            temp.EMPLOYEEID = ent.T_HR_EMPLOYEE.EMPLOYEEID;
            PostChange.T_HR_EMPLOYEE = new T_HR_EMPLOYEE();
            postChange.T_HR_EMPLOYEE.EMPLOYEEID = temp.EMPLOYEEID;

            if (ent.EMPLOYEEPOSTS[0] != null)
            {
                txtFromCompanyID.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.CNAME;
                txtFromDepartmentID.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME; ;
                txtFromPostID.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_POSTDICTIONARY.POSTNAME;

                PostChange.FROMCOMPANYID = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;
                PostChange.FROMDEPARTMENTID = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                PostChange.FROMPOSTID = ent.EMPLOYEEPOSTS[0].T_HR_POST.POSTID;
                // PostChange.FROMPOSTLEVEL = en
            }
            else
            {
                txtFromCompanyID.Text = "";
                txtFromDepartmentID.Text = "";
                txtFromPostID.Text = "";
                PostChange.FROMCOMPANYID = "";
                PostChange.FROMDEPARTMENTID = "";
                PostChange.FROMPOSTID = "";
            }
        }
Пример #49
0
        /// <summary>
        /// 根据传回的xml生成员工入职
        /// </summary>
        /// <param name="eGFunc"></param>
        /// <returns></returns>
        private static string AddEmployeeEntry(IEnumerable<XElement> eGFunc)
        {

            try
            {
                if (eGFunc.Count() == 0)
                {
                    return "";
                }

                string strEmployeeID = string.Empty;
                string strOwnerID = string.Empty;
                string strOwnerPostID = string.Empty;
                string strOwnerDepartmentID = string.Empty;
                string strOwnerCompanyID = string.Empty;
                string Name = string.Empty;
                int PROBATIONPERIOD = 0;
                string Idnumber = string.Empty;
                string sex = string.Empty;

                string isAcceptemploied = string.Empty;
                string createuserid = string.Empty;

                foreach (var q in eGFunc)
                {
                    string strName = q.Attribute("Name").Value;
                    switch (strName)
                    {
                        case "EMPLOYEEID":
                            strEmployeeID = q.Attribute("Value").Value;
                            break;
                        case "OWNERID":
                            strOwnerID = q.Attribute("Value").Value;
                            break;
                        case "OWNERPOSTID":
                            strOwnerPostID = q.Attribute("Value").Value;
                            break;
                        case "OWNERDEPARTMENTID":
                            strOwnerDepartmentID = q.Attribute("Value").Value;
                            break;
                        case "OWNERCOMPANYID":
                            strOwnerCompanyID = q.Attribute("Value").Value;
                            break;
                        case "NAME":
                            Name = q.Attribute("Value").Value;
                            break;
                        case "IDCARDNUMBER":
                            Idnumber = q.Attribute("Value").Value;
                            break;
                        case "SEX":
                            sex = q.Attribute("Value").Value;
                            break;
                        case "PROBATIONPERIOD":
                            PROBATIONPERIOD = int.Parse(q.Attribute("Value").Value);
                            break;
                        case "ISACCEPTEMPLOIED":
                            isAcceptemploied = q.Attribute("Value").Value;
                            break;
                        case "CREATEUSERID":
                            createuserid = q.Attribute("Value").Value;
                            break;

                    }
                }
                //if (isAcceptemploied != "2")
                //{
                //    return string.Empty;
                //}

                PersonnelService ser = new PersonnelService();
                T_HR_EMPLOYEEENTRY entry = new T_HR_EMPLOYEEENTRY();
                T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE();
                T_HR_EMPLOYEEPOST epost = new T_HR_EMPLOYEEPOST();
                employee.EMPLOYEEID = Guid.NewGuid().ToString();
                employee.EMPLOYEECNAME = Name;
                employee.IDNUMBER = Idnumber.Replace("{", "").Replace("}", "");
                employee.OWNERCOMPANYID = strOwnerCompanyID.Replace("{", "").Replace("}", "");
                employee.OWNERDEPARTMENTID = strOwnerDepartmentID.Replace("{", "").Replace("}", "");
                employee.OWNERPOSTID = strOwnerPostID.Replace("{", "").Replace("}", "");
                employee.OWNERID = employee.EMPLOYEEID.Replace("{", "").Replace("}", "");
                employee.CREATEDATE = DateTime.Now;
                employee.SEX = sex;
                employee.CREATEUSERID = createuserid;
                
                epost.EMPLOYEEPOSTID = Guid.NewGuid().ToString();
                epost.ISAGENCY = "0";
                epost.CREATEDATE = DateTime.Now;
                epost.T_HR_POST = new T_HR_POST();
                epost.T_HR_POST.POSTID = employee.OWNERPOSTID;
                epost.T_HR_EMPLOYEE = new T_HR_EMPLOYEE();
                epost.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID;
                epost.CREATEUSERID = createuserid;
                epost.CHECKSTATE = "0";

                entry.EMPLOYEEENTRYID = Guid.NewGuid().ToString();
                entry.CHECKSTATE = "0";
                entry.PROBATIONPERIOD = PROBATIONPERIOD;
                entry.T_HR_EMPLOYEE = new T_HR_EMPLOYEE();
                entry.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID;
                entry.CREATEDATE = System.DateTime.Now;
                entry.EMPLOYEEPOSTID = epost.EMPLOYEEPOSTID;
                entry.OWNERCOMPANYID = employee.OWNERCOMPANYID;
                entry.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID;
                entry.OWNERPOSTID = employee.OWNERPOSTID;
                entry.OWNERID = employee.EMPLOYEEID;
                entry.CREATEUSERID = createuserid;
               

                ser.AddEmployeeEntry(employee, entry, epost);
                return entry.EMPLOYEEENTRYID;

            }
            catch (Exception e)
            {
                string abc = "<HR>Message=[" + e.Message + "]" + "<HR>Source=[" + e.Source + "]<HR>StackTrace=[" + e.StackTrace + "]<HR>TargetSite=[" + e.TargetSite + "]";
                Tracer.Debug(abc);
                return abc;

            }

        }
Пример #50
0
        private string CombinSalaryEmployeeInfo(T_HR_EMPLOYEE entEmployee)
        {
            string strTemp = string.Empty;
            if (entEmployee == null)
            {
                return strTemp;
            }

            strTemp = entEmployee.EMPLOYEEID + ";" + entEmployee.OWNERCOMPANYID;
            return strTemp;
        }
Пример #51
0
        public bool ReadExcelData()
        {
            string path = FileName;

            //Application exc = null;
            //Workbooks workBooks = null;
            //Workbook workBook = null;
            //Worksheet workSheet = null;
            //Range r = null;

            // object oMissing = System.Reflection.Missing.Value;
            SMT.Foundation.Core.BaseDAL dal = new SMT.Foundation.Core.BaseDAL();
            try
            {
                dal.BeginTransaction();
                //exc = new Application();
                //exc.UserControl = true;
                //exc.Application.Workbooks.Open(path, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
                //workBooks = exc.Workbooks;

                //workBook = workBooks[1];
                //workSheet = (Worksheet)workBook.Worksheets[WorkSheetIndex <= 0 ? 1 : WorkSheetIndex];

                //int colCount = workSheet.UsedRange.Columns.Count; //获得列数
                //int rowCount = workSheet.UsedRange.Rows.Count; //获得行数
                //Dictionary<string, string> dictIndexs = new Dictionary<string, string>();
                //dictIndexs.Add("A", "0");
                //dictIndexs.Add("B", "1");
                //dictIndexs.Add("C", "2");
                //dictIndexs.Add("D", "3");
                //dictIndexs.Add("E", "4");
                //dictIndexs.Add("F", "5");
                //dictIndexs.Add("G", "6");
                //dictIndexs.Add("H", "7");
                //dictIndexs.Add("I", "8");
                //dictIndexs.Add("J", "9");
                //dictIndexs.Add("K", "10");
                //dictIndexs.Add("L", "11");
                //dictIndexs.Add("M", "12");
                //dictIndexs.Add("N", "13");
                //dictIndexs.Add("O", "14");
                //dictIndexs.Add("P", "15");
                //dictIndexs.Add("Q", "16");
                //dictIndexs.Add("R", "17");
                //dictIndexs.Add("S", "18");
                //dictIndexs.Add("T", "19");
                //dictIndexs.Add("U", "20");
                //dictIndexs.Add("V", "21");
                //dictIndexs.Add("W", "22");
                //dictIndexs.Add("X", "23");
                //dictIndexs.Add("Y", "24");
                //dictIndexs.Add("Z", "25");
                Dictionary <string, Int32> dictIndexs = new Dictionary <string, Int32>();
                dictIndexs.Add("A", 0);
                dictIndexs.Add("B", 1);
                dictIndexs.Add("C", 2);
                dictIndexs.Add("D", 3);
                dictIndexs.Add("E", 4);
                dictIndexs.Add("F", 5);
                dictIndexs.Add("G", 6);
                dictIndexs.Add("H", 7);
                dictIndexs.Add("I", 8);
                dictIndexs.Add("J", 9);
                dictIndexs.Add("K", 10);
                dictIndexs.Add("L", 11);
                dictIndexs.Add("M", 12);
                dictIndexs.Add("N", 13);
                dictIndexs.Add("O", 14);
                dictIndexs.Add("P", 15);
                dictIndexs.Add("Q", 16);
                dictIndexs.Add("R", 17);
                dictIndexs.Add("S", 18);
                dictIndexs.Add("T", 19);
                dictIndexs.Add("U", 20);
                dictIndexs.Add("V", 21);
                dictIndexs.Add("W", 22);
                dictIndexs.Add("X", 23);
                dictIndexs.Add("Y", 24);
                dictIndexs.Add("Z", 25);
                //excel读取开始行号
                int beginRow = Convert.ToInt32(ImportConfig.STARTROW.GetValueOrDefault(2));
                //excel读取结束行号
                int endRow = Convert.ToInt32(ImportConfig.ENDROW.GetValueOrDefault(2));

                //if (endRow > rowCount)
                //    endRow = rowCount;
                int i = 1;
                System.Text.UTF8Encoding code = new UTF8Encoding();
                using (StreamReader sr = new StreamReader(path, Encoding.GetEncoding("gb2312")))
                {
                    string line;
                    // Read and display lines from the file until the end of
                    // the file is reached.

                    //while ((line = sr.ReadLine()) != null)
                    while (!string.IsNullOrEmpty(line = sr.ReadLine()))
                    {
                        string[] lineTmp = line.Split(',');
                        if (i >= beginRow && i <= endRow)
                        {
                            //创建一个实列
                            Type   type   = EntityInstance.GetType();
                            object entity = Activator.CreateInstance(type);

                            //得到excel二维数组当前行中A列的值
                            //r = (Range)workSheet.Cells[i, "A"];
                            //string value = r.Text.ToString().Trim();

                            #region 实例化对像
                            foreach (T_HR_IMPORTSETDETAIL detail in ImportConfig.T_HR_IMPORTSETDETAIL)
                            {
                                if (!string.IsNullOrEmpty(detail.EXECELCOLUMN))
                                {
                                    //r = (Range)workSheet.Cells[i, detail.EXECELCOLUMN];
                                    ////r = (Range)workSheet.Cells[i, "D"];
                                    //string value = r.Text.ToString().Trim();
                                    int index = 0;
                                    //把列名拆成字符数组
                                    char[] tmps = detail.EXECELCOLUMN.ToUpper().ToCharArray();
                                    if (tmps.Length == 1)
                                    {
                                        //列名是一个字母 直接从字典查出列对应的索引
                                        index = dictIndexs[tmps[0].ToString()];
                                    }
                                    else
                                    {
                                        //列名是双字符  计算出列对应的索引
                                        index = (dictIndexs[tmps[0].ToString()] + 1) * 26 + (dictIndexs[tmps[1].ToString()]);
                                    }
                                    // int index = Convert.ToInt32(dictIndexs[detail.EXECELCOLUMN.ToUpper()]);
                                    string       value = lineTmp[index].Trim();
                                    PropertyInfo prop  = type.GetProperty(detail.ENTITYCOLUMNCODE);
                                    if (prop != null)
                                    {
                                        if (!string.IsNullOrEmpty(value))
                                        {
                                            if (prop.PropertyType.BaseType == typeof(System.ValueType))
                                            {
                                                if (prop.PropertyType.ToString().Contains(typeof(DateTime).ToString()))
                                                {
                                                    prop.SetValue(entity, Convert.ToDateTime(value), null);
                                                }
                                                else
                                                {
                                                    decimal tmpValue;
                                                    decimal.TryParse(value, out tmpValue);
                                                    prop.SetValue(entity, tmpValue, null);
                                                }
                                            }
                                            else
                                            {
                                                prop.SetValue(entity, value, null);
                                            }
                                        }
                                    }
                                }
                            }
                            #endregion
                            PropertyInfo prop1 = type.GetProperty("PENSIONDETAILID");
                            prop1.SetValue(entity, Guid.NewGuid().ToString(), null);
                            PropertyInfo prop2 = type.GetProperty("OWNERCOMPANYID");
                            prop2.SetValue(entity, paras["OWNERCOMPANYID"], null);
                            PropertyInfo prop3 = type.GetProperty("OWNERDEPARTMENTID");
                            prop3.SetValue(entity, paras["OWNERDEPARTMENTID"], null);
                            PropertyInfo prop4 = type.GetProperty("OWNERPOSTID");
                            prop4.SetValue(entity, paras["OWNERPOSTID"], null);
                            PropertyInfo prop5 = type.GetProperty("OWNERID");
                            prop5.SetValue(entity, paras["OWNERID"], null);
                            PropertyInfo prop6 = type.GetProperty("CREATEUSERID");
                            prop6.SetValue(entity, paras["CREATEUSERID"], null);
                            PropertyInfo prop7 = type.GetProperty("PENSIONYEAR");
                            prop7.SetValue(entity, Convert.ToDecimal(paras["YEAR"]), null);
                            PropertyInfo prop8 = type.GetProperty("PENSIONMOTH");
                            prop8.SetValue(entity, Convert.ToDecimal(paras["MONTH"]), null);
                            PropertyInfo prop9 = type.GetProperty("CREATEDATE");
                            prop9.SetValue(entity, System.DateTime.Now, null);

                            T_HR_PENSIONDETAIL tmpDetail = entity as T_HR_PENSIONDETAIL;
                            string             idnumber  = string.Empty;
                            if (string.IsNullOrEmpty(tmpDetail.IDNUMBER))
                            {
                                idnumber = "Null0";
                            }
                            else
                            {
                                idnumber = tmpDetail.IDNUMBER.ToString();
                            }
                            //根据身份证号 查询员工  如果没有找到就不插入此条记录
                            var employee = from e in dal.GetObjects <T_HR_EMPLOYEE>()
                                           where e.IDNUMBER == idnumber && e.EDITSTATE == "1"
                                           select e;
                            if (employee.Count() > 0)
                            {
                                //删除旧的记录
                                var oldDetail = from c in dal.GetObjects <T_HR_PENSIONDETAIL>()
                                                where c.PENSIONMOTH == tmpDetail.PENSIONMOTH && c.PENSIONYEAR == tmpDetail.PENSIONYEAR && c.IDNUMBER == idnumber
                                                select c;
                                if (oldDetail.Count() > 0)
                                {
                                    dal.DeleteFromContext(oldDetail.FirstOrDefault());
                                }

                                T_HR_EMPLOYEE entCurEmp = employee.FirstOrDefault();
                                if (tmpDetail.EMPLOYEEID != entCurEmp.EMPLOYEEID)
                                {
                                    tmpDetail.EMPLOYEEID = entCurEmp.EMPLOYEEID;
                                    entity = tmpDetail;
                                }

                                //插入数据到数据库
                                dal.AddToContext(entity);
                                // dal.Add(entity);
                            }
                            else
                            {
                                Tracer.Debug("PensionImport:" + i.ToString() + "行,没有员工身份证为此号码:" + idnumber);
                            }
                        }
                        i++;
                    }
                }

                dal.SaveContextChanges();
                dal.CommitTransaction();
                CommDal <T_HR_PENSIONDETAIL> cdal = new CommDal <T_HR_PENSIONDETAIL>();
                //                string strSql = @" update t_hr_pensiondetail a    set  a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b where a.computerno
                //                                  = b.computerno),a.employeeid= (select employeeid from t_hr_pensionmaster b where a.computerno = b.computerno)
                //                                  ,a.CARDID= (select CARDID from t_hr_pensionmaster b where a.computerno = b.computerno)";
                //string strSql = @" update t_hr_pensiondetail a    set  a.employeeid= (select employeeid from t_hr_employee b where a.idnumber = b.IDNUMBER)";
                //string strSql = " update t_hr_pensiondetail a    set  a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b where a.computerno"
                //                +"= b.computerno and b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"'),a.employeeid= (select employeeid from t_hr_pensionmaster b where a.computerno = b.computerno   and b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')"
                //                +"  ,a.CARDID= (select CARDID from t_hr_pensionmaster b where a.computerno = b.computerno  b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')"
                //                +"  ,a.OWNERID=(select employeeid from t_hr_pensionmaster b where a.computerno = b.computerno  b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')"
                //                +"  ,a.OWNERPOSTID=(select c.OWNERPOSTID from t_hr_pensionmaster b ,t_hr_employee c where a.computerno = b.computerno and b.employeeid= c.employeeid +  b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"') "
                //                +"  ,a.OWNERDEPARTMENTID=(select c.OWNERDEPARTMENTID from t_hr_pensionmaster b ,t_hr_employee c where a.computerno = b.computerno and b.employeeid= c.employeeid  b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')"
                //                 +" ,a.OWNERCOMPANYID=(select c.OWNERCOMPANYID from t_hr_pensionmaster b ,t_hr_employee c where a.computerno = b.computerno and b.employeeid= c.employeeid  b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')"
                //                 +" where a.PENSIONYEAR='" + paras["YEAR"] + "' and a.PENSIONMOTH='" + paras["MONTH"] + "'";
                //cdal.ExecuteCustomerSql(strSql);
                //strSql = "update t_hr_pensiondetail a    set  a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b where a.employeeid = b.employeeid),a.cardid =(select b.cardid from t_hr_pensionmaster b where a.employeeid = b.employeeid)";
                string strSql = " update t_hr_pensiondetail a    set  a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b,t_hr_employee c where a.IDNUMBER= c.IDNUMBER and b.employeeid=c.employeeid and b.editstate=1)"
                                + "  ,a.employeeid= (select employeeid from t_hr_employee c where a.IDNUMBER = c.IDNUMBER  )"
                                + "  ,a.CARDID= (select CARDID from t_hr_pensionmaster b ,t_hr_employee c where a.IDNUMBER = c.IDNUMBER and b.employeeid=c.employeeid and b.editstate=1)"
                                + "  ,a.OWNERID=(select employeeid from t_hr_employee c where a.IDNUMBER = c.IDNUMBER )"
                                + "  ,a.OWNERPOSTID=(select c.OWNERPOSTID from t_hr_employee c where a.IDNUMBER= c.IDNUMBER ) "
                                + "  ,a.OWNERDEPARTMENTID=(select c.OWNERDEPARTMENTID from t_hr_employee c where a.IDNUMBER= c.IDNUMBER )"
                                + " ,a.OWNERCOMPANYID=(select c.OWNERCOMPANYID from t_hr_employee c where a.IDNUMBER = c.IDNUMBER  )"
                                + " where a.PENSIONYEAR='" + paras["YEAR"] + "' and a.PENSIONMOTH='" + paras["MONTH"] + "' and a.CREATEUSERID='" + paras["CREATEUSERID"] + "'";
                cdal.ExecuteCustomerSql(strSql);
                return(true);
            }
            catch (Exception ex)
            {
                //TODO: 写成导入日志
                //throw ex;
                Tracer.Debug("My error" + ex.Message);
                dal.RollbackTransaction();
                return(false);
            }
            finally
            {
                //关闭当前的excel进程
                //exc.Application.Workbooks.Close();
                //exc.Quit();
                //System.Runtime.InteropServices.Marshal.ReleaseComObject(exc);
                //IntPtr t = new IntPtr(exc.Hwnd);
                //exc = null;
                //int kid = 0;
                //GetWindowThreadProcessId(t, out kid);
                //System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(kid);
                //p.Kill();
            }
        }