Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
 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));
 }
Ejemplo n.º 6
0
        public ActionResult CreateRepair()
        {
            var shipmentOrderViewModel = new ShipmentOrderViewModel();

            return(View("Create", shipmentOrderViewModel));
        }