Example #1
0
        /// <summary>Only master data change</summary>
        /// <param name="master"></param>
        /// <returns></returns>
        public ActionResult DetailGridCustomUpdate(BA02AViewModel master)
        {
            string errMsg = "";

            //Validation
            ValidateMaster(master);
            //Save
            if (ModelState.IsValid)
            {
                var BA02A = MasterToEntity(master);

                var result = _Service.UpdateM(BA02A);
                errMsg = result.Message;
                master = new BA02AViewModel(result.Data);
            }
            //Result
            if (errMsg.Length > 0 || !ModelState.IsValid)
            {
                errMsg += "Fail";
                ViewData["EditErrorMsg"] = errMsg;
                ViewData["MasterForm"]   = ReadViewHelper.PartialView(this, "_MasterForm", master);
                return(PartialView("_DetailGrid", GetBA02BList(master.BA02A_ID)));
            }
            else
            {
                CacheHelper.Invalidate("BA02A");
                SetTempData(master.BA02A_ID);
                return(RedirectToAction("Index"));
            }
        }
Example #2
0
 private void ValidateMaster(BA02AViewModel master)
 {
     if (master.TYP_ID == null)
     {
         ModelState.AddModelError("TYP_ID", "必填");
     }
 }
Example #3
0
        private BA02A MasterToEntity(BA02AViewModel master)
        {
            var BA02A = new BA02A();

            if (master.BA02A_ID == 0)//Adding New
            {
                master.CREATE_USER = UserInfo.Id;
                master.CREATE_DATE = DateTime.Now;
                master.ToDomain(BA02A);
            }
            else//Update
            {
                BA02A = _Service.GetM(master.BA02A_ID);
                master.CREATE_USER = BA02A.CREATE_USER;
                master.CREATE_DATE = BA02A.CREATE_DATE;
                master.UPDATE_USER = UserInfo.Id;
                master.UPDATE_DATE = DateTime.Now;
                master.ToDomain(BA02A);
            }
            return(BA02A);
        }
Example #4
0
        /// <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 <BA02BViewModel, int> updateValues, BA02AViewModel master)
        {
            string errMsg     = "";
            int    errorCount = 0;
            int    BA02A_ID   = master.BA02A_ID;

            //Validation
            ValidateMaster(master);

            for (int i = 0; i < updateValues.Insert.Count; i++)
            {
                if (updateValues.IsValid(updateValues.Insert[i]) == false)
                {
                    errorCount++;
                }
                if (updateValues.Insert[i].PUR_PR < 0)
                {
                    errorCount++;
                    ModelState.AddModelError($"Insert[{i}].PUR_PR", "金額不可為負");//display error in cell
                }
                //if (updateValues.Insert[i].REM_MM.Length > 10)
                //{
                //    errorCount++;
                //    ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//display error in cell
                //}
                //foreach (var err in DDMHelper.ValidateData("BA02B", updateValues.Insert[i], replace: replace))
                //{
                //    errorCount++;
                //    ModelState.AddModelError($"Insert[{i}].{err.Key}", err.Value);//display error in cell
                //}
            }

            for (int i = 0; i < updateValues.Update.Count; i++)
            {
                if (updateValues.IsValid(updateValues.Update[i]) == false)
                {
                    errorCount++;
                }
                if (updateValues.Update[i].PUR_PR < 0)
                {
                    errorCount++;
                    ModelState.AddModelError($"Insert[{i}].PUR_PR", "金額不可為負");//display error in cell
                }
                //if (updateValues.Update[i].REM_MM.Length > 10)
                //{
                //    errorCount++;
                //    ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//display error in cell
                //}
                //foreach (var err in DDMHelper.ValidateData("BA02B", updateValues.Update[i], replace: replace))
                //{
                //    errorCount++;
                //    ModelState.AddModelError($"Update[{i}].{err.Key}", err.Value);//display error in cell
                //}
            }

            //Save
            if (errorCount == 0 && ModelState.IsValid)
            {
                var BA02A = MasterToEntity(master);

                var addList = new List <BA02B>();
                foreach (var item in updateValues.Insert)
                {
                    var BA02B = new BA02B();
                    item.REM_MM      = master.REM_MM;
                    item.CREATE_USER = UserInfo.Id;
                    item.CREATE_DATE = DateTime.Now;
                    item.ToDomain(BA02B);
                    addList.Add(BA02B);
                }

                var updateList = new List <BA02B>();
                foreach (var item in updateValues.Update)
                {
                    var BA02B = new BA02B();
                    BA02B            = _Service.GetD(x => x.BA02B_ID == item.BA02B_ID);
                    item.CREATE_USER = BA02B.CREATE_USER;
                    item.CREATE_DATE = BA02B.CREATE_DATE;
                    item.UPDATE_USER = UserInfo.Id;
                    item.UPDATE_DATE = DateTime.Now;
                    item.ToDomain(BA02B);
                    updateList.Add(BA02B);
                }

                errMsg = _Service.UpdateMD(BA02A, addList, updateList, updateValues.DeleteKeys);
            }

            //Result
            if (errMsg.Length > 0 || !ModelState.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["EditErrorMsg"] = "Failure" + "<br />" + errMsg;
                ViewData["DeleteIDList"] = deleteIDStrList;
                ViewData["MasterForm"]   = ReadViewHelper.PartialView(this, "_MasterForm", master);
                return(PartialView("_DetailGrid", GetBA02BList(BA02A_ID)));
            }
            else
            {
                CacheHelper.Invalidate("BA02A");
                SetTempData(master.BA02A_ID);
                return(RedirectToAction("Index"));
            }
        }