public ActionResult EmpGroupForm() { ViewData["LoginUserInfo"] = LoginUserInfo; string ProgramID = "G002"; if (!GeneralObj.CheckProgID(LoginUserInfo.ProgramList, ProgramID)) { return(View("../SysMsg/NoAccess")); } else { ViewData["SysProgram"] = GeneralObj.GetProgram(LoginUserInfo.ProgramList, ProgramID); } UserFreeStyleModel UserFreeStyle; UserFreeStyle = JsonConvert.DeserializeObject <UserFreeStyleModel>(Session[UserFreeStyle_id].ToString()); EmpGroupModel EmpGroup = ModelFactory.GetEmpGroup(UserFreeStyle.SignId); ViewData["EmpGroup"] = EmpGroup; return(View()); }
public JsonResult EmpGroupSave(string EmpGroupJson) { EmpGroupModel EmpGroup = null; try { EmpGroup = JsonConvert.DeserializeObject <EmpGroupModel>(EmpGroupJson); if (ModelFactory.EmpGroupSave(EmpGroup)) { return(Json("1"));//代表已經處裡完 } else { return(Json(""));//失敗 } } catch (Exception ex) { return(Json(ex.Message)); } catch { return(Json("系統發生錯誤")); } }
public bool EmpGroupSave(EmpGroupModel EmpGroup) { DbTransaction objTrans = DbAccess.CreateDbTransaction(); try { DbAccess.ExecuteNonQuery("DELETE FROM tbEmpGroup Where EmployeeNo = @EmployeeNo ", objTrans, new DbParameter[] { DataAccess.CreateParameter("EmployeeNo", DbType.String, EmpGroup.Emp.EmployeeNo.ToString()) } ); for (int i = 0; i < EmpGroup.GroupList.Count(); i++) { DbAccess.ExecuteNonQuery("INSERT INTO tbEmpGroup (EmployeeNo,GroupID) VALUES (@EmployeeNo,@GroupID) ", objTrans, new DbParameter[] { DataAccess.CreateParameter("EmployeeNo", DbType.String, EmpGroup.Emp.EmployeeNo.ToString()), DataAccess.CreateParameter("GroupID", DbType.String, EmpGroup.GroupList[i].GroupID.ToString()) }); } objTrans.Commit(); return(true); } catch { objTrans.Rollback(); return(false); } finally { if (objTrans != null) { objTrans.Dispose(); } } }
public EmpGroupModel GetEmpGroup(string EmpNo) { DataTable dt = DbAccess.ExecuteDataTable("SELECT * FROM gvEmployeeAll Where EmployeeNo = @EmployeeNo ", new DbParameter[] { DataAccess.CreateParameter("EmployeeNo", DbType.String, EmpNo.ToString()) } ); EmpModel Emp = null; Emp = new EmpModel(); Emp.EmployeeNo = dt.Rows[0]["EmployeeNo"].ToString(); Emp.EmployeeName = dt.Rows[0]["EmployeeName"].ToString(); Emp.DepartMentName = dt.Rows[0]["DepartMentName"].ToString(); Emp.DepartMentNo = dt.Rows[0]["DepartMentNo"].ToString(); Emp.Company = dt.Rows[0]["Company"].ToString(); Emp.CompanyName = dt.Rows[0]["CompanyName"].ToString(); Emp.EmployeeEName = dt.Rows[0]["EmployeeEName"].ToString(); //######################## EmpGroupModel EmpGroup = new EmpGroupModel(); EmpGroup.Emp = Emp; string sql = ""; sql = "SELECT GroupID,GroupName,ViewLevel,Power,0 as Flag FROM tbGroup WHERE GroupID Not IN (SELECT GroupID FROM tbEmpGroup WHERE EmployeeNo=@EmployeeNo) " + " UNION SELECT GP.GroupID,GP.GroupName,GP.ViewLevel,GP.Power,1 as Flag FROM tbEmpGroup EG LEFT OUTER JOIN tbGroup GP ON GP.GroupID=EG.GroupID WHERE EmployeeNo=@EmployeeNo "; dt = DbAccess.ExecuteDataTable(sql, new DbParameter[] { DataAccess.CreateParameter("EmployeeNo", DbType.String, EmpNo) }); List <ItemModel> ViewLevelList = GeneralModelFactory.GetGroupViewLevelList(); ProgramModelFactory Factory = new ProgramModelFactory(); List <ProgramModel> ProgramList = Factory.GetGroupProgramList(); for (int i = 0; i < dt.Rows.Count; i++) { string tmp = (from tmpViewLevel in ViewLevelList where tmpViewLevel.ItemID == dt.Rows[i]["ViewLevel"].ToString() select tmpViewLevel.ItemName).First(); int tmpPower = int.Parse(dt.Rows[i]["Power"].ToString()); List <ProgramModel> tmpProgramList = (from tmpProgram in ProgramList where (tmpPower & tmpProgram.Power) == tmpProgram.Power select tmpProgram).ToList(); if (dt.Rows[i]["Flag"].ToString() == "1") { EmpGroup.GroupList.Add(new GroupModel() { GroupID = dt.Rows[i]["GroupID"].ToString(), GroupName = dt.Rows[i]["GroupName"].ToString(), ViewLevel = tmp, GroupProgramList = tmpProgramList }); } else { EmpGroup.NoGroupList.Add(new GroupModel() { GroupID = dt.Rows[i]["GroupID"].ToString(), GroupName = dt.Rows[i]["GroupName"].ToString(), ViewLevel = tmp, GroupProgramList = tmpProgramList }); } } return(EmpGroup); }