예제 #1
0
        public ActionResult _FilterPost(PurchaseIndentLineFilterViewModel vm)
        {
            List <PurchaseIndentLineViewModel> temp = _PurchaseIndentLineService.GetPurchaseIndentForFilters(vm).ToList();

            PurchaseIndentMasterDetailModel svm = new PurchaseIndentMasterDetailModel();

            svm.PurchaseIndentLineViewModel = temp;
            return(PartialView("_Results", svm));
        }
예제 #2
0
        public ActionResult _ResultsPost(PurchaseIndentMasterDetailModel vm)
        {
            int  Serial     = _PurchaseIndentLineService.GetMaxSr(vm.PurchaseIndentLineViewModel.FirstOrDefault().PurchaseIndentHeaderId);
            bool BeforeSave = true;

            try
            {
                BeforeSave = PurchaseIndentDocEvents.beforeLineSaveBulkEvent(this, new PurchaseEventArgs(vm.PurchaseIndentLineViewModel.FirstOrDefault().PurchaseIndentHeaderId), ref db);
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXCL"] += message;
                EventException      = true;
            }

            if (!BeforeSave)
            {
                ModelState.AddModelError("", "Validation failed before save");
            }

            if (ModelState.IsValid && BeforeSave && !EventException)
            {
                PurchaseIndentHeader header = new PurchaseIndentHeaderService(_unitOfWork).Find(vm.PurchaseIndentLineViewModel.FirstOrDefault().PurchaseIndentHeaderId);
                if (header.Status != (int)StatusConstants.Drafted && header.Status != (int)StatusConstants.Import)
                {
                    header.Status       = (int)StatusConstants.Modified;
                    header.ModifiedBy   = User.Identity.Name;
                    header.ModifiedDate = DateTime.Now;
                    header.ObjectState  = Model.ObjectState.Modified;
                    db.PurchaseIndentHeader.Add(header);
                }

                foreach (var item in vm.PurchaseIndentLineViewModel)
                {
                    if (item.Qty > 0)
                    {
                        PurchaseIndentLine line = new PurchaseIndentLine();

                        line.PurchaseIndentHeaderId = item.PurchaseIndentHeaderId;
                        line.MaterialPlanLineId     = item.MaterialPlanLineId;
                        line.ProductId     = item.ProductId;
                        line.Dimension1Id  = item.Dimension1Id;
                        line.Dimension2Id  = item.Dimension2Id;
                        line.Specification = item.Specification;
                        line.Remark        = item.Remark;
                        line.Qty           = item.Qty;
                        line.Sr            = Serial++;
                        line.CreatedDate   = DateTime.Now;
                        line.ModifiedDate  = DateTime.Now;
                        line.CreatedBy     = User.Identity.Name;
                        line.ModifiedBy    = User.Identity.Name;

                        line.ObjectState = Model.ObjectState.Added;
                        //_PurchaseIndentLineService.Create(line);
                        db.PurchaseIndentLine.Add(line);
                    }
                }

                try
                {
                    PurchaseIndentDocEvents.onLineSaveBulkEvent(this, new PurchaseEventArgs(vm.PurchaseIndentLineViewModel.FirstOrDefault().PurchaseIndentHeaderId), ref db);
                }
                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXCL"] += message;
                    EventException      = true;
                }

                try
                {
                    if (EventException)
                    {
                        throw new Exception();
                    }

                    db.SaveChanges();
                    //_unitOfWork.Save();
                }

                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXCL"] += message;
                    return(PartialView("_Results", vm));
                }

                try
                {
                    PurchaseIndentDocEvents.afterLineSaveBulkEvent(this, new PurchaseEventArgs(vm.PurchaseIndentLineViewModel.FirstOrDefault().PurchaseIndentHeaderId), ref db);
                }
                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXC"] += message;
                }

                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId    = header.DocTypeId,
                    DocId        = header.PurchaseIndentHeaderId,
                    ActivityType = (int)ActivityTypeContants.MultipleCreate,
                    DocNo        = header.DocNo,
                    DocDate      = header.DocDate,
                    DocStatus    = header.Status,
                }));

                return(Json(new { success = true }));
            }
            return(PartialView("_Results", vm));
        }