예제 #1
0
        public static TR01BModel FromEntity(TR01B entity, DataRow dataRow)
        {
            var data = new TR01BModel();

            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(entity, data);
                //資料處理
                var item = CacheCommonDataModule.GetBA02A().Where(x => x.BA02A_ID == entity.BA02A_ID).FirstOrDefault();
                if (item != null)
                {
                    data.ITM_NO = item.ITM_NO;
                    data.ITM_NM = item.ITM_NM;
                    data.ITM_SP = item.ITM_SP;
                }
                var totalQTSTR = dataRow["TotalQT"].ToString();
                decimal.TryParse(totalQTSTR, out decimal total);
                data.ARR_QT_Sum = total;
                if (data.ARR_QT_Sum == data.PUR_QT)
                {
                    data.ARR_ST = "1";
                }
                else
                {
                    data.ARR_ST = "0";
                }

                var totalMYStr = dataRow["TotalMY"].ToString();
                decimal.TryParse(totalMYStr, out decimal totalMY);
                data.ReceiveMY = totalMY;
            }
            return(data);
        }
예제 #2
0
        /// <summary>
        /// viewmodel to entity
        /// </summary>
        /// <param name="entity"></param>
        public void ToDomain(TR01B entity)
        {
            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(this, entity);

                #region [ 資料處理 ]
                #endregion [ 資料處理 ]
            }
        }
예제 #3
0
        /// <summary>viewmodel to entity </summary>
        /// <param name="entity"></param>
        private static TR01B ToEntity(TR01BViewModel data)
        {
            var entity = new TR01B();

            if (data != null)
            {
                //資料處理

                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(data, entity);
            }
            return(entity);
        }
예제 #4
0
        /// <summary>Entity to viewmodel Single</summary>
        /// <param name="entity">TR01B</param>
        public static TR01BViewModel FromEntity(TR01B entity)
        {
            var data = new TR01BViewModel();

            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(entity, data);

                //資料處理
                var item = CacheCommonDataModule.GetBA02A().Where(x => x.BA02A_ID == entity.BA02A_ID).FirstOrDefault();
                if (item != null)
                {
                    data.ITM_NO = item.ITM_NO;
                    data.ITM_NM = item.ITM_NM;
                }
            }
            return(data);
        }
예제 #5
0
        /// <summary>
        /// entity to viewmodel
        /// </summary>
        /// <param name="entity"></param>
        public void FromDomain(TR01B entity)
        {
            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(entity, this);

                #region [ 資料處理 ]
                var item = CacheCommonDataModule.GetBA02A().Where(x => x.BA02A_ID == entity.BA02A_ID).FirstOrDefault();
                if (item != null)
                {
                    this.ITM_NO = item.ITM_NO;
                    this.ITM_NM = item.ITM_NM;
                }
                //var incorporation = CacheCommonDataModule.GetBA01A().Where(x => x.BA01A_ID == entity.BA01A_ID).FirstOrDefault();
                //if (incorporation != null)
                //{
                //    this.ITM_NO = item.ITM_NO;
                //    this.ITM_NM = item.ITM_NM;
                //}

                #endregion [ 資料處理 ]
            }
        }
예제 #6
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 <TR01BViewModel, int> updateValues, TR01AViewModel master)
        {
            string errMsg     = "";
            int    errorCount = 0;
            int    TR01A_ID   = master.TR01A_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].REM_MM.Length > 10)
                //{
                //    errorCount++;
                //    ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//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].REM_MM.Length > 10)
                //{
                //    errorCount++;
                //    ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//display error in cell
                //}
            }

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

                var addList = new List <TR01B>();
                foreach (var item in updateValues.Insert)
                {
                    var TR01B = new TR01B();
                    item.CREATE_USER = "******";
                    item.CREATE_DATE = DateTime.Now;
                    item.ToDomain(TR01B);
                    addList.Add(TR01B);
                }

                var updateList = new List <TR01B>();
                foreach (var item in updateValues.Update)
                {
                    var TR01B = new TR01B();
                    TR01B            = _Service.GetD(x => x.TR01B_ID == item.TR01B_ID);
                    item.CREATE_USER = TR01B.CREATE_USER;
                    item.CREATE_DATE = TR01B.CREATE_DATE;
                    item.UPDATE_USER = "******";
                    item.UPDATE_DATE = DateTime.Now;
                    item.ToDomain(TR01B);
                    updateList.Add(TR01B);
                }

                errMsg = _Service.UpdateMD(TR01A, 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", GetTR01BList(TR01A_ID)));
            }
            else
            {
                SetTempData(master.TR01A_ID);
                return(RedirectToAction("Index"));
            }
        }
예제 #7
0
 public TR01BViewModel(TR01B entity)
 {
     this.FromDomain(entity);
 }
예제 #8
0
        /// <summary>delete寫Log的時候要先去update</summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public ServiceResult <TR01A> Update(TR01A entity, List <TR01B> CreateD, List <TR01B> UpdateD, List <int> DeleteD)
        {
            string errMsg = "";

            using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot))
            {
                try
                {
                    //Master
                    if (entity.TR01A_ID == 0)
                    {
                        _Entity.Entry(entity).State = EntityState.Added;
                    }
                    else
                    {
                        _Entity.Entry(entity).State = EntityState.Modified;
                    }
                    _Entity.SaveChanges();

                    //detail 處理 TR01A_ID
                    foreach (var item in CreateD)
                    {
                        item.TR01A_ID             = entity.TR01A_ID;
                        _Entity.Entry(item).State = EntityState.Added;
                    }
                    foreach (var item in UpdateD)
                    {
                        item.TR01A_ID             = entity.TR01A_ID;
                        _Entity.Entry(item).State = EntityState.Modified;
                    }
                    //要先update delete的資料
                    foreach (var key in DeleteD)
                    {
                        var deleteData = new TR01B {
                            TR01B_ID = key
                        };
                        _Entity.Entry(deleteData).State = EntityState.Deleted;
                    }
                    _Entity.SaveChanges();
                    trans.Commit();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
                catch (Exception ex)
                {
                    errMsg = ex.Message;
                }
            }
            return(new ServiceResult <TR01A>()
            {
                Data = entity, Message = errMsg
            });
        }