private void ProjectUserDetail(IList <string> entProjectUser, Project poEnt) { if (entProjectUser != null && entProjectUser.Count > 0) { for (int j = 0; j < entProjectUser.Count; j++) { Newtonsoft.Json.Linq.JObject objL = JsonHelper.GetObject <Newtonsoft.Json.Linq.JObject>(entProjectUser[j]); ProjectUser podEnt = new ProjectUser(); podEnt.BelongDeptId = string.Empty; // System.Guid.NewGuid().ToString(); podEnt.BelongDeptName = string.Empty; //System.Guid.NewGuid().ToString(); podEnt.MajorCode = string.Empty; podEnt.MajorName = objL.Value <string>("MajorName"); podEnt.ProjectId = poEnt.Id; podEnt.ShenHeId = string.Empty; podEnt.UserId = objL.Value <string>("UserId"); podEnt.UserName = objL.Value <string>("UserName"); podEnt.ShenHeName = objL.Value <string>("ShenHeUserName"); podEnt.DistributeAmount = objL.Value <decimal>("DistributeAmount"); podEnt.DistributePercent = objL.Value <decimal>("DistributePercent"); podEnt.AcctualAmount = objL.Value <decimal>("AcctualAmount"); podEnt.DoCreate(); } } }
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; } }