示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
 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;
 }
示例#5
0
        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));
        }
示例#6
0
 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);
 }
示例#7
0
        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));
        }
示例#8
0
        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);
        }
示例#9
0
        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>()));
            }
        }