Пример #1
0
        /// <summary>
        /// 重构签卡记录子表
        /// </summary>
        /// <param name="entAbnormRecordList"></param>
        /// <returns></returns>
        private ObservableCollection <T_HR_EMPLOYEESIGNINDETAIL> MakeSignInDetailByAbnormRecord(ObservableCollection <T_HR_EMPLOYEEABNORMRECORD> entAbnormRecordList)
        {
            ObservableCollection <T_HR_EMPLOYEESIGNINDETAIL> entSignInDetails = new ObservableCollection <T_HR_EMPLOYEESIGNINDETAIL>();

            foreach (T_HR_EMPLOYEEABNORMRECORD item in entAbnormRecordList)
            {
                T_HR_EMPLOYEESIGNINDETAIL entTemp = new T_HR_EMPLOYEESIGNINDETAIL();
                entTemp.SIGNINDETAILID            = System.Guid.NewGuid().ToString().ToUpper();
                entTemp.T_HR_EMPLOYEESIGNINRECORD = SignInRecord;
                entTemp.T_HR_EMPLOYEEABNORMRECORD = item;

                entTemp.ABNORMALDATE   = item.ABNORMALDATE;
                entTemp.ABNORMCATEGORY = item.ABNORMCATEGORY;
                entTemp.ATTENDPERIOD   = item.ATTENDPERIOD;
                entTemp.ABNORMALTIME   = item.ABNORMALTIME;
                entTemp.REASONCATEGORY = (Convert.ToInt32(AbnormReasonCategory.DrainPunch) + 1).ToString();
                entTemp.DETAILREASON   = string.Empty;
                entTemp.REMARK         = string.Empty;

                //权限控制
                entTemp.OWNERCOMPANYID    = item.OWNERCOMPANYID;
                entTemp.OWNERDEPARTMENTID = item.OWNERDEPARTMENTID;
                entTemp.OWNERPOSTID       = item.OWNERPOSTID;
                entTemp.OWNERID           = item.OWNERID;

                //2010年2月11日, 11:37:35,目前暂未实现登录部分,人员相关数据为假定值
                entTemp.CREATEDATE         = DateTime.Now;
                entTemp.CREATEUSERID       = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                entTemp.UPDATEDATE         = System.DateTime.Now;
                entTemp.UPDATEUSERID       = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                entTemp.CREATECOMPANYID    = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                entTemp.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                entTemp.CREATEPOSTID       = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;

                entSignInDetails.Add(entTemp);
            }

            return(entSignInDetails);
        }
Пример #2
0
        /// <summary>
        /// 添加签卡记录信息
        /// </summary>
        /// <param name="entity">签卡记录实体</param>
        /// <param name="entityList">异常信息实体</param>
        public string EmployeeSignInRecordAdd(T_HR_EMPLOYEESIGNINRECORD entity, List <T_HR_EMPLOYEESIGNINDETAIL> entityList)
        {
            string strMsg = string.Empty;

            try
            {
                T_HR_EMPLOYEESIGNINRECORD entSignInRd = new T_HR_EMPLOYEESIGNINRECORD();
                Utility.CloneEntity(entity, entSignInRd);
                dal.AddToContext(entSignInRd);
                dal.SaveContextChanges();

                foreach (T_HR_EMPLOYEESIGNINDETAIL entDetail in entityList)
                {
                    T_HR_EMPLOYEESIGNINDETAIL entTemp = new T_HR_EMPLOYEESIGNINDETAIL();
                    Utility.CloneEntity(entDetail, entTemp);
                    if (entDetail.T_HR_EMPLOYEEABNORMRECORD != null)
                    {
                        entTemp.T_HR_EMPLOYEEABNORMRECORDReference.EntityKey = new System.Data.EntityKey("SMT_HRM_EFModelContext.T_HR_EMPLOYEEABNORMRECORD", "ABNORMRECORDID", entDetail.T_HR_EMPLOYEEABNORMRECORD.ABNORMRECORDID);
                    }
                    if (entDetail.T_HR_EMPLOYEESIGNINRECORD != null)
                    {
                        entTemp.T_HR_EMPLOYEESIGNINRECORDReference.EntityKey = new System.Data.EntityKey("SMT_HRM_EFModelContext.T_HR_EMPLOYEESIGNINRECORD", "SIGNINID", entDetail.T_HR_EMPLOYEESIGNINRECORD.SIGNINID);
                    }

                    dal.AddToContext(entTemp);
                }

                dal.SaveContextChanges();
                strMsg = "{SAVESUCCESSED}";
                SaveMyRecord(entSignInRd);
            }
            catch (Exception ex)
            {
                strMsg = ex.Message;;
            }

            return(strMsg);
        }
Пример #3
0
 public string ModifyEmployeesignindetail(T_HR_EMPLOYEESIGNINDETAIL entTemp)
 {
     using (EmployeeSignInDetailBLL bllEmployeeSignInDetail = new EmployeeSignInDetailBLL())
     {
         return bllEmployeeSignInDetail.ModifyEmployeeSignInDetail(entTemp);
     }
 }
Пример #4
0
        /// <summary>
        /// 重构签卡记录子表
        /// </summary>
        /// <param name="entAbnormRecordList"></param>
        /// <returns></returns>
        private ObservableCollection<T_HR_EMPLOYEESIGNINDETAIL> MakeSignInDetailByAbnormRecord(ObservableCollection<T_HR_EMPLOYEEABNORMRECORD> entAbnormRecordList)
        {
            ObservableCollection<T_HR_EMPLOYEESIGNINDETAIL> entSignInDetails = new ObservableCollection<T_HR_EMPLOYEESIGNINDETAIL>();

            foreach (T_HR_EMPLOYEEABNORMRECORD item in entAbnormRecordList)
            {
                T_HR_EMPLOYEESIGNINDETAIL entTemp = new T_HR_EMPLOYEESIGNINDETAIL();
                entTemp.SIGNINDETAILID = System.Guid.NewGuid().ToString().ToUpper();
                entTemp.T_HR_EMPLOYEESIGNINRECORD = SignInRecord;
                entTemp.T_HR_EMPLOYEEABNORMRECORD = item;

                entTemp.ABNORMALDATE = item.ABNORMALDATE;
                entTemp.ABNORMCATEGORY = item.ABNORMCATEGORY;
                entTemp.ATTENDPERIOD = item.ATTENDPERIOD;
                entTemp.ABNORMALTIME = item.ABNORMALTIME;
                entTemp.REASONCATEGORY = (Convert.ToInt32(AbnormReasonCategory.DrainPunch) + 1).ToString();
                entTemp.DETAILREASON = string.Empty;
                entTemp.REMARK = string.Empty;

                //权限控制
                entTemp.OWNERCOMPANYID = item.OWNERCOMPANYID;
                entTemp.OWNERDEPARTMENTID = item.OWNERDEPARTMENTID;
                entTemp.OWNERPOSTID = item.OWNERPOSTID;
                entTemp.OWNERID = item.OWNERID;

                //2010年2月11日, 11:37:35,目前暂未实现登录部分,人员相关数据为假定值
                entTemp.CREATEDATE = DateTime.Now;
                entTemp.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                entTemp.UPDATEDATE = System.DateTime.Now;
                entTemp.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
                entTemp.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID;
                entTemp.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID;
                entTemp.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID;

                entSignInDetails.Add(entTemp);
            }

            return entSignInDetails;
        }
Пример #5
0
        /// <summary>
        /// 添加签卡记录信息
        /// </summary>
        /// <param name="entity">签卡记录实体</param>
        /// <param name="entityList">异常信息实体</param>
        public string EmployeeSignInRecordAdd(T_HR_EMPLOYEESIGNINRECORD entity, List <T_HR_EMPLOYEESIGNINDETAIL> entityList)
        {
            string strMsg = string.Empty;
            T_HR_EMPLOYEESIGNINRECORD entSignInRd = new T_HR_EMPLOYEESIGNINRECORD();

            try
            {
                if (!string.IsNullOrEmpty(isHuNanHangXingSalary) && isHuNanHangXingSalary != "true")
                {
                    foreach (T_HR_EMPLOYEESIGNINDETAIL entDetail in entityList)
                    {
                        if (entDetail.REASONCATEGORY == "3") //因公外出
                        {
                            #region                          //外出开始时间必须是最近两天(跳过周六周日)
                            DateTime dtNow       = DateTime.Now;
                            DateTime dtsartCheck = entDetail.ABNORMALDATE.Value;
                            int      step        = 0;
                            while (step < 3)
                            {
                                dtsartCheck = dtsartCheck.AddDays(1);
                                if (IsVacationDay(dtsartCheck, entDetail.OWNERCOMPANYID))
                                {
                                    continue;                                                      //假期
                                }
                                else
                                {
                                    step = step + 1;
                                }
                            }
                            dtsartCheck = new DateTime(dtsartCheck.Year, dtsartCheck.Month, dtsartCheck.Day).AddDays(1).AddSeconds(-1);
                            if (dtNow > dtsartCheck)//外出时间只能是今天或者明天23:59:59之前
                            {
                                string msg = entity.EMPLOYEENAME + " " + entDetail.ABNORMALDATE.Value.ToString("yyyy-MM-dd") + "签卡因公外出异常:超出三个工作日系统中将不能提交“因公外出”的签卡申请。";
                                return(msg);
                            }
                            #endregion
                        }
                    }
                }
                var entOld = (from ent in dal.GetObjects <T_HR_EMPLOYEESIGNINRECORD>()
                              where ent.SIGNINID == entity.SIGNINID
                              select ent).FirstOrDefault();
                if (entOld == null)
                {
                    Utility.CloneEntity(entity, entSignInRd);
                    dal.AddToContext(entSignInRd);
                    dal.SaveContextChanges();
                }
                else
                {
                    return(EmployeeSigninRecordUpdate(entity, entityList));
                }

                foreach (T_HR_EMPLOYEESIGNINDETAIL entDetail in entityList)
                {
                    T_HR_EMPLOYEESIGNINDETAIL entTemp = new T_HR_EMPLOYEESIGNINDETAIL();
                    Utility.CloneEntity(entDetail, entTemp);
                    if (entDetail.T_HR_EMPLOYEEABNORMRECORD != null)
                    {
                        entTemp.T_HR_EMPLOYEEABNORMRECORDReference.EntityKey = new System.Data.EntityKey("TM_SaaS_OA_EFModelContext.T_HR_EMPLOYEEABNORMRECORD", "ABNORMRECORDID", entDetail.T_HR_EMPLOYEEABNORMRECORD.ABNORMRECORDID);
                    }
                    if (entDetail.T_HR_EMPLOYEESIGNINRECORD != null)
                    {
                        entTemp.T_HR_EMPLOYEESIGNINRECORDReference.EntityKey = new System.Data.EntityKey("TM_SaaS_OA_EFModelContext.T_HR_EMPLOYEESIGNINRECORD", "SIGNINID", entDetail.T_HR_EMPLOYEESIGNINRECORD.SIGNINID);
                    }

                    dal.AddToContext(entTemp);
                }

                dal.SaveContextChanges();
                strMsg = "{SAVESUCCESSED}";
                SaveMyRecord(entSignInRd);
            }
            catch (Exception ex)
            {
                strMsg = ex.Message;
                Tracer.Debug(ex.ToString());
                throw ex;
            }

            return(strMsg);
        }