/// <summary> /// #目前登入者是可否看見此群組部門{CU_IsVirtualVisible}:○{T}是 ○{F}不是※群組需為公開或是非公開,但是為其成員者。 /// </summary> private void link_EOD_CU_IsVirtualVisible_XX(EO_DepartmentDataTable dt) { var empId = NsQueryContext.getCurrentUserId(); //NsQueryContext.getCurrentUserId()(); //SdmService.Instance.ServiceContext[AppDdParameterName.DDPN_EOE_EmployeeId]; //找出人員的所有部門 var dt1 = NsDmHelper.EO_DeptMember.where (t1 => t1.EODM_MemberId == empId.toConstReq1()).query(); dt1.Constraints.Add("pk", dt1.EODM_DeptIdColumn, true); foreach (var row in dt) { if (row.EOD_DepartmentType == "B") { if (row.EOD_VirtualType == "A") { row.EOD_CU_IsVirtualVisible_XX = "T"; } else { if (dt1.Rows.Find(row.EOD_DepartmentId) == null) { row.EOD_CU_IsVirtualVisible_XX = "F"; } else { row.EOD_CU_IsVirtualVisible_XX = "T"; } } } } }
private void link_EOD_DepartmentFullName_XX(EO_DepartmentDataTable dt) { var qry = new NsDbQuery(); var col = dt.Columns.Add("LevelId_XX", typeof(string)); //初始資料 foreach (var row in dt) { row[col] = row.EOD_ParentId; row.EOD_DepartmentFullName_XX = row.EOD_DepartmentName; } //逐階計算 while (true) { var levelpks = FtdDataHelper.getDistinctArray <string>(dt, col); qry.setSelect(s => { var t1 = s.from <EO_Department>(); s.select(t1.EOD_DepartmentId, t1.EOD_DepartmentName, t1.EOD_ParentId); s.Where = t1.EOD_DepartmentId.batchin(levelpks.toConstReq1()); }); var dt2 = qry.queryData <EO_DepartmentDataTable>(); if (dt2.Count == 0) { break; } FtdDataHelper.linkTable( dt.Rows , dt2 , col , (row, row2, isLink) => { if (isLink) { row[AppDataName.EOD_DepartmentFullName_XX] = string.Concat(row2[AppDataName.EOD_DepartmentName], @"\", row[AppDataName.EOD_DepartmentFullName_XX]); row[col] = row2[AppDataName.EOD_ParentId]; } else { row[col] = ""; } } ); dt2.Clear(); } dt.Columns.Remove(col); }
public EO_DepartmentDataTable EoDepartment_create(int rowCount = 1) { var dt = new EO_DepartmentDataTable(); if (rowCount < 0) { rowCount = 0; } for (int i = 0; i < rowCount; i++) { var row = dt.newTypedRow(); row.ns_AssignNewId(); dt.addTypedRow(row); } return(dt); }
private void link_EOD_EmployeeCount_XX(EO_DepartmentDataTable dt) { var pks = dt.getPrimaryKeys(); var qrydb = new NsDbQuery(); qrydb.setSelect(s => { var t1 = s.from <EO_DeptMember>(); s.select(t1.EODM_DeptId, NSQL.count().As("EmpCount")); s.Where = t1.EODM_DeptId.batchin(pks.toConstReq1()); s.groupBy(s.Selects[0]); }); var dt2 = qrydb.queryData(); dt2.Constraints.Add("PK", dt2.Columns[0], true); FtdDataHelper.linkTable(dt, dt2, new FtdDataHelper.LinkInfo(AppDataName.EOD_DepartmentId, AppDataName.EOD_EmployeeCount_XX, "EmpCount", 0)); }
public ActionResult Edit(FormCollection collection) { var token = collection["__RequestVerificationToken"]; var mode = collection["ViewMode"]; var id = collection[AppDataName.EOD_DepartmentId]; var msgOK = "OK"; EO_DepartmentDataTable dt = null; EO_DepartmentRow row = null; try { if (mode.equalIgnoreCase("create")) { dt = new EO_DepartmentDataTable(); row = dt.newTypedRow(); row.ns_AssignNewId(); dt.addTypedRow(row); msgOK = FtdStatus.InsertSuccess.ToString(); } else { //找出該筆資料 dt = EoDataService.Instance.EoDepartment_getById(id); if (dt == null || dt.Count == 0) { return(Json(new { Result = jTable_ERROR_CODE, Message = "資料不存在" })); } msgOK = FtdStatus.UpdateSuccess.ToString(); } //將Form sumit的資料更新至DataRow row = dt.FirstRow; var isOK = this.TryUpdateModel(row); //若驗證失敗-->回傳錯誤訊息 if (!ModelState.IsValid) { return(Json(new { Result = jTable_ERROR_CODE, Message = string.Join("<br/>", ModelState.Values) })); } #region //驗證欄位 List <string> lstError = new List <string>(); if (row.EOD_DepartmentId.isNullOrEmpty()) { lstError.Add("群組ID不能為空"); } if (row.EOD_DepartmentCode.isNullOrEmpty()) { lstError.Add("群組代號不能為空"); } if (row.EOD_DepartmentName.isNullOrEmpty()) { lstError.Add("群組名稱不能為空"); } if (!row.EOD_SortNo.HasValue) { lstError.Add("排序不能為空"); } //回傳錯誤訊息 if (lstError.Count > 0) { return(Json(new { Result = jTable_ERROR_CODE, Message = string.Join("<br/>", lstError.ToArray()) })); } //檢查鍵值是否重覆 if (EoDataService.Instance.EoDepartment_checkDuplicate(row.EOD_DepartmentId, row.EOD_DepartmentCode)) { return(Json(new { Result = jTable_ERROR_CODE, Message = "群組代號已存在" })); } #endregion dt.ns_update(); dt.AcceptChanges(); return(Json(new { Result = msgOK })); } catch (Exception ex) { return(Json(new { Result = jTable_ERROR_CODE, Message = ex.Message })); } }