public ActionResult DisplayRequired(Guid?id, string breadcrumb, string callingActionDisplayName, bool displayOnly, bool?recalled, string defaultController, string defaultAction, int?maxDistance, double?maxAge)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Dictionary <int, string> breadcrumbDictionary = new Dictionary <int, string>();

            breadcrumbDictionary.Add(0, breadcrumb);

            if (!recalled.HasValue)
            {
                defaultController = "GeneralInfo";
                defaultAction     = "Required";
            }

            RequiredListingDetailsViewModel model = RequiredListingViewHelpers.CreateRequiredListingDetailsViewModel(db, id.Value, breadcrumb, displayOnly, Request, defaultController, defaultAction, callingActionDisplayName, breadcrumbDictionary, recalled, User, maxDistance, maxAge);

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

            ViewBag.ListingType = "General Information";
            return(View(model));
        }
        public ActionResult DisplayRequired([Bind(Include = "Breadcrumb,DisplayOnly,CallingAction,CallingController,CallingActionDisplayName,ListingId,ItemDescription,ItemCategory,ItemType,QuantityRequired,QuantityFulfilled,QuantityOutstanding,UoM,RequiredFrom,RequiredTo,AcceptDamagedItems,AcceptOutOfDateItems,CollectionAvailable,ListingStatus,ListingOrganisationPostcode")] RequiredListingDetailsViewModel model)
        {
            if (Request.Form["resetbutton"] != null)
            {
                return(RedirectToAction("DisplayRequired", "ManageInfo", new { id = model.ListingId, breadcrumb = model.Breadcrumb, callingActionDisplayName = model.CallingActionDisplayName, displayOnly = model.DisplayOnly, recalled = true, defaultController = model.CallingController, defaultAction = model.CallingAction }));
            }

            if (ModelState.IsValid)
            {
                RequiredListingHelpers.UpdateRequiredListing(db, model, User);
                return(RedirectToAction(model.CallingAction, model.CallingController));
            }

            return(View(model));
        }
Beispiel #3
0
        public static RequiredListing UpdateRequiredListing(ApplicationDbContext db, RequiredListingDetailsViewModel model, IPrincipal user)
        {
            RequiredListing listing = GetRequiredListing(db, model.ListingId);

            decimal qtyRequired;

            decimal.TryParse(model.QuantityRequired.ToString(), out qtyRequired);
            decimal qtyFulfilled;

            decimal.TryParse(model.QuantityFulfilled.ToString(), out qtyFulfilled);
            decimal qtyOutstanding;

            decimal.TryParse(model.QuantityOutstanding.ToString(), out qtyOutstanding);

            if (listing != null)
            {
                listing.ItemDescription     = model.ItemDescription;
                listing.ItemCategory        = model.ItemCategory;
                listing.ItemType            = model.ItemType;
                listing.QuantityRequired    = qtyRequired;
                listing.QuantityFulfilled   = qtyFulfilled;
                listing.QuantityOutstanding = qtyOutstanding;
                listing.UoM                         = model.UoM;
                listing.RequiredFrom                = model.RequiredFrom;
                listing.RequiredTo                  = model.RequiredTo;
                listing.AcceptDamagedItems          = model.AcceptDamagedItems;
                listing.AcceptOutOfDateItems        = model.AcceptOutOfDateItems;
                listing.CollectionAvailable         = model.CollectionAvailable;
                listing.ListingStatus               = model.ListingStatus;
                listing.ListingOrganisationPostcode = model.ListingOrganisationPostcode;
                listing.RecordChange                = GeneralEnums.RecordChangeEnum.ListingStatusChange;
                listing.RecordChangeBy              = AppUserHelpers.GetAppUserIdFromUser(user);
                listing.RecordChangeOn              = DateTime.Now;

                db.Entry(listing).State = EntityState.Modified;
                db.SaveChanges();
            }

            return(listing);
        }
        public ActionResult DisplayRequired([Bind(Include = "MaxDistance,MaxAge,Breadcrumb,DisplayOnly,CallingAction,CallingController,CallingActionDisplayName,ListingId,ItemDescription,ItemCategory,ItemType,QuantityRequired,QuantityFulfilled,QuantityOutstanding,UoM,RequiredFrom,RequiredTo,AcceptDamagedItems,AcceptOutOfDateItems,CollectionAvailable,ListingStatus,ListingOrganisationPostcode,OfferDescription,OfferId,OfferQty,OfferCounterQty,OfferStatus")] RequiredListingDetailsViewModel model)
        {
            if (Request.Form["resetbutton"] != null)
            {
                return(RedirectToAction("DisplayRequired", "GeneralInfo", new { id = model.ListingId, breadcrumb = model.Breadcrumb, callingActionDisplayName = model.CallingActionDisplayName, displayOnly = model.DisplayOnly, recalled = true, defaultController = model.CallingController, defaultAction = model.CallingAction, maxDistance = model.MaxDistance, maxAge = model.MaxAge }));
            }

            if (ModelState.IsValid)
            {
                if (Request.Form["saveofferbutton"] != null)
                {
                    OfferHelpers.CreateOffer(db, model.ListingId, model.OfferQty, ListingTypeEnum.Requirement, null, User);
                }

                if (Request.Form["savebutton"] != null)
                {
                    RequiredListingHelpers.UpdateRequiredListing(db, model, User);
                }

                return(RedirectToAction(model.CallingAction, model.CallingController));
            }

            return(View(model));
        }
Beispiel #5
0
        public static RequiredListingDetailsViewModel CreateRequiredListingDetailsViewModel(ApplicationDbContext db, Guid listingId, string breadcrumb, bool displayOnly, HttpRequestBase request, string controllerValue, string actionValue, string callingActionDisplayName, Dictionary <int, string> breadcrumbDictionary, bool?recalled, IPrincipal user, int?maxDistance, double?maxAge)
        {
            RequiredListing listing = RequiredListingHelpers.GetRequiredListing(db, listingId);

            if (listing != null)
            {
                //Set up the calling fields
                if (!recalled.HasValue)
                {
                    GeneralHelpers.GetCallingDetailsFromRequest(request, controllerValue, actionValue, out controllerValue, out actionValue);
                }

                AppUser recordChangedBy          = AppUserHelpers.GetAppUser(db, listing.RecordChangeBy);
                AppUser listingOriginatorAppUser = AppUserHelpers.GetAppUser(db, listing.ListingOriginatorAppUserId);

                RequiredListingDetailsViewModel model = new RequiredListingDetailsViewModel()
                {
                    Breadcrumb          = breadcrumb,
                    DisplayOnly         = displayOnly,
                    ListingId           = listing.ListingId,
                    ItemDescription     = listing.ItemDescription,
                    ItemCategory        = listing.ItemCategory,
                    ItemType            = listing.ItemType,
                    QuantityRequired    = listing.QuantityRequired,
                    QuantityFulfilled   = listing.QuantityFulfilled,
                    QuantityOutstanding = listing.QuantityOutstanding,
                    UoM                           = listing.UoM,
                    RequiredFrom                  = listing.RequiredFrom,
                    RequiredTo                    = listing.RequiredTo,
                    AcceptDamagedItems            = listing.AcceptDamagedItems,
                    AcceptOutOfDateItems          = listing.AcceptOutOfDateItems,
                    CollectionAvailable           = listing.CollectionAvailable,
                    ListingStatus                 = listing.ListingStatus,
                    ListingOrganisationPostcode   = listing.ListingOrganisationPostcode,
                    RecordChange                  = listing.RecordChange,
                    RecordChangeOn                = listing.RecordChangeOn,
                    RecordChangeByName            = recordChangedBy.FirstName + " " + recordChangedBy.LastName,
                    RecordChangeByEmail           = recordChangedBy.LoginEmail,
                    ListingOriginatorAppUserName  = listingOriginatorAppUser.FirstName + " " + listingOriginatorAppUser.LastName,
                    ListingOriginatorAppUserEmail = listingOriginatorAppUser.LoginEmail,
                    ListingOriginatorDateTime     = listing.ListingOriginatorDateTime,
                    CallingController             = controllerValue,
                    CallingAction                 = actionValue,
                    CallingActionDisplayName      = callingActionDisplayName,
                    BreadcrumbTrail               = breadcrumbDictionary
                };

                if (controllerValue == "GeneralInfo" && actionValue == "Required")
                {
                    //Get user info for the offer side of the display
                    AppUser      currentUser = AppUserHelpers.GetAppUser(db, user);
                    Organisation currentOrg  = OrganisationHelpers.GetOrganisation(db, currentUser.OrganisationId);

                    Offer offer = OfferHelpers.GetOfferForListingByUser(db, listing.ListingId, currentUser.AppUserId, currentOrg.OrganisationId, currentOrg.ListingPrivacyLevel);

                    if (offer == null)
                    {
                        model.OfferDescription = "Make a request";
                    }
                    else
                    {
                        model.OfferDescription = "Current request";
                        model.OfferId          = offer.OfferId;
                        model.OfferQty         = offer.CurrentOfferQuantity;
                        model.OfferCounterQty  = offer.CounterOfferQuantity;
                        model.OfferStatus      = offer.OfferStatus;
                    }
                }

                return(model);
            }
            else
            {
                return(null);
            }
        }