public static bool SaveShipment(ShipmentOrderViewModel models) { bool result = true; try { using (var db = new BuahSayurContext()) { ShipmentOrder shipmentorder = new ShipmentOrder { Id = 1, DeliveryOrder_Id = models.DeliveryOrder_Id, ShippingDate = models.ShippingDate, Vehicle = models.Vehicle, PersonInCharge = models.PersonInCharge, Fee = models.Fee }; db.ShipmentOrders.Add(shipmentorder); db.SaveChanges(); } } catch (Exception ex) { result = false; Message = ex.Message; } return(result); }
public async Task <JsonResult> Create(ShipmentOrderViewModel shipmentOrderViewModel) { var shipmentOrder = new ShipmentOrder(); shipmentOrder = Mapper.Map <ShipmentOrderViewModel, ShipmentOrder>(shipmentOrderViewModel); var usermanager = new UserManager(); var customer = usermanager.FindByIdByCache(shipmentOrder.CustomerId); shipmentOrder.CustomerName = customer.Name; var serialNumberManager = new SerialNumberManager(User); shipmentOrder.Id = SaleManagentConstants.Misc.ShipmentOrderPrefix + await serialNumberManager.NextSNAsync(SaleManagentConstants.SerialNames.ShipmentOrder); shipmentOrder.CompanyId = User.CompanyId; shipmentOrder.ShipmentOrderInfos.Each(r => r.ShipmentOrderId = shipmentOrder.Id); var shipmentManager = new ShipmentManager(User); var result = await shipmentManager.CreateAsync(shipmentOrder); if (result.Succeeded) { var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id); await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipmenting, orderIds); await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipmenting, orderIds); } return(Json(result.Succeeded, "", result.Data)); }
public async Task <ActionResult> Create([NamedModelBinder(typeof(CommaSeparatedModelBinder), "orderIds")] string[] orderIds) { if (!orderIds.Any()) { return(Error("订单号不能为空")); } var orderManager = new OrderManager(User); var orders = await orderManager.GetOrdersAsync(orderIds); //if (!orders.All(r => r.OrderStatus == OrderStatus.ToBeShip)) // return Error("订单号状态不是待出货"); var customers = orders.Select(r => r.Customer).Distinct().ToList(); if (customers.Count > 1) { return(Error("生成出货单不能选择了多个公司")); } var customer = customers.FirstOrDefault(); var discountRateManager = new DiscountRateManager(); var discountRate = await discountRateManager.GetCustomerDiscountRateAsync(customer.Id); var shipmentOrderViewModel = new ShipmentOrderViewModel() { SideStoneRate = (double)discountRate.SideStone / 100, StoneSetterRate = (double)discountRate.StoneSetter / 100 }; shipmentOrderViewModel.ShipmentOrderInfos = await Task.WhenAll(orders.Select(async o => { var dailyGoldPriceManager = new DailyGoldPriceManager(); var dailyGoldPrice = await dailyGoldPriceManager.GetNewDailyGoldPriceAsync(o.ColorFormId); var shipmentOrderInfoViewModel = new ShipmentOrderInfoViewModel(o) { GoldPrice = dailyGoldPrice == null ? 0 : dailyGoldPrice.Price, LossRate = o.ColorForm.Name.ToLower().Contains("pt") ? discountRate.LossPt : discountRate.Loss18K, }; shipmentOrderInfoViewModel.Hhz = Math.Round(shipmentOrderInfoViewModel.GoldWeight * (1 + shipmentOrderInfoViewModel.LossRate / 100), 2); shipmentOrderInfoViewModel.GoldAmount = shipmentOrderInfoViewModel.GoldPrice *shipmentOrderInfoViewModel.Hhz; shipmentOrderInfoViewModel.TotalSetStoneWorkingCost = shipmentOrderInfoViewModel.OrderSetStoneInfos.Sum(r => r.SetStoneWorkingCost) * ((double)discountRate.StoneSetter / 100); shipmentOrderInfoViewModel.SideStoneNumber = shipmentOrderInfoViewModel.OrderSetStoneInfos.Sum(r => r.Number); shipmentOrderInfoViewModel.SideStoneWeight = shipmentOrderInfoViewModel.OrderSetStoneInfos.Sum(r => r.Weight); shipmentOrderInfoViewModel.SideStoneTotalAmount = shipmentOrderInfoViewModel.OrderSetStoneInfos.Sum(r => r.TotalAmount) * ((double)discountRate.SideStone / 100);; shipmentOrderInfoViewModel.RushCost = GetOrderRushCost(o); shipmentOrderInfoViewModel.RiskFee = o.IsInsure ? GetRiskFee(o.Insurance, o.RiskType) : 0; return(shipmentOrderInfoViewModel); })); shipmentOrderViewModel.CustomerName = customer.Name; shipmentOrderViewModel.CustomerId = customer.Id; shipmentOrderViewModel.TotalNumber = shipmentOrderViewModel.ShipmentOrderInfos.Sum(r => r.Number); return(View(shipmentOrderViewModel)); }
public async Task <JsonResult> Edit(ShipmentOrderViewModel shipmentOrderViewModel) { var shipmentOrder = new ShipmentOrder(); var shipmentManager = new ShipmentManager(User); shipmentOrder = await shipmentManager.GetShipmentOrderAsync(shipmentOrderViewModel.Id); shipmentOrder = Mapper.Map <ShipmentOrderViewModel, ShipmentOrder>(shipmentOrderViewModel); shipmentOrder.ShipmentOrderInfos.Each(r => r.ShipmentOrderId = shipmentOrder.Id); var result = await shipmentManager.UpdateAsync(shipmentOrder); return(Json(result.Succeeded, "", result.Data)); }
public ActionResult SaveShipment(ShipmentOrderViewModel models) { if (ModelState.IsValid) { if (ShipmentDataAccess.SaveShipment(models)) { return(Json(new { success = true, message = "Success" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, message = ShipmentDataAccess.Message }, JsonRequestBehavior.AllowGet)); } } return(Json(new { success = false, message = "Invalid Model State!" }, JsonRequestBehavior.AllowGet)); }
public ActionResult CreateRepair() { var shipmentOrderViewModel = new ShipmentOrderViewModel(); return(View("Create", shipmentOrderViewModel)); }