public void CreateSaleOrderLine(int SaleEnquiryLineId, int SaleOrderHeaderId)
        {
            SaleEnquiryLine   Line          = new SaleEnquiryLineService(_unitOfWork).Find(SaleEnquiryLineId);
            SaleEnquiryHeader EnquiryHeader = new SaleEnquiryHeaderService(_unitOfWork).Find(Line.SaleEnquiryHeaderId);

            SaleOrderLine OrderLine = new SaleOrderLine();

            OrderLine.SaleOrderHeaderId = SaleOrderHeaderId;
            OrderLine.DueDate           = Line.DueDate;
            OrderLine.ProductId         = Line.ProductId ?? 0;
            OrderLine.Specification     = Line.Specification;
            OrderLine.Dimension1Id      = Line.Dimension1Id;
            OrderLine.Dimension2Id      = Line.Dimension2Id;
            OrderLine.Qty        = Line.Qty;
            OrderLine.DealQty    = Line.DealQty;
            OrderLine.DealUnitId = Line.DealUnitId;
            OrderLine.UnitConversionMultiplier = Line.UnitConversionMultiplier;
            OrderLine.Rate               = Line.Rate;
            OrderLine.Amount             = Line.Amount;
            OrderLine.Remark             = Line.Remark;
            OrderLine.ReferenceDocTypeId = EnquiryHeader.DocTypeId;
            OrderLine.ReferenceDocLineId = Line.SaleEnquiryLineId;
            OrderLine.CreatedDate        = DateTime.Now;
            OrderLine.ModifiedDate       = DateTime.Now;
            OrderLine.CreatedBy          = User.Identity.Name;
            OrderLine.ModifiedBy         = User.Identity.Name;
            new SaleOrderLineService(_unitOfWork).Create(OrderLine);

            new SaleOrderLineStatusService(_unitOfWork).CreateLineStatus(OrderLine.SaleOrderLineId);

            Line.LockReason = "Sale order is created for enquiry.Now you can't modify enquiry, changes can be done in sale order.";
            new SaleEnquiryLineService(_unitOfWork).Update(Line);

            var PersonProductUid = (from p in db.PersonProductUid
                                    where p.GenLineId == SaleEnquiryLineId && p.GenDocTypeId == EnquiryHeader.DocTypeId && p.GenDocId == EnquiryHeader.SaleEnquiryHeaderId
                                    select p).ToList();

            if (PersonProductUid.Count() != 0)
            {
                foreach (var item2 in PersonProductUid)
                {
                    PersonProductUid PPU = new PersonProductUidService(_unitOfWork).Find(item2.PersonProductUidId);
                    PPU.SaleOrderLineId = OrderLine.SaleOrderLineId;
                    PPU.ObjectState     = Model.ObjectState.Modified;
                    new PersonProductUidService(_unitOfWork).Create(PPU);
                }
            }
        }
Esempio n. 2
0
        private ActionResult _PersonProductUid(int id)
        {
            SaleEnquiryLine         SIL  = new SaleEnquiryLineService(_unitOfWork).Find(id);
            SaleEnquiryHeader       SIH  = new SaleEnquiryHeaderService(_unitOfWork).Find(SIL.SaleEnquiryHeaderId);
            SaleEnquiryLineExtended SILE = new SaleEnquiryLineExtendedService(_unitOfWork).Find(id);

            IQueryable <PersonProductUidViewModel> p = new PersonProductUidService(_unitOfWork).GetPersonProductUidList(SIH.DocTypeId, SIH.SaleEnquiryHeaderId, SIL.SaleEnquiryLineId);

            PersonProductUidSummaryViewModel vm = new PersonProductUidSummaryViewModel();

            vm.JobInvoiceSummaryViewModel = p.ToList();
            vm.GenDocLineId = SIL.SaleEnquiryLineId;

            ViewBag.DocNo = (SIH.BuyerEnquiryNo ?? SIH.DocNo).ToString() + "-" + SILE.BuyerSpecification + "-" + SILE.BuyerSpecification1 + "-" + SILE.BuyerSpecification2 + "-" + SILE.BuyerSpecification3;
            return(PartialView("_PersonProductUid", vm));
        }
        public ActionResult Delete(ReasonViewModel vm)
        {
            if (ModelState.IsValid)
            {
                List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();



                //string temp = (Request["Redirect"].ToString());
                //first find the Purchase Order Object based on the ID. (sience this object need to marked to be deleted IE. ObjectState.Deleted)
                var SaleOrderHeader = _SaleOrderHeaderService.GetSaleOrderHeader(vm.id);


                //For Updating Enquiry Header and Lines so that it can be edited and deleted as needed.
                if (SaleOrderHeader.ReferenceDocId != null && SaleOrderHeader.ReferenceDocId != 0)
                {
                    var SaleEnquiryHeader = (from H in context.SaleEnquiryHeader where H.SaleEnquiryHeaderId == SaleOrderHeader.ReferenceDocId && H.DocTypeId == SaleOrderHeader.ReferenceDocTypeId select H).FirstOrDefault();
                    if (SaleEnquiryHeader != null)
                    {
                        SaleEnquiryHeader Header = new SaleEnquiryHeaderService(_unitOfWork).Find(SaleEnquiryHeader.SaleEnquiryHeaderId);
                        Header.LockReason = null;
                        new SaleEnquiryHeaderService(_unitOfWork).Update(Header);

                        IEnumerable <SaleEnquiryLine> LineList = new SaleEnquiryLineService(_unitOfWork).GetSaleEnquiryLineListForHeader(SaleEnquiryHeader.SaleEnquiryHeaderId);
                        foreach (SaleEnquiryLine Line in LineList)
                        {
                            Line.LockReason = null;
                            new SaleEnquiryLineService(_unitOfWork).Update(Line);
                        }
                    }
                }



                LogList.Add(new LogTypeViewModel
                {
                    ExObj = SaleOrderHeader,
                });

                //Then find all the Purchase Order Header Line associated with the above ProductType.
                var SaleOrderLine = new SaleOrderLineService(_unitOfWork).GetSaleOrderLineList(vm.id);



                List <int> StockIdList = new List <int>();

                //Mark ObjectState.Delete to all the Purchase Order Lines.
                foreach (var item in SaleOrderLine)
                {
                    if (item.StockId != null)
                    {
                        StockIdList.Add((int)item.StockId);
                    }

                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = item,
                    });

                    new SaleOrderLineStatusService(_unitOfWork).Delete(item.SaleOrderLineId);

                    new SaleOrderLineService(_unitOfWork).Delete(item.SaleOrderLineId);
                }

                foreach (var item in StockIdList)
                {
                    if (item != null)
                    {
                        new StockService(_unitOfWork).DeleteStock((int)item);
                    }
                }

                int?StockHeaderId = null;
                StockHeaderId = SaleOrderHeader.StockHeaderId;

                int LedgerHeaderId = SaleOrderHeader.LedgerHeaderId ?? 0;


                // Now delete the Sale Order Header
                new SaleOrderHeaderService(_unitOfWork).Delete(vm.id);

                // Now delete the Ledger & Ledger Header
                if (LedgerHeaderId != 0)
                {
                    var LedgerList = new LedgerService(_unitOfWork).FindForLedgerHeader(LedgerHeaderId).ToList();
                    foreach (var item in LedgerList)
                    {
                        new LedgerService(_unitOfWork).Delete(item.LedgerId);
                    }
                    new LedgerHeaderService(_unitOfWork).Delete(LedgerHeaderId);
                }



                if (StockHeaderId != null)
                {
                    new StockHeaderService(_unitOfWork).Delete((int)StockHeaderId);
                }

                XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);
                //Commit the DB
                try
                {
                    _unitOfWork.Save();
                }

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

                //Logging Activity

                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId       = SaleOrderHeader.DocTypeId,
                    DocId           = SaleOrderHeader.SaleOrderHeaderId,
                    ActivityType    = (int)ActivityTypeContants.Deleted,
                    UserRemark      = vm.Reason,
                    DocNo           = SaleOrderHeader.DocNo,
                    xEModifications = Modifications,
                    DocDate         = SaleOrderHeader.DocDate,
                    DocStatus       = SaleOrderHeader.Status,
                }));

                return(Json(new { success = true }));
            }
            return(PartialView("_Reason", vm));
        }
        public ActionResult DeletePost(SaleOrderLineViewModel vm)
        {
            List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();

            SaleOrderLine SaleOrderLine = _SaleOrderLineService.Find(vm.SaleOrderLineId);

            int?StockId = 0;

            StockId = SaleOrderLine.StockId;

            if (StockId != null)
            {
                new StockService(_unitOfWork).DeleteStock((int)StockId);
            }

            if (SaleOrderLine.ReferenceDocLineId != null && SaleOrderLine.ReferenceDocLineId != 0 && SaleOrderLine.ReferenceDocTypeId != null && SaleOrderLine.ReferenceDocTypeId != 0)
            {
                var temp = (from L in db.SaleEnquiryLine
                            join H in db.SaleEnquiryHeader on L.SaleEnquiryHeaderId equals H.SaleEnquiryHeaderId into SaleEnquiryHeaderTable
                            from SaleEnquiryHeaderTab in SaleEnquiryHeaderTable.DefaultIfEmpty()
                            where SaleEnquiryHeaderTab.DocTypeId == SaleOrderLine.ReferenceDocTypeId && L.SaleEnquiryLineId == SaleOrderLine.ReferenceDocLineId
                            select L).FirstOrDefault();
                if (temp != null)
                {
                    SaleEnquiryLine SaleEnquiryLine = new SaleEnquiryLineService(_unitOfWork).Find(temp.SaleEnquiryLineId);
                    SaleEnquiryLine.LockReason = null;
                    new SaleEnquiryLineService(_unitOfWork).Update(SaleEnquiryLine);
                }
            }

            new SaleOrderLineStatusService(_unitOfWork).Delete(vm.SaleOrderLineId);



            _SaleOrderLineService.Delete(vm.SaleOrderLineId);
            SaleOrderHeader header = new SaleOrderHeaderService(_unitOfWork).Find(SaleOrderLine.SaleOrderHeaderId);

            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;
                new SaleOrderHeaderService(_unitOfWork).Update(header);
            }



            LogList.Add(new LogTypeViewModel
            {
                Obj = SaleOrderLine,
            });

            XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);

            try
            {
                _unitOfWork.Save();
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXCL"]      += message;
                ViewBag.Docno            = header.DocNo;
                ViewBag.DeliveryUnitList = new UnitService(_unitOfWork).GetUnitList().ToList();
                return(PartialView("_Create", vm));
            }

            LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
            {
                DocTypeId       = header.DocTypeId,
                DocId           = header.SaleOrderHeaderId,
                DocLineId       = SaleOrderLine.SaleOrderLineId,
                ActivityType    = (int)ActivityTypeContants.Deleted,
                DocNo           = header.DocNo,
                xEModifications = Modifications,
                DocDate         = header.DocDate,
                DocStatus       = header.Status,
            }));

            return(Json(new { success = true }));
        }
        public void CreateSaleOrder(int SaleEnquiryHeaderId)
        {
            SaleEnquiryHeader   EnquiryHeader = new SaleEnquiryHeaderService(_unitOfWork).Find(SaleEnquiryHeaderId);
            SaleEnquirySettings Settings      = new SaleEnquirySettingsService(_unitOfWork).GetSaleEnquirySettingsForDucument(EnquiryHeader.DocTypeId, EnquiryHeader.DivisionId, EnquiryHeader.SiteId);

            SaleOrderHeader OrderHeader = new SaleOrderHeader();

            OrderHeader.DocTypeId           = (int)Settings.SaleOrderDocTypeId;
            OrderHeader.DocDate             = EnquiryHeader.DocDate;
            OrderHeader.DocNo               = EnquiryHeader.DocNo;
            OrderHeader.DivisionId          = EnquiryHeader.DivisionId;
            OrderHeader.SiteId              = EnquiryHeader.SiteId;
            OrderHeader.BuyerOrderNo        = EnquiryHeader.BuyerEnquiryNo;
            OrderHeader.SaleToBuyerId       = EnquiryHeader.SaleToBuyerId;
            OrderHeader.BillToBuyerId       = EnquiryHeader.BillToBuyerId;
            OrderHeader.CurrencyId          = EnquiryHeader.CurrencyId;
            OrderHeader.Priority            = EnquiryHeader.Priority;
            OrderHeader.UnitConversionForId = EnquiryHeader.UnitConversionForId;
            OrderHeader.ShipMethodId        = EnquiryHeader.ShipMethodId;
            OrderHeader.ShipAddress         = EnquiryHeader.ShipAddress;
            OrderHeader.DeliveryTermsId     = EnquiryHeader.DeliveryTermsId;
            OrderHeader.Remark              = EnquiryHeader.Remark;
            OrderHeader.DueDate             = EnquiryHeader.DueDate;
            OrderHeader.ActualDueDate       = EnquiryHeader.ActualDueDate;
            OrderHeader.Advance             = EnquiryHeader.Advance;
            OrderHeader.ReferenceDocId      = EnquiryHeader.SaleEnquiryHeaderId;
            OrderHeader.ReferenceDocTypeId  = EnquiryHeader.DocTypeId;
            OrderHeader.CreatedDate         = DateTime.Now;
            OrderHeader.ModifiedDate        = DateTime.Now;
            OrderHeader.ModifiedDate        = DateTime.Now;
            OrderHeader.ModifiedBy          = User.Identity.Name;
            OrderHeader.Status              = (int)StatusConstants.Submitted;
            OrderHeader.ReviewBy            = User.Identity.Name;
            OrderHeader.ReviewCount         = 1;
            //OrderHeader.LockReason = "Sale order is created for enquiry.Now you can't modify enquiry, changes can be done in sale order.";
            new SaleOrderHeaderService(_unitOfWork).Create(OrderHeader);


            IEnumerable <SaleEnquiryLine> LineList = new SaleEnquiryLineService(_unitOfWork).GetSaleEnquiryLineListForHeader(SaleEnquiryHeaderId).Where(m => m.ProductId != null);
            int i = 0;

            foreach (SaleEnquiryLine Line in LineList)
            {
                SaleOrderLine OrderLine = new SaleOrderLine();
                OrderLine.SaleOrderLineId = i;
                i = i - 1;
                OrderLine.DueDate                  = Line.DueDate;
                OrderLine.ProductId                = Line.ProductId ?? 0;
                OrderLine.Specification            = Line.Specification;
                OrderLine.Dimension1Id             = Line.Dimension1Id;
                OrderLine.Dimension2Id             = Line.Dimension2Id;
                OrderLine.Qty                      = Line.Qty;
                OrderLine.DealQty                  = Line.DealQty;
                OrderLine.DealUnitId               = Line.DealUnitId;
                OrderLine.UnitConversionMultiplier = Line.UnitConversionMultiplier;
                OrderLine.Rate                     = Line.Rate;
                OrderLine.Amount                   = Line.Amount;
                OrderLine.Remark                   = Line.Remark;
                OrderLine.ReferenceDocTypeId       = EnquiryHeader.DocTypeId;
                OrderLine.ReferenceDocLineId       = Line.SaleEnquiryLineId;
                OrderLine.CreatedDate              = DateTime.Now;
                OrderLine.ModifiedDate             = DateTime.Now;
                OrderLine.CreatedBy                = User.Identity.Name;
                OrderLine.ModifiedBy               = User.Identity.Name;
                new SaleOrderLineService(_unitOfWork).Create(OrderLine);

                new SaleOrderLineStatusService(_unitOfWork).CreateLineStatus(OrderLine.SaleOrderLineId);

                Line.LockReason = "Sale order is created for enquiry.Now you can't modify enquiry, changes can be done in sale order.";
                new SaleEnquiryLineService(_unitOfWork).Update(Line);
            }
        }
        public void Post(int SaleEnquiryLineId, string ProductName)
        {
            SaleEnquiryLine         Line         = new SaleEnquiryLineService(_unitOfWork).Find(SaleEnquiryLineId);
            SaleEnquiryLineExtended LineExtended = new SaleEnquiryLineExtendedService(_unitOfWork).Find(SaleEnquiryLineId);

            Product Product = new ProductService(_unitOfWork).Find(ProductName);

            if (Product != null)
            {
                Line.ProductId    = Product.ProductId;
                Line.ModifiedDate = DateTime.Now;
                Line.ModifiedBy   = User.Identity.Name;
                Line.ObjectState  = Model.ObjectState.Modified;
                new SaleEnquiryLineService(_unitOfWork).Update(Line);

                SaleEnquiryHeader Header = new SaleEnquiryHeaderService(_unitOfWork).Find(Line.SaleEnquiryHeaderId);

                ProductBuyer PB = new ProductBuyerService(_unitOfWork).Find((int)Header.SaleToBuyerId, Product.ProductId);
                if (PB == null)
                {
                    string BuyerSku = LineExtended.BuyerSpecification.Replace("-", "") + "-" + LineExtended.BuyerSpecification1 + "-" + LineExtended.BuyerSpecification2;

                    ProductBuyer ProdBuyer = new ProductBuyer();
                    ProdBuyer.BuyerId             = (int)Header.SaleToBuyerId;
                    ProdBuyer.ProductId           = Product.ProductId;
                    ProdBuyer.BuyerSku            = LineExtended.BuyerSku == null ? BuyerSku : LineExtended.BuyerSku;
                    ProdBuyer.BuyerUpcCode        = LineExtended.BuyerUpcCode;
                    ProdBuyer.BuyerSpecification  = LineExtended.BuyerSpecification;
                    ProdBuyer.BuyerSpecification1 = LineExtended.BuyerSpecification1;
                    ProdBuyer.BuyerSpecification2 = LineExtended.BuyerSpecification2;
                    ProdBuyer.BuyerSpecification3 = LineExtended.BuyerSpecification3;
                    ProdBuyer.CreatedDate         = DateTime.Now;
                    ProdBuyer.CreatedBy           = User.Identity.Name;
                    ProdBuyer.ModifiedDate        = DateTime.Now;
                    ProdBuyer.ModifiedBy          = User.Identity.Name;
                    ProdBuyer.ObjectState         = Model.ObjectState.Added;
                    new ProductBuyerService(_unitOfWork).Create(ProdBuyer);
                }

                SaleOrderHeader SaleOrderHeader = new SaleOrderHeaderService(_unitOfWork).Find_ByReferenceDocId(Header.DocTypeId, Header.SaleEnquiryHeaderId);
                if (SaleOrderHeader == null)
                {
                    CreateSaleOrder(Header.SaleEnquiryHeaderId);
                }
                else
                {
                    CreateSaleOrderLine(Line.SaleEnquiryLineId, SaleOrderHeader.SaleOrderHeaderId);
                }


                try
                {
                    _unitOfWork.Save();
                }

                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                }
            }
        }
        public ActionResult Post(SaleEnquiryLineViewModel vm)
        {
            if (ModelState.IsValid)
            {
                List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();

                SaleEnquiryLine temp = new SaleEnquiryLineService(_unitOfWork).Find(vm.SaleEnquiryLineId);

                SaleEnquiryLine ExRec = Mapper.Map <SaleEnquiryLine>(temp);

                temp.ProductId    = vm.ProductId;
                temp.ModifiedDate = DateTime.Now;
                temp.ModifiedBy   = User.Identity.Name;
                temp.ObjectState  = Model.ObjectState.Modified;
                new SaleEnquiryLineService(_unitOfWork).Update(temp);

                ProductBuyer PB = new ProductBuyerService(_unitOfWork).Find((int)vm.SaleToBuyerId, (int)vm.ProductId);
                if (PB == null)
                {
                    string BuyerSku = vm.BuyerSpecification.Replace("-", "") + "-" + vm.BuyerSpecification1 + "-" + vm.BuyerSpecification2;

                    ProductBuyer ProdBuyer = new ProductBuyer();
                    ProdBuyer.BuyerId             = (int)vm.SaleToBuyerId;
                    ProdBuyer.ProductId           = (int)vm.ProductId;
                    ProdBuyer.BuyerSku            = vm.BuyerSku == null ? BuyerSku : vm.BuyerSku;
                    ProdBuyer.BuyerUpcCode        = vm.BuyerUpcCode;
                    ProdBuyer.BuyerSpecification  = vm.BuyerSpecification;
                    ProdBuyer.BuyerSpecification1 = vm.BuyerSpecification1;
                    ProdBuyer.BuyerSpecification2 = vm.BuyerSpecification2;
                    ProdBuyer.BuyerSpecification3 = vm.BuyerSpecification3;
                    ProdBuyer.CreatedDate         = DateTime.Now;
                    ProdBuyer.CreatedBy           = User.Identity.Name;
                    ProdBuyer.ModifiedDate        = DateTime.Now;
                    ProdBuyer.ModifiedBy          = User.Identity.Name;
                    ProdBuyer.ObjectState         = Model.ObjectState.Added;
                    new ProductBuyerService(_unitOfWork).Create(ProdBuyer);
                }

                SaleEnquiryHeader SaleEnquiryHeader = new SaleEnquiryHeaderService(_unitOfWork).Find(temp.SaleEnquiryHeaderId);
                SaleOrderHeader   SaleOrderHeader   = new SaleOrderHeaderService(_unitOfWork).Find_ByReferenceDocId(SaleEnquiryHeader.DocTypeId, SaleEnquiryHeader.SaleEnquiryHeaderId);
                if (SaleOrderHeader == null)
                {
                    CreateSaleOrder(temp.SaleEnquiryHeaderId);
                }
                else
                {
                    CreateSaleOrderLine(temp.SaleEnquiryLineId, SaleOrderHeader.SaleOrderHeaderId);
                }

                LogList.Add(new LogTypeViewModel
                {
                    ExObj = ExRec,
                    Obj   = temp,
                });
                XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);

                try
                {
                    _unitOfWork.Save();
                }

                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    ModelState.AddModelError("", message);
                    return(View("Create", vm));
                }

                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId       = new DocumentTypeService(_unitOfWork).FindByName(TransactionDoctypeConstants.SaleEnquiryProductMapping).DocumentTypeId,
                    DocId           = temp.SaleEnquiryLineId,
                    ActivityType    = (int)ActivityTypeContants.Modified,
                    xEModifications = Modifications,
                }));

                //return RedirectToAction("Index").Success("Data saved successfully");

                //var SaleEnquiryProductMapping = _SaleEnquiryLineService.GetSaleEnquiryLineListForIndex().OrderBy(m => m.SaleEnquiryLineId).OrderBy(m => m.SaleEnquiryLineId).FirstOrDefault();

                //if (SaleEnquiryProductMapping != null)
                //{
                //    return RedirectToAction("Edit", new { id = SaleEnquiryProductMapping.SaleEnquiryLineId }).Success("Data saved successfully");
                //}
                //else
                //{
                //    return RedirectToAction("Index").Success("Data saved successfully");
                //}

                int SaleEnquiryId = _SaleEnquiryLineService.NextId(vm.SaleEnquiryLineId);

                if (SaleEnquiryId > 0)
                {
                    return(RedirectToAction("Edit", new { id = SaleEnquiryId }).Success("Data saved successfully"));
                }
                else
                {
                    return(RedirectToAction("Index").Success("Data saved successfully"));
                }
            }
            return(View("Create", vm));
        }
Esempio n. 8
0
        public ActionResult _CreatePost(SaleEnquiryLineViewModel svm)
        {
            SaleEnquiryLine   s    = Mapper.Map <SaleEnquiryLineViewModel, SaleEnquiryLine>(svm);
            SaleEnquiryHeader temp = new SaleEnquiryHeaderService(_unitOfWork).Find(s.SaleEnquiryHeaderId);

            //if (Command == "Submit" && (s.ProductId == 0))
            //    return RedirectToAction("Submit", "SaleEnquiryHeader", new { id = s.SaleEnquiryHeaderId }).Success("Data saved successfully");

            if (svm.BuyerSpecification != null || svm.BuyerSpecification1 != null || svm.BuyerSpecification2 != null || svm.BuyerSpecification3 != null)
            {
                SaleEnquiryLine es = new SaleEnquiryLineService(_unitOfWork).Find_WithLineDetail(svm.SaleEnquiryHeaderId, svm.BuyerSpecification, svm.BuyerSpecification1, svm.BuyerSpecification2, svm.BuyerSpecification3);

                if (es != null)
                {
                    if (es != null && es.SaleEnquiryLineId != svm.SaleEnquiryLineId)
                    {
                        ModelState.AddModelError("ProductId", "This Detail is already Added !");
                    }
                }
            }



            if (svm.Qty <= 0)
            {
                //ModelState.AddModelError("Qty", "Please Check Qty");
                ViewBag.LineMode = "Create";
                string message = "Please Check Qty";
                TempData["CSEXCL"] += message;
                PrepareViewBag(temp);
                return(PartialView("_Create", svm));
            }

            if (svm.DueDate < temp.DocDate)
            {
                ModelState.AddModelError("DueDate", "DueDate greater than DocDate");
            }

            if (svm.SaleEnquiryLineId <= 0)
            {
                ViewBag.LineMode = "Create";
            }
            else
            {
                ViewBag.LineMode = "Edit";
            }

            if (ModelState.IsValid)
            {
                if (svm.SaleEnquiryLineId <= 0)
                {
                    if (svm.BuyerSpecification != null || svm.BuyerSpecification1 != null || svm.BuyerSpecification2 != null || svm.BuyerSpecification3 != null)
                    {
                        ProductBuyer BP = new ProductBuyerService(_unitOfWork).Find(temp.SaleToBuyerId, svm.BuyerSpecification, svm.BuyerSpecification1, svm.BuyerSpecification2, svm.BuyerSpecification3);

                        if (BP != null)
                        {
                            s.ProductId = BP.ProductId;
                        }
                    }

                    s.CreatedDate  = DateTime.Now;
                    s.ModifiedDate = DateTime.Now;
                    s.CreatedBy    = User.Identity.Name;
                    s.ModifiedBy   = User.Identity.Name;
                    s.ObjectState  = Model.ObjectState.Added;
                    _SaleEnquiryLineService.Create(s);

                    SaleEnquiryLineExtended Extended = new SaleEnquiryLineExtended();
                    Extended.SaleEnquiryLineId   = s.SaleEnquiryLineId;
                    Extended.BuyerSpecification  = svm.BuyerSpecification;
                    Extended.BuyerSpecification1 = svm.BuyerSpecification1;
                    Extended.BuyerSpecification2 = svm.BuyerSpecification2;
                    Extended.BuyerSpecification3 = svm.BuyerSpecification3;
                    Extended.BuyerSku            = svm.BuyerSku;
                    Extended.BuyerUpcCode        = svm.BuyerUpcCode;
                    new SaleEnquiryLineExtendedService(_unitOfWork).Create(Extended);

                    //new SaleEnquiryLineStatusService(_unitOfWork).CreateLineStatus(s.SaleEnquiryLineId);

                    SaleEnquiryHeader header = new SaleEnquiryHeaderService(_unitOfWork).Find(s.SaleEnquiryHeaderId);
                    if (header.Status != (int)StatusConstants.Drafted && header.Status != (int)StatusConstants.Import)
                    {
                        header.Status       = (int)StatusConstants.Modified;
                        header.ModifiedDate = DateTime.Now;
                        header.ModifiedBy   = User.Identity.Name;
                        new SaleEnquiryHeaderService(_unitOfWork).Update(header);
                    }


                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXCL"] += message;
                        PrepareViewBag(temp);
                        return(PartialView("_Create", svm));
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId    = header.DocTypeId,
                        DocId        = header.SaleEnquiryHeaderId,
                        DocLineId    = s.SaleEnquiryLineId,
                        ActivityType = (int)ActivityTypeContants.Added,
                        DocNo        = header.DocNo,
                        DocDate      = header.DocDate,
                        DocStatus    = header.Status,
                    }));


                    return(RedirectToAction("_Create", new { id = s.SaleEnquiryHeaderId }));
                }
                else
                {
                    List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();


                    SaleEnquiryHeader header    = new SaleEnquiryHeaderService(_unitOfWork).Find(svm.SaleEnquiryHeaderId);
                    StringBuilder     logstring = new StringBuilder();
                    int             status      = header.Status;
                    SaleEnquiryLine temp1       = _SaleEnquiryLineService.Find(svm.SaleEnquiryLineId);

                    SaleEnquiryLine ExRec = new SaleEnquiryLine();
                    ExRec = Mapper.Map <SaleEnquiryLine>(temp1);

                    //End of Tracking the Modifications::

                    temp1.DueDate                  = svm.DueDate;
                    temp1.ProductId                = svm.ProductId;
                    temp1.Specification            = svm.Specification;
                    temp1.Dimension1Id             = svm.Dimension1Id;
                    temp1.Dimension2Id             = svm.Dimension2Id;
                    temp1.Dimension3Id             = svm.Dimension3Id;
                    temp1.Dimension4Id             = svm.Dimension4Id;
                    temp1.Qty                      = svm.Qty;
                    temp1.UnitId                   = svm.UnitId;
                    temp1.DealQty                  = svm.DealQty ?? 0;
                    temp1.DealUnitId               = svm.DealUnitId;
                    temp1.UnitConversionMultiplier = svm.UnitConversionMultiplier;
                    temp1.Rate                     = svm.Rate ?? 0;
                    temp1.Amount                   = svm.Amount ?? 0;
                    temp1.Remark                   = svm.Remark;
                    temp1.ModifiedDate             = DateTime.Now;
                    temp1.ModifiedBy               = User.Identity.Name;
                    _SaleEnquiryLineService.Update(temp1);

                    SaleEnquiryLineExtended Extended = new SaleEnquiryLineExtendedService(_unitOfWork).Find(svm.SaleEnquiryLineId);
                    Extended.BuyerSpecification  = svm.BuyerSpecification;
                    Extended.BuyerSpecification1 = svm.BuyerSpecification1;
                    Extended.BuyerSpecification2 = svm.BuyerSpecification2;
                    Extended.BuyerSpecification3 = svm.BuyerSpecification3;
                    new SaleEnquiryLineExtendedService(_unitOfWork).Update(Extended);


                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = ExRec,
                        Obj   = temp1,
                    });

                    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;
                        new SaleEnquiryHeaderService(_unitOfWork).Update(header);
                    }
                    XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);
                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXCL"] += message;
                        PrepareViewBag(temp);
                        return(PartialView("_Create", svm));
                    }

                    //Saving the Activity Log

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId       = temp.DocTypeId,
                        DocId           = temp1.SaleEnquiryHeaderId,
                        DocLineId       = temp1.SaleEnquiryLineId,
                        ActivityType    = (int)ActivityTypeContants.Modified,
                        DocNo           = temp.DocNo,
                        xEModifications = Modifications,
                        DocDate         = temp.DocDate,
                        DocStatus       = temp.Status,
                    }));

                    //End of Saving the Activity Log

                    return(Json(new { success = true }));
                }
            }

            //string messages = string.Join("; ", ModelState.Values
            //                            .SelectMany(x => x.Errors)
            //                            .Select(x => x.ErrorMessage));
            //TempData["CSEXCL"] += messages;
            ViewBag.Status = temp.Status;
            PrepareViewBag(temp);
            return(PartialView("_Create", svm));
        }
Esempio n. 9
0
        public ActionResult _PersonProductUidPost(PersonProductUidSummaryViewModel svm)
        {
            SaleEnquiryLine   s    = new SaleEnquiryLineService(_unitOfWork).Find((int)svm.GenDocLineId);
            SaleEnquiryHeader temp = new SaleEnquiryHeaderService(_unitOfWork).Find(s.SaleEnquiryHeaderId);


            if (ModelState.IsValid)
            {
                //var PersonProductUid = (from p in db.PersonProductUid
                //                        where p.GenLineId == s.SaleEnquiryLineId && p.GenDocTypeId == temp.DocTypeId && p.GenDocId == temp.SaleEnquiryHeaderId
                //                        select p).ToList();

                //foreach (var item2 in PersonProductUid)
                //{
                //    new PersonProductUidService(_unitOfWork).Delete(item2.PersonProductUidId);

                //}

                if (svm.JobInvoiceSummaryViewModel[0].PersonProductUidId == 0)
                {
                    foreach (var item in svm.JobInvoiceSummaryViewModel)
                    {
                        PersonProductUid PPU = new PersonProductUid();
                        PPU.GenLineId               = s.SaleEnquiryLineId;
                        PPU.ProductUidName          = item.ProductUidName;
                        PPU.ProductUidSpecification = item.ProductUidSpecification;
                        PPU.GenDocId     = temp.SaleEnquiryHeaderId;
                        PPU.GenDocNo     = temp.BuyerEnquiryNo;
                        PPU.GenDocTypeId = temp.DocTypeId;
                        PPU.CreatedDate  = DateTime.Now;
                        PPU.ModifiedDate = DateTime.Now;
                        PPU.CreatedBy    = User.Identity.Name;
                        PPU.ModifiedBy   = User.Identity.Name;
                        PPU.ObjectState  = Model.ObjectState.Added;
                        new PersonProductUidService(_unitOfWork).Create(PPU);
                    }
                }
                else
                {
                    foreach (var item in svm.JobInvoiceSummaryViewModel)
                    {
                        PersonProductUid PPU = new PersonProductUidService(_unitOfWork).Find(item.PersonProductUidId);
                        PPU.ProductUidName          = item.ProductUidName;
                        PPU.ProductUidSpecification = item.ProductUidSpecification;
                        PPU.ModifiedDate            = DateTime.Now;
                        PPU.ModifiedBy  = User.Identity.Name;
                        PPU.ObjectState = Model.ObjectState.Modified;
                        new PersonProductUidService(_unitOfWork).Update(PPU);
                    }
                }



                try
                {
                    _unitOfWork.Save();
                }

                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXCL"] += message;
                    PrepareViewBag(temp);
                    return(PartialView("_Create", svm));
                }

                //LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                //{
                //    DocTypeId = header.DocTypeId,
                //    DocId = header.SaleEnquiryHeaderId,
                //    DocLineId = s.SaleEnquiryLineId,
                //    ActivityType = (int)ActivityTypeContants.Added,
                //    DocNo = header.DocNo,
                //    DocDate = header.DocDate,
                //    DocStatus = header.Status,
                //}));


                return(Json(new { success = true }));
            }
            PrepareViewBag(temp);
            return(PartialView("_Create", svm));
        }