Пример #1
0
        public ActionResult _FilterPostOrders(SaleDispatchReturnLineFilterViewModel vm)
        {
            List <SaleDispatchReturnLineViewModel> temp = _SaleDispatchReturnLineService.GetSaleOrderForFilters(vm).ToList();
            SaleDispatchReturnMasterDetailModel    svm  = new SaleDispatchReturnMasterDetailModel();

            svm.SaleDispatchReturnLineViewModel = temp;
            return(PartialView("_OrderResults", svm));
        }
Пример #2
0
        public ActionResult _ResultsPost(SaleDispatchReturnMasterDetailModel vm)
        {
            int Cnt    = 0;
            int Serial = _SaleDispatchReturnLineService.GetMaxSr(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId);
            Dictionary <int, decimal> LineStatus = new Dictionary <int, decimal>();

            bool BeforeSave = true;

            //try
            //{
            //    BeforeSave = SaleDispatchReturnDocEvents.beforeLineSaveBulkEvent(this, new SaleEventArgs(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId), 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)
            {
                int ProcessId = new ProcessService(_unitOfWork).Find(ProcessConstants.FullFinishing).ProcessId;
                SaleDispatchReturnHeader Header = new SaleDispatchReturnHeaderService(_unitOfWork).Find(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId);

                foreach (var item in vm.SaleDispatchReturnLineViewModel)
                {
                    decimal balqty = (from p in db.ViewSaleDispatchBalance
                                      where p.SaleDispatchLineId == item.SaleDispatchLineId
                                      select p.BalanceQty).FirstOrDefault();


                    if (item.Qty > 0 && item.Qty <= balqty)
                    {
                        SaleDispatchReturnLine Line = new SaleDispatchReturnLine();
                        Line.SaleDispatchReturnHeaderId = item.SaleDispatchReturnHeaderId;
                        Line.SaleDispatchLineId         = item.SaleDispatchLineId;
                        Line.Qty        = item.Qty;
                        Line.Sr         = Serial++;
                        Line.DealQty    = item.UnitConversionMultiplier * item.Qty;
                        Line.DealUnitId = item.DealUnitId;
                        Line.UnitConversionMultiplier = item.UnitConversionMultiplier;
                        Line.Remark       = item.Remark;
                        Line.CreatedDate  = DateTime.Now;
                        Line.ModifiedDate = DateTime.Now;
                        Line.CreatedBy    = User.Identity.Name;
                        Line.ModifiedBy   = User.Identity.Name;


                        LineStatus.Add(Line.SaleDispatchLineId, Line.Qty);


                        SaleDispatchLine SaleDispatchLine = new SaleDispatchLineService(_unitOfWork).Find(Line.SaleDispatchLineId);
                        //var receipt = new SaleDispatchLineService(_unitOfWork).Find(item.SaleDispatchLineId );



                        StockViewModel StockViewModel = new StockViewModel();

                        if (Cnt == 0)
                        {
                            StockViewModel.StockHeaderId = Header.StockHeaderId ?? 0;
                        }
                        else
                        {
                            if (Header.StockHeaderId != null && Header.StockHeaderId != 0)
                            {
                                StockViewModel.StockHeaderId = (int)Header.StockHeaderId;
                            }
                            else
                            {
                                StockViewModel.StockHeaderId = -1;
                            }
                        }

                        StockViewModel.StockId            = -Cnt;
                        StockViewModel.DocHeaderId        = Header.SaleDispatchReturnHeaderId;
                        StockViewModel.DocLineId          = Line.SaleDispatchLineId;
                        StockViewModel.DocTypeId          = Header.DocTypeId;
                        StockViewModel.StockHeaderDocDate = Header.DocDate;
                        StockViewModel.StockDocDate       = Header.DocDate;
                        StockViewModel.DocNo              = Header.DocNo;
                        StockViewModel.DivisionId         = Header.DivisionId;
                        StockViewModel.SiteId             = Header.SiteId;
                        StockViewModel.CurrencyId         = null;
                        StockViewModel.PersonId           = Header.BuyerId;
                        StockViewModel.ProductId          = item.ProductId;
                        StockViewModel.HeaderFromGodownId = null;
                        StockViewModel.HeaderGodownId     = Header.GodownId;
                        StockViewModel.HeaderProcessId    = ProcessId;
                        StockViewModel.GodownId           = Header.GodownId;
                        StockViewModel.Remark             = Header.Remark;
                        StockViewModel.Status             = Header.Status;
                        StockViewModel.ProcessId          = ProcessId;
                        StockViewModel.LotNo              = null;
                        StockViewModel.CostCenterId       = null;
                        StockViewModel.Qty_Iss            = Line.Qty;
                        StockViewModel.Qty_Rec            = 0;
                        StockViewModel.Rate          = null;
                        StockViewModel.ExpiryDate    = null;
                        StockViewModel.Specification = item.Specification;
                        StockViewModel.Dimension1Id  = item.Dimension1Id;
                        StockViewModel.Dimension2Id  = item.Dimension2Id;
                        //StockViewModel.ProductUidId = SaleDispatchLine.ProductUidId;
                        StockViewModel.CreatedBy    = User.Identity.Name;
                        StockViewModel.CreatedDate  = DateTime.Now;
                        StockViewModel.ModifiedBy   = User.Identity.Name;
                        StockViewModel.ModifiedDate = DateTime.Now;

                        string StockPostingError = "";
                        StockPostingError = new StockService(_unitOfWork).StockPostDB(ref StockViewModel, ref db);

                        if (StockPostingError != "")
                        {
                            string message = StockPostingError;
                            ModelState.AddModelError("", message);
                            return(PartialView("_Results", vm));
                        }

                        if (Cnt == 0)
                        {
                            Header.StockHeaderId = StockViewModel.StockHeaderId;
                        }

                        Line.StockId = StockViewModel.StockId;

                        Line.ObjectState = Model.ObjectState.Added;
                        db.SaleDispatchReturnLine.Add(Line);
                        //_SaleDispatchReturnLineService.Create(Line);

                        Cnt = Cnt + 1;
                    }
                }

                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.SaleDispatchReturnHeader.Add(Header);

                //new SaleDispatchReturnHeaderService(_unitOfWork).Update(Header);

                //new SaleOrderLineStatusService(_unitOfWork).UpdateSaleQtyReturnMultiple(LineStatus, Header.DocDate, ref db);

                //try
                //{
                //    SaleDispatchReturnDocEvents.onLineSaveBulkEvent(this, new SaleEventArgs(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId), 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
                //{
                //    SaleDispatchReturnDocEvents.afterLineSaveBulkEvent(this, new SaleEventArgs(vm.SaleDispatchReturnLineViewModel.FirstOrDefault().SaleDispatchReturnHeaderId), ref db);
                //}
                //catch (Exception ex)
                //{
                //    string message = _exception.HandleException(ex);
                //    TempData["CSEXC"] += message;
                //}

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

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