Example #1
0
        public ActionResult DeleteConfirmed(InquiryComplex model)
        {
            ResultModel result = new ResultModel();

            try
            {
                #region Service資料庫
                if (this._InquiryComplexService.IsUsed(model))
                {
                    result.Message         = "MessageChaneDelete2UpdateComplete".ToLocalized();
                    model.Inquiry.Activate = YesNo.No.Value;
                    this._InquiryComplexService.Update(model);
                }
                else
                {
                    this._InquiryComplexService.Delete(model);
                }
                #endregion
            }
            catch (Exception ex)
            {
                #region  錯誤時錯誤訊息
                result.Status  = false;
                result.Message = ex.Message.ToString();
                #endregion
            }
            return(Json(result));
        }
Example #2
0
        public void Delete(InquiryComplex model)
        {
            #region 邏輯驗證
            if (model == null)//沒有資料
            {
                throw new Exception("MessageNoData".ToLocalized());
            }
            #endregion

            #region 變為Models需要之型別及邏輯資料
            var info = Mapper.Map <Inquiry>(model.Inquiry);
            #endregion

            #region Models資料庫

            foreach (InquiryDetailViewModel t in model.ChildList)
            {
                var d = Mapper.Map <InquiryDetail>(t);
                _DetailRepository.Delete(d);
            }

            this._Repository.Delete(info);
            this._UnitOfWork.SaveChange();
            #endregion
        }
Example #3
0
        public InquiryComplex Create(InquiryComplex source)
        {
            #region 取資料


            #endregion

            #region 邏輯驗證


            #endregion

            #region 變為Models需要之型別及邏輯資料
            Inquiry main = GetInquiryOnCreate(source);

            List <InquiryDetail> children = GetChildOnCreate(main, source);
            #endregion

            #region Models資料庫

            this._Repository.Create(main);

            foreach (InquiryDetail item in children)
            {
                this._DetailRepository.Create(item);
            }

            GenerateNews(main); // 產生到貨消息

            this._UnitOfWork.SaveChange();
            #endregion

            return(this.Get(main.InquiryID));
        }
Example #4
0
        private Inquiry GetInquiryOnUpdate(InquiryComplex source)
        {
            Inquiry info = Mapper.Map <Inquiry>(source.Inquiry);

            info.LastPerson = IdentityService.GetUserData().UserID;
            info.LastUpdate = DateTime.Now;
            return(info);
        }
Example #5
0
 public bool IsUsed(InquiryComplex info)
 {
     //var query = this._Repository.Get(x => x.InquiryID == model.Inquiry.InquiryID);
     //var result = query.Product.Any();
     //this._Repository.HandleDetached(query); //
     //return result;
     return(true); // 目前不知關聯到哪些資料表
 }
Example #6
0
        public InquiryComplex Get(string id)
        {
            InquiryComplex info = new InquiryComplex();

            info = this.GetAll().Where(x => x.Inquiry.InquiryID == id).Single();

            return(info);
        }
Example #7
0
        public ActionResult Create()
        {
            var info = new InquiryComplex()
            {
#if DEBUG
                Inquiry = new InquiryViewModel()
                {
                    //InquiryID = "0".PadLeft(10, '0'),
                    InquiryDate = DateTime.Today,
                    //ContactPerson = "聯絡人",
                    //ContactPhone = "聯絡電話",
                    CurrencyID   = "1",
                    ExchangeRate = 1,
                    Remarks      = "Remarks",
                    ValidateDate = DateTime.Today.AddDays(30),
                    ScheduleDate = DateTime.Today.AddDays(180),
                    Remind       = 1
                },
                ChildList = new List <InquiryDetailViewModel>()
                            //ChildList = new List<InquiryDetailViewModel>() {
                            //    new InquiryDetailViewModel() {
                            //        SeqNo           = 0 ,
                            //        //InquiryID       = "0000000000",
                            //        ProductID       = "88888888888888888888",
                            //        ProductName     = "產品1",
                            //        PriceKindID     = "1",
                            //        ConditionID     = "1",
                            //        Discount        = 100,
                            //        ForeignPrice    = 30000,
                            //        Price           = 40000,
                            //        Qty             = 1,
                            //        Amount          = 40000,
                            //        Remarks         ="Remarks",
                            //        IsDirty         = true
                            //    },
                            //    new InquiryDetailViewModel() {
                            //        SeqNo           = 0 ,
                            //        //InquiryID       = "0000000000",
                            //        ProductID       = "99999999999999999999",
                            //        ProductName     = "產品2",
                            //        PriceKindID     = "2",
                            //        ConditionID     = "2",
                            //        Discount        = 100,
                            //        ForeignPrice    = 60000,
                            //        Price           = 80000,
                            //        Qty             = 2,
                            //        Amount          = 160000,
                            //        Remarks         ="Remarks",
                            //        IsDirty         = true
                            //    },
                            //}
#endif
            };

            InitViewBag(info);
            InitChildViewBag(null);
            return(View(info));
        }
Example #8
0
        private Inquiry GetInquiryOnCreate(InquiryComplex source)
        {
            Inquiry info = Mapper.Map <Inquiry>(source.Inquiry);

            // 取得詢價單號;目前由使用者自型輸入
            info.InquiryID  = GenerateInquiryID(info);
            info.Activate   = YesNo.Yes.Value;
            info.LastPerson = IdentityService.GetUserData().UserID;
            info.LastUpdate = DateTime.Now;
            return(info);
        }
Example #9
0
        private List <InquiryDetail> GetChildOnCreate(Inquiry master, InquiryComplex source)
        {
            List <InquiryDetail> infos = new List <InquiryDetail>();
            var wanted = source.ChildList.Where(x => x.IsDirty == true);

            foreach (var item in wanted)
            {
                InquiryDetail temp = Mapper.Map <InquiryDetail>(item);
                temp.InquiryID  = master.InquiryID;
                temp.LastPerson = IdentityService.GetUserData().UserID;
                temp.LastUpdate = DateTime.Now;
                infos.Add(temp);
            }
            return(infos);
        }
Example #10
0
        private void InitViewBag(InquiryComplex info)
        {
            ViewBag.Token = _SingletonTokenService.GetToken();

            // 幣別
            ViewBag.CurrencyKindList =
                new SelectList(this._GlobalService.GetCurrencyKindList(), "Key", "Value", info?.Inquiry.CurrencyID);

            // 公司
            ViewBag.CompanyList =
                new SelectList(this._GlobalService.GetSupplierList(), "Value", "Display", info?.Inquiry?.CompanyID);

            ViewBag.YseNoList =
                new SelectList(YesNo.GetAll(), "value", "Text", info?.Inquiry.Activate);
        }
Example #11
0
        public void Update(InquiryComplex source)
        {
            #region 取資料


            #endregion

            #region 邏輯驗證


            #endregion

            #region 變為Models需要之型別及邏輯資料
            Inquiry main = GetInquiryOnUpdate(source);

            List <InquiryDetail> children = GetChildOnCreate(main, source);
            #endregion

            #region Models資料庫

            this._Repository.Update(main);

            foreach (InquiryDetail item in children)
            {
                if (item.SeqNo == 0)
                {
                    this._DetailRepository.Create(item);
                }
                else
                {
                    this._DetailRepository.Update(item);
                }
            }

            GenerateNews(main); // 產生到貨消息

            this._UnitOfWork.SaveChange();
            #endregion
        }
Example #12
0
        public ActionResult Edit(InquiryComplex info)
        {
            ResultModel result = new ResultModel();

            try
            {
                #region 驗證Model
                if (!ModelState.IsValid)
                {
                    throw new Exception(ModelStateErrorClass.FormatToString(ModelState));
                }
                #endregion

                #region 前端資料變後端用資料ViewModel時用

                #endregion

                #region Service資料庫
                this._InquiryComplexService.Update(info);
                #endregion

                #region  息頁面設定
                result.Status      = true;
                result.CloseWindow = false;
                result.Url         = Url.Action("Edit", new { id = info.Inquiry.InquiryID });
                result.Message     = "MessageComplete".ToLocalized();
                #endregion
            }
            catch (Exception ex)
            {
                #region  錯誤時錯誤訊息
                result.Status  = false;
                result.Message = ex.Message.ToString();
                #endregion
            }
            return(Json(result));
        }
Example #13
0
        public ActionResult Create(InquiryComplex info)
        {
            ResultModel result = new ResultModel();

            try
            {
                #region 驗證Model
                if (!ModelState.IsValid)
                {
                    throw new Exception(ModelStateErrorClass.FormatToString(ModelState));
                }

                // 至少需有一筆明細資料
                if (info.ChildList == null || info.ChildList.Count == 0)
                {
                    ModelState.AddModelError("AlternativeID", "至少需有一筆明細資料。");
                }
                else
                {
                    var query =
                        info.ChildList
                        .GroupBy(x => x.ProductID)
                        .ToDictionary(x => x.Key, x => x.Count())
                        .Where(x => x.Value > 1)
                        .ToList();

                    DuplicateValidator validator = new DuplicateValidator(query);

                    if (validator.Message.Count > 0)
                    {
                        foreach (var s in validator.Message)
                        {
                            ModelState.AddModelError("AlternativeID", s);
                        }
                    }
                }

                if (!ModelState.IsValid)
                {
                    string message = ModelStateErrorClass.FormatToString(ModelState);

                    result.Status  = false;
                    result.Message = message;

                    return(Json(result));
                }
                #endregion

                #region 前端資料變後端用資料ViewModel時用

                #endregion

                #region Service資料庫
                info = this._InquiryComplexService.Create(info);
                #endregion

                #region  息頁面設定
                result.Status      = true;
                result.CloseWindow = false;
                result.Url         = Url.Action("Edit", new { id = info.Inquiry.InquiryID });
                result.Message     = "MessageComplete".ToLocalized();
                #endregion
            }
            catch (Exception ex)
            {
                #region  錯誤時錯誤訊息
                result.Status  = false;
                result.Message = ex.Message.ToString();
                #endregion
            }
            return(Json(result));
        }
Example #14
0
 private void GenerateFake(InquiryComplex info)
 {
 }