Пример #1
0
        /// <summary>
        /// 生成考勤信息集合List
        /// </summary>
        /// <param name="AttendanceXml">考勤信息XML</param>
        /// <returns></returns>
        private IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> GetAttendanceList(string AttendanceXml)
        {
            if (string.IsNullOrEmpty(AttendanceXml))
            {
                return(null);
            }
            IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> ResultList = null;

            ResultList = new List <EyouSoft.Model.AdminCenterStructure.AttendanceInfo>();
            XElement root = XElement.Parse(AttendanceXml);
            IEnumerable <XElement> xRow = root.Elements("row");

            foreach (XElement tmp1 in xRow)
            {
                EyouSoft.Model.AdminCenterStructure.AttendanceInfo model = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo()
                {
                    AddDate    = DateTime.Parse(tmp1.Attribute("AddDate").Value),
                    StaffNo    = int.Parse(tmp1.Attribute("StaffNo").Value),
                    WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Enum.Parse(typeof(EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus), tmp1.Attribute("WorkStatus").Value)
                };
                ResultList.Add(model);
                model = null;
            }
            return(ResultList);
        }
Пример #2
0
        /// <summary>
        /// 考勤新增
        /// </summary>
        /// <param name="model">考勤管理信息实体</param>
        /// <returns></returns>
        public bool Add(EyouSoft.Model.AdminCenterStructure.AttendanceInfo model)
        {
            bool IsTrue = false;
            IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> lists = new List <EyouSoft.Model.AdminCenterStructure.AttendanceInfo>();

            lists.Add(model);
            IsTrue = this.Add(lists);
            lists  = null;
            return(IsTrue);
        }
Пример #3
0
 /// <summary>
 /// 根据考勤编号获取单个考勤信息
 /// </summary>
 /// <param name="CompanyId">公司编号</param>
 /// <param name="Id">考勤编号</param>
 /// <returns></returns>
 public EyouSoft.Model.AdminCenterStructure.AttendanceInfo GetModel(int CompanyId, string Id)
 {
     EyouSoft.Model.AdminCenterStructure.AttendanceInfo model = null;
     model = (from item in dcDal.AttendanceInfo
              where item.CompanyId == CompanyId && item.Id == Id
              select new EyouSoft.Model.AdminCenterStructure.AttendanceInfo
     {
         Id = item.Id,
         AddDate = item.AddDate,
         BeginDate = item.BeginDate,
         CompanyId = item.CompanyId,
         EndDate = item.EndDate,
         OperatorId = item.OperatorId,
         Reason = item.Reason,
         OutTime = item.OutTime,
         WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Enum.Parse(typeof(EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus), item.WorkStatus.ToString())
     }).FirstOrDefault();
     return(model);
 }
Пример #4
0
        protected string WorkOverTimeNum         = string.Empty; //加班天数
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            int    WorkerID     = Utils.GetInt(Request.QueryString["WorkerID"], -1);
            string currDateTime = Utils.GetQueryStringValue("DateTime");          //考勤日期
            string Method       = Utils.GetFormValue("hidMethod");

            if (!IsPostBack && WorkerID != -1 && Method == "" && currDateTime != "")
            {
                #region 初始化
                int count = 0;                //记数
                this.hidWorkerID.Value = WorkerID.ToString();
                int year  = Utils.GetInt(currDateTime.Substring(0, 4));
                int month = Utils.GetInt(currDateTime.Substring(4, 2));
                int day   = Utils.GetInt(currDateTime.Substring(6, 2));
                EyouSoft.BLL.AdminCenterStructure.AttendanceInfo           bllAttendance      = new EyouSoft.BLL.AdminCenterStructure.AttendanceInfo();
                IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> listAttendanceInfo = bllAttendance.GetList(CurrentUserCompanyID, WorkerID, new DateTime(year, month, day));
                if (listAttendanceInfo != null && listAttendanceInfo.Count > 0)
                {
                    arrCheckboxValue = new string[listAttendanceInfo.Count];
                    this.crptAttUpdate.DataSource = listAttendanceInfo;
                    this.crptAttUpdate.DataBind();
                    foreach (EyouSoft.Model.AdminCenterStructure.AttendanceInfo modelAttendance in listAttendanceInfo)
                    {
                        AttStartDate = modelAttendance.AddDate;
                        switch ((int)modelAttendance.WorkStatus)
                        {
                        case 0:
                        case 1:
                        case 3:
                        case 4:
                        case 7:
                            radioValue = (int)(modelAttendance.WorkStatus);
                            break;

                        case 2:
                        case 5:
                        case 6:
                        case 8:
                            arrCheckboxValue[count] = ((int)(modelAttendance.WorkStatus)).ToString();
                            count++;
                            break;

                        default: break;
                        }
                        if ((int)(modelAttendance.WorkStatus) == 7)                  //请假
                        {
                            LeaveWhy          = modelAttendance.Reason;
                            LeaveForStartDate = modelAttendance.BeginDate;
                            LeaveForEndDate   = modelAttendance.EndDate;
                            LeaveDayNum       = decimal.Round(modelAttendance.OutTime, 1).ToString();
                        }
                        if ((int)(modelAttendance.WorkStatus) == 8)               //加班
                        {
                            WorkOverTimeContent   = modelAttendance.Reason;
                            WorkOverTimeDateStart = modelAttendance.BeginDate;
                            WorkOverTimeDateEnd   = modelAttendance.EndDate;
                            WorkOverTimeNum       = decimal.Round(modelAttendance.OutTime, 1).ToString();
                        }
                    }
                }
                else
                {
                    this.crptAttUpdate.EmptyText = "<tr><td colspan=\"3\"><div style=\"text-align:center;  margin-top:10px; margin-bottom:10px;\">没有相关的数据!</div></td></tr>";
                }
                #endregion
            }

            if (WorkerID != -1 && Method == "Save")
            {
                if (!CheckGrant(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记))
                {
                    Utils.ResponseNoPermit(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记, true);
                }
                #region 保存
                AttStartDate     = Utils.GetDateTime(Request.Form["txt_AttStartDate"]);
                radioValue       = Utils.GetInt(Request.Form["radio1"]);
                arrCheckboxValue = Utils.GetFormValues("checkbox1");

                EyouSoft.BLL.AdminCenterStructure.AttendanceInfo bllAttendance = new EyouSoft.BLL.AdminCenterStructure.AttendanceInfo();

                IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> listAttendance  = new List <EyouSoft.Model.AdminCenterStructure.AttendanceInfo>();
                EyouSoft.Model.AdminCenterStructure.AttendanceInfo         modelAttendance = null;
                if (AttStartDate.ToString() == "0001-1-1 0:00:00")
                {
                    MessageBox.Show(this, "考勤时间不能为空!");
                    return;
                }
                if (radioValue >= 0)                 //单选情况
                {
                    modelAttendance            = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo();
                    modelAttendance.StaffNo    = WorkerID;
                    modelAttendance.CompanyId  = CurrentUserCompanyID;
                    modelAttendance.OperatorId = SiteUserInfo.ID;
                    modelAttendance.AddDate    = AttStartDate;
                    modelAttendance.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)(radioValue);
                    if (radioValue == 7)
                    {
                        modelAttendance.Reason    = Utils.GetFormValue("txt_LeaveWhy");
                        modelAttendance.BeginDate = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForStartDate"]);
                        modelAttendance.EndDate   = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForEndDate"]);
                        modelAttendance.OutTime   = Utils.GetDecimal(Request.Form["txt_LeaveDayNum"]);
                    }
                    listAttendance.Add(modelAttendance);
                }
                if (arrCheckboxValue != null && arrCheckboxValue.Length > 0)                //多选情况
                {
                    for (int i = 0; i < arrCheckboxValue.Length; i++)
                    {
                        modelAttendance            = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo();
                        modelAttendance.StaffNo    = WorkerID;
                        modelAttendance.CompanyId  = CurrentUserCompanyID;
                        modelAttendance.OperatorId = SiteUserInfo.ID;
                        modelAttendance.AddDate    = AttStartDate;
                        modelAttendance.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)(Utils.GetInt(arrCheckboxValue[i]));
                        if (arrCheckboxValue[i] == "8")
                        {
                            modelAttendance.Reason    = Utils.GetFormValue("txt_WorkOverTimeContent");
                            modelAttendance.BeginDate = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateStart"]);
                            modelAttendance.EndDate   = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateEnd"]);
                            modelAttendance.OutTime   = Utils.GetDecimal(Request.Form["txt_WorkOverTimeNum"]);
                        }
                        listAttendance.Add(modelAttendance);
                    }
                }
                if (bllAttendance.Update(CurrentUserCompanyID, listAttendance, AttStartDate))
                {
                    MessageBox.ResponseScript(this, string.Format("alert('{0}');window.parent.Boxy.getIframeDialog('{1}').hide();window.parent.Boxy.getIframeDocument('{2}').location.reload();", "保存成功!", Utils.GetQueryStringValue("iframeId"), Utils.GetQueryStringValue("desid")));
                }
                else
                {
                    MessageBox.Show(this.Page, "修改失败!");
                }
                #endregion
            }
        }
Пример #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int    WorkerID = Utils.GetInt(Request.QueryString["WorkerID"], -1);
            string Method   = Utils.GetFormValue("hidMethod");

            if (WorkerID != -1 && !IsPostBack)            //考勤登记
            {
                this.hidWorkerID.Value  = WorkerID.ToString();
                this.spanMany.Visible   = false;
                this.spanState1.Visible = true;
                this.spanState2.Visible = true;
            }
            if (WorkerID == -1 && !IsPostBack)             //批量考勤
            {
                this.spanMany.Visible   = true;
                this.spanState1.Visible = false;
                this.spanState2.Visible = false;
            }

            if (Method != "")
            {
                if (!CheckGrant(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记))
                {
                    Utils.ResponseNoPermit(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记, true);
                }
                bool     result       = false;
                DateTime AttStartDate = Utils.GetDateTime(Request.Form["txt_AttStartDate"]);
                string   Radio        = Utils.GetFormValue("radio1");   //准点 迟到 旷工 休假 请假
                EyouSoft.BLL.AdminCenterStructure.AttendanceInfo   bllAttendanceInfo   = new EyouSoft.BLL.AdminCenterStructure.AttendanceInfo();
                EyouSoft.Model.AdminCenterStructure.AttendanceInfo modelAttendanceInfo = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo();

                if (WorkerID != -1 && Method == "Save")//考勤登记
                {
                    #region 考勤登记
                    string   msg       = string.Empty;
                    string[] Checkboxs = Utils.GetFormValues("checkbox1");      //加班 早退 外出 出团

                    #region 加班 请假
                    string   LeaveWhy          = Utils.GetFormValue("txt_LeaveWhy");
                    DateTime?LeaveForStartDate = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForStartDate"]);
                    DateTime?LeaveForEndDate   = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForEndDate"]);
                    int      LeaveDayNum       = Utils.GetInt(Request.Form["txt_LeaveDayNum"]);

                    string   WorkOverTimeContent   = Utils.GetFormValue("txt_WorkOverTimeContent");
                    DateTime?WorkOverTimeDateStart = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateStart"]);
                    DateTime?WorkOverTimeDateEnd   = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateEnd"]);
                    int      WorkOverTimeNum       = Utils.GetInt(Request.Form["txt_WorkOverTimeNum"]);
                    #endregion

                    #region 验证必填项
                    if (AttStartDate == null)
                    {
                        msg += "考勤时间不能为空!<br/>";
                    }
                    if (Radio != "" && Radio == "5")
                    {
                        if (LeaveForStartDate == null)
                        {
                            msg += "请假起始时间不能为空!<br/>";
                        }
                        if (LeaveForEndDate == null)
                        {
                            msg += "请假结束时间不能为空!<br/>";
                        }
                    }
                    if (Checkboxs != null && Checkboxs.Length > 0)
                    {
                        foreach (string value in Checkboxs)
                        {
                            if (value == "8")
                            {
                                if (WorkOverTimeDateStart == null)
                                {
                                    msg += "加班起始时间不能为空!<br/>";
                                }
                                if (WorkOverTimeDateEnd == null)
                                {
                                    msg += "加班结束时间不能为空!<br/>";
                                }
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(msg))
                    {
                        MessageBox.Show(this.Page, msg);
                        return;
                    }
                    #endregion

                    modelAttendanceInfo.CompanyId  = CurrentUserCompanyID;
                    modelAttendanceInfo.OperatorId = SiteUserInfo.ID;

                    modelAttendanceInfo.StaffNo = WorkerID;                 //考勤ID
                    modelAttendanceInfo.AddDate = AttStartDate;
                    if (Radio != "")
                    {
                        modelAttendanceInfo.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Utils.GetInt(Radio);
                        if (Radio == "7")
                        {
                            modelAttendanceInfo.Reason    = LeaveWhy;
                            modelAttendanceInfo.BeginDate = LeaveForStartDate;
                            modelAttendanceInfo.EndDate   = LeaveForEndDate;
                            modelAttendanceInfo.OutTime   = LeaveDayNum;
                        }
                        result = bllAttendanceInfo.Add(modelAttendanceInfo);
                        if (!result)
                        {
                            MessageBox.Show(this, "考勤失败!");
                            return;
                        }
                    }
                    if (Checkboxs != null && Checkboxs.Length > 0)
                    {
                        for (int i = 0; i < Checkboxs.Length; i++)
                        {
                            modelAttendanceInfo.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Utils.GetInt(Checkboxs[i]);
                            if (Checkboxs[i] == "8")
                            {
                                modelAttendanceInfo.Reason    = WorkOverTimeContent;
                                modelAttendanceInfo.BeginDate = WorkOverTimeDateStart;
                                modelAttendanceInfo.EndDate   = WorkOverTimeDateEnd;
                                modelAttendanceInfo.OutTime   = WorkOverTimeNum;
                            }
                            result = bllAttendanceInfo.Add(modelAttendanceInfo);
                            if (!result)
                            {
                                MessageBox.Show(this, "考勤失败!");
                                return;
                            }
                        }
                    }
                    if (result)
                    {
                        MessageBox.ResponseScript(this, string.Format("alert('{0}');window.parent.Boxy.getIframeDialog('{1}').hide();window.parent.location='{2}';", "考勤成功!", Utils.GetQueryStringValue("iframeId"), "/administrativeCenter/attendanceManage/Default.aspx"));
                    }
                    #endregion
                }
                else if (WorkerID == -1 && Method == "Save")//批量考勤
                {
                    #region 批量考勤
                    string   msg        = string.Empty;
                    DateTime AttEndDate = Utils.GetDateTime(Request.Form["txt_AttEndDate"]);
                    string   Name       = Utils.GetFormValue("txt_Name");
                    string   ID         = Utils.GetFormValue("hiddenID");

                    double   num = AttEndDate.Subtract(AttStartDate).TotalDays;     //考勤天数
                    string[] ids = ID.Split(',');                                   //考勤人数

                    DateTime tempTime;

                    if (AttStartDate == null)
                    {
                        msg += "考勤开始时间不能为空!<br/>";
                    }
                    if (AttEndDate == null)
                    {
                        msg += "考勤结束时间不能为空!<br/>";
                    }
                    if (Name == "")
                    {
                        msg += "考勤选择人员不能为空!";
                    }
                    if (AttStartDate == null || AttEndDate == null || Name == "")
                    {
                        MessageBox.Show(this.Page, msg);
                        return;
                    }

                    modelAttendanceInfo.CompanyId  = CurrentUserCompanyID;
                    modelAttendanceInfo.OperatorId = SiteUserInfo.ID;
                    modelAttendanceInfo.AddDate    = AttStartDate;

                    if (Radio != "")
                    {
                        #region 单选情况: 准点 迟到 旷工 休假 请假
                        modelAttendanceInfo.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Utils.GetInt(Radio);
                        tempTime = AttStartDate;
                        for (int i = 0; i < num; i++)
                        {
                            modelAttendanceInfo.AddDate = tempTime;
                            for (int n = 0; n < ids.Length; n++)
                            {
                                modelAttendanceInfo.StaffNo = Utils.GetIntNull(ids[n]);
                                result = bllAttendanceInfo.Add(modelAttendanceInfo);
                                if (!result)
                                {
                                    MessageBox.Show(this, "考勤失败!");
                                    return;
                                }
                            }
                            tempTime = tempTime.AddDays(1);
                        }
                        #endregion
                    }
                    if (result)
                    {
                        MessageBox.ResponseScript(this, string.Format("alert('{0}');window.parent.Boxy.getIframeDialog('{1}').hide();window.parent.location='{2}';", "批量考勤成功!", Utils.GetQueryStringValue("iframeId"), "/administrativeCenter/attendanceManage/Default.aspx"));
                    }
                    #endregion
                }
            }
        }