Beispiel #1
0
        void btnEdit_Click(object sender, RoutedEventArgs e)
        {
            if (DtGrid.SelectedItems.Count > 0)
            {
                T_HR_LEFTOFFICECONFIRM temp = DtGrid.SelectedItems[0] as T_HR_LEFTOFFICECONFIRM;

                if (temp.CHECKSTATE != Convert.ToInt32(CheckStates.UnSubmit).ToString())
                {
                    ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("NOTONLYCANMODIFYTHEDATASUBMITTED"),
                                                   Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);

                    return;
                }
                //if (!SMT.SaaS.FrameworkUI.Common.Utility.ToolBarButtonOperationPermission(temp, "T_HR_LEFTOFFICECONFIRM", SMT.SaaS.FrameworkUI.OperationType.Edit, SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID))
                //{
                //    ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("NOEDITPERMISSION"),
                //  Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
                //    return;
                //}
                LeftOfficeConfirmForm form    = new LeftOfficeConfirmForm(FormTypes.Edit, temp.CONFIRMID);
                EntityBrowser         browser = new EntityBrowser(form);
                browser.FormType = FormTypes.Edit;
                //  form.MinHeight = 450;
                browser.ReloadDataEvent += new EntityBrowser.refreshGridView(browser_ReloadDataEvent);
                browser.Show <string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            }
            else
            {
                //ComfirmWindow.ConfirmationBox(Utility.GetResourceStr("CONFIRMINFO"), Utility.GetResourceStr("SELECTDATAALERT"), Utility.GetResourceStr("CONFIRMBUTTON"));
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CONFIRMINFO"), Utility.GetResourceStr("SELECTERROR", "EDIT"),
                                               Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
            }
        }
 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();
 }
Beispiel #3
0
        /// <summary>
        /// 重新提交
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnReSubmit_Click(object sender, RoutedEventArgs e)
        {
            if (DtGrid.SelectedItems.Count > 0)
            {
                T_HR_LEFTOFFICECONFIRM temp    = DtGrid.SelectedItems[0] as T_HR_LEFTOFFICECONFIRM;
                LeftOfficeConfirmForm  form    = new LeftOfficeConfirmForm(FormTypes.Resubmit, temp.CONFIRMID);
                EntityBrowser          browser = new EntityBrowser(form);
                browser.FormType         = FormTypes.Resubmit;
                browser.ReloadDataEvent += new EntityBrowser.refreshGridView(browser_ReloadDataEvent);

                browser.Show <string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { });
            }
            else
            {
                //ComfirmWindow.ConfirmationBox(Utility.GetResourceStr("CONFIRMINFO"), Utility.GetResourceStr("SELECTDATAALERT"), Utility.GetResourceStr("CONFIRMBUTTON"));
                ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CONFIRMINFO"), Utility.GetResourceStr("SELECTERROR", "ReSubmit"),
                                               Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation);
            }
        }
Beispiel #4
0
 public void LeftOfficeConfirmUpdate(T_HR_LEFTOFFICECONFIRM entity)
 {
     using (LeftOfficeConfirmBLL bll = new LeftOfficeConfirmBLL())
     {
         bll.LeftOfficeConfirmUpdate(entity);
     }
 }
Beispiel #5
0
        /// <summary>
        /// 根据传回的xml生成员工离职确认
        /// </summary>
        /// <param name="eGFunc"></param>
        /// <returns></returns>
        private static string AddLeftOfficeConfirm(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 strDimissionID = 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 "DIMISSIONID":
                            strDimissionID = q.Attribute("Value").Value;
                            break;
                    }
                }


                PersonnelService ser = new PersonnelService();

                T_HR_LEFTOFFICECONFIRM entity = new T_HR_LEFTOFFICECONFIRM();
                entity.CONFIRMID = Guid.NewGuid().ToString();
                entity.T_HR_LEFTOFFICE = new T_HR_LEFTOFFICE();
                //entity.T_HR_LEFTOFFICE.DIMISSIONID = strDimissionID.Replace("{", "").Replace("}", "");
                //  entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL();
                entity.CHECKSTATE = ((int)CheckStates.UnSubmit).ToString();
                entity.CREATEDATE = DateTime.Now;
                entity.OWNERID = strEmployeeID;
                entity.OWNERPOSTID = strOwnerPostID;
                entity.OWNERDEPARTMENTID = strOwnerDepartmentID;
                entity.OWNERCOMPANYID = strOwnerCompanyID;
                entity.CREATEUSERID = strOwnerID;
                entity.CREATEPOSTID = strOwnerPostID;
                entity.CREATEDEPARTMENTID = strOwnerDepartmentID;
                entity.CREATECOMPANYID = strOwnerCompanyID;
                T_HR_LEFTOFFICE leftOffice = ser.GetLeftOfficeByEmployeeIDAndPostID(strEmployeeID, strOwnerPostID);
                if (leftOffice != null)
                {
                    entity.LEFTOFFICECATEGORY = leftOffice.LEFTOFFICECATEGORY;
                    entity.LEFTOFFICEDATE = leftOffice.LEFTOFFICEDATE;
                    entity.LEFTOFFICEREASON = leftOffice.LEFTOFFICEREASON;
                    entity.REMARK = leftOffice.REMARK;
                    entity.T_HR_LEFTOFFICE.DIMISSIONID = leftOffice.DIMISSIONID;
                    entity.EMPLOYEECNAME = leftOffice.T_HR_EMPLOYEE.EMPLOYEECNAME;
                    entity.APPLYDATE = leftOffice.APPLYDATE;
                    entity.EMPLOYEEPOSTID = leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID;
                    V_EMPLOYEEPOST eps = ser.GetEmployeeDetailByID(leftOffice.T_HR_EMPLOYEE.EMPLOYEEID);
                    entity.EMPLOYEEID = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
                    entity.CREATEUSERID = leftOffice.T_HR_EMPLOYEE.CREATEUSERID;
                    foreach (T_HR_EMPLOYEEPOST ep in eps.EMPLOYEEPOSTS)
                    {
                        if (ep.EMPLOYEEPOSTID == leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID)
                        {
                            entity.OWNERID = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
                            entity.OWNERPOSTID = ep.T_HR_POST.POSTID;
                            entity.OWNERDEPARTMENTID = ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                            entity.OWNERCOMPANYID = ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;
                        }
                    }
                }



                ser.LeftOfficeConfirmAdd(entity);
                return entity.CONFIRMID;

            }
            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;

            }

        }
Beispiel #6
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);
        }
Beispiel #7
0
        /// <summary>
        /// 根据传回的xml生成员工离职确认
        /// </summary>
        /// <param name="eGFunc"></param>
        /// <returns></returns>
        private static string AddLeftOfficeConfirm(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 strDimissionID       = 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 "DIMISSIONID":
                        strDimissionID = q.Attribute("Value").Value;
                        break;
                    }
                }


                PersonnelService ser = new PersonnelService();

                T_HR_LEFTOFFICECONFIRM entity = new T_HR_LEFTOFFICECONFIRM();
                entity.CONFIRMID       = Guid.NewGuid().ToString();
                entity.T_HR_LEFTOFFICE = new T_HR_LEFTOFFICE();
                //entity.T_HR_LEFTOFFICE.DIMISSIONID = strDimissionID.Replace("{", "").Replace("}", "");
                //  entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL();
                entity.CHECKSTATE         = ((int)CheckStates.UnSubmit).ToString();
                entity.CREATEDATE         = DateTime.Now;
                entity.OWNERID            = strEmployeeID;
                entity.OWNERPOSTID        = strOwnerPostID;
                entity.OWNERDEPARTMENTID  = strOwnerDepartmentID;
                entity.OWNERCOMPANYID     = strOwnerCompanyID;
                entity.CREATEUSERID       = strOwnerID;
                entity.CREATEPOSTID       = strOwnerPostID;
                entity.CREATEDEPARTMENTID = strOwnerDepartmentID;
                entity.CREATECOMPANYID    = strOwnerCompanyID;
                T_HR_LEFTOFFICE leftOffice = ser.GetLeftOfficeByEmployeeIDAndPostID(strEmployeeID, strOwnerPostID);
                if (leftOffice != null)
                {
                    entity.LEFTOFFICECATEGORY          = leftOffice.LEFTOFFICECATEGORY;
                    entity.LEFTOFFICEDATE              = leftOffice.LEFTOFFICEDATE;
                    entity.LEFTOFFICEREASON            = leftOffice.LEFTOFFICEREASON;
                    entity.REMARK                      = leftOffice.REMARK;
                    entity.T_HR_LEFTOFFICE.DIMISSIONID = leftOffice.DIMISSIONID;
                    entity.EMPLOYEECNAME               = leftOffice.T_HR_EMPLOYEE.EMPLOYEECNAME;
                    entity.APPLYDATE                   = leftOffice.APPLYDATE;
                    entity.EMPLOYEEPOSTID              = leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID;
                    V_EMPLOYEEPOST eps = ser.GetEmployeeDetailByID(leftOffice.T_HR_EMPLOYEE.EMPLOYEEID);
                    entity.EMPLOYEEID   = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
                    entity.CREATEUSERID = leftOffice.T_HR_EMPLOYEE.CREATEUSERID;
                    foreach (T_HR_EMPLOYEEPOST ep in eps.EMPLOYEEPOSTS)
                    {
                        if (ep.EMPLOYEEPOSTID == leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID)
                        {
                            entity.OWNERID           = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
                            entity.OWNERPOSTID       = ep.T_HR_POST.POSTID;
                            entity.OWNERDEPARTMENTID = ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                            entity.OWNERCOMPANYID    = ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;
                        }
                    }
                }



                ser.LeftOfficeConfirmAdd(entity);
                return(entity.CONFIRMID);
            }
            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);
            }
        }
        private string GetXmlString(string StrSource, T_HR_LEFTOFFICECONFIRM Info)
        {
            List<object> ObjectList = new List<object>();
            SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY ownerCompany = (Application.Current.Resources["SYS_CompanyInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY>).Where(s => s.COMPANYID == Info.OWNERCOMPANYID).FirstOrDefault();
            SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT ownerDepartment = (Application.Current.Resources["SYS_DepartmentInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT>).Where(s => s.DEPARTMENTID == Info.OWNERDEPARTMENTID).FirstOrDefault();
            SMT.Saas.Tools.OrganizationWS.T_HR_POST ownerPost = (Application.Current.Resources["SYS_PostInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_POST>).Where(s => s.POSTID == Info.OWNERPOSTID).FirstOrDefault();
            string ownerCompanyName = string.Empty;
            string ownerDepartmentName = string.Empty;
            string ownerPostName = string.Empty;
            if (ownerCompany != null)
            {
                ownerCompanyName = ownerCompany.CNAME;
            }
            if (ownerDepartment != null)
            {
                ownerDepartmentName = ownerDepartment.T_HR_DEPARTMENTDICTIONARY == null ? "" : ownerDepartment.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME;
            }
            if (ownerPost != null)
            {
                ownerPostName = ownerPost.T_HR_POSTDICTIONARY == null ? "" : ownerPost.T_HR_POSTDICTIONARY.POSTNAME;
            }

            decimal? stateValue = Convert.ToDecimal("1");
            string checkState = string.Empty;
            SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY checkStateDict = (Application.Current.Resources["SYS_DICTIONARY"] as List<SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY>).Where(s => s.DICTIONCATEGORY == "CHECKSTATE" && s.DICTIONARYVALUE == stateValue).FirstOrDefault();
            checkState = checkStateDict == null ? "" : checkStateDict.DICTIONARYNAME;


            //string postLevelName = string.Empty;
            //SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY postLevelDict = (Application.Current.Resources["SYS_DICTIONARY"] as List<SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY>).Where(s => s.DICTIONCATEGORY == "POSTLEVLE" && s.DICTIONARYVALUE == employeepost.POSTLEVEL).FirstOrDefault();
            //postLevelName = postLevelDict == null ? "" : postLevelDict.DICTIONARYNAME;

           // SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY LEFTOFFICECATEGORY = cbxEmployeeType.SelectedItem as SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY;
            SMT.SaaS.MobileXml.MobileXml mx = new SMT.SaaS.MobileXml.MobileXml();
            List<SMT.SaaS.MobileXml.AutoDictionary> AutoList = new List<SMT.SaaS.MobileXml.AutoDictionary>();
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "CHECKSTATE", "1", checkState));
            if (EmployeePost != null)
            {
                AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "POSTLEVEL", EmployeePost.POSTLEVEL.ToString(), EmployeePost.POSTLEVEL.ToString()));
            }
            //AutoList.Add(basedata("T_OA_APPROVALINFO", "OWNERCOMPANYID", approvalInfo.OWNERCOMPANYID, StrCompanyName));
            //AutoList.Add(basedata("T_OA_APPROVALINFO", "OWNERDEPARTMENTID", approvalInfo.OWNERDEPARTMENTID, StrDepartmentName));
            //AutoList.Add(basedata("T_OA_APPROVALINFO", "OWNERPOSTID", approvalInfo.OWNERPOSTID, StrPostName));
            //AutoList.Add(basedata("T_OA_APPROVALINFO", "TYPEAPPROVAL", approvalInfo.TYPEAPPROVAL, StrApprovalTypeName));
            //AutoList.Add(basedata("T_OA_APPROVALINFO", "CONTENT", approvalInfo.APPROVALID, approvalInfo.APPROVALID));
            //AutoList.Add(basedata("T_OA_APPROVALINFO", "AttachMent", approvalInfo.APPROVALID, approvalInfo.APPROVALID));
            //AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "LEFTOFFICECATEGORY", LEFTOFFICECATEGORY != null ? LEFTOFFICECATEGORY.DICTIONARYVALUE.ToString() : "0", LEFTOFFICECATEGORY != null ? LEFTOFFICECATEGORY.DICTIONARYNAME : ""));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "LEFTOFFICECATEGORY", "1", "辞职"));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "EMPLOYEEID", Info.EMPLOYEEID, Info.EMPLOYEECNAME));
            //AutoList.Add(basedata("T_HR_EMPLOYEECHECK", "POSTLEVEL", Info.T_HR_LEFTOFFICE.T_HR_EMPLOYEEPOST.POSTLEVEL employeepost.POSTLEVEL.ToString(), employeepost.POSTLEVEL.ToString()));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "EMPLOYEECNAME", Info.EMPLOYEECNAME, Info.EMPLOYEECNAME));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "OWNER", Info.EMPLOYEECNAME, Info.EMPLOYEECNAME));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "CREATEUSERNAME", createUserName, createUserName));

            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "OWNERCOMPANYID", Info.OWNERCOMPANYID, ownerCompanyName));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "OWNERDEPARTMENTID", Info.OWNERDEPARTMENTID, ownerDepartmentName));
            AutoList.Add(basedata("T_HR_LEFTOFFICECONFIRM", "OWNERPOSTID", Info.OWNERPOSTID, ownerPostName));
            List<T_FB_PERSONACCOUNT> objPe=new List<T_FB_PERSONACCOUNT>();
            if (perCount != null && perCount.Count > 0)
            {
                objPe = perCount.ToList();
            }
            foreach (var item in objPe)
            {
                AutoList.Add(basedataForChild("T_FB_PERSONACCOUNT", "SPECIALBORROWMONEY", item.SPECIALBORROWMONEY.ToString(), item.SPECIALBORROWMONEY.ToString(), item.PERSONACCOUNTID));
                AutoList.Add(basedataForChild("T_FB_PERSONACCOUNT", "SIMPLEBORROWMONEY", item.SIMPLEBORROWMONEY.ToString(), item.SIMPLEBORROWMONEY.ToString(), item.PERSONACCOUNTID));
                AutoList.Add(basedataForChild("T_FB_PERSONACCOUNT", "BACKUPBORROWMONEY", item.BACKUPBORROWMONEY.ToString(), item.BACKUPBORROWMONEY.ToString(), item.PERSONACCOUNTID));
                ObjectList.Add(item);
            }
            string a = mx.TableToXml(Info, ObjectList, StrSource, AutoList);

            return a;
        }
        /// <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();
            }
        }
Beispiel #10
0
 void LeftOfficeConfirmForm_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)
     {
         EnabledControl();
         dpConfirmDate.IsEnabled = false;
         dpStopPaymentDate.IsEnabled = false;
     }
     #endregion
     if (FormType != FormTypes.New)
     {
         RefreshUI(RefreshedTypes.ShowProgressBar);
         client.GetLeftOfficeConfirmByIDAsync(conformID);
     }
     else
     {
         if (string.IsNullOrEmpty(conformID))
         {
             LeftOfficeConfirm = new T_HR_LEFTOFFICECONFIRM();
             LeftOfficeConfirm.CONFIRMID = Guid.NewGuid().ToString();
             LeftOfficeConfirm.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;
             LeftOfficeConfirm.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString();
             LeftOfficeConfirm.CREATEDATE = DateTime.Now;
             LeftOfficeConfirm.CONFIRMDATE = DateTime.Now;
             //dpConfirmDate.Text = DateTime.Now.ToString();
             createUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName;
             SetToolBar();
         }
     }
 }