// // GET: /PackShipment/ public ActionResult Index() { BestradeContext btContext = new BestradeContext(); List <Shipment> shipments = btContext.Shipments.Where(s => s.complete == false).ToList(); ViewData["shipments"] = shipments; return(View(PackShipmentView.view())); }
public ActionResult AddPackShipment(string purchase, string sku, string shipment, string qty) { int check_int; if (qty.Length == 0 || !int.TryParse(qty, out check_int) || Convert.ToInt32(qty) <= 0) { return(RedirectToAction("Error", "Shared", new { message = "数量格式不对或者为空或小于等于0" })); } if (purchase.Length == 0 || sku.Length == 0 || shipment.Length == 0) { return(RedirectToAction("Error", "Shared", new { message = "请选择Pack和Shipment" })); } try { using (var btContext = new BestradeContext()) { string sql_cmd = String.Format("SELECT p_qty, s_qty FROM PackShipmentView WHERE purchase = '{0}' AND sku = '{1}'", purchase, sku); PackShipmentView view = btContext.Database.SqlQuery <PackShipmentView>(sql_cmd).FirstOrDefault(); int qty_left = view.p_qty - view.s_qty - Convert.ToInt32(qty); if (qty_left < 0) { return(RedirectToAction("Error", "Shared", new { message = "该Pack剩余数量低于寄出数量,请确认数量是否正确" })); } btContext.PackShipment.Add(new PackShipment { purchase = purchase, sku = sku, shipment = shipment, qty = Convert.ToInt32(qty) }); btContext.SaveChanges(); } } catch (DbUpdateException e) { return(RedirectToAction("Error", "Shared", new { message = "同样的Pack在同一个Shipment下面已经存在,请做调整" })); } catch (FormatException e) { return(RedirectToAction("Error", "Shared", new { message = "数量格式不对" })); } return(RedirectToAction("Index", "PackShipment")); }
public ActionResult UpdatePackShipment(string purchase, string sku, string shipment, string qty) { int check_int; if (qty.Length == 0 || !int.TryParse(qty, out check_int) || Convert.ToInt32(qty) <= 0) { return(RedirectToAction("Error", "Shared", new { message = "数量格式不对或者为空或小于等于0" })); } try { using (var btContext = new BestradeContext()) { //Check if the number is right to update string sql_cmd = String.Format("SELECT p_qty, s_qty FROM PackShipmentView WHERE purchase = '{0}' AND sku = '{1}'", purchase, sku); PackShipmentView view = btContext.Database.SqlQuery <PackShipmentView>(sql_cmd).FirstOrDefault(); int qty_before_update = btContext.PackShipment.FirstOrDefault(q => q.purchase == purchase && q.sku == sku && q.shipment == shipment).qty; int qty_available = view.p_qty - view.s_qty + qty_before_update; if (qty_available < Convert.ToInt32(qty)) { return(RedirectToAction("Error", "Shared", new { message = "该Pack剩余数量低于寄出数量,请确认数量是否正确" })); } // var result = btContext.PackShipment.SingleOrDefault(p => p.purchase == purchase && p.sku == sku && p.shipment == shipment); result.purchase = purchase; result.sku = sku; result.shipment = shipment; result.qty = Convert.ToInt32(qty); btContext.SaveChanges(); } } catch (FormatException e) { return(RedirectToAction("Error", "Shared", new { message = "数量为空或格式不对" })); } catch (DbUpdateException e) { return(RedirectToAction("Error", "Shared", new { message = "Pack或Shipment不存在" })); } return(RedirectToAction("Overview", "PackShipment")); }