public ActionResult Detail(int id, string transactionType, string IndexType)
        {
            PackingHeaderViewModel svm = _PackingHeaderService.GetPackingHeaderViewModel(id);

            ViewBag.transactionType = transactionType;
            ViewBag.IndexStatus     = IndexType;
            PrepareViewBag(svm);
            if (svm == null)
            {
                return(HttpNotFound());
            }

            if (String.IsNullOrEmpty(transactionType) || transactionType == "detail")
            {
                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId    = svm.DocTypeId,
                    DocId        = svm.PackingHeaderId,
                    ActivityType = (int)ActivityTypeContants.Detail,
                    DocNo        = svm.DocNo,
                    DocDate      = svm.DocDate,
                    DocStatus    = svm.Status,
                }));
            }

            return(View("Create", svm));
        }
        // GET: /PackingHeader/Create

        public ActionResult Create()
        {
            PackingHeaderViewModel p = new PackingHeaderViewModel();

            p.DocDate      = DateTime.Now.Date;
            p.CreatedDate  = DateTime.Now;
            p.DivisionId   = (int)System.Web.HttpContext.Current.Session["DivisionId"];
            p.SiteId       = (int)System.Web.HttpContext.Current.Session["SiteId"];
            p.DocNo        = _PackingHeaderService.GetMaxDocNo();
            p.ShipMethodId = new ShipMethodService(_unitOfWork).Find("By Sea").ShipMethodId;

            int DocTypeId = 0;
            var DocType   = new DocumentTypeService(_unitOfWork).GetDocumentTypeList(TransactionDocCategoryConstants.PackingReceive).FirstOrDefault();

            if (DocType != null)
            {
                DocTypeId = DocType.DocumentTypeId;
            }

            //Getting Settings
            var settings = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(DocTypeId, p.DivisionId, p.SiteId);

            if (settings == null && UserRoles.Contains("SysAdmin"))
            {
                return(RedirectToAction("Create", "PackingSetting", new { id = DocTypeId }).Warning("Please create Packing settings"));
            }
            else if (settings == null && !UserRoles.Contains("SysAdmin"))
            {
                return(View("~/Views/Shared/InValidSettings.cshtml"));
            }

            PrepareViewBag(p);
            ViewBag.Mode = "Add";
            return(View(p));
        }
        private void PrepareViewBag(PackingHeaderViewModel s)
        {
            //ViewBag.DocTypeList = new DocumentTypeService(_unitOfWork).GetDocumentTypeList().ToList();
            int SiteId = (int)System.Web.HttpContext.Current.Session["SiteId"];

            ViewBag.DocTypeList = new DocumentTypeService(_unitOfWork).GetDocumentTypeList(TransactionDocCategoryConstants.PackingReceive);
            //ViewBag.BuyerList = new BuyerService(_unitOfWork).GetBuyerList().ToList();
            ViewBag.GodownList     = new GodownService(_unitOfWork).GetGodownList(SiteId).ToList().Where(i => i.SiteId == (int)System.Web.HttpContext.Current.Session["SiteId"] && i.IsActive == true);
            ViewBag.DealUnitList   = new UnitService(_unitOfWork).GetUnitList().ToList();
            ViewBag.ShipMethodList = new ShipMethodService(_unitOfWork).GetShipMethodList().ToList();

            List <SelectListItem> temp = new List <SelectListItem>();

            temp.Add(new SelectListItem {
                Text = "Product Invoice Group", Value = ((int)(BaleNoPatternConstants.ProductInvoiceGroup)).ToString()
            });
            temp.Add(new SelectListItem {
                Text = "Sale Order", Value = ((int)(BaleNoPatternConstants.SaleOrder)).ToString()
            });
            temp.Add(new SelectListItem {
                Text = "Size Wise", Value = ((int)(BaleNoPatternConstants.SmallSizes)).ToString()
            });
            temp.Add(new SelectListItem {
                Text = "Sale Order Size Wise", Value = ((int)(BaleNoPatternConstants.SaleOrderSize)).ToString()
            });

            if (s == null)
            {
                ViewBag.BaleNoPattern = new SelectList(temp, "Value", "Text");
            }
            else
            {
                ViewBag.BaleNoPattern = new SelectList(temp, "Value", "Text", s.BaleNoPattern);
            }
        }
Exemple #4
0
        public ActionResult Detail(int id, string transactionType, string IndexType)
        {
            PackingHeaderViewModel svm = _PackingHeaderService.GetPackingHeaderViewModel(id);

            ViewBag.transactionType = transactionType;
            ViewBag.IndexStatus     = IndexType;
            PrepareViewBag(svm);
            if (svm == null)
            {
                return(HttpNotFound());
            }

            PackingSetting temp = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(svm.DocTypeId, svm.DivisionId, svm.SiteId);

            svm.PackingSettings = Mapper.Map <PackingSetting, PackingSettingsViewModel>(temp);

            if (String.IsNullOrEmpty(transactionType) || transactionType == "detail")
            {
                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId    = svm.DocTypeId,
                    DocId        = svm.PackingHeaderId,
                    ActivityType = (int)ActivityTypeContants.Detail,
                    DocNo        = svm.DocNo,
                    DocDate      = svm.DocDate,
                    DocStatus    = svm.Status,
                }));
            }

            return(View("Create", svm));
        }
Exemple #5
0
        // GET: /PackingHeader/Create

        public ActionResult Create()
        {
            PackingHeaderViewModel p = new PackingHeaderViewModel();

            p.DocDate      = DateTime.Now.Date;
            p.CreatedDate  = DateTime.Now;
            p.DivisionId   = (int)System.Web.HttpContext.Current.Session["DivisionId"];
            p.SiteId       = (int)System.Web.HttpContext.Current.Session["SiteId"];
            p.DocNo        = _PackingHeaderService.GetMaxDocNo();
            p.ShipMethodId = new ShipMethodService(_unitOfWork).Find("By Sea").ShipMethodId;

            DocumentType   DT   = new DocumentTypeService(_unitOfWork).FindByName("Packing Receive");
            PackingSetting temp = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(DT.DocumentTypeId, p.DivisionId, p.SiteId);

            p.PackingSettings = Mapper.Map <PackingSetting, PackingSettingsViewModel>(temp);

            if (System.Web.HttpContext.Current.Session["DefaultGodownId"] != null)
            {
                p.GodownId = (int)System.Web.HttpContext.Current.Session["DefaultGodownId"];
            }

            PrepareViewBag(p);
            ViewBag.Mode = "Add";
            return(View(p));
        }
Exemple #6
0
        private ActionResult Edit(int id, string IndexType)
        {
            ViewBag.IndexStatus = IndexType;

            PackingHeaderViewModel svm = _PackingHeaderService.GetPackingHeaderViewModel(id);

            if (svm == null)
            {
                return(HttpNotFound());
            }

            #region DocTypeTimeLineValidation
            try
            {
                TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue);
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation)
            {
                TempData["CSEXC"] += ExceptionMsg;
            }
            #endregion

            if ((!TimePlanValidation && !Continue))
            {
                return(RedirectToAction("DetailInformation", new { id = id, IndexType = IndexType }));
            }
            PrepareViewBag(svm);
            ViewBag.Mode = "Edit";


            PackingSetting temp = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(svm.DocTypeId, svm.DivisionId, svm.SiteId);

            svm.PackingSettings = Mapper.Map <PackingSetting, PackingSettingsViewModel>(temp);

            if (!(System.Web.HttpContext.Current.Request.UrlReferrer.PathAndQuery).Contains("Create"))
            {
                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId    = svm.DocTypeId,
                    DocId        = svm.PackingHeaderId,
                    ActivityType = (int)ActivityTypeContants.Detail,
                    DocNo        = svm.DocNo,
                    DocDate      = svm.DocDate,
                    DocStatus    = svm.Status,
                }));
            }

            return(View("Create", svm));
        }
        public PackingHeaderViewModel GetPackingHeaderViewModel(int id)
        {
            PackingHeaderViewModel packingheader = (from H in db.PackingHeader
                                                    join B in db.Persons on H.BuyerId equals B.PersonID into BuyerTable from BuyerTab in BuyerTable.DefaultIfEmpty()
                                                    join B in db.Persons on H.JobWorkerId equals B.PersonID into JobWorkerTable from JobWorkerTab in JobWorkerTable.DefaultIfEmpty()
                                                    join D in db.DocumentType on H.DocTypeId equals D.DocumentTypeId into DocumentTypeTable from DocumentTypeTab in DocumentTypeTable.DefaultIfEmpty()
                                                    join Div in db.Divisions on H.DivisionId equals Div.DivisionId into DivisionTable from DivisionTab in DivisionTable.DefaultIfEmpty()
                                                    join S in db.Site on H.SiteId equals S.SiteId into SiteTable from SiteTab in SiteTable.DefaultIfEmpty()
                                                    join G in db.Godown on H.GodownId equals G.GodownId into GodownTable from GodownTab in GodownTable.DefaultIfEmpty()
                                                    join Du in db.Units on H.DealUnitId equals Du.UnitId into DeliveryUnitTable
                                                    from DeliveryUnitTab in DeliveryUnitTable.DefaultIfEmpty()
                                                    where H.PackingHeaderId == id
                                                    select new PackingHeaderViewModel
            {
                PackingHeaderId = H.PackingHeaderId,
                DocTypeName = DocumentTypeTab.DocumentTypeName,
                DocDate = H.DocDate,
                DocNo = H.DocNo,
                BuyerId = H.BuyerId,
                DocTypeId = H.DocTypeId,
                BuyerName = BuyerTab.Name,
                JobWorkerId = H.JobWorkerId.Value,
                JobWorkerName = JobWorkerTab.Name,
                DivisionId = H.DivisionId,
                DivisionName = DivisionTab.DivisionName,
                SiteId = H.SiteId,
                SiteName = SiteTab.SiteName,
                GodownId = H.GodownId,
                GodownName = GodownTab.GodownName,
                DealUnitId = H.DealUnitId,
                DealUnitName = DeliveryUnitTab.UnitName,
                BaleNoPattern = H.BaleNoPattern,
                ShipMethodId = H.ShipMethodId,
                Remark = H.Remark,
                Status = H.Status,
                CreatedBy = H.CreatedBy,
                CreatedDate = H.CreatedDate,
                ModifiedBy = H.ModifiedBy,
                ModifiedDate = H.ModifiedDate,
                LockReason = H.LockReason,
                TotalQty = H.PackingLines.Sum(m => m.Qty),
                DecimalPlaces = (from o in H.PackingLines
                                 join prod in db.Product on o.ProductId equals prod.ProductId
                                 join u in db.Units on prod.UnitId equals u.UnitId
                                 select u.DecimalPlaces).Max(),
            }).FirstOrDefault();

            return(packingheader);
        }
Exemple #8
0
        public ActionResult Detail(int id, string transactionType, string IndexType)
        {
            ViewBag.transactionType = transactionType;
            ViewBag.IndexStatus     = IndexType;

            PackingHeader PackingHeader = _PackingHeaderService.Find(id);


            PackingHeaderViewModel vm = new PackingHeaderViewModel();

            vm          = Mapper.Map <PackingHeader, PackingHeaderViewModel>(PackingHeader);
            vm.BuyerId  = PackingHeader.BuyerId;
            vm.GodownId = PackingHeader.GodownId;


            //Getting Settings
            var settings = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(PackingHeader.DocTypeId, PackingHeader.DivisionId, PackingHeader.SiteId);

            if (settings == null && UserRoles.Contains("SysAdmin"))
            {
                return(RedirectToAction("Create", "PackingSetting", new { id = id }).Warning("Please create Sale Dispatch settings"));
            }
            else if (settings == null && !UserRoles.Contains("SysAdmin"))
            {
                return(View("~/Views/Shared/InValidSettings.cshtml"));
            }
            vm.PackingSettings = Mapper.Map <PackingSetting, PackingSettingsViewModel>(settings);
            PrepareViewBag(PackingHeader.DocTypeId);

            if (String.IsNullOrEmpty(transactionType) || transactionType == "detail")
            {
                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId    = PackingHeader.DocTypeId,
                    DocId        = PackingHeader.PackingHeaderId,
                    ActivityType = (int)ActivityTypeContants.Detail,
                    DocNo        = PackingHeader.DocNo,
                    DocDate      = PackingHeader.DocDate,
                    DocStatus    = PackingHeader.Status,
                }));
            }

            return(View("Create", vm));
        }
        public string DataValidation(PackingHeaderViewModel svm)
        {
            string ValidationMsg = "";

            if (svm.BuyerId == 0 || svm.BuyerId == null)
            {
                ValidationMsg = "Buyer is required.";
                return(ValidationMsg);
            }

            if (svm.GodownId == 0 || svm.GodownId == null)
            {
                ValidationMsg = "Godown is required.";
                return(ValidationMsg);
            }

            if (svm.DealUnitId == "" || svm.DealUnitId == null)
            {
                ValidationMsg = "Deal Unit is required.";
                return(ValidationMsg);
            }

            //PackingHeader packingheader = _PackingHeaderService.FindByDocNo(svm.DocNo, (int)System.Web.HttpContext.Current.Session["DivisionId"], (int)System.Web.HttpContext.Current.Session["SiteId"]);

            //int  DivisionId =  (int)System.Web.HttpContext.Current.Session["DivisionId"];
            //int SiteId = (int)System.Web.HttpContext.Current.Session["SiteId"];

            //var packingheader = (from H in db.PackingHeader
            //                               where H.DivisionId == DivisionId &&
            //                               H.SiteId == SiteId &&
            //                               H.DocNo == svm.DocNo &&
            //                               H.PackingHeaderId != svm.PackingHeaderId
            //                               select new
            //                               {
            //                                   PackingHeaderId = H.PackingHeaderId
            //                               }).FirstOrDefault();

            //if (packingheader != null)
            //{
            //    ValidationMsg = "Doc no already exists.";
            //}

            return(ValidationMsg);
        }
        // GET: /PurchaseOrderHeader/Delete/5

        private ActionResult Remove(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PackingHeaderViewModel PackingHeader = _PackingHeaderService.GetPackingHeaderViewModel(id);

            if (PackingHeader == null)
            {
                return(HttpNotFound());
            }

            #region DocTypeTimeLineValidation
            try
            {
                TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(PackingHeader), DocumentTimePlanTypeConstants.Delete, User.Identity.Name, out ExceptionMsg, out Continue);
                TempData["CSEXC"] += ExceptionMsg;
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation && !Continue)
            {
                return(PartialView("AjaxError"));
            }
            #endregion

            ReasonViewModel rvm = new ReasonViewModel()
            {
                id = id,
            };
            return(PartialView("_Reason", rvm));
        }
Exemple #11
0
        public ActionResult Create(int id)//DocTypeId
        {
            PackingHeaderViewModel vm = new PackingHeaderViewModel();

            vm.DocDate     = DateTime.Now.Date;
            vm.DivisionId  = (int)System.Web.HttpContext.Current.Session["DivisionId"];
            vm.SiteId      = (int)System.Web.HttpContext.Current.Session["SiteId"];
            vm.DocTypeId   = id;
            vm.CreatedDate = DateTime.Now;

            //Getting Settings
            var settings = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(id, vm.DivisionId, vm.SiteId);

            if (settings == null && UserRoles.Contains("SysAdmin"))
            {
                return(RedirectToAction("Create", "PackingSetting", new { id = id }).Warning("Please create Sale Dispatch settings"));
            }
            else if (settings == null && !UserRoles.Contains("SysAdmin"))
            {
                return(View("~/Views/Shared/InValidSettings.cshtml"));
            }


            if (new RolePermissionService(_unitOfWork).IsActionAllowed(UserRoles, id, settings.ProcessId, this.ControllerContext.RouteData.Values["controller"].ToString(), "Create") == false)
            {
                return(View("~/Views/Shared/PermissionDenied.cshtml").Warning("You don't have permission to do this task."));
            }



            vm.PackingSettings = Mapper.Map <PackingSetting, PackingSettingsViewModel>(settings);
            ViewBag.Mode       = "Add";
            PrepareViewBag(id);

            vm.DocNo = new DocumentTypeService(_unitOfWork).FGetNewDocNo("DocNo", ConfigurationManager.AppSettings["DataBaseSchema"] + ".PackingHeaders", vm.DocTypeId, vm.DocDate, vm.DivisionId, vm.SiteId);
            return(View("Create", vm));
        }
Exemple #12
0
        private ActionResult Edit(int id, string IndexType)
        {
            ViewBag.IndexStatus = IndexType;
            PackingHeader PackingHeader = _PackingHeaderService.Find(id);

            if (new RolePermissionService(_unitOfWork).IsActionAllowed(UserRoles, PackingHeader.DocTypeId, null, this.ControllerContext.RouteData.Values["controller"].ToString(), "Edit") == false)
            {
                return(View("~/Views/Shared/PermissionDenied.cshtml").Warning("You don't have permission to do this task."));
            }

            #region DocTypeTimeLineValidation
            try
            {
                TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(PackingHeader), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue);
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation)
            {
                TempData["CSEXC"] += ExceptionMsg;
            }
            #endregion

            if ((!TimePlanValidation && !Continue))
            {
                return(RedirectToAction("DetailInformation", new { id = id, IndexType = IndexType }));
            }

            PackingHeaderViewModel vm = new PackingHeaderViewModel();

            vm          = Mapper.Map <PackingHeader, PackingHeaderViewModel>(PackingHeader);
            vm.BuyerId  = PackingHeader.BuyerId;
            vm.GodownId = PackingHeader.GodownId;

            //Getting Settings
            var settings = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(PackingHeader.DocTypeId, vm.DivisionId, vm.SiteId);

            if (settings == null && UserRoles.Contains("SysAdmin"))
            {
                return(RedirectToAction("Create", "PackingSetting", new { id = PackingHeader.DocTypeId }).Warning("Please create Sale Dispatch settings"));
            }
            else if (settings == null && !UserRoles.Contains("SysAdmin"))
            {
                return(View("~/Views/Shared/InValidSettings.cshtml"));
            }

            if (settings != null)
            {
                vm.ProcessId = settings.ProcessId;
            }


            vm.PackingSettings = Mapper.Map <PackingSetting, PackingSettingsViewModel>(settings);
            PrepareViewBag(PackingHeader.DocTypeId);
            ViewBag.Mode = "Edit";

            if (!(System.Web.HttpContext.Current.Request.UrlReferrer.PathAndQuery).Contains("Create"))
            {
                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId    = PackingHeader.DocTypeId,
                    DocId        = PackingHeader.PackingHeaderId,
                    ActivityType = (int)ActivityTypeContants.Detail,
                    DocNo        = PackingHeader.DocNo,
                    DocDate      = PackingHeader.DocDate,
                    DocStatus    = PackingHeader.Status,
                }));
            }

            return(View("Create", vm));
        }
Exemple #13
0
        public ActionResult CreatePost(PackingHeaderViewModel vm)
        {
            #region DocTypeTimeLineValidation

            try
            {
                if (vm.PackingHeaderId <= 0)
                {
                    TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(vm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue);
                }
                else
                {
                    TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(vm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue);
                }
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation)
            {
                TempData["CSEXC"] += ExceptionMsg;
            }

            #endregion

            if (ModelState.IsValid && (TimePlanValidation || Continue))
            {
                #region CreateRecord
                if (vm.PackingHeaderId == 0)
                {
                    PackingHeader Packingheader = Mapper.Map <PackingHeaderViewModel, PackingHeader>(vm);

                    Packingheader.BuyerId      = vm.BuyerId;
                    Packingheader.CreatedBy    = User.Identity.Name;
                    Packingheader.ModifiedBy   = User.Identity.Name;
                    Packingheader.CreatedDate  = DateTime.Now;
                    Packingheader.ModifiedDate = DateTime.Now;
                    Packingheader.ObjectState  = Model.ObjectState.Added;
                    _PackingHeaderService.Create(Packingheader);



                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        PrepareViewBag(vm.DocTypeId);
                        ViewBag.Mode = "Add";
                        return(View("Create", vm));
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId    = Packingheader.DocTypeId,
                        DocId        = Packingheader.PackingHeaderId,
                        ActivityType = (int)ActivityTypeContants.Added,
                        DocNo        = Packingheader.DocNo,
                        DocDate      = Packingheader.DocDate,
                        DocStatus    = Packingheader.Status,
                    }));


                    return(RedirectToAction("Modify", new { id = Packingheader.PackingHeaderId }).Success("Data saved Successfully"));
                }
                #endregion

                #region EditRecord
                else
                {
                    List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();


                    PackingHeader Packingheader = _PackingHeaderService.Find(vm.PackingHeaderId);

                    PackingHeader ExRec = Mapper.Map <PackingHeader>(Packingheader);


                    StockHeader StockHeader = new StockHeaderService(_unitOfWork).Find(Packingheader.StockHeaderId ?? 0);


                    int status = Packingheader.Status;

                    if (Packingheader.Status != (int)StatusConstants.Drafted)
                    {
                        Packingheader.Status = (int)StatusConstants.Modified;
                    }


                    Packingheader.DocNo        = vm.DocNo;
                    Packingheader.DocDate      = vm.DocDate;
                    Packingheader.BuyerId      = vm.BuyerId;
                    Packingheader.GodownId     = vm.GodownId;
                    Packingheader.Remark       = vm.Remark;
                    Packingheader.ModifiedDate = DateTime.Now;
                    Packingheader.ModifiedBy   = User.Identity.Name;
                    _PackingHeaderService.Update(Packingheader);


                    if (StockHeader != null)
                    {
                        StockHeader.DocDate      = vm.DocDate;
                        StockHeader.PersonId     = vm.BuyerId;
                        StockHeader.GodownId     = vm.GodownId;
                        StockHeader.Remark       = vm.Remark;
                        StockHeader.ModifiedDate = DateTime.Now;
                        StockHeader.ModifiedBy   = User.Identity.Name;
                        new StockHeaderService(_unitOfWork).Update(StockHeader);
                    }

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

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

                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        PrepareViewBag(vm.DocTypeId);
                        ViewBag.Mode = "Edit";
                        return(View("Create", vm));
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId       = Packingheader.DocTypeId,
                        DocId           = Packingheader.PackingHeaderId,
                        ActivityType    = (int)ActivityTypeContants.Modified,
                        DocNo           = Packingheader.DocNo,
                        xEModifications = Modifications,
                        DocDate         = Packingheader.DocDate,
                        DocStatus       = Packingheader.Status,
                    }));

                    return(RedirectToAction("Index", new { id = vm.DocTypeId }).Success("Data saved successfully"));
                }
                #endregion
            }
            PrepareViewBag(vm.DocTypeId);
            ViewBag.Mode = "Add";
            return(View("Create", vm));
        }
        public ActionResult Create(PackingHeaderViewModel svm)
        {
            string DataValidationMsg = DataValidation(svm);

            if (DataValidationMsg != "")
            {
                PrepareViewBag(svm);
                return(View(svm).Danger(DataValidationMsg));
            }


            #region DocTypeTimeLineValidation

            try
            {
                if (svm.PackingHeaderId <= 0)
                {
                    TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue);
                }
                else
                {
                    TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue);
                }
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation)
            {
                TempData["CSEXC"] += ExceptionMsg;
            }

            #endregion

            if (ModelState.IsValid && (TimePlanValidation || Continue))
            {
                #region CreateRecord
                if (svm.PackingHeaderId == 0)
                {
                    PackingHeader packingheader = Mapper.Map <PackingHeaderViewModel, PackingHeader>(svm);
                    packingheader.CreatedDate  = DateTime.Now;
                    packingheader.ModifiedDate = DateTime.Now;
                    packingheader.CreatedBy    = User.Identity.Name;
                    packingheader.ModifiedBy   = User.Identity.Name;
                    packingheader.Status       = (int)StatusConstants.Drafted;
                    _PackingHeaderService.Create(packingheader);

                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        PrepareViewBag(svm);
                        ViewBag.Mode = "Add";
                        return(View("Create", svm));
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId    = packingheader.DocTypeId,
                        DocId        = packingheader.PackingHeaderId,
                        ActivityType = (int)ActivityTypeContants.Added,
                        DocNo        = packingheader.DocNo,
                        DocDate      = packingheader.DocDate,
                        DocStatus    = packingheader.Status,
                    }));

                    return(RedirectToAction("Modify", new { id = packingheader.PackingHeaderId }).Success("Data saved Successfully"));
                }
                #endregion

                #region EditRecord
                else
                {
                    List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();

                    PackingHeader packingheader = new PackingHeaderService(_unitOfWork).Find(svm.PackingHeaderId);

                    PackingHeader ExRec = new PackingHeader();
                    ExRec = Mapper.Map <PackingHeader>(packingheader);


                    StringBuilder logstring = new StringBuilder();

                    int status = packingheader.Status;

                    if (packingheader.Status != (int)StatusConstants.Drafted)
                    {
                        packingheader.Status = (int)StatusConstants.Modified;
                    }


                    packingheader.DocNo         = svm.DocNo;
                    packingheader.DocDate       = svm.DocDate;
                    packingheader.BuyerId       = svm.BuyerId;
                    packingheader.GodownId      = svm.GodownId;
                    packingheader.DealUnitId    = svm.DealUnitId;
                    packingheader.Remark        = svm.Remark;
                    packingheader.JobWorkerId   = svm.JobWorkerId;
                    packingheader.BaleNoPattern = svm.BaleNoPattern;
                    packingheader.ShipMethodId  = svm.ShipMethodId;
                    packingheader.ModifiedDate  = DateTime.Now;
                    packingheader.ModifiedBy    = User.Identity.Name;
                    _PackingHeaderService.Update(packingheader);

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


                    if (packingheader.StockHeaderId != null)
                    {
                        StockHeaderViewModel S = new StockHeaderViewModel();

                        S.StockHeaderId = (int)packingheader.StockHeaderId;
                        S.DocTypeId     = packingheader.DocTypeId;
                        S.DocDate       = packingheader.DocDate;
                        S.DocNo         = packingheader.DocNo;
                        S.DivisionId    = packingheader.DivisionId;
                        S.SiteId        = packingheader.SiteId;
                        S.PersonId      = packingheader.JobWorkerId;
                        S.GodownId      = packingheader.GodownId;
                        S.Remark        = packingheader.Remark;
                        S.Status        = packingheader.Status;
                        S.ModifiedBy    = packingheader.ModifiedBy;
                        S.ModifiedDate  = packingheader.ModifiedDate;

                        new StockHeaderService(_unitOfWork).UpdateStockHeader(S);
                    }

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

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        ViewBag.Mode       = "Edit";
                        return(View("Create", svm));
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId       = packingheader.DocTypeId,
                        DocId           = packingheader.PackingHeaderId,
                        ActivityType    = (int)ActivityTypeContants.Modified,
                        DocNo           = packingheader.DocNo,
                        xEModifications = Modifications,
                        DocDate         = packingheader.DocDate,
                        DocStatus       = packingheader.Status,
                    }));

                    return(RedirectToAction("Index").Success("Data saved successfully"));
                }
                #endregion
            }
            PrepareViewBag(svm);
            ViewBag.Mode = "Add";
            return(View("Create", svm));
        }