public ActionResult Import(int id)//Document Type Id
        {
            //ControllerAction ca = new ControllerActionService(_unitOfWork).Find(id);
            ExcessMaterialHeaderViewModel vm = new ExcessMaterialHeaderViewModel();

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

            var settings = new ExcessMaterialSettingsService(_unitOfWork, context).GetExcessMaterialSettingsForDocument(id, vm.DivisionId, vm.SiteId);

            if (settings != null)
            {
                if (settings.ImportMenuId != null)
                {
                    MenuViewModel menuviewmodel = new MenuService(_unitOfWork).GetMenu((int)settings.ImportMenuId);

                    if (menuviewmodel == null)
                    {
                        return(View("~/Views/Shared/UnderImplementation.cshtml"));
                    }
                    else if (!string.IsNullOrEmpty(menuviewmodel.URL))
                    {
                        return(Redirect(System.Configuration.ConfigurationManager.AppSettings[menuviewmodel.URL] + "/" + menuviewmodel.ControllerName + "/" + menuviewmodel.ActionName + "/" + id + "?MenuId=" + menuviewmodel.MenuId));
                    }
                    else
                    {
                        return(RedirectToAction(menuviewmodel.ActionName, menuviewmodel.ControllerName, new { MenuId = menuviewmodel.MenuId, id = id }));
                    }
                }
            }
            return(RedirectToAction("Index", new { id = id }));
        }
        private void PrepareViewBag(int id)
        {
            ViewBag.Name = new DocumentTypeService(_unitOfWork).Find(id).DocumentTypeName;
            ViewBag.id   = id;
            var DivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"];
            var SiteId     = (int)System.Web.HttpContext.Current.Session["SiteId"];

            ViewBag.AdminSetting = UserRoles.Contains("Admin").ToString();
            var settings = new ExcessMaterialSettingsService(_unitOfWork, context).GetExcessMaterialSettingsForDocument(id, DivisionId, SiteId);

            if (settings != null)
            {
                ViewBag.ImportMenuId         = settings.ImportMenuId;
                ViewBag.SqlProcDocumentPrint = settings.SqlProcDocumentPrint;
                ViewBag.ExportMenuId         = settings.ExportMenuId;
            }
        }
        private ActionResult _Delete(int id)
        {
            ExcessMaterialLineViewModel temp = _ExcessMaterialLineService.GetExcessMaterialLine(id);

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

            #region DocTypeTimeLineValidation
            try
            {
                TimePlanValidation = DocumentValidation.ValidateDocumentLine(new DocumentUniqueId {
                    LockReason = temp.LockReason
                }, User.Identity.Name, out ExceptionMsg, out Continue);
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXCL"] += message;
                TimePlanValidation  = false;
            }

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

            if ((TimePlanValidation || Continue))
            {
                ViewBag.LineMode = "Delete";
            }

            ExcessMaterialHeader H = new ExcessMaterialHeaderService(_unitOfWork, db).Find(temp.ExcessMaterialHeaderId);

            //Getting Settings
            var settings = new ExcessMaterialSettingsService(_unitOfWork, db).GetExcessMaterialSettingsForDocument(H.DocTypeId, H.DivisionId, H.SiteId);

            temp.ExcessMaterialSettings = Mapper.Map <ExcessMaterialSettings, ExcessMaterialSettingsViewModel>(settings);


            PrepareViewBag(temp);
            return(PartialView("_Create", temp));
        }
        public ActionResult _Create(int Id) //Id ==>Sale Order Header Id
        {
            ExcessMaterialHeader        H = new ExcessMaterialHeaderService(_unitOfWork, db).Find(Id);
            ExcessMaterialLineViewModel s = new ExcessMaterialLineViewModel();

            //Getting Settings
            var settings = new ExcessMaterialSettingsService(_unitOfWork, db).GetExcessMaterialSettingsForDocument(H.DocTypeId, H.DivisionId, H.SiteId);

            s.ExcessMaterialSettings = Mapper.Map <ExcessMaterialSettings, ExcessMaterialSettingsViewModel>(settings);
            s.ExcessMaterialHeaderId = H.ExcessMaterialHeaderId;
            ViewBag.Status           = H.Status;
            PrepareViewBag(s);
            if (!string.IsNullOrEmpty((string)TempData["CSEXCL"]))
            {
                ViewBag.CSEXCL     = TempData["CSEXCL"];
                TempData["CSEXCL"] = null;
            }
            ViewBag.LineMode = "Create";
            return(PartialView("_Create", s));
        }
        public ActionResult GeneratePrints(string Ids, int DocTypeId)
        {
            if (!string.IsNullOrEmpty(Ids))
            {
                int SiteId     = (int)System.Web.HttpContext.Current.Session["SiteId"];
                int DivisionId = (int)System.Web.HttpContext.Current.Session["DivisionId"];

                var Settings = new ExcessMaterialSettingsService(_unitOfWork, context).GetExcessMaterialSettingsForDocument(DocTypeId, DivisionId, SiteId);

                try
                {
                    List <byte[]> PdfStream = new List <byte[]>();
                    foreach (var item in Ids.Split(',').Select(Int32.Parse))
                    {
                        DirectReportPrint drp = new DirectReportPrint();

                        var pd = context.ExcessMaterialHeader.Find(item);

                        LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                        {
                            DocTypeId    = pd.DocTypeId,
                            DocId        = pd.ExcessMaterialHeaderId,
                            ActivityType = (int)ActivityTypeContants.Print,
                            DocNo        = pd.DocNo,
                            DocDate      = pd.DocDate,
                            DocStatus    = pd.Status,
                        }));

                        byte[] Pdf;

                        if (pd.Status == (int)StatusConstants.Drafted || pd.Status == (int)StatusConstants.Modified || pd.Status == (int)StatusConstants.Import)
                        {
                            //LogAct(item.ToString());
                            Pdf = drp.DirectDocumentPrint(Settings.SqlProcDocumentPrint, User.Identity.Name, item);

                            PdfStream.Add(Pdf);
                        }
                        else if (pd.Status == (int)StatusConstants.Submitted || pd.Status == (int)StatusConstants.ModificationSubmitted)
                        {
                            Pdf = drp.DirectDocumentPrint(Settings.SqlProcDocumentPrint, User.Identity.Name, item);

                            PdfStream.Add(Pdf);
                        }
                        else
                        {
                            Pdf = drp.DirectDocumentPrint(Settings.SqlProcDocumentPrint, User.Identity.Name, item);
                            PdfStream.Add(Pdf);
                        }
                    }

                    PdfMerger pm = new PdfMerger();

                    byte[] Merge = pm.MergeFiles(PdfStream);

                    if (Merge != null)
                    {
                        return(File(Merge, "application/pdf"));
                    }
                }

                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    return(Json(new { success = "Error", data = message }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { success = "Success" }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { success = "Error", data = "No Records Selected." }, JsonRequestBehavior.AllowGet));
        }