public void AhaMoveCreateOrderTest() { PathInfo kitchenPath = new PathInfo { Address = "53 Lê Anh Xuân, Phường Bến Thành, Quận 1, Thành phố Hồ Chí Minh" }; PathInfo customerPath = new PathInfo { Address = "5 Nguyễn Gia Thiều, Phường 6, Quận 3, Thành phố Hồ Chí Minh", Name = "Guest", Mobile = "8954342123" }; List <OrderDetail> orderDetails = new List <OrderDetail> { new OrderDetail { product_id = 1, product_name = "Sản phẩm 1", price = 50000, quantity = 2 }, new OrderDetail { product_id = 2, product_name = "Sản phẩm 2", price = 80000, quantity = 3 } }; var response = AhaMoveApi.CreateOrder(kitchenPath, customerPath, orderDetails); Console.WriteLine(response); }
private void ProcessCallDelivery() { var pendingOrders = GetListToDelivery(OrderLimit); if (pendingOrders.Count() == 0) { return; } //IOrderDal orderDal = new OrderDal(); IOrderDetailDal orderDetailDal = new OrderDetailDal(); //IOrderHistoryBo orderHistoryBo = new OrderHistoryBo(new OrderHistoryDal()); //IThirdPartyLogBo thirdPartyLogBo = new ThirdPartyLogBo(new ThirdPartyLogDal()); //IOrderBo orderBo = new OrderBo(orderDal, orderDetailDal, orderHistoryBo, thirdPartyLogBo); foreach (var order in pendingOrders) { PathInfo kitchenPath = new PathInfo { Address = StaticVariable.Kitchen1Address }; PathInfo customerPath = new PathInfo { Address = order.delivery_address, Name = order.customer_name, Mobile = order.customer_phone }; var orderDetails = orderDetailDal.GetByOrderId(order.order_id); var orderResponse = AhaMoveApi.CreateOrder(kitchenPath, customerPath, orderDetails.ToList()); if (orderResponse != null) { var orderInfo = new Entities.Order { order_id = order.order_id, //status = (short)OrderStatusEnum.Delivering, delivery_status = (short)DeliveryStatus.Idle, delivery_order_id = orderResponse.order_id, delivery_price = orderResponse.order.total_pay, delivery_estimate_time = orderResponse.order.duration, reason_note = "ChangeToDelivery" }; var result = ChangeOrderToDelivery(orderInfo); if (result != 1) { Logger.ErrorLog("[ChangeToDelivery] Error save Delivery with OrderId: " + order.order_id); } else { Logger.WriteLog(Logger.LogType.Info, "[ChangeToDelivery] SUCCESS save Delivery with OrderId: " + order.order_id); } } else { var orderInfo = new Entities.Order { order_id = order.order_id, //status = (short)OrderStatusEnum.Delivering, delivery_status = (short)DeliveryStatus.ApiError, delivery_order_id = string.Empty, delivery_price = 0, delivery_estimate_time = 0, reason_note = "MarkDeliveryErrorApi" }; var result = ChangeOrderToDelivery(orderInfo); if (result != 1) { Logger.ErrorLog("[ChangeToDelivery] Error change DeliveryStatus to ApiError with orderId: " + order.order_id); } else { Logger.WriteLog(Logger.LogType.Info, "[ChangeToDelivery] Success change DeliveryStatus to ApiError with OrderId: " + order.order_id); } } } }
/// <summary> /// The process data /// Author: ThanhDT /// Created date: 8/9/2020 2:22 AM /// </summary> private void ProcessMoveOrderToKitchen() { var pendingOrders = GetListPendingToKitchen(OrderLimit); if (pendingOrders.Count() == 0) { return; } //IOrderDal orderDal = new OrderDal(); //IOrderDetailDal orderDetailDal = new OrderDetailDal(); //IOrderHistoryBo orderHistoryBo = new OrderHistoryBo(new OrderHistoryDal()); //IThirdPartyLogBo thirdPartyLogBo = new ThirdPartyLogBo(new ThirdPartyLogDal()); //IOrderBo orderBo = new OrderBo(orderDal, orderDetailDal, orderHistoryBo, thirdPartyLogBo); foreach (var order in pendingOrders) { int deliveryTime; OrderEstimateResponse estimateOrder; // Nếu đơn hàng là Delivery thì cần tính toán thời gian vận chuyển if (order.order_type == (short)OrderTypeEnum.Delivery) { PathInfo kitchenPath = new PathInfo { Address = StaticVariable.Kitchen1Address }; PathInfo customerPath = new PathInfo { Address = order.delivery_address, Name = order.customer_name, Mobile = order.customer_phone }; estimateOrder = AhaMoveApi.EstimateOrderFee(kitchenPath, customerPath); if (estimateOrder == null) { estimateOrder = new OrderEstimateResponse(); deliveryTime = DeliveryTime; } else { deliveryTime = estimateOrder.duration / 60; } } // Nếu đơn hàng là lấy ngay thì bỏ qua thời gian vận chuyển else { deliveryTime = 0; estimateOrder = new OrderEstimateResponse(); } // Nếu thời gian giao hàng là NOW (=null) hoặc gần đến thời gian giao hàng bù cả thời gian nấu + vận chuyển thì chuyển sang bếp if (order.delivery_date == null || order.delivery_date.Value <= DateTime.Now.AddMinutes(order.max_cooking_time + deliveryTime)) { var orderInfo = new Entities.Order { order_id = order.order_id, status = (short)OrderStatusEnum.PushToPOS, //delivery_status = (short)DeliveryStatus.Idle, //delivery_order_id = order.order_id, delivery_price = estimateOrder.total_price, delivery_estimate_time = (short)(estimateOrder.duration / 60), reason_note = "MoveToKitchen" }; var result = MoveOrderToChicken(orderInfo); if (result != 1) { Logger.ErrorLog("[MoveOrderToChicken] Update error with orderId: " + order.order_id); } } } //var orderList = new List<Entities.Order> }
public ErrorCodes ProcessCallAhamove(int orderId, string user) { try { var order = _orderDal.GetById(orderId); if (order != null && order.order_id > 0) { // validate if (order.status != OrderStatusEnum.KitchenDone.GetHashCode() || order.order_type != OrderTypeEnum.Delivery.GetHashCode()) { return(ErrorCodes.StatusError); } if (order.delivery_status > 0 && order.delivery_status != DeliveryStatus.CallAnotherShipping.GetHashCode()) { return(ErrorCodes.AhamoveExistError); } PathInfo kitchenPath = new PathInfo { Address = StaticVariable.Kitchen1Address }; PathInfo customerPath = new PathInfo { Address = order.delivery_address, Name = order.customer_name, Mobile = order.customer_phone }; var orderDetails = _orderDetailDal.GetByOrderId(order.order_id); var orderResponse = AhaMoveApi.CreateOrder(kitchenPath, customerPath, orderDetails.ToList()); if (orderResponse != null) { var orderInfo = new Entities.Order { order_id = order.order_id, //status = (short)OrderStatusEnum.Delivering, delivery_status = (short)DeliveryStatus.Idle, delivery_order_id = orderResponse.order_id, delivery_price = orderResponse.order.total_pay, delivery_estimate_time = orderResponse.order.duration, reason_note = "ChangeToDelivery" }; var result = _orderDal.ChangeToDelivery(orderInfo); if (result != 1) { Logger.ErrorLog("[ChangeToDelivery] Error save Delivery with OrderId: " + order.order_id); return(ErrorCodes.BusinessError); } else { // ok thì bắn vào order history _orderHistoryBo.Insert(new OrderHistory { change_log = "ChangeToDelivery", created_by = user, order_id = orderId, delivery_status = (short)DeliveryStatus.Idle }); Logger.WriteLog(Logger.LogType.Info, "[ChangeToDelivery] SUCCESS save Delivery with OrderId: " + order.order_id); return(ErrorCodes.Success); } } else { Logger.ErrorLog("[ChangeToDelivery] Error change DeliveryStatus to ApiError with orderId: " + order.order_id); return(ErrorCodes.AhamoveError); } } } catch (Exception ex) { Logger.Error(ex); return(ErrorCodes.Exception); } return(ErrorCodes.BusinessError); }