// Calculate totals for RmaRequest private void CalculateTotals(RmaRequest item) { decimal itemTax = 0m; foreach (var returnItem in item.RmaReturnItems) { var lineItem = returnItem.RmaLineItems[0].LineItem; var amountTmp = lineItem.ExtendedPrice * returnItem.RmaLineItems[0].ReturnQuantity / lineItem.Quantity; returnItem.ReturnAmount = Math.Floor(amountTmp * 100) * 0.01m; amountTmp = lineItem.TaxTotal * returnItem.RmaLineItems[0].ReturnQuantity / lineItem.Quantity; itemTax += Math.Floor(amountTmp * 100) * 0.01m; } item.ItemSubtotal = item.RmaReturnItems.Sum(x => x.ReturnAmount); decimal ShippingCost = 0; decimal ShippingTax = 0; /// TODO: ShippingCost // ShippingCost = ??? // take LineItems, addresses, shipping methods and... calculate it. // ShippingTax = item.ItemTax = itemTax; // exclude taxes and subtract shipping costs item.TotalBeforeTax = item.ItemSubtotal - item.ItemTax - ShippingCost; item.LessReStockingFee = ShippingCost + ShippingTax; item.ReturnTotal = item.ItemSubtotal - item.LessReStockingFee; item.RefundAmount = 0m; }
public static bool IsAllowCreateExchangeOrder(this RmaRequest item) { var retVal = ((RmaRequestStatus)item.GetCurrentStatus() & (RmaRequestStatus.AwaitingStockReturn | RmaRequestStatus.AwaitingCompletion)) == (RmaRequestStatus)item.GetCurrentStatus(); if (retVal) { retVal = string.IsNullOrEmpty(item.ExchangeOrderId); } return(retVal); }
public TestOrderBuilder WithReturns() { var returnLineItems = _order.OrderForms[0].LineItems.Take(2).ToArray(); var returnItem1 = new RmaReturnItem { ItemState = RmaLineItemState.AwaitingReturn.ToString(), ReturnAmount = 21.32m, ReturnReason = "Corrupt" }; var rmaLineItem = new RmaLineItem { RmaReturnItemId = returnItem1.RmaReturnItemId, LineItemId = returnLineItems[0].LineItemId, LineItem = returnLineItems[0], ReturnQuantity = 1, Quantity = 0 }; returnItem1.RmaLineItems.Add(rmaLineItem); var returnItem2 = new RmaReturnItem { ItemState = RmaLineItemState.AwaitingReturn.ToString(), ReturnAmount = 210.67m, ReturnReason = "Other" }; rmaLineItem = new RmaLineItem { RmaReturnItemId = returnItem2.RmaReturnItemId, LineItemId = returnLineItems[1].LineItemId, LineItem = returnLineItems[1], ReturnQuantity = 2, Quantity = 0 }; returnItem2.RmaLineItems.Add(rmaLineItem); var rmaRequest = new RmaRequest { Status = RmaRequestStatus.AwaitingStockReturn.ToString(), ReturnTotal = 323.21m, RefundAmount = 301.89m, OrderId = _order.OrderGroupId }; foreach (var rmaItem in new[] { returnItem1, returnItem2 }) { rmaRequest.RmaReturnItems.Add(rmaItem); } ((Order)_order).RmaRequests.Add(rmaRequest); return(this); }
public static int GetCurrentStatus(this RmaRequest item) { var retVal = RmaRequestStatus.AwaitingStockReturn; RmaRequestStatus parsedVal; if (Enum.TryParse(item.Status, out parsedVal)) { retVal = parsedVal; } return((int)retVal); }
public static void SetCurrentStatus(this RmaRequest item, int value, OrderClient client) { var newStatus = (RmaRequestStatus)value; if (client.CanChangeStatus(item, newStatus.ToString())) { item.Status = newStatus.ToString(); } else { throw new OperationCanceledException("[RmaRequest] Unable to transition: " + item.Status + " -> " + newStatus.ToString()); } }
// main public constructor. calls CreateWizardSteps() public CreateExchangeViewModel(Foundation.Orders.Model.Order innerOrder, RmaRequest rmaRequest, IRepositoryFactory <IShippingRepository> shippingRepositoryFactory, IViewModelsFactory <IRmaRequestReturnItemsStepViewModel> returnItemsVmFactory, IViewModelsFactory <IRmaRequestRefundStepViewModel> refundVmFactory, IOrderEntityFactory entityFactory, ReturnBuilder returnBuilder, IViewModelsFactory <ILineItemAddViewModel> lineItemAddVmFactory, IViewModelsFactory <IExchangeOrderStepViewModel> exchangeVmFactory, IViewModelsFactory <IOrderAddressViewModel> addressVmFactory) : base(innerOrder, rmaRequest, entityFactory, returnBuilder, returnItemsVmFactory, refundVmFactory, lineItemAddVmFactory, exchangeVmFactory) { _entityFactory = entityFactory; _addressVmFactory = addressVmFactory; _shippingRepositoryFactory = shippingRepositoryFactory; _exchangeVmFactory = exchangeVmFactory; }
public CreateRmaRequestViewModel(Foundation.Orders.Model.Order innerOrder, RmaRequest rmaRequest, IOrderEntityFactory orderEntityFactory, ReturnBuilder returnBuilder, IViewModelsFactory <IRmaRequestReturnItemsStepViewModel> returnItemsVmFactory, IViewModelsFactory <IRmaRequestRefundStepViewModel> refundVmFactory, IViewModelsFactory <ILineItemAddViewModel> lineItemAddVmFactory, IViewModelsFactory <IExchangeOrderStepViewModel> exchangeVmFactory) { _exchangeVmFactory = exchangeVmFactory; _lineItemAddVmFactory = lineItemAddVmFactory; _isCreatingExchangeOrderOnly = innerOrder.RmaRequests.Any(x => x.RmaRequestId == rmaRequest.RmaRequestId); var item = innerOrder.DeepClone(orderEntityFactory as IKnownSerializationTypes); ReturnBuilder = returnBuilder; ReturnBuilder.WithOrderOrRmaRequest(item, rmaRequest); CreateWizardSteps(returnItemsVmFactory, refundVmFactory); }
public RmaRequestViewModel( IViewModelsFactory <ICreateRefundViewModel> wizardVmFactory, IViewModelsFactory <IOrderViewModel> orderVmFactory, IAuthenticationContext authContext, RmaRequest rmaRequestItem, OrderViewModel parentViewModel, OrderClient client) { _wizardVmFactory = wizardVmFactory; _orderVmFactory = orderVmFactory; CurrentRmaRequest = rmaRequestItem; _authContext = authContext; _parentViewModel = parentViewModel; _orderClient = client; RmaRequestWizardDialogInteractionRequest = new InteractionRequest <Confirmation>(); RmaRequestCancelCommand = new DelegateCommand(RaiseRmaRequestCancelInteractionRequest, () => CurrentRmaRequest.IsCancellable(client)); RmaRequestCompleteCommand = new DelegateCommand(RaiseRmaRequestCompleteInteractionRequest, () => CurrentRmaRequest.IsCompletable(client)); ExchangeOrderCreateCommand = new DelegateCommand(RaiseExchangeOrderCreateInteractionRequest, () => CurrentRmaRequest.IsAllowCreateExchangeOrder()); ExchangeOrderViewCommand = new DelegateCommand(RaiseExchangeOrderViewInteractionRequest, () => CurrentRmaRequest.ExchangeOrder != null); }
private void PopulateTestOrder() { if (MockOrderList == null) { MockOrderList = new List <OrderModel.Order>(); MockPaymentList = new List <Payment>(); MockShippingOptionList = new List <ShippingOption>(); MockPaymentGatewayList = new List <PaymentGateway>(); MockPaymentMethodList = new List <PaymentMethod>(); MockCountryList = new List <Country>(); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "1", TrackingNumber = "PO32313", Status = "OnHold", Total = 123.43m, CustomerId = "1" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "2", TrackingNumber = "PO62316", Status = "Completed", Total = 444.12m, CustomerId = "2" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "3", TrackingNumber = "PO75423", Status = "OnHold", Total = 765.32m, CustomerId = "3" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "4", TrackingNumber = "PO98743", Status = "Completed", Total = 775.22m, CustomerId = "4" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "5", TrackingNumber = "PO36572", Status = "InProgress", Total = 66.43m, CustomerId = "5" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "6", TrackingNumber = "PO65432", Status = "InProgress", Total = 632.12m, CustomerId = "6" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "7", TrackingNumber = "PO97898", Status = "OnHold", Total = 642.21m, CustomerId = "7" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "10", TrackingNumber = "POS2313", Total = 123.43m, CustomerId = "11" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "20", TrackingNumber = "POS2316", Status = "Completed", Total = 444.12m, CustomerId = "12" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "30", TrackingNumber = "POS5423", Total = 765.32m, CustomerId = "13" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "40", TrackingNumber = "POS8743", Status = "Completed", Total = 775.22m, CustomerId = "14" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "50", TrackingNumber = "POS6572", Status = "InProgress", Total = 66.43m, CustomerId = "15" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "60", TrackingNumber = "POS5432", Status = "InProgress", Total = 632.12m, CustomerId = "16" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "70", TrackingNumber = "POS7898", Total = 642.21m, CustomerId = "17" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "11", TrackingNumber = "PO62313", Total = 123.43m, CustomerId = "11" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "12", TrackingNumber = "PO92316", Status = "Completed", Total = 444.12m, CustomerId = "12" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "13", TrackingNumber = "PO25423", Total = 765.32m, CustomerId = "13" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "14", TrackingNumber = "PO98743", Status = "Completed", Total = 775.22m, CustomerId = "14" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "15", TrackingNumber = "PO66572", Total = 66.43m, CustomerId = "15" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "16", TrackingNumber = "PO35432", Total = 632.12m, CustomerId = "16" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "US Store", OrderGroupId = "17", TrackingNumber = "PO07898", Total = 642.21m, CustomerId = "17" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "11", TrackingNumber = "PSS2313", Total = 123.43m, CustomerId = "11" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "21", TrackingNumber = "PSS2316", Status = "Completed", Total = 444.12m, CustomerId = "12" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "31", TrackingNumber = "PSS5423", Total = 765.32m, CustomerId = "13" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "41", TrackingNumber = "PSS8743", Status = "Completed", Total = 775.22m, CustomerId = "14" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "51", TrackingNumber = "PSS6572", Total = 66.43m, CustomerId = "15" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "61", TrackingNumber = "PSS5432", Total = 632.12m, CustomerId = "16" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "71", TrackingNumber = "PSS7898", Total = 642.21m, CustomerId = "17" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "21", TrackingNumber = "PS62313", Total = 123.43m, CustomerId = "11" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "22", TrackingNumber = "PS92316", Status = "Completed", Total = 444.12m, CustomerId = "12" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "23", TrackingNumber = "PS25423", Total = 765.32m, CustomerId = "13" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "24", TrackingNumber = "PS98743", Status = "Completed", Total = 775.22m, CustomerId = "14" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "25", TrackingNumber = "PS66572", Total = 66.43m, CustomerId = "15" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "26", TrackingNumber = "PS35432", Status = "Completed", Total = 632.12m, CustomerId = "16" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "27", TrackingNumber = "PS07898", Total = 642.21m, CustomerId = "17" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "12", TrackingNumber = "PSO2313", Total = 123.43m, CustomerId = "11" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "22", TrackingNumber = "PSO2316", Status = "Completed", Total = 444.12m, CustomerId = "12" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "32", TrackingNumber = "PSO5423", Total = 765.32m, CustomerId = "13" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "42", TrackingNumber = "PSO8743", Status = "Completed", Total = 775.22m, CustomerId = "14" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "52", TrackingNumber = "PSO6572", Total = 66.43m, CustomerId = "15" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "62", TrackingNumber = "PSO5432", Status = "AwaitingExchange", Total = 632.12m, CustomerId = "16" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "72", TrackingNumber = "PSO7898", Total = 642.21m, CustomerId = "17" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "32", TrackingNumber = "PSO2313", Total = 123.43m, CustomerId = "11" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "32", TrackingNumber = "PSO2316", Status = "Completed", Total = 444.12m, CustomerId = "12" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "33", TrackingNumber = "PSO5423", Total = 765.32m, CustomerId = "13" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "34", TrackingNumber = "PSO8743", Status = "Completed", Total = 775.22m, CustomerId = "14" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "35", TrackingNumber = "PSO6572", Total = 66.43m, CustomerId = "15" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "36", TrackingNumber = "PSO5432", Status = "AwaitingExchange", Total = 632.12m, CustomerId = "16" }); MockOrderList.Add(new OrderModel.Order { BillingCurrency = "USD", StoreId = "UK Store", OrderGroupId = "37", TrackingNumber = "PSO7898", Total = 642.21m, CustomerId = "17" }); foreach (var order in MockOrderList) { var payments = new Payment[] { new CreditCardPayment() { PaymentType = PaymentType.CreditCard.GetHashCode(), PaymentMethodName = "MasterCard", ValidationCode = "RE21321-21", Amount = 32.53m, Status = "Processing", TransactionType = TransactionType.Credit.ToString() }, new CashCardPayment() { PaymentType = PaymentType.CashCard.GetHashCode(), PaymentMethodName = "Visa", ValidationCode = "RE6211-44", Amount = 55.73m, Status = "Processing", TransactionType = TransactionType.Credit.ToString() }, new InvoicePayment() { PaymentType = PaymentType.Invoice.GetHashCode(), PaymentMethodName = "Bank transaction", ValidationCode = "BE3-21", Amount = 774.53m, Status = "Confirmed", TransactionType = TransactionType.Authorization.ToString() } }; var orderAddresses = new OrderAddress[] { new OrderAddress() { OrderAddressId = "1", City = "New Yourk", CountryCode = "us", CountryName = "USA", DaytimePhoneNumber = "+7 (906) 2121-321", Email = "*****@*****.**", Line1 = "str. 113", Line2 = "bld. 21", PostalCode = "323232", StateProvince = "WC" }, new OrderAddress() { OrderAddressId = "2", City = "Los Angeles", CountryCode = "us", CountryName = "USA", DaytimePhoneNumber = "+7 (906) 4444-444", Email = "*****@*****.**", Line1 = "av. 32", Line2 = "bld. 1", PostalCode = "432142", StateProvince = "LA" }, new OrderAddress() { OrderAddressId = "3", City = "Yourk", CountryCode = "us", CountryName = "USA", DaytimePhoneNumber = "+7 (906) 2121-321", Email = "*****@*****.**", Line1 = "str. 113", Line2 = "Pas Juozapa", PostalCode = "12100" }, new OrderAddress() { OrderAddressId = "4", City = "Vilnius", CountryCode = "lt", CountryName = "Lithuania", DaytimePhoneNumber = "+370 5 2744-444", Line1 = "Laisves pr. 125", PostalCode = "12100" }, new OrderAddress() { OrderAddressId = "5", City = "Yourk", CountryCode = "us", CountryName = "USA", DaytimePhoneNumber = "+7 (906) 2121-321", Email = "*****@*****.**", Line1 = "str. 113", Line2 = "Pas Juozapa", PostalCode = "12100" }, new OrderAddress() { OrderAddressId = "6", City = "Vilnius", CountryCode = "lt", CountryName = "Lithuania", DaytimePhoneNumber = "+370 5 2744-444", Line1 = "Laisves pr. 125", PostalCode = "54821" } }; var lineItems = new LineItem[] { new LineItem() { LineItemId = "1", DisplayName = "Chair black", Description = "some chair description", Quantity = 3, ListPrice = 32.43m, CatalogItemCode = "x-200" }, new LineItem() { LineItemId = "2", DisplayName = "Coca-Cola", Description = "some coca description", Quantity = 4, ListPrice = 3.99m, CatalogItemCode = "x-201" }, new LineItem() { LineItemId = "3", DisplayName = "Fujifilm 121MN", Description = "some fuji description", Quantity = 6, ListPrice = 89.37m, CatalogItemCode = "x-202" }, new LineItem() { LineItemId = "4", DisplayName = "Canon M32-Z", Description = "some Canon description", Quantity = 9, ListPrice = 902.94m, CatalogItemCode = "x-203" }, new LineItem() { LineItemId = "5", DisplayName = "Sony Qybershot", Description = "some Sony description", Quantity = 1, ListPrice = 320.49m, CatalogItemCode = "x-204" }, new LineItem() { LineItemId = "6", DisplayName = "Minolta 121-43s", Description = "some Minolta description", Quantity = 2, ListPrice = 324.43m, CatalogItemCode = "x-205" }, new LineItem() { LineItemId = "7", DisplayName = "Sony-Erricson", Description = "some sony description", Quantity = 3, ListPrice = 62.13m, CatalogItemCode = "x-206" }, new LineItem() { LineItemId = "8", DisplayName = "Booty-Sony", Description = "some boty description", Quantity = 1, ListPrice = 8.03m, CatalogItemCode = "x-207" } }; var orderForm = new OrderForm() { OrderFormId = "21", Status = "Processing" }; foreach (var lineItem in lineItems) { lineItem.ExtendedPrice = lineItem.Quantity * lineItem.ListPrice; lineItem.PlacedPrice = lineItem.ListPrice; orderForm.LineItems.Add(lineItem); } // Status = "OnHold", // Status = "InventoryAssigned", // Status = "Packing" var shipment1 = new Shipment() { ShipmentId = "13341-23", ShippingMethodId = "Ground Shipping", ShippingMethodName = "Ground Shipping", ShippingAddressId = "1", ShipmentTotal = 213.12m, Subtotal = 119, ShippingDiscountAmount = 5.99m }; shipment1.ShipmentItems.Add(new ShipmentItem() { LineItemId = "1", Quantity = 3 }); shipment1.ShipmentItems.Add(new ShipmentItem() { LineItemId = "2", Quantity = 4 }); shipment1.ShipmentItems.Add(new ShipmentItem() { LineItemId = "3", Quantity = 6 }); shipment1.ShipmentItems.Add(new ShipmentItem() { LineItemId = "4", Quantity = 9 }); shipment1.ShipmentItems.Add(new ShipmentItem() { LineItemId = "5", Quantity = 1 }); foreach (var shipmentItem in shipment1.ShipmentItems) { shipmentItem.Shipment = shipment1; } // Status = "AwaitingInventory" // Status = "InventoryAssigned" // Status = "Packing" var shipment2 = new Shipment() { ShipmentId = "1499-67", ShippingMethodId = "USPS", ShippingMethodName = "USPS", ShippingAddressId = "2", ShipmentTotal = 913.82m, Subtotal = 900.99m, ShippingDiscountAmount = 55.9m }; shipment2.ShipmentItems.Add(new ShipmentItem() { LineItemId = "6", Quantity = 2 }); shipment2.ShipmentItems.Add(new ShipmentItem() { LineItemId = "7", Quantity = 3 }); shipment2.ShipmentItems.Add(new ShipmentItem() { LineItemId = "8", Quantity = 1 }); foreach (var shipmentItem in shipment2.ShipmentItems) { shipmentItem.Shipment = shipment2; } orderForm.Shipments.Add(shipment1); shipment1.OrderForm = orderForm; orderForm.Shipments.Add(shipment2); shipment2.OrderForm = orderForm; order.OrderForms.Add(orderForm); orderForm.OrderGroup = order; foreach (var payment in payments) { orderForm.Payments.Add(payment); } MockPaymentList.AddRange(payments); foreach (var orderAddress in orderAddresses) { order.OrderAddresses.Add(orderAddress); } var rmaItems = new RmaReturnItem[] { new RmaReturnItem { ItemState = "AwaitingReturn", ReturnAmount = 21.32m, ReturnReason = "Corrupt" }, new RmaReturnItem { ItemState = "Received", ReturnAmount = 210.67m, ReturnReason = "Other" } }; rmaItems[0].RmaLineItems.Add(new RmaLineItem() { LineItemId = "8", Quantity = 1 }); rmaItems[1].RmaLineItems.Add(new RmaLineItem() { LineItemId = "1", Quantity = 2 }); var rmaRequest = new RmaRequest() { RmaRequestId = "RMA-13", Status = "AwaitingCompletion", ReturnTotal = 323.21m, RefundAmount = 301.89m, ReturnAddressId = "1", Order = order }; foreach (var rmaItem in rmaItems) { rmaRequest.RmaReturnItems.Add(rmaItem); } order.RmaRequests.Add(rmaRequest); } // ------------ MockShippingOptionList.AddRange(GetAllShippingOptions()); MockPaymentMethodList.AddRange(GetAllPaymentMethods()); MockCountryList.AddRange(GetAllCountries()); } }
public static void Complete(this RmaRequest item, OrderClient client) { item.SetCurrentStatus((int)RmaRequestStatus.Complete, client); }
public static void Cancel(this RmaRequest item, OrderClient client) { item.SetCurrentStatus((int)RmaRequestStatus.Canceled, client); }
public static bool IsCompletable(this RmaRequest item, OrderClient client) { return(client.CanChangeStatus(item, RmaRequestStatus.Complete.ToString())); }
public bool CanChangeStatus(RmaRequest request, string newStatus) { return(CanChangeStatus(request.Status, newStatus, _stateController.RmaStateMachine)); }
public ReturnBuilder WithOrderOrRmaRequest(Foundation.Orders.Model.Order order, RmaRequest rmaRequest) { CurrentOrder = new OrderModel(order, _client, _orderService); RmaRequest = rmaRequest; return(this); }
public static ReturnBuilder GetReturnBuilder(IOrderEntityFactory entityFactory, IPricelistRepository priceListRepository, Foundation.Orders.Model.Order order, RmaRequest rmaRequest, OrderClient client, IOrderService service) { if (entityFactory == null) { throw new ArgumentNullException("entityFactory"); } if (order == null) { throw new ArgumentNullException("order"); } var retVal = new ReturnBuilder(entityFactory, priceListRepository, client, service); retVal.WithOrderOrRmaRequest(order, rmaRequest); return(retVal); }
internal void RaiseCreateExchangeInteractionRequest(RmaRequest item) { RmaRequest rmaRequest; if (item == null) { rmaRequest = CreateEntity <RmaRequest>(); } else { rmaRequest = item.DeepClone(EntityFactory as IKnownSerializationTypes); } var itemVM = _wizardExchangeVmFactory.GetViewModelInstance( new KeyValuePair <string, object>("innerOrder", InnerItem), new KeyValuePair <string, object>("rmaRequest", rmaRequest)); var confirmation = new Confirmation { Title = "Create an exchange Order".Localize(), Content = itemVM }; CommonOrderWizardDialogInteractionRequest.Raise(confirmation, (x) => { if (x.Confirmed) { rmaRequest = itemVM.GetRmaRequest(); var exchangeOrder = rmaRequest.ExchangeOrder; if (InnerItem.RmaRequests.All(x1 => x1.RmaRequestId != rmaRequest.RmaRequestId)) { // workaround:begin1 // preparing for save Repository.Add(exchangeOrder); rmaRequest.ExchangeOrder = null; // clear LineItem values otherwise the next _repository.Add(rmaRequest); will crash foreach (var rmaItem in rmaRequest.RmaReturnItems) { rmaItem.RmaLineItems[0].LineItem = null; } Repository.Add(rmaRequest); // workaround:end1 InnerItem.RmaRequests.Add(rmaRequest); } else { item.ExchangeOrder = exchangeOrder; OnUIThread(() => item.InjectFrom <CloneInjection>(rmaRequest)); Repository.Add(exchangeOrder); } DoSaveChanges1(); // workaround:begin2 // set right values after save foreach (var rmaItem in rmaRequest.RmaReturnItems) { var newLineItem = InnerItem.OrderForms[0].LineItems.First(x1 => x1.LineItemId == rmaItem.RmaLineItems[0].LineItemId); rmaItem.RmaLineItems[0].LineItem = newLineItem; } rmaRequest.ExchangeOrder = exchangeOrder; // workaround:end2 var rmaRequestViewModel = _rmaRequestVmFactory.GetViewModelInstance( new KeyValuePair <string, object>("rmaRequestItem", rmaRequest) , new KeyValuePair <string, object>("parentViewModel", this)); RmaRequestViewModels.Add(rmaRequestViewModel); // reinitialize changes CloseAllSubscription(); SetAllSubscription(); // show created RmaRequest item SelectedTabIndex = ReturnsTabIndex; // open newly created ExchangeOrder rmaRequestViewModel.ExchangeOrderViewCommand.Execute(); } }); }