Ejemplo n.º 1
0
        /// <summary>
        /// 添加员工考核
        /// </summary>
        /// <param name="request"></param>
        public void AddAttendance(AddProjectAttendanceRequest request)
        {
            Project model = this._projectRepository.FindBy(request.ProjectId);

            if (model == null)
            {
                throw new EntityIsInvalidException <string>(request.ProjectId.ToString());
            }
            Users user = this._usersRepository.FindBy(request.UsersId);

            if (model == null)
            {
                throw new EntityIsInvalidException <string>(request.UsersId.ToString());
            }
            Users createUser = this._usersRepository.FindBy(request.CreateUserId);

            if (createUser == null)
            {
                throw new EntityIsInvalidException <string>(request.CreateUserId.ToString());
            }

            ProjectAttendance material = new ProjectAttendance(model, user, createUser);

            model.AddAttendance(material);

            this._projectRepository.Add(model);
            this._uow.Commit();
        }
        private void DoGrid()
        {
            Id = Request["Id"];
            if (!string.IsNullOrEmpty(Id))
            {
                Pent = ProjectAttendance.Find(Id);
                if (Pent == null)
                {
                    return;
                }
                dt = new DataTable();
                DataColumn dc = new DataColumn("Id");
                dt.Columns.Add(dc);
                dc = new DataColumn("UserId");
                dt.Columns.Add(dc);
                dc = new DataColumn("UserName");
                dt.Columns.Add(dc);
                for (int i = 26; i < 32; i++)
                {
                    dc = new DataColumn("c" + i);
                    dt.Columns.Add(dc);
                }
                for (int i = 1; i < 26; i++)
                {
                    dc = new DataColumn("c" + i);
                    dt.Columns.Add(dc);
                }
                dc = new DataColumn("SumDay");
                dt.Columns.Add(dc);
                dc = new DataColumn("monthAdd");
                dt.Columns.Add(dc);

                // IList<ProjectUser> puEnts = ProjectUser.FindAllByProperty(ProjectUser.Prop_ProjectId, paEnt.ProjectId);
                sql = "select UserId,UserName from NCRL_SP..ProjectAttendanceDetail where ProjectAttendanceId='" + Pent.Id + "' group by UserName,UserId ";
                DataTable count = DataHelper.QueryDataTable(sql);
                for (int i = 0; i < count.Rows.Count; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr["UserId"]   = count.Rows[i].ItemArray[0];
                    dr["UserName"] = count.Rows[i].ItemArray[1];
                    IList <ProjectAttendanceDetail> padEnts = ProjectAttendanceDetail.FindAllByProperties(ProjectAttendanceDetail.Prop_ProjectAttendanceId, Pent.Id, ProjectAttendanceDetail.Prop_UserId, count.Rows[i].ItemArray[0]);
                    int sumday = 0;
                    foreach (ProjectAttendanceDetail padEnt in padEnts)
                    {
                        string adate = "c" + padEnt.AttendanceDate.Value.Day;
                        dr[adate] = padEnt.AttendanceType;
                        dr["Id"]  = padEnt.Id;
                        sumday++;
                    }
                    dr["SumDay"] = sumday;

                    dt.Rows.Add(dr);
                }
                string str  = JsonHelper.GetJsonStringFromDataTable(dt);
                string json = "{\"rows\":" + str + "}";
                Response.Write(json);
                Response.End();
            }
        }
Ejemplo n.º 3
0
 public virtual void AddAttendance(ProjectAttendance model)
 {
     if (this.Attendance == null)
     {
         this.Attendance = new List <ProjectAttendance>()
         {
         };
     }
     this.Attendance.Add(model);
 }
 private void FormLoad()
 {
     Id = Request["Id"];
     if (!string.IsNullOrEmpty(Id))
     {
         string data = JsonHelper.GetJsonString(ProjectAttendance.Find(Id));
         string sa   = "{success:  true  ,data:" + data + "}";
         Response.Write(sa);
         Response.End();
     }
 }
Ejemplo n.º 5
0
        public void AddProjectAttendance(AddProjectAttendanceRequest request)
        {
            ProjectAttendance model = this._projectAttendanceRepository.FindBy(request.Id);

            if (model == null)
            {
                throw new EntityIsInvalidException <string>(request.Id.ToString());
            }
            this._projectAttendanceRepository.Add(model);
            this._uow.Commit();
        }
Ejemplo n.º 6
0
        public void RemoveProjectAttendance(int id)
        {
            ProjectAttendance model = this._projectAttendanceRepository.FindBy(id);

            if (model == null)
            {
                throw new EntityIsInvalidException <string>(id.ToString());
            }
            this._projectAttendanceRepository.Remove(model);
            this._uow.Commit();
        }
        private void Create()
        {
            string  Year       = Request["Year"];
            string  Month      = Request["Month"];
            string  day        = Request["day"];
            string  SignType   = Request["SignType"];
            string  ProjectId  = Request["ProjectId"];
            string  UserId     = Request["UserId"];
            string  UserName   = Request["UserName"];
            string  Attachment = Request["Attachment"];
            string  Remark     = Request["Remark"];
            string  Id         = Request["Id"];
            Project ProEnt     = Project.Find(ProjectId);

            //查询是否存在该项目该年此月份的考勤
            sql = @"select * from NCRL_SP..ProjectAttendance where Year='" + Convert.ToInt32(Year) + "' and Month='" + Convert.ToInt32(Month) + "' and ProjectId='" + ProjectId + "'";
            DataTable dt = DataHelper.QueryDataTable(sql);

            //查询是否存在该部门本该年此月份的考勤
            sql = @"select Id from NCRL_SP..DeptAttendance where Year='" + Convert.ToInt32(Year) + "'and Month='" + Convert.ToInt32(Month) + "' and BelongDeptId ='" + ProEnt.BelongDeptId + "'";
            DataTable da = DataHelper.QueryDataTable(sql);

            //查询本公司是否存在该年此月份的考勤
            sql = @"select  * from NCRL_SP..CmpAttendance where Year='" + Convert.ToInt32(Year) + "'and Month='" + Convert.ToInt32(Month) + "'";
            DataTable ca = DataHelper.QueryDataTable(sql);

            if (string.IsNullOrEmpty(Id))
            {
                if (dt.Rows.Count > 0)
                {
                    return;
                }
                Pent                = new ProjectAttendance();
                Pent.Attachment     = Attachment;
                Pent.Remark         = Remark;
                Pent.ProjectId      = ProjectId;
                Pent.ProjectName    = ProEnt.ProjectName;
                Pent.Year           = Convert.ToInt32(Year);
                Pent.Month          = Convert.ToInt32(Month);
                Pent.PManagerId     = ProEnt.PManagerId;
                Pent.PManagerName   = ProEnt.PManagerName;
                Pent.BelongDeptId   = ProEnt.BelongDeptId;
                Pent.BelongDeptName = ProEnt.BelongDeptName;
                Pent.CreateId       = WebPortalService.CurrentUserInfo.UserID;
                Pent.CreateName     = WebPortalService.CurrentUserInfo.Name;
                Pent.CreateTime     = DateTime.Now;
                Pent.DoCreate();
                if (da.Rows.Count <= 0)
                {
                    dent                = new DeptAttendance();
                    dent.Year           = Convert.ToInt32(Year);
                    dent.Month          = Convert.ToInt32(Month);
                    dent.BelongDeptId   = Pent.BelongDeptId;
                    dent.BelongDeptName = Pent.BelongDeptName;
                    dent.DoCreate();
                }
                if (ca.Rows.Count <= 0)
                {
                    cent       = new CmpAttendance();
                    cent.Year  = Convert.ToInt32(Year);
                    cent.Month = Convert.ToInt32(Month);
                    cent.DoCreate();
                }
            }
            else
            {
                Pent = ProjectAttendance.Find(Id);
                if (Pent.Attachment != Attachment || Pent.Remark != Remark)
                {
                    Pent.Attachment = Attachment;
                    Pent.Remark     = Remark;
                    Pent.DoUpdate();
                }
            }

            sql = "select * from NCRL_SP..ProjectAttendanceDetail where UserId='" + UserId + "'and CONVERT(varchar(10), AttendanceDate,120)='" + Convert.ToDateTime(Year + "-" + Month + "-" + day).ToString("yyyy-MM-dd") + "' and ProjectAttendanceId<>'" + Id + "' or ProjectAttendanceId is null ";
            IList <EasyDictionary> dicss = DataHelper.QueryDictList(sql);

            if (dicss.Count > 0)
            {
                ents = ProjectAttendanceDetail.Find(dicss[0].Get <string>("Id"));
                ents.AttendanceType = SignType;
                if (!string.IsNullOrEmpty(Id))
                {
                    ents.ProjectAttendanceId = Id;
                }
                else
                {
                    ents.ProjectAttendanceId = Pent.Id;
                }
                ents.Description = "";
                ents.DoUpdate();

                if (!string.IsNullOrEmpty(Id))
                {
                    Response.Write("{success:  true  ,id:'" + Id + "'}");
                    Response.End();
                    return;
                }
                Response.Write("{success:  true  ,id:'" + Pent.Id + "'}");
                Response.End();
                return;
            }

            sql   = "select * from NCRL_SP..ProjectAttendanceDetail where UserId='" + UserId + "'and CONVERT(varchar(10), AttendanceDate,120)='" + Convert.ToDateTime(Year + "-" + Month + "-" + day).ToString("yyyy-MM-dd") + "' and ProjectAttendanceId='" + Id + "'";
            dicss = DataHelper.QueryDictList(sql);
            if (dicss.Count > 0)
            {
                ents = ProjectAttendanceDetail.Find(dicss[0].Get <string>("Id"));
                if (ents.AttendanceType != SignType)
                {
                    ents.AttendanceType = SignType;
                }
                else
                {
                    sql = "delete NCRL_SP..ProjectAttendanceDetail where  UserId='" + UserId + "'and CONVERT(varchar(10), AttendanceDate,120)='" + Convert.ToDateTime(Year + "-" + Month + "-" + day).ToString("yyyy-MM-dd") + "' and ProjectAttendanceId='" + Id + "'";
                    DataHelper.ExecSql(sql);
                    Response.Write("{success:  true  ,id:'" + Id + "'}");
                    Response.End();
                    return;
                }
                ents.CreateTime = System.DateTime.Now;
                ents.DoUpdate();
            }
            else
            {
                ents          = new ProjectAttendanceDetail();
                ents.UserId   = UserId;
                ents.UserName = UserName;
                if (!string.IsNullOrEmpty(Id))
                {
                    ents.ProjectAttendanceId = Id;
                }
                else
                {
                    ents.ProjectAttendanceId = Pent.Id;
                }
                ents.AttendanceType = SignType;
                ents.AttendanceDate = Convert.ToDateTime(Year + "-" + Month + "-" + day);
                ents.CreateId       = WebPortalService.CurrentUserInfo.UserID;
                ents.CreateName     = WebPortalService.CurrentUserInfo.Name;
                ents.CreateTime     = DateTime.Now;
                ents.DoCreate();
            }
            if (!string.IsNullOrEmpty(Id))
            {
                Response.Write("{success:  true  ,id:'" + Id + "'}");
                Response.End();
                return;
            }
            Response.Write("{success:  true  ,id:'" + Pent.Id + "'}");
            Response.End();
        }
Ejemplo n.º 8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string              action = Request["action"];
            string              id     = Request["id"];
            string              userid = Request["userid"];
            string              sql    = "";
            DataTable           dt     = null;
            ProjectAttendance   paEnt  = null;
            IList <ProjectUser> puEnts = null;

            if (!string.IsNullOrEmpty(id))
            {
                paEnt = ProjectAttendance.Find(id);
            }
            switch (action)
            {
            case "loadproject":
                sql = @"select Id as ProjectId,PManagerId,ProjectName,PManagerName,BelongDeptId,BelongDeptName from NCRL_SP..Project";
                dt  = DataHelper.QueryDataTable(sql);
                string data_prj = JsonHelper.GetJsonString(dt);
                sql = "select value as year from NCRL_Portal..SysEnumeration where ParentId='058fbee9-0a9a-4b25-b343-ea8c05396632' order by SortIndex asc";
                dt  = DataHelper.QueryDataTable(sql);
                string data_year = JsonHelper.GetJsonString(dt);
                sql = "select value as month from NCRL_Portal..SysEnumeration where ParentId='b25e537b-34e3-4437-87af-692e00facd73' order by SortIndex asc";
                dt  = DataHelper.QueryDataTable(sql);
                string data_month = JsonHelper.GetJsonString(dt);
                Response.Write("{'rows':" + data_prj + ",year:" + data_year + ",month:" + data_month + "}");
                Response.End();
                break;

            case "save":
                JObject jo = JsonHelper.GetObject <JObject>(Request["formdata"]);
                //有可能具体该年月的项目考勤主表已经存在
                sql = "select * from NCRL_SP..ProjectAttendance where ProjectId='{0}' and Year='{1}' and Month='{2}'";
                sql = string.Format(sql, jo.Value <string>("ProjectId"), jo.Value <string>("Year"), jo.Value <string>("Month"));
                dt  = DataHelper.QueryDataTable(sql);
                if (dt.Rows.Count > 0)
                {
                    paEnt        = ProjectAttendance.Find(dt.Rows[0]["Id"]);
                    paEnt.Remark = jo.Value <string>("Remark");
                    paEnt.DoUpdate();
                }
                else
                {
                    paEnt = JsonHelper.GetObject <ProjectAttendance>(Request["formdata"]);
                    paEnt.DoCreate();
                }
                //创建完项目阶段考勤后 自动创建本阶段项目所属部门考勤和公司考勤
                //IList<CmpAttendance> caEnts = CmpAttendance.FindAllByProperties(CmpAttendance.Prop_Year, paEnt.Year, CmpAttendance.Prop_Month, paEnt.Month);
                //if (caEnts.Count == 0)
                //{
                //    CmpAttendance caEnt = new CmpAttendance();
                //    caEnt.Year = paEnt.Year;
                //    caEnt.Month = paEnt.Month;
                //    caEnt.DoCreate();
                //}
                //表单信息创建或者更新完毕后调取考核明细
                sql = "select * from  NCRL_SP..PrjAttendanceDetail  where ProjectAttendanceId='" + paEnt.Id + "' order by UserId asc";
                dt  = DataHelper.QueryDataTable(sql);
                if (dt.Rows.Count == 0)
                {
                    //如果是首次创建没有考勤明细的时候
                    sql = "select UserId,UserName from NCRL_SP..ProjectUser where ProjectId='" + paEnt.ProjectId + "' order by UserId asc";
                    dt  = DataHelper.QueryDataTable(sql);
                }
                string title   = paEnt.ProjectName + paEnt.Year + "年" + paEnt.Month + "月考勤表";
                int    runyear = 0;
                if ((paEnt.Year % 4 == 0 && paEnt.Year % 100 != 0) || paEnt.Year % 400 == 0)
                {
                    runyear = 1;
                }
                Response.Write("{success:true,month:'" + paEnt.Month + "',runyear:" + runyear + ",Id:'" + paEnt.Id + "',detail:" + JsonHelper.GetJsonStringFromDataTable(dt) + ",title:'" + title + "'}");
                Response.End();
                break;

            case "loadform":
                paEnt = ProjectAttendance.Find(id);
                Response.Write("{success:true,data:" + JsonHelper.GetJsonString(paEnt) + "}");
                Response.End();
                break;

            case "updatedetail":
                string result = Request["SignType"];
                paEnt = ProjectAttendance.Find(id);
                sql   = "select * from NCRL_SP..PrjAttendanceDetail where ProjectAttendanceId='" + paEnt.Id + "' and UserId='" + Request["UserId"] + "'";
                dt    = DataHelper.QueryDataTable(sql);
                if (dt.Rows.Count == 0)
                {
                    sql = "insert into NCRL_SP..PrjAttendanceDetail (Id,ProjectAttendanceId,UserId,UserName,Year,Month," + Request["day"] + ") values('" + Guid.NewGuid() + "','" + paEnt.Id + "','" + Request["UserId"] + "','" + Request["UserName"] + "','" + paEnt.Year + "','" + paEnt.Month + "','" + Request["SignType"] + "')";
                }
                else
                {
                    //如果先前同一个字段标记的是正常上班,再次点正常上班时,清空该字段
                    if (dt.Rows[0][Request["day"]] + "" == Request["SignType"])
                    {
                        sql    = "update NCRL_SP..PrjAttendanceDetail set " + Request["day"] + "=null where Id='" + dt.Rows[0]["Id"] + "'";
                        result = "";
                    }
                    else
                    {
                        sql    = "update NCRL_SP..PrjAttendanceDetail set " + Request["day"] + "='" + Request["SignType"] + "' where Id='" + dt.Rows[0]["Id"] + "'";
                        result = Request["SignType"];
                    }
                }
                DataHelper.ExecSql(sql);
                //插入考勤日志,为生成人员月度考勤提供基础数据
                sql = "insert into NCRL_SP..AttendanceLog (Id,ProjectAttendanceId,UserId,UserName,Field,AttendanceType,CreateId,CreateName,CreateTime) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',GETDATE()) ";
                sql = string.Format(sql, Guid.NewGuid(), paEnt.Id, Request["UserId"], Request["UserName"], Request["day"], result, Aim.Portal.PortalService.CurrentUserInfo.UserID, Aim.Portal.PortalService.CurrentUserInfo.Name);
                DataHelper.ExecSql(sql);

                Response.Write("{success:true,result:'" + result + "'}");
                Response.End();
                break;

            case "delete":
                sql = "delete NCRL_SP..ProjectAttendanceDetail where UserId='{0}' and ProjectAttendanceId='{1}' ";
                sql = string.Format(sql, userid, id);
                DataHelper.ExecSql(sql);
                puEnts = ProjectUser.FindAllByProperties(ProjectUser.Prop_UserId, userid, ProjectUser.Prop_ProjectId, paEnt.ProjectId);
                if (puEnts.Count > 0)
                {
                    puEnts[0].DoDelete();
                }
                break;

            case "updateprojectuser":
                puEnts = ProjectUser.FindAllByProperties(ProjectUser.Prop_UserId, userid, ProjectUser.Prop_ProjectId, paEnt.ProjectId);
                if (puEnts.Count == 0)
                {
                    ProjectUser puEnt = new ProjectUser();
                    puEnt.UserId    = userid;
                    puEnt.UserName  = Request["username"];
                    puEnt.ProjectId = paEnt.ProjectId;
                    puEnt.DoCreate();
                }
                break;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Aim.Portal.Web.WebPortalService.CheckLogon();
            }
            catch
            {
                Response.Write("<script> window.location.href = '/Login.aspx';</script>");
                Response.End();
            }
            string        action = Request["action"];
            string        sql    = "";
            string        id     = Request["id"];
            DataTable     dt     = null;
            CmpAttendance caEnt  = null;

            string where = "";
            ProjectAttendanceDetail padEnt = null;

            switch (action)
            {
            case "loaddetail":
                if (!string.IsNullOrEmpty(id))
                {
                    caEnt = CmpAttendance.Find(id);
                    dt    = new DataTable();
                    DataColumn dc = new DataColumn("UserId");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("DeptName");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("ProjectName");
                    dt.Columns.Add(dc);
                    dc = new DataColumn("UserName");
                    dt.Columns.Add(dc);
                    DateTime dt_cur = Convert.ToDateTime(caEnt.Year + "-" + caEnt.Month + "-1");
                    DateTime dt_pre = dt_cur.AddMonths(-1);
                    int      days   = DateTime.DaysInMonth(dt_pre.Year, dt_pre.Month);
                    for (int i = 20; i <= days; i++)
                    {
                        dc = new DataColumn("C" + i);
                        dt.Columns.Add(dc);
                    }
                    for (int i = 1; i <= 19; i++)
                    {
                        dc = new DataColumn("C" + i);
                        dt.Columns.Add(dc);
                    }
                    if (!string.IsNullOrEmpty(Request["SearchValue"]))    //如果是查询
                    {
                        if (Request["SearchCondition"] == "UserName")
                        {
                            where += " and Name like '%" + Request["SearchValue"] + "%'";
                        }
                        if (Request["SearchCondition"] == "DeptName")
                        {
                            where += " and Server_Seed like '%" + Request["SearchValue"] + "%'";
                        }
                        if (Request["SearchCondition"] == "ProjectName")
                        {
                            where += " and a.UserId in (select c.UserId from  NCRL_SP..ProjectAttendanceDetail c left join NCRL_SP..ProjectAttendance b on c.ProjectAttendanceId=b.Id"
                                     + " where datepart(yyyy,c.AttendanceDate)='" + caEnt.Year + "' and datepart(mm,c.AttendanceDate)='" + caEnt.Month + "' and b.ProjectName like '%" + Request["SearchValue"] + "%')";
                        }
                    }
                    sql = "select a.UserId,a.Name as UserName ,a.Server_Seed as DeptName,a.Server_IAGUID from SysUser a"
                          + " where a.Server_Seed like '%江西瑞林建设监理有限公司%' and a.Status=1" + where;
                    IList <EasyDictionary> dics = DataHelper.QueryDictList(GetPageSql(sql));
                    foreach (EasyDictionary dic in dics)
                    {
                        DataRow dr = dt.NewRow();
                        dr["UserId"]   = dic.Get <string>("UserId");
                        dr["UserName"] = dic.Get <string>("UserName");
                        //取该人员本年度本月所在的项目 可能是多个
                        sql = @"select distinct ProjectAttendanceId from NCRL_SP..ProjectAttendanceDetail where UserId='{0}' and datepart(yyyy,AttendanceDate)='{1}' and 
                                  datepart(mm,AttendanceDate)='{2}'";
                        sql = string.Format(sql, dic.Get <string>("UserId"), caEnt.Year, caEnt.Month);
                        IList <EasyDictionary> dics_tmp = DataHelper.QueryDictList(sql);
                        string projectNames             = "";
                        foreach (EasyDictionary dic_tmp in dics_tmp)
                        {
                            ProjectAttendance paEnt = ProjectAttendance.TryFind(dic_tmp.Get <string>("ProjectAttendanceId"));
                            if (paEnt != null)
                            {
                                projectNames += (string.IsNullOrEmpty(projectNames) ? "" : ",") + paEnt.ProjectName;
                            }
                        }
                        dr["ProjectName"] = projectNames;
                        string deptName = dic.Get <string>("DeptName") == "江西瑞林建设监理有限公司" ? "江西瑞林建设监理有限公司" : dic.Get <string>("DeptName").Replace("江西瑞林建设监理有限公司", "");
                        dr["DeptName"] = deptName;
                        for (int i = 20; i <= days; i++)
                        {
                            sql = @"select AttendanceType,ProjectAttendanceId from NCRL_SP..ProjectAttendanceDetail where UserId='{0}' and datepart(year,AttendanceDate)='{1}' and 
                                datepart(month,AttendanceDate)='{2}' and datepart(day,AttendanceDate)='{3}'";
                            sql = string.Format(sql, dic.Get <string>("UserId"), dt_pre.Year, dt_pre.Month, i);
                            IList <EasyDictionary> dics_padetail = DataHelper.QueryDictList(sql);
                            string attendtype = "";
                            if (dics_padetail.Count > 0)
                            {
                                switch (dics_padetail[0].Get <string>("AttendanceType"))
                                {
                                case "正常上班":
                                    attendtype = "√";
                                    break;

                                case "请假":
                                    attendtype = "!";
                                    break;

                                case "其他":
                                    attendtype = "×";
                                    break;
                                }
                            }
                            dr["C" + i] = attendtype;
                        }
                        for (int i = 1; i <= 19; i++)
                        {
                            sql = @"select AttendanceType,ProjectAttendanceId from NCRL_SP..ProjectAttendanceDetail where UserId='{0}' and datepart(year,AttendanceDate)='{1}' and 
                                datepart(month,AttendanceDate)='{2}' and datepart(day,AttendanceDate)='{3}'";
                            sql = string.Format(sql, dic.Get <string>("UserId"), dt_cur.Year, dt_cur.Month, i);
                            IList <EasyDictionary> dics_padetail = DataHelper.QueryDictList(sql);
                            string attendtype = "";
                            if (dics_padetail.Count > 0)
                            {
                                switch (dics_padetail[0].Get <string>("AttendanceType"))
                                {
                                case "正常上班":
                                    attendtype = "√";
                                    break;

                                case "请假":
                                    attendtype = "!";
                                    break;

                                case "其他":
                                    attendtype = "×";
                                    break;
                                }
                            }
                            dr["C" + i] = attendtype;
                        }
                        dt.Rows.Add(dr);
                    }
                    string title = "江西瑞林建设监理有限公司" + caEnt.Year + "年" + caEnt.Month + "月考勤表";
                    Response.Write("{success:true,total:" + totalProperty + ",rows:" + JsonHelper.GetJsonStringFromDataTable(dt) + ",title:'" + title + "'}");
                    Response.End();
                }
                break;

            case "update":
                if (!string.IsNullOrEmpty(id))
                {
                    string result = Request["attendanttype"];
                    caEnt = CmpAttendance.Find(id);
                    DateTime dt_cur = Convert.ToDateTime(caEnt.Year + "-" + caEnt.Month + "-1");
                    DateTime dt_pre = dt_cur.AddMonths(-1);
                    int      day    = Convert.ToInt32(Request["day"]);
                    sql = @"select * from NCRL_SP..ProjectAttendanceDetail where UserId='{0}' and datepart(year,AttendanceDate)='{1}' and 
                                datepart(month,AttendanceDate)='{2}' and datepart(day,AttendanceDate)='{3}'";
                    if (day > 19)
                    {
                        sql = string.Format(sql, Request["userid"], dt_pre.Year, dt_pre.Month, Request["day"]);
                    }
                    else
                    {
                        sql = string.Format(sql, Request["userid"], dt_cur.Year, dt_cur.Month, Request["day"]);
                    }
                    IList <EasyDictionary> dics_padetail = DataHelper.QueryDictList(sql);
                    if (dics_padetail.Count == 0)
                    {
                        DateTime?dt_attend = null;
                        if (day > 19)
                        {
                            dt_attend = Convert.ToDateTime(dt_pre.Year + "-" + dt_pre.Month + "-" + Request["day"]);
                        }
                        else
                        {
                            dt_attend = Convert.ToDateTime(dt_cur.Year + "-" + dt_cur.Month + "-" + Request["day"]);
                        }
                        padEnt                = new ProjectAttendanceDetail();
                        padEnt.UserId         = Request["userid"];
                        padEnt.UserName       = Request["username"];
                        padEnt.AttendanceDate = dt_attend;
                        padEnt.AttendanceType = Request["attendanttype"];
                        padEnt.DoCreate();
                    }
                    else
                    {
                        padEnt = ProjectAttendanceDetail.Find(dics_padetail[0].Get <string>("Id"));
                        if (padEnt.AttendanceType == Request["attendanttype"])    //如果先前是正常上班 再次点击还是正常上班 就删除
                        {
                            padEnt.DoDelete();
                            result = "";
                        }
                        else
                        {
                            padEnt.AttendanceType = Request["attendanttype"];
                            padEnt.DoUpdate();
                        }
                    }
                    switch (result)
                    {
                    case "正常上班":
                        result = "√";
                        break;

                    case "请假":
                        result = "!";
                        break;

                    case "其他":
                        result = "×";
                        break;
                    }
                    Response.Write("{success:true,result:'" + result + "'}");
                    Response.End();
                }
                break;
            }
        }
 public static ProjectAttendanceView ConvertToProjectAttendanceView(this ProjectAttendance model)
 {
     return(Mapper.Map <ProjectAttendance, ProjectAttendanceView>(model));
 }
        private void DoSelect()
        {
            DeptId = Request["DeptId"];
            Year   = Request["Year"];
            Month  = Request["Month"];
            DataTable  dt = new DataTable();
            DataColumn dc = new DataColumn("ProjectName");

            dt.Columns.Add(dc);
            dc = new DataColumn("UserId");
            dt.Columns.Add(dc);
            dc = new DataColumn("UserName");
            dt.Columns.Add(dc);
            for (int i = 26; i < 32; i++)
            {
                dc = new DataColumn("c" + i);
                dt.Columns.Add(dc);
            }
            for (int i = 1; i < 26; i++)
            {
                dc = new DataColumn("c" + i);
                dt.Columns.Add(dc);
            }
            dc = new DataColumn("RowNumber");
            dt.Columns.Add(dc);
            dc = new DataColumn("SumDay");
            dt.Columns.Add(dc);
            IList <ProjectAttendance> Pents = ProjectAttendance.FindAllByProperties("BelongDeptId", DeptId, "Year", Convert.ToInt32(Year), "Month", Convert.ToInt32(Month));

            foreach (ProjectAttendance Pent in Pents)
            {
                int RowNumber = 0;
                sql = "select UserId,UserName,ProjectAttendanceId from NCRL_SP..ProjectAttendanceDetail where ProjectAttendanceId='" + Pent.Id + "' group by UserName,UserId,ProjectAttendanceId ";
                DataTable count = DataHelper.QueryDataTable(sql);
                for (int i = 0; i < count.Rows.Count; i++)
                {
                    RowNumber++;
                    DataRow dr = dt.NewRow();
                    dr["RowNumber"]   = RowNumber;
                    dr["UserId"]      = count.Rows[i].ItemArray[0];
                    dr["UserName"]    = count.Rows[i].ItemArray[1];
                    dr["ProjectName"] = Pent.ProjectName;
                    IList <ProjectAttendanceDetail> padEnts = ProjectAttendanceDetail.FindAllByProperties(ProjectAttendanceDetail.Prop_ProjectAttendanceId, Pent.Id, ProjectAttendanceDetail.Prop_UserId, count.Rows[i].ItemArray[0]);
                    int sumday = 0;
                    foreach (ProjectAttendanceDetail padEnt in padEnts)
                    {
                        string adate = "c" + padEnt.AttendanceDate.Value.Day;
                        dr[adate] = padEnt.AttendanceType;
                        // dr["Id"] = padEnt.Id;
                        sumday++;
                    }
                    dr["SumDay"] = sumday;
                    dt.Rows.Add(dr);
                }
            }
            string str  = JsonHelper.GetJsonStringFromDataTable(dt);
            string json = "{\"rows\":" + str + "}";

            Response.Write(json);
            Response.End();
        }