Пример #1
0
        public ActionResult DeleteSerialNumber(int salesOrderID, int unitID, int?page)
        {
            try
            {
                CurrentMappingSalesOrder temporaryUnits = (CurrentMappingSalesOrder)Session["TempUnits"];

                Unit        deletedTempUnit = temporaryUnits.ActualTempUnits.Where(x => x.ID == unitID).FirstOrDefault();
                var         currentPage     = page;
                List <Unit> deletedUnit     = temporaryUnits.DeletedTempUnits != null ? temporaryUnits.DeletedTempUnits : new List <Unit>();
                List <Unit> actualTempUnit  = temporaryUnits.ActualTempUnits;
                actualTempUnit.Remove(deletedTempUnit);
                if (db.Units.Any(x => x.ID == unitID && x.SalesOrderID == salesOrderID))
                {
                    deletedUnit.Add(deletedTempUnit);
                }
                temporaryUnits.DeletedTempUnits = deletedUnit;
                temporaryUnits.ActualTempUnits  = actualTempUnit;

                Session["TempUnits"] = temporaryUnits;

                ViewBag.Page = page.ToString();
                return(RedirectToAction("Edit", "MappingSalesOrder", new { id = salesOrderID, page = currentPage }));
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMessage = "An error occured while deleting serial number from this sales order";
                ViewBag.Exception    = ex;
            }
            return(View("Error"));
        }
Пример #2
0
        public ActionResult Edit(int?id, int?page)
        {
            if (id.HasValue)
            {
                try
                {
                    SalesOrder salesOrder  = db.SalesOrders.Find(id);
                    Products   productData = db.Products.Where(x => x.PN == salesOrder.PartNumber).FirstOrDefault();

                    if (salesOrder != null)
                    {
                        if (productData != null)
                        {
                            List <Unit> listOfUnits    = db.Units.Where(x => x.ProductID == productData.ID && !db.Units.Where(y => y.SalesOrderID != null).Any(y => y.ID == x.ID)).OrderBy(x => x.SerialNumber).ToList();
                            List <Unit> mappedUnitList = db.Units.Where(x => x.SalesOrderID == id).ToList();
                            //CurrentMappingSalesOrder currentMappingSalesOrdersTemp = (CurrentMappingSalesOrder)Session["TempUnits"];

                            List <Unit> deletedUnit    = new List <Unit>();
                            List <Unit> additionalUnit = new List <Unit>();

                            if (Session["TempUnits"] == null)
                            {
                                CurrentMappingSalesOrder currentMappingSalesOrderTemp = new CurrentMappingSalesOrder
                                {
                                    ActualTempUnits = mappedUnitList
                                };
                                Session["TempUnits"] = currentMappingSalesOrderTemp;
                            }


                            //CurrentMappingSalesOrder sessionMappingSalesOrder = (CurrentMappingSalesOrder)Session["TempUnits"];

                            MappingSalesOrderViewModel haveUnits = new MappingSalesOrderViewModel
                            {
                                SalesOrder = salesOrder,
                                Units      = listOfUnits,
                                Products   = productData
                            };
                            ViewBag.Page = page.ToString();
                            return(View(haveUnits));
                        }
                    }
                    else
                    {
                        ViewBag.ErrorMessage = "Sorry we couldn't find your sales order";
                        return(View("Error"));
                    }
                }
                catch (Exception ex)
                {
                    ViewBag.ErrorMessage = "An error occured, please check your data";
                    ViewBag.Exception    = ex;
                }
                return(View("Error"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Пример #3
0
        public ActionResult AddSerialNumber(int salesOrderID, MappingSalesOrderViewModel mappingSalesOrderViewModel, FormCollection collection)
        {
            CurrentMappingSalesOrder temporaryUnits = (CurrentMappingSalesOrder)Session["TempUnits"];

            try
            {
                var userIdentity = User.Identity.Name;
                var page         = collection.GetValues("currentPage");
                if (string.IsNullOrWhiteSpace(page[0]))
                {
                    page[0] = "1";
                }

                int currentPage = Convert.ToInt32(page[0]);

                List <Unit> additionalTempUnit = new List <Unit>();
                //List<Unit> deletedTempUnit = temporaryUnits.DeletedTempUnits;
                List <Unit> actualTempUnit = temporaryUnits.ActualTempUnits != null ? temporaryUnits.ActualTempUnits : new List <Unit>();//db.Units.Where(x => x.SalesOrderID == salesOrderID).ToList();


                if (temporaryUnits.DeletedTempUnits != null)
                {
                    foreach (Unit selectedDeletedUnit in temporaryUnits.DeletedTempUnits)
                    {
                        Unit deletedUnit = temporaryUnits.ActualTempUnits.Where(x => x.ID == selectedDeletedUnit.ID).FirstOrDefault();
                        temporaryUnits.ActualTempUnits.Remove(deletedUnit);
                    }
                }

                foreach (int unitID in mappingSalesOrderViewModel.selectedUnitID)
                {
                    Unit newUnit = db.Units.Find(unitID);
                    newUnit.SalesOrderID = salesOrderID;
                    actualTempUnit.Add(newUnit);
                    if (!db.Units.Any(x => x.ID == unitID && x.SalesOrderID == salesOrderID))
                    {
                        additionalTempUnit.Add(newUnit);
                    }
                }

                temporaryUnits.ActualTempUnits     = actualTempUnit;
                temporaryUnits.AdditionalTempUnits = additionalTempUnit;
                Session["TempUnits"] = temporaryUnits;

                ViewBag.Page = page.ToString();
                return(RedirectToAction("Edit", "MappingSalesOrder", new { id = salesOrderID, page = currentPage }));
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMessage = "An error occured while adding serial number to this sales order";
                ViewBag.Exception    = ex;
            }
            return(View("Error"));
        }
Пример #4
0
        public ActionResult SaveSerialNumber(int salesOrderID, int?page)
        {
            try
            {
                CurrentMappingSalesOrder temporaryUnits = (CurrentMappingSalesOrder)Session["TempUnits"];
                var userIdentity = User.Identity.Name;
                var currentPage  = page;

                if (temporaryUnits.DeletedTempUnits != null)
                {
                    foreach (Unit selectedUnitID in temporaryUnits.DeletedTempUnits)
                    {
                        Unit selectedDeletedUnit = db.Units.Where(x => x.ID == selectedUnitID.ID).FirstOrDefault();
                        selectedDeletedUnit.SalesOrderID   = null;
                        selectedDeletedUnit.LastModified   = DateTime.Now;
                        selectedDeletedUnit.LastModifiedBy = userIdentity;
                    }
                }
                if (temporaryUnits.AdditionalTempUnits != null)
                {
                    foreach (Unit selectedAdditionalUnit in temporaryUnits.AdditionalTempUnits)
                    {
                        Unit selectedUnit = db.Units.Where(x => x.ID == selectedAdditionalUnit.ID).FirstOrDefault();
                        selectedUnit.SalesOrderID   = salesOrderID;
                        selectedUnit.LastModified   = DateTime.Now;
                        selectedUnit.LastModifiedBy = userIdentity;
                    }
                }
                db.SaveChanges();
                return(RedirectToAction("Details", "MappingSalesOrder", new { id = salesOrderID, page = currentPage }));
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMessage = "An error occured while saving the changes in serial number";
                ViewBag.Exception    = ex;
            }
            return(View("Error"));
        }