public static List <TR01A> ToEntity(TR01AModel master, List <TR01BModel> detailList, List <TR01A> entityList, EntityState state) { if (state == EntityState.Added) { foreach (TR01BModel item in detailList) { var entityItem = new TR01A(); ToEntity(master, item, ref entityItem); entityItem.CREATE_USER = "******"; entityItem.CREATE_DATE = DateTime.Now; entityList.Add(entityItem); } } else { foreach (TR01BModel item in detailList) { var entityItem = entityList.First(x => x.TR01A_ID == item.TR01A_ID); ToEntity(master, item, ref entityItem); entityItem.UPDATE_USER = "******"; entityItem.UPDATE_DATE = DateTime.Now; } } return(entityList); }
public ActionResult Edit(string key) { string errMsg = ""; ViewData["Master"] = new TR01AModel() { VOU_NO = "系統產生", DtTRN_DT = DateTime.Now, EntityState = EntityState.Added }; ViewData["Detail"] = new List <TR01BModel>(); if (!string.IsNullOrWhiteSpace(key)) { var entityList = _Service.GetMany(x => x.VOU_NO == key); if (entityList.Count == 0) { errMsg = "查無資料"; } else { var dataSet = TR01Business.FromEntity(entityList); ViewData["Master"] = dataSet.Item1; ViewData["Detail"] = dataSet.Item2; } } if (Request.IsAjaxRequest()) { return(new JsonResult { Data = new { View = ReadViewHelper.PartialView(this, "_Edit", key), ErrMsg = errMsg }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } return(PartialView("_Edit", key)); }
public static Tuple <TR01AModel, List <TR01BModel> > FromEntity(List <TR01A> entityList) { var temp = entityList.First(); var master = new TR01AModel { TRN_DT = temp.TRN_DT, DtTRN_DT = DateTime.ParseExact(temp.TRN_DT, "yyyyMMdd", CultureInfo.InvariantCulture), VOU_NO = temp.VOU_NO, BA02A_ID = temp.BA02A_ID, BA02B_ID = temp.BA02B_ID, BA03A_ID = temp.BA03A_ID, DA03A_ID = temp.DA03A_ID, EntityState = EntityState.Modified }; var detailList = new List <TR01BModel>(); foreach (var item in entityList) { var BA01A = CacheCommonDataModule.GetBA01A(item.BA01A_ID); detailList.Add(new TR01BModel() { TR01A_ID = item.TR01A_ID, BA01A_ID = item.BA01A_ID, CRE_MY = item.CRE_MY, DEB_MY = item.DEB_MY, SUM_RM = item.SUM_RM, ACC_NO = BA01A.ACC_NO, ACC_NM = BA01A.ACC_NM }); } return(new Tuple <TR01AModel, List <TR01BModel> >(master, detailList)); }
private static void ToEntity(TR01AModel master, TR01BModel detail, ref TR01A entityItem) { entityItem.TRN_DT = master.DtTRN_DT.ToString("yyyyMMdd"); entityItem.VOU_NO = master.VOU_NO; entityItem.BA02A_ID = master.BA02A_ID; entityItem.BA02B_ID = master.BA02B_ID; entityItem.BA03A_ID = master.BA03A_ID; entityItem.DA03A_ID = master.DA03A_ID; entityItem.BA01A_ID = detail.BA01A_ID; entityItem.CRE_MY = detail.CRE_MY; entityItem.DEB_MY = detail.DEB_MY; entityItem.SUM_RM = detail.SUM_RM; }
public static string Validation(TR01AModel master, ModelStateDictionary ModelState) { List <string> errMsgList = new List <string>(); //if (master.REM_MM.Length > 10) //{ // master.ModelState.AddModelError("REM_MM", "太長"); //} //if (!master.ModelState.IsValid) //{ // errMsgList.Add("請檢查紅色驚嘆號"); //} return(string.Join("<br />", errMsgList)); }
private static List <TR01A> ToEntity(TR01AModel master, List <TR01A> updateList2) { foreach (TR01A item in updateList2) { item.TRN_DT = master.DtTRN_DT.ToString("yyyyMMdd"); item.VOU_NO = master.VOU_NO; item.BA02A_ID = master.BA02A_ID; item.BA02B_ID = master.BA02B_ID; item.BA03A_ID = master.BA03A_ID; item.DA03A_ID = master.DA03A_ID; item.UPDATE_USER = "******"; item.UPDATE_DATE = DateTime.Now; } return(updateList2); }
public ActionResult DetailGridBatchUpdate(TR01AModel master, MVCxGridViewBatchUpdateValues <TR01BModel, int> updateValues) { //Step1: 先把update資料抓回來 var deleteCount = _Service.GetMany(updateValues.DeleteKeys).Count; var entityList = _Service.GetMany(x => x.VOU_NO == master.VOU_NO); //Step2: call business before save var result = TR01Business.BeforeSave(master, updateValues, entityList, deleteCount, ModelState);//資料已被刪除<br />" //Step3: call service save change if (result.Message == "") { result.Message += _Service.SaveChanges(result.Insert, result.Update, result.Delete); } return(ResultHandler(result.Message, master, updateValues)); }
public static ResultHelperBatch <TR01A, int> BeforeSave(TR01AModel master, MVCxGridViewBatchUpdateValues <TR01BModel, int> values, List <TR01A> updateList, int deleteCount, ModelStateDictionary ModelState) { ResultHelperBatch <TR01A, int> result = new ResultHelperBatch <TR01A, int>() { Message = "" }; var updateKeys = values.Update.Select(x => x.TR01A_ID).ToList(); var trueUpdateList = updateList.Where(x => updateKeys.Contains(x.TR01A_ID)).ToList(); var fakeUpdateList = updateList.Where(x => !updateKeys.Contains(x.TR01A_ID)).ToList(); Validation(master, ModelState); ValidateDetail(values.Update, ModelState, EntityState.Modified); ValidateDetail(values.Insert, ModelState, EntityState.Added); if (trueUpdateList.Count != values.Update.Count || deleteCount != values.DeleteKeys.Count) { result.Message += "明細資料已被刪除<br/>請重新整理<br/>"; } result.Message += ValidateBalance(values.Update, values.Insert, fakeUpdateList); if (!ModelState.IsValid) { result.Message += "請檢查紅色驚嘆號<br/>"; } else if (result.Message == "") { if (master.EntityState == EntityState.Added) { master.VOU_NO = new ALMSEntities().Database.SqlQuery <string>("select dbo.Get_VOU_NO(" + master.DtTRN_DT.ToString("yyyyMMdd") + ")").FirstOrDefault(); } result.Insert = ToEntity(master, values.Insert, new List <TR01A>(), EntityState.Added); result.Update = ToEntity(master, values.Update, trueUpdateList, EntityState.Modified); if (fakeUpdateList.Count > 0) { result.Update.AddRange(ToEntity(master, fakeUpdateList));//把detail沒有編輯的 也補上master } result.Delete = values.DeleteKeys; } return(result); }
private ActionResult ResultHandler(string errMsg, TR01AModel master, MVCxGridViewBatchUpdateValues <TR01BModel, int> updateValues) { if (errMsg == "") { ViewData["IsSuccess"] = "true"; var result = TR01Business.FromEntity(_Service.GetMany(x => x.VOU_NO == master.VOU_NO)); ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", result.Item1); return(PartialView("_DetailGrid", result.Item2)); } else { 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"); } var deleteIDStrList = ""; for (int i = 0; i < updateValues.DeleteKeys.Count; i++) { updateValues.SetErrorText(updateValues.DeleteKeys[i], "Unable to delete!"); deleteIDStrList += updateValues.DeleteKeys[i] + ","; } if (master.EntityState == EntityState.Added) { master.VOU_NO = "系統產生"; } errMsg = "存儲失敗<br/>" + errMsg; ViewData["DeleteIDList"] = deleteIDStrList; ViewData["ErrMsg"] = errMsg.Substring(0, errMsg.Length - 5); ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", master); return(PartialView("_DetailGrid", new List <TR01BModel>())); } }