public OrderModel(IOrderEntityFactory entityFactory, coreModel.Order innerItem, OrderClient client, IOrderService orderService) { _entityFactory = entityFactory; _innerItem = innerItem; _OrderClient = client; _orderService = orderService; }
public static bool IsCompletable(this Shipment item, coreModel.Order ParentOrder, OrderClient client) { var retVal = ParentOrder.GetCurrentStatus() != (int)OrderStatus.AwaitingExchange && client.CanChangeStatus(item, ShipmentStatus.Shipped.ToString()); return(retVal); }
public static bool IsReleaseable(this Shipment item, coreModel.Order ParentOrder, OrderClient client) { var retVal = !string.IsNullOrEmpty(item.ShippingAddressId) && !Guid.Empty.Equals(item.ShippingMethodId) && ParentOrder.GetCurrentStatus() != (int)OrderStatus.Pending && ParentOrder.GetCurrentStatus() != (int)OrderStatus.AwaitingExchange && client.CanChangeStatus(item, ShipmentStatus.Released.ToString()); return(retVal); }
public static TestOrderBuilder BuildOrder() { var order = new Order { Name = "default", BillingCurrency = "USD", StoreId = "SampleStore", TrackingNumber = "PO32313", Total = 123.43m }; // can't create OrderExt! return new TestOrderBuilder(order); }
public static TestOrderBuilder BuildOrder() { var order = new Order { Name = "default", BillingCurrency = "USD", StoreId = "SampleStore", TrackingNumber = string.Format("PO{0}-0000{1}", DateTime.UtcNow.ToString("yyyy-MMdd"), new Random().Next(1,9)), Total = 123.43m }; // can't create OrderExt! return new TestOrderBuilder(order); }
private void RecalculateOrderStatus(Order order) { var newStatus = order.Status; var shipments = order.OrderForms[0].Shipments; var activeStates = new string[] { ShipmentStatus.InventoryAssigned.ToString(), ShipmentStatus.AwaitingInventory.ToString(), ShipmentStatus.Released.ToString(), ShipmentStatus.Packing.ToString() }; bool canceledFound = shipments.Any(x => x.Status == ShipmentStatus.Cancelled.ToString()); bool completedFound = shipments.Any(x => x.Status == ShipmentStatus.Shipped.ToString()); bool activeFound = shipments.Any(x => activeStates.Contains(x.Status)); if (!canceledFound && !completedFound && !activeFound) { //Not found canceled,active,completed } else if (canceledFound && !completedFound && !activeFound) { //All canceled //retVal = OrderStatus.Cancelled; } else if (!canceledFound && completedFound && !activeFound) { //All completed newStatus = OrderStatus.Completed.ToString(); } else if (!canceledFound && !completedFound && activeFound) { //All active } else if (canceledFound && completedFound && !activeFound) { //Found cancelled and completed newStatus = OrderStatus.Completed.ToString(); } else if (canceledFound && !completedFound && activeFound) { //Found cancelled and active } else if (!canceledFound && completedFound && activeFound) { //Found completed and active newStatus = OrderStatus.PartiallyShipped.ToString(); } else if (canceledFound && completedFound && activeFound) { //Found cancelled and active and completed newStatus = OrderStatus.PartiallyShipped.ToString(); } order.Status = newStatus; }
private void RecalculateRmaRequestStatuses(Order order) { foreach (var rmaRequest in order.RmaRequests .Where(r=>r.Status == RmaRequestStatus.AwaitingStockReturn.ToString())) { //if all lineItems physically returned to stock need change status //to AwaitingCompletion var retVal = rmaRequest.RmaReturnItems.All(x0 => x0.RmaLineItems.All(x => x.ReturnQuantity == x.Quantity)); if (retVal) { rmaRequest.Status = RmaRequestStatus.AwaitingCompletion.ToString(); } } }
private void RecalculateShipmentStatuses(Order order) { foreach (var shipment in order.OrderForms.SelectMany(o => o.Shipments)) { //End states if (shipment.Status == ShipmentStatus.Shipped.ToString() || shipment.Status == ShipmentStatus.Cancelled.ToString()) { continue; } // Initialize empty value if (string.IsNullOrEmpty(shipment.Status)) { shipment.Status = ShipmentStatus.InventoryAssigned.ToString(); } //Inherit order state for shipment if (order.Status == OrderStatus.Cancelled.ToString()) { shipment.Status = ShipmentStatus.Cancelled.ToString(); } } }
public static void Release(this Shipment item, coreModel.Order ParentOrder, OrderClient client) { item.SetCurrentStatus((int)ShipmentStatus.Released, client); }
public static void Cancel(this Shipment item, coreModel.Order ParentOrder, OrderClient client) { item.SetCurrentStatus((int)ShipmentStatus.Cancelled, client); }
public static void Complete(this Shipment item, coreModel.Order ParentOrder, OrderClient client) { item.SetCurrentStatus((int)ShipmentStatus.Shipped, client); }
/// <summary> /// Initializes the returns model. /// </summary> /// <param name="order">The order.</param> /// <param name="model">The model.</param> /// <returns>OrderReturns.</returns> private OrderReturns InitReturnsModel(Order order, OrderReturns model = null) { model = model ?? new OrderReturns(); model.OrderId = order.OrderGroupId; var rmaLis = order.RmaRequests.SelectMany(r => r.RmaReturnItems).SelectMany(r => r.RmaLineItems).ToList(); if (model.OrderReturnItems.Count == 0) { foreach (var ori in from li in order.OrderForms.SelectMany(of => of.LineItems) let item = _catalogClient.GetItem(li.CatalogItemId) let parentItem = _catalogClient.GetItem(li.ParentCatalogItemId) where item != null && rmaLis.All(r => r.LineItemId != li.LineItemId) select new OrderReturnItem(new LineItemModel(li, item, parentItem, order.BillingCurrency))) { model.OrderReturnItems.Add(ori); } } else { foreach (var returnItem in model.OrderReturnItems) { var li = order.OrderForms.SelectMany(of => of.LineItems) .First(l => l.LineItemId == returnItem.LineItemId); //Filter already returned items if (rmaLis.Any(r => r.LineItemId == li.LineItemId)) { continue; } var item = _catalogClient.GetItem(li.CatalogItemId); var parentItem = _catalogClient.GetItem(li.ParentCatalogItemId); returnItem.LineItemModel = new LineItemModel(li, item, parentItem, order.BillingCurrency); } } //Fill return Reasons if (OrderReturns.ReturnReasons == null || OrderReturns.ReturnReasons.Count == 0) { OrderReturns.ReturnReasons = _settingsClient.GetSettings("ReturnReasons") .Select(r => new SelectListItem { Value = r.ToString(), Text = r.ToString() }).ToList(); } //Fill address book model.Addresses = UserHelper.GetAllCustomerAddresses() .Select(addr => new SelectListItem { Text = addr.ToString(), Value = addr.AddressId }).ToList(); return model; }
/// <summary> /// Order address. /// </summary> /// <param name="order">The order.</param> /// <param name="type">The type.</param> /// <returns>ActionResult.</returns> public ActionResult OrderAddress(Order order, string type) { if (order.OrderForms.Count == 0) { return null; } var orderAddress = OrderClient.FindAddressByName(order, type); return orderAddress == null ? null : PartialView("OrderAddress", orderAddress); }
private MockOrderBuilder(Order order, IOrderEntityFactory entityFactory) { _order = order; _entityFactory = entityFactory; var orderForm = entityFactory.CreateEntityForType(typeof(OrderForm)) as OrderForm; orderForm.Name = "default"; orderForm.OrderGroupId = _order.OrderGroupId; _order.OrderForms.Add(orderForm); }
public bool CanChangeStatus(Order order, string newStatus) { return CanChangeStatus(order.Status, newStatus, _stateController.OrderStateMachine); }
protected override void Execute(CodeActivityContext context) { base.Execute(context); if (ServiceLocator == null) return; if (CurrentOrderGroup == null || CurrentOrderGroup.OrderForms.Count == 0) return; var customerName = CustomerSessionService.CustomerSession.CustomerName; //If user is anonymous take name from billing address if (string.IsNullOrEmpty(customerName)) { var billingAddress = CurrentOrderGroup.OrderAddresses.FirstOrDefault(a => a.OrderAddressId == CurrentOrderGroup.AddressId); if (billingAddress != null) { customerName = string.Format("{0} {1}", billingAddress.FirstName, billingAddress.LastName); } } var order = new Order(); order.InjectFrom<CloneInjection>(CurrentOrderGroup); order.CustomerName = customerName; order.Status = "Pending"; order.Name = "Default"; order.TrackingNumber = SequencesClient.GenerateNext(typeof(Order).FullName); foreach (var newOf in order.OrderForms) { newOf.Name = "Default"; if (!string.IsNullOrEmpty(CustomerSessionService.CustomerSession.CsrUsername)) { //Add order form property CSR username is saved in the order form property called "Purchased By CSR" newOf.OrderFormPropertyValues.Add(new OrderFormPropertyValue() { ShortTextValue = CustomerSessionService.CustomerSession.CsrUsername, Name = "Purchased By CSR" }); } } var cart = OrderRepository.ShoppingCarts.FirstOrDefault(c => c.OrderGroupId == CurrentOrderGroup.OrderGroupId); if (cart != null) { OrderRepository.Remove(cart); } OrderRepository.Add(order); OrderRepository.UnitOfWork.Commit(); }
/// <summary> /// Converts shopping cart as order. /// </summary> /// <returns>Order.</returns> public virtual Order AsOrder() { var customerName = CustomerSession.CustomerName; //If user is anonymous take name from billing address if (string.IsNullOrEmpty(customerName)) { var billingAddress = Cart.OrderAddresses.FirstOrDefault(a => a.OrderAddressId == Cart.AddressId); if (billingAddress != null) { customerName = string.Format("{0} {1}", billingAddress.FirstName, billingAddress.LastName); } } var order = new Order(); order.InjectFrom<CloneInjection>(Cart); order.CustomerName = customerName; order.Status = "Pending"; order.Name = "Default"; order.TrackingNumber = SequencesService.GetNext(typeof(Order).FullName); foreach (var newOf in order.OrderForms) { newOf.Name = "Default"; newOf.OrderFormPropertyValues.Add(new OrderFormPropertyValue() { ShortTextValue = CustomerSession.Language, Name = "Language" }); if (!string.IsNullOrEmpty(CustomerSession.CsrUsername)) { //Add order form property CSR username is saved in the order form property called "Purchased By CSR" newOf.OrderFormPropertyValues.Add(new OrderFormPropertyValue() { ShortTextValue = CustomerSession.CsrUsername, Name = "Purchased By CSR" }); } } return order; }
public OrderModel(coreModel.Order innerItem, OrderClient client, IOrderService orderService) : this(new OrderEntityFactory(), innerItem, client, orderService) { }