public ActionResult ComboBoxContact(int?key) { if (key.HasValue) { var entity = new PURSysEntities(); var BA01A = entity.BA01A.FirstOrDefault(x => x.BA01A_ID == key.Value); if (BA01A != null) { ViewData["ADD_DR"] = BA01A.ADD_DR; ViewData["FAX_NO"] = BA01A.FAX_NO; ViewData["BA03A_ID"] = BA01A.BA03A_ID; var BA01BList = new Services.BA01.BA01Service().GetAllD(key.Value).ToList(); var BA01B = BA01BList.FirstOrDefault(x => x.BA01A_ID == key.Value); if (BA01B != null) { ViewData["TEL_NO"] = BA01B.TEL_NO; ViewData["TEL_EX"] = BA01B.TEL_EX; } ViewData["CUR_RT"] = CacheCommonDataModule.GetBA03A().First(x => x.BA03A_ID == BA01A.BA03A_ID).CUR_RT; } else { ViewData["ADD_DR"] = ""; ViewData["FAX_NO"] = ""; ViewData["BA03A_ID"] = ""; } ViewBag.Data = entity.BA01B.Where(x => x.BA01A_ID == key.Value).ToList(); } else { ViewBag.Data = new List <BA01B>(); } return(PartialView("_ComboBoxContact")); }
/// <summary>Entity to viewmodel Single</summary> /// <param name="entity">TR01A</param> public static TR01AViewModel FromEntity(TR01A entity) { var data = new TR01AViewModel(); if (entity != null) { var objectHelper = new ActWeis.Utility.ObjectHelper(); objectHelper.CopyValue(entity, data); #region [ 資料處理 ] var BA01A = CacheCommonDataModule.GetBA01A().FirstOrDefault(x => x.BA01A_ID == entity.BA01A_ID); if (BA01A != null) { data.FAX_NO = BA01A.FAX_NO; data.ADD_DR = BA01A.ADD_DR; } var BA01B = new Services.BA01.BA01Service().GetD(x => x.BA01B_ID == entity.BA01B_ID); if (BA01B != null) { data.TEL_NO = BA01B.TEL_NO; data.TEL_EX = BA01B.TEL_EX; } #endregion [ 資料處理 ] } return(data); }
/// <summary>Both master and detail has change</summary> /// <param name="batchData">contain updata、insert、delete list</param> /// <param name="master"></param> /// <returns></returns> public ActionResult DetailGridBatchUpdate(MVCxGridViewBatchUpdateValues <TR01BViewModel, int> updateValues, TR01AViewModel master, string DateBeg, string DateEnd, string Tax) { //Validation string errMsg = ""; if (UserInfo.LanguageType == Language.Type.VN) { master.DtPUR_DT = DateTime.Parse(DateBeg); master.DtEXP_DT = DateTime.Parse(DateEnd); ModelState.Clear(); TryValidateModel(master); } var isValid = TR01Business.Validation(master, updateValues, ModelState); ModelState.Remove("DtPUR_DT"); ModelState.Remove("DtEXP_DT"); if (!TR01Business.ValidateRemove(master, updateValues.Update)) { isValid = false; errMsg = "資料已被其他人異動過"; } if (master.CFN_YN == "Y") { errMsg += "資料已確認 不可修改"; } else if (master.CFN_YN == "P") { errMsg += "資料申請中 不可修改"; } else { //Save if (isValid) { var TR01A = TR01Business.BeforSave(master); if (UserInfo.LanguageType == Language.Type.VN) { TR01A.PUR_DT = DateBeg.Replace("/", ""); //master.DtPUR_DT.Value.ToString("yyyyddMM"); TR01A.EXP_DT = DateEnd.Replace("/", ""); //master.DtEXP_DT.Value.ToString("yyyyddMM"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(Language.US); TR01A.TAX_RT = double.Parse(Tax); //越文沒有小數點特殊處理 } else { TR01A.PUR_DT = master.DtPUR_DT.Value.ToString("yyyyMMdd"); TR01A.EXP_DT = master.DtEXP_DT.Value.ToString("yyyyMMdd"); } var addList = TR01Business.BeforSave(updateValues.Insert, EditType.AddNew); var updateList = TR01Business.BeforSave(updateValues.Update, EditType.Update); var result = _Service.Update(TR01A, addList, updateList, updateValues.DeleteKeys); errMsg = result.Message; master = TR01Business.FromEntity(result.Data); } } //Error handling if (errMsg.Length > 0 || !isValid) { for (int i = 0; i < updateValues.Insert.Count; i++) { ModelState.AddModelError($"Insert[{i}].IsValid", "Error"); } for (int i = 0; i < updateValues.Update.Count; i++) { ModelState.AddModelError($"Update[{i}].IsValid", "Error"); } string deleteIDStrList = ""; for (int i = 0; i < updateValues.DeleteKeys.Count; i++) { updateValues.SetErrorText(updateValues.DeleteKeys[i], "Unable to delete!"); deleteIDStrList += updateValues.DeleteKeys[i] + ","; } ViewData["DeleteIDList"] = deleteIDStrList; ViewData["ErrMsg"] = Resources.Resource.FailureStr + "<br />" + errMsg; } ViewData["Key"] = master.TR01A_ID; var BA01BList = new Services.BA01.BA01Service().GetAllD(master.BA01A_ID).ToList(); ViewBag.Data = BA01BList; //var BA01B = BA01BList.FirstOrDefault(x => x.BA01B_ID == master.BA01B_ID); //if (BA01B != null) //{ // master.TEL_NO = BA01B.TEL_NO; // master.TEL_EX = BA01B.TEL_EX; //} ViewData["CFN_YN"] = master.CFN_YN; if (master.CFN_YN == "Y") { ViewData["IsConfirm"] = true; } else { ViewData["IsConfirm"] = false; } ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", master); return(PartialView("_DetailGrid", GetTR01BList(master.TR01A_ID))); }
/// <summary>Only master data change</summary> /// <param name="master">主檔資料</param> /// <param name="key">JS keyOnPage的 value</param> /// <param name="Deletekey">要刪除的key</param> /// <param name="Reload_TF">控制是否單純刷新資料</param> /// <returns></returns> public ActionResult DetailGridCustomUpdate(TR01AViewModel master, string key, string Deletekey, string Reload_TF, string Lock, string DateBeg, string DateEnd, string Tax) { var errMsg = ""; if (Lock != null) { var entities = new PURSysEntities(); var keyInt = int.Parse(key); var data = entities.TR01A.First(x => x.TR01A_ID == keyInt); if (Lock == "Y") { data.CFN_YN = "N"; } else { data.CFN_YN = "Y"; } entities.SaveChanges(); } if (Reload_TF == "T")//load畫面 => 新增/查詢/取消 { int.TryParse(key, out int keyValue); if (keyValue > 0) { master = TR01Business.FromEntity(_Service.GetA(keyValue)); } else { //新增初始化 master.DtPUR_DT = DateTime.UtcNow.AddHours(07); master.CPN_NM = "劲亨金属表面处理工業有限公司 Công ty Jingheng"; master.TAX_RT = CacheCommonDataModule.GetTaxRate().First().Value; } ModelState.Clear(); } else // 修改(新增、修改) / 刪除 { if (master.CFN_YN == "Y") { errMsg += "資料已確認 不可修改"; int.TryParse(key, out int keyValue); master = TR01Business.FromEntity(_Service.GetA(keyValue)); } else if (master.CFN_YN == "P") { errMsg += "資料申請中 不可修改"; int.TryParse(key, out int keyValue); master = TR01Business.FromEntity(_Service.GetA(keyValue)); } else { if (int.TryParse(Deletekey, out int keyValue))// 刪除 { if (keyValue > 0) { errMsg = "查無此筆刪除資料"; var count = _Service.GetA(x => x.TR01A_ID == keyValue).Count(); if (count == 1) { errMsg = _Service.Delete(keyValue);//刪除成功回傳空字串 } if (errMsg.Length > 0) { ViewData["ErrMsg"] = "Delete Fail"; master = TR01Business.FromEntity(_Service.GetA(keyValue));//取回刪除失敗的資料回畫面顯示 } } ModelState.Clear(); } else// Save 新增、修改 data { //Help.ClearError(ModelState, "DtPUR_DT"); //Help.ClearError(ModelState, "DtEXP_DT"); if (UserInfo.LanguageType == Language.Type.VN) { master.DtPUR_DT = DateTime.Parse(DateBeg); master.DtEXP_DT = DateTime.Parse(DateEnd); ModelState.Clear(); TryValidateModel(master); } var isValid = TR01Business.Validation(master, ModelState); if (!TR01Business.ValidateRemove(master, null)) { isValid = false; errMsg = "資料已被其他人異動過"; } if (isValid)// Save { var TR01A = TR01Business.BeforSave(master); if (UserInfo.LanguageType == Language.Type.VN) { TR01A.PUR_DT = DateBeg.Replace("/", ""); //master.DtPUR_DT.Value.ToString("yyyyddMM"); TR01A.EXP_DT = DateEnd.Replace("/", ""); //master.DtEXP_DT.Value.ToString("yyyyddMM"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(Language.US); TR01A.TAX_RT = double.Parse(Tax); } else { TR01A.PUR_DT = master.DtPUR_DT.Value.ToString("yyyyMMdd"); TR01A.EXP_DT = master.DtEXP_DT.Value.ToString("yyyyMMdd"); } var result = _Service.Update(TR01A); errMsg = result.Message; master = TR01Business.FromEntity(result.Data); } if (errMsg.Length > 0 || !isValid)// Result { errMsg += Resources.Resource.FailureStr; } } } } ViewData["ErrMsg"] = errMsg; ViewData["Key"] = master.TR01A_ID; var BA01BList = new Services.BA01.BA01Service().GetAllD(master.BA01A_ID).ToList(); ViewBag.Data = BA01BList; ViewData["CFN_YN"] = master.CFN_YN; if (master.CFN_YN == "Y") { ViewData["IsConfirm"] = true; } else { ViewData["IsConfirm"] = false; } ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", master); return(PartialView("_DetailGrid", GetTR01BList(master.TR01A_ID))); }