public ActionResult EditDetail(OrderDetailEntryViewModel model, FormCollection form) { OrderDetailSessionWrapper.UpdateDetail(model); var ajaxViewModel = new AjaxViewModel(message: "Order detail has been updated."); return(Json(ajaxViewModel)); }
public ActionResult EditDetail(Guid detailUid) { //Guid detailUid = Guid.Parse(detailUidString); var model = OrderDetailSessionWrapper.GetDetail(detailUid); return(PartialView("CreateEditDetail", model)); }
public ActionResult Create(int unitPriceMode = 0) { var model = new CreateEditViewModel(); model.OrderNo = "NEW"; model.Date = DateTime.Today; model.Start = DateTime.Now; model.UnitPriceMode = unitPriceMode; var orderTypes = lookUpProvider.GetLookUpValues("OrderType").ToList(); ViewBag.DefaultOrderType = orderTypes[0]; OrderDetailSessionWrapper.Initialize(); return(View("CreateEdit", model)); }
public ActionResult Edit(long id) { var orderViewModel = new CreateEditViewModel(); var orderDetailViewModel = new List <OrderDetailEntryViewModel>(); var order = orderProvider.GetOrder(id); if (order != null) { var orderDetail = orderProvider.GetOrderDetail(order.Id); if (orderDetail != null) { mapper.Map(order, orderViewModel); mapper.Map(orderDetail, orderDetailViewModel); OrderDetailSessionWrapper.Initialize(orderDetailViewModel); return(View("CreateEdit", orderViewModel)); } } return(View("Index")); }
public ActionResult CreatePayment(CreatePaymentViewModel model, FormCollection form) { long orderId = Convert.ToInt64(form["orderId"]); IEnumerable <PayableOrderViewModel> payableOrders = paymentProvider.CreatePaymentFromOrder(orderId); Order order = orderProvider.GetOrder(orderId); decimal deliveryCharge = order.DeliveryCharge; decimal discValue = order.DiscValue; decimal totalOrder = payableOrders.Sum(p => p.Quantity * p.UnitPrice - p.DiscValue); //decimal serviceChargePercent = configurationProvider.GetConfiguration<decimal>(ConfigurationKeys.ServiceChargePercent); //decimal serviceChargeValue = (serviceChargePercent / 100) * totalOrder; decimal taxPercent = configurationProvider.GetConfiguration <decimal>(ConfigurationKeys.TaxPercent); decimal taxValue = (taxPercent / 100) * (totalOrder - discValue); decimal billableAmount = totalOrder + /*serviceChargeValue +*/ deliveryCharge - discValue + taxValue; decimal totalPayment = PaymentDetailSessionWrapper.TotalPayment; if (totalPayment < billableAmount) { TempData["message"] = "Insufficient payment"; return(RedirectToAction("CreatePayment", new { orderId = orderId })); } else { if (PaymentDetailSessionWrapper.TotalNonCash > billableAmount) { TempData["message"] = "Non-cash payment(s) exceed billable amount"; return(RedirectToAction("CreatePayment", new { orderId = orderId })); } } var payment = new Payment() { BilledAmount = billableAmount, Date = DateTime.Today, OrderId = orderId, PaidAmount = totalPayment }; var paymentDetail = new List <PaymentDetail>(); mapper.Map(PaymentDetailSessionWrapper.Detail, paymentDetail); if (totalPayment > billableAmount) { decimal change = totalPayment - billableAmount; var paymentDetailChange = new PaymentDetail(); paymentDetailChange.PaymentTypeId = 1; paymentDetailChange.Amount = change * -1; paymentDetailChange.Notes = "Change"; paymentDetail.Add(paymentDetailChange); } payment.PaymentDetails.AddRange(paymentDetail); paymentProvider.AddPayment(order, payment); long paymentId = payment.Id; TempData["PaymentId"] = paymentId; OrderDetailSessionWrapper.Clear(); PaymentDetailSessionWrapper.Clear(); return(RedirectToAction("Detail", new { id = paymentId, mode = StringHelper.XorString("confirmation") })); }