public async Task Edit(NewPurchaseModel model) { var newPurchase = await _repo.FindOneAsync(model.Id); newPurchase.Date = model.Date; newPurchase.SetNumber = model.SetNumber; newPurchase.SetName = model.SetName; newPurchase.Theme = model.Theme; newPurchase.Promotions = model.Promotions; newPurchase.Price = model.Price; newPurchase.UnitPrice = model.UnitPrice; newPurchase.Quantity = model.Quantity; newPurchase.Parts = model.Parts; newPurchase.TotalParts = model.TotalParts; newPurchase.PriceToPartOutRatio = model.PriceToPartOutRatio; newPurchase.Source = model.Source; newPurchase.PaymentMethod = model.PaymentMethod; newPurchase.AveragePartOutValue = model.AveragePartOutValue; newPurchase.MyPartOutValue = model.MyPartOutValue; newPurchase.ExpectedGrossProfit = model.ExpectedGrossProfit; newPurchase.ExpectedNetProfit = model.ExpectedNetProfit; newPurchase.Status = model.Status; newPurchase.SellingNotes = model.SellingNotes; newPurchase.Notes = model.Notes; newPurchase.Receipt = model.Receipt; await _repo.UpdateAsync(newPurchase); }
public async Task Add(NewPurchaseModel model) { var newPurchase = new NewPurchase { Date = model.Date, SetNumber = model.SetNumber, SetName = model.SetName, Theme = model.Theme, Promotions = model.Promotions, Price = model.Price, UnitPrice = model.UnitPrice, Quantity = model.Quantity, Parts = model.Parts, TotalParts = model.TotalParts, PriceToPartOutRatio = model.PriceToPartOutRatio, Source = model.Source, PaymentMethod = model.PaymentMethod, AveragePartOutValue = model.AveragePartOutValue, MyPartOutValue = model.MyPartOutValue, ExpectedGrossProfit = model.ExpectedGrossProfit, ExpectedNetProfit = model.ExpectedNetProfit, Status = model.Status, SellingNotes = model.SellingNotes, Notes = model.Notes, Receipt = model.Receipt }; await _repo.AddAsync(newPurchase); }
public async Task <ActionResult> Edit([Bind(Include = _bindAll)] NewPurchaseModel newPurchase) { if (ModelState.IsValid) { await _service.Edit(newPurchase); return(RedirectToAction("Index")); } return(View(newPurchase)); }
// GET: NewPurchases/Delete/5 public async Task <ActionResult> Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } NewPurchaseModel newPurchase = await _service.FindAsync(id.Value); if (newPurchase == null) { return(HttpNotFound()); } return(View(newPurchase)); }
public ActionResult New(NewPurchaseModel model, [ModelBinder(typeof(DataTablesRequestModelBinder))] DataTablesRequestModel dtRequestModel) { var user = Membership.GetUser().GetUserEntity(); if (Session["cart"] as List <Models.Purchase> == null) { Session["cart"] = new List <Models.Purchase>(); } model.Cart = ((List <Models.Purchase>)Session["cart"]); model.Cards = user.UserCreditCards.AsQueryable(); var result = View(model); if (dtRequestModel == null) { return(result); } return(Query(result, dtRequestModel)); }
public ActionResult Checkout(NewPurchaseModel model, [ModelBinder(typeof(DataTablesRequestModelBinder))] DataTablesRequestModel dtRequestModel) { var user = Membership.GetUser().GetUserEntity(); if (Session["cart"] as List <Models.Purchase> == null) { Session["cart"] = new List <Models.Purchase>(); } model.Cart = ((List <Models.Purchase>)Session["cart"]); if (Request.HttpMethod == "POST") { if (ModelState.IsValid) { if (model.Cart.Count > 0) { var transaction = new Transaction(IsolationLevel.ReadCommitted, "purchase transfer"); try { // authorize and capture purchase CustomerGateway cg; var customer = EnsureProfile(out cg); var order = new Order(customer.ProfileID, model.CreditCard.AuthorizeId, "") { Amount = model.Cart.Sum(x => x.Price), Description = model.PurchaseNotes, InvoiceNumber = DateTime.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture) }; var response = (GatewayResponse)cg.AuthorizeAndCapture(order); if (!response.Approved) { throw new Exception(response.Message); } // set up all the transactions foreach (var purchase in model.Cart) { var toDevice = purchase.Device; var newPurchase = new PurchaseHistoryEntity { DeviceId = purchase.DeviceId, LocationId = toDevice.LocationId, UserId = user.UserId, PurchaseTime = DateTime.UtcNow, ScansPurchased = purchase.Quantity, AmountPaid = purchase.Price, PurchaseNotes = model.PurchaseNotes, TransactionId = response.TransactionID }; transaction.Add(newPurchase); newPurchase.Save(); toDevice.ScansAvailable += purchase.Quantity; transaction.Add(toDevice); toDevice.Save(); } transaction.Commit(); model.Cart.Clear(); OperationController.Update(); return(RedirectToAction("List")); } catch (Exception ex) { transaction.Rollback(); ModelState.AddModelError("", Purchase.CheckoutError); Log.Error(Purchase.CheckoutError, ex); } finally { transaction.Dispose(); } } } else { ModelState.AddModelError("", Purchase.NoItems); } Response.StatusCode = 417; Response.TrySkipIisCustomErrors = true; } model.Cards = user.UserCreditCards.AsQueryable(); var result = View(model); if (dtRequestModel == null) { return(result); } return(Query(result, dtRequestModel)); }