예제 #1
0
        void dgEmpLeaveDays_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            T_HR_EMPLOYEELEVELDAYCOUNT ENT = this.dgEmpLeaveDays.SelectedItem as T_HR_EMPLOYEELEVELDAYCOUNT;

            if (ENT != null)
            {
                //绑定数据
                //this.dgEmpLeaveDays1.ItemsSource=GetEmployeeleaverecordByMultSearchId
                string strEmployeeID = string.Empty, strOrgType = string.Empty, strOrgValue = string.Empty;
                string strSortKey = string.Empty, strOwnerID = string.Empty;
                string strEfficDateFrom = string.Empty, strEfficDateTo = string.Empty;
                int    pageIndex = 0, pageSize = 0, pageCount = 0;

                pageIndex = dataPager1.PageIndex;
                pageSize  = dataPager1.PageSize;
                //employeeid, leavetypesetid, OWNERCOMPANYID, strEfficDateFrom, strEfficDateTo,pageIndex, pageSize, ref pageCount
                //T_HR_EMPLOYEELEVELDAYCOUNT ENT=this.dgEmpLeaveDays.SelectedItem as T_HR_EMPLOYEELEVELDAYCOUNT;
                if (ENT != null)
                {
                    client.GetEmployeeleaverecordByMultSearchIdAsync(ENT.EMPLOYEEID, ENT.LEAVETYPESETID, ENT.OWNERCOMPANYID, ENT.EFFICDATE.ToString(), ENT.TERMINATEDATE.ToString(), pageIndex, pageSize, pageCount);
                }

                loadbar.Start();
            }
        }
예제 #2
0
        /// <summary>
        /// 根据请假记录ID获取对应调休假
        /// </summary>
        /// <param name="strLeaveRecordID">请假记录ID</param>
        /// <returns></returns>
        public List <V_ADJUSTLEAVE> GetAdjustLeaveDetailListByLeaveRecordID(string strLeaveRecordID)
        {
            List <V_ADJUSTLEAVE> entViews = new List <V_ADJUSTLEAVE>();


            IQueryable <T_HR_ADJUSTLEAVE> entAds = from a in dal.GetObjects().Include("T_HR_EMPLOYEELEAVERECORD")
                                                   join l in dal.GetObjects <T_HR_LEAVETYPESET>() on a.LEAVETYPESETID equals l.LEAVETYPESETID
                                                   where a.T_HR_EMPLOYEELEAVERECORD.LEAVERECORDID == strLeaveRecordID
                                                   select a;

            if (entAds.Count() == 0)
            {
                return(entViews);
            }

            foreach (T_HR_ADJUSTLEAVE item in entAds)
            {
                var q = from ec in dal.GetObjects <T_HR_EMPLOYEELEVELDAYCOUNT>()
                        where ec.LEAVETYPESETID == item.LEAVETYPESETID && ec.EMPLOYEEID == item.EMPLOYEEID
                        select ec;

                if (q.Count() == 0)
                {
                    continue;
                }

                T_HR_EMPLOYEELEVELDAYCOUNT entDayCount = q.FirstOrDefault();

                V_ADJUSTLEAVE entView = new V_ADJUSTLEAVE();
                entView.T_HR_ADJUSTLEAVE = item;
                entView.VacationType     = entDayCount.VACATIONTYPE;
                entView.VacationDays     = entDayCount.DAYS;

                entViews.Add(entView);
            }

            return(entViews);
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        private List <T_HR_EMPLOYEELEVELDAYCOUNT> GetRowDataGrid()
        {
            List <T_HR_EMPLOYEELEVELDAYCOUNT> liststr = new List <T_HR_EMPLOYEELEVELDAYCOUNT>();
            var rowItems = dgEmpLeaveDays.SelectedItems.Cast <T_HR_EMPLOYEELEVELDAYCOUNT>().ToArray();

            if (rowItems.Count() > 0)
            {
                foreach (T_HR_EMPLOYEELEVELDAYCOUNT item in rowItems)
                {
                    T_HR_EMPLOYEELEVELDAYCOUNT EMPLOYEELEVELDAYCOUNT = new T_HR_EMPLOYEELEVELDAYCOUNT();
                    EMPLOYEELEVELDAYCOUNT.LEAVETYPESETID = item.LEAVETYPESETID;
                    EMPLOYEELEVELDAYCOUNT.EFFICDATE      = item.EFFICDATE;
                    EMPLOYEELEVELDAYCOUNT.EMPLOYEEID     = item.EMPLOYEEID;

                    liststr.Add(EMPLOYEELEVELDAYCOUNT);
                }
                return(liststr);
            }
            else
            {
                return(null);
            }
        }
예제 #4
0
 public string AddEmployeeLevelDayCount(T_HR_EMPLOYEELEVELDAYCOUNT entTemp)
 {
     using (EmployeeLevelDayCountBLL bllEmployeeleveldaycount = new EmployeeLevelDayCountBLL())
     {
         return bllEmployeeleveldaycount.AddEmployeeLevelDayCount(entTemp);
     }
 }
예제 #5
0
        /// <summary>
        /// 获取DataGrid当前选中项,员工可用假期天数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void clientAtt_GetCurLevelDayCountByEmployeeIDCompleted(object sender, GetCurLevelDayCountByEmployeeIDCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                if (dgLevelDayList.ItemsSource == null)
                {
                    return;
                }

                if (dgLevelDayList.SelectedItem == null)
                {
                    return;
                }

                V_ADJUSTLEAVE entViewAdjustleave = dgLevelDayList.SelectedItem as V_ADJUSTLEAVE;

                T_HR_LEAVETYPESET ent = lkLeaveTypeName.DataContext as T_HR_LEAVETYPESET;
                if (ent == null)
                {
                    return;
                }

                T_HR_EMPLOYEELEVELDAYCOUNT entTemp = new T_HR_EMPLOYEELEVELDAYCOUNT();
                entTemp = e.Result;

                if (entTemp == null)
                {
                    return;
                }

                decimal dAdjustLeaveDays = 0;
                if (entTemp.DAYS != null)
                {
                    dAdjustLeaveDays = entTemp.DAYS.Value;
                }

                entViewAdjustleave.VacationDays = dAdjustLeaveDays;
                entViewAdjustleave.T_HR_ADJUSTLEAVE.LEAVETYPESETID = entTemp.LEAVETYPESETID;

                ObservableCollection<V_ADJUSTLEAVE> entAdjustleaves = dgLevelDayList.ItemsSource as ObservableCollection<V_ADJUSTLEAVE>;

                foreach (V_ADJUSTLEAVE item in entAdjustleaves)
                {
                    if (item.T_HR_ADJUSTLEAVE.ADJUSTLEAVEID == entViewAdjustleave.T_HR_ADJUSTLEAVE.ADJUSTLEAVEID)
                    {
                        item.VacationDays = entViewAdjustleave.VacationDays;
                        item.T_HR_ADJUSTLEAVE.LEAVETYPESETID = entViewAdjustleave.T_HR_ADJUSTLEAVE.LEAVETYPESETID;
                    }
                }

                dgLevelDayList.ItemsSource = entAdjustleaves;

            }
            else
            {
                Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(e.Error.Message));
            }
        }
예제 #6
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);
        }
예제 #7
0
        /// <summary>
        /// 
        /// </summary>
        private List<T_HR_EMPLOYEELEVELDAYCOUNT> GetRowDataGrid()
        {
            List<T_HR_EMPLOYEELEVELDAYCOUNT> liststr = new List<T_HR_EMPLOYEELEVELDAYCOUNT>();
            var rowItems = dgEmpLeaveDays.SelectedItems.Cast<T_HR_EMPLOYEELEVELDAYCOUNT>().ToArray();
            if (rowItems.Count()>0)
            {
                foreach (T_HR_EMPLOYEELEVELDAYCOUNT item in rowItems)
                {
                    T_HR_EMPLOYEELEVELDAYCOUNT EMPLOYEELEVELDAYCOUNT = new T_HR_EMPLOYEELEVELDAYCOUNT();
                    EMPLOYEELEVELDAYCOUNT.LEAVETYPESETID = item.LEAVETYPESETID;
                    EMPLOYEELEVELDAYCOUNT.EFFICDATE = item.EFFICDATE;
                    EMPLOYEELEVELDAYCOUNT.EMPLOYEEID = item.EMPLOYEEID;

                    liststr.Add(EMPLOYEELEVELDAYCOUNT);
                }
                return liststr;
            }
            else
            {
                return null;
            }
        }