private void UpdateHeaderFromDetail() { if (SelectedOrderItemIndex != -1 && Order.OrderItems.Count > 0) { OrderItemWrapper order_item = Order.OrderItems[SelectedOrderItemIndex]; //OrderItem order_item = OrderItems[SelectedOrderItemIndex]; if (order_item != null) { AddressWrapper current_bill_address = order_item.OrderItemBillToAddress as AddressWrapper; if (current_bill_address != null && current_bill_address.AddressKey != 0 && current_bill_address.AddressLine1 != null) { DefaultBillingAddress = current_bill_address; } AddressWrapper current_ship_address = order_item.OrderItemShipToAddress as AddressWrapper; if (current_ship_address != null && current_ship_address.AddressKey != 0 && current_ship_address.AddressLine1 != null) { DefaultShippingAddress = current_ship_address; } RepresentativeWrapper current_sales_rep = order_item.SalesRep as RepresentativeWrapper; if (current_sales_rep != null && current_sales_rep.EntityPersonKey != 0) { Order.SalesRep.EntityPersonKey = current_sales_rep.EntityPersonKey; } RepresentativeWrapper current_account_rep = order_item.AccountRep as RepresentativeWrapper; if (current_account_rep != null && current_account_rep.EntityPersonKey != 0) { Order.AccountRep.EntityPersonKey = current_account_rep.EntityPersonKey; } } } }
private void PopulateProductInfo(object param) { var orderItem = Order.OrderItems[SelectedOrderItemIndex]; if (orderItem != null && orderItem.ProductKey > 0) { var sp = ProductList.Where(item => item.ProductKey == orderItem.ProductKey).FirstOrDefault(); //MessageToDisplay = order_item.ProductKey.ToString() + ": " + sp[0].ProductName; if (orderItem.ProductName == "" || orderItem.ProductName == null || orderItem.ProductName != sp.ProductName) { if (sp.ProductName != "") { var rp = sp.ProductAttributes.Where(item => item.AttributeType == QIQOAttributeType.Product_PRODBASE).FirstOrDefault(); var dq = sp.ProductAttributes.Where(item => item.AttributeType == QIQOAttributeType.Product_PRODDFQTY).FirstOrDefault(); //var.ProductKey = sp[0].ProductKey; // order_item.ProductKey = sp.ProductKey; orderItem.ProductCode = sp.ProductCode; orderItem.ProductName = sp.ProductName; orderItem.ProductDesc = sp.ProductDesc; orderItem.OrderItemQuantity = int.Parse(dq.AttributeValue); // Check for Fee Schedule here! var fsp = ApplyFeeSchedule(sp.ProductKey, decimal.Parse(rp.AttributeValue)); orderItem.ItemPricePer = (fsp != 0M) ? fsp : decimal.Parse(rp.AttributeValue); orderItem.OrderItemLineSum = orderItem.OrderItemQuantity * orderItem.ItemPricePer; //order_item.OrderItemProduct = new ProductWrapper(sp); orderItem.OrderItemProduct.ProductKey = sp.ProductKey; orderItem.OrderItemProduct.ProductCode = sp.ProductCode; orderItem.OrderItemProduct.ProductDesc = sp.ProductDesc; orderItem.OrderItemProduct.ProductName = sp.ProductName; orderItem.OrderItemProduct.ProductType = sp.ProductType; //order_item.OrderItemBillToAddress = DefaultBillingAddress; FillFromDefaultAddress(orderItem, QIQOAddressType.Billing); //order_item.OrderItemShipToAddress = DefaultShippingAddress; FillFromDefaultAddress(orderItem, QIQOAddressType.Shipping); orderItem.AccountRep.EntityPersonKey = _accountReps[0].EntityPersonKey; orderItem.SalesRep.EntityPersonKey = _salesReps[0].EntityPersonKey; orderItem.OrderItemSeq = SelectedOrderItemIndex + 1; } } } Order.OrderItemCount = Order.OrderItems.Sum(item => item.OrderItemQuantity); Order.OrderValueSum = Order.OrderItems.Sum(item => item.OrderItemLineSum); var seq = Order.OrderItems.Count; // Need to think about whether this is the best way to do this. What if they change an existing item? if (Order.OrderItems.Where(item => item.ProductKey == 0).FirstOrDefault() == null) { var new_item = new OrderItemWrapper(InitNewOrderItem(seq + 1)); FillFromDefaultAddress(new_item, QIQOAddressType.Billing); FillFromDefaultAddress(new_item, QIQOAddressType.Shipping); Order.OrderItems.Add(new_item); } }
private void FillFromDefaultAddress(OrderItemWrapper order_item, QIQOAddressType addr_type) { if (addr_type == QIQOAddressType.Billing) { if (DefaultBillingAddress != null) { order_item.OrderItemBillToAddress.AddressKey = DefaultBillingAddress.AddressKey; order_item.OrderItemBillToAddress.AddressType = QIQOAddressType.Billing; order_item.OrderItemBillToAddress.AddressLine1 = DefaultBillingAddress.AddressLine1; order_item.OrderItemBillToAddress.AddressLine2 = DefaultBillingAddress.AddressLine2; order_item.OrderItemBillToAddress.AddressCity = DefaultBillingAddress.AddressCity; order_item.OrderItemBillToAddress.AddressState = DefaultBillingAddress.AddressState; order_item.OrderItemBillToAddress.AddressPostalCode = DefaultBillingAddress.AddressPostalCode; } } else { if (DefaultShippingAddress != null) { order_item.OrderItemShipToAddress.AddressKey = DefaultShippingAddress.AddressKey; order_item.OrderItemShipToAddress.AddressType = QIQOAddressType.Shipping; order_item.OrderItemShipToAddress.AddressLine1 = DefaultShippingAddress.AddressLine1; order_item.OrderItemShipToAddress.AddressLine2 = DefaultShippingAddress.AddressLine2; order_item.OrderItemShipToAddress.AddressCity = DefaultShippingAddress.AddressCity; order_item.OrderItemShipToAddress.AddressState = DefaultShippingAddress.AddressState; order_item.OrderItemShipToAddress.AddressPostalCode = DefaultShippingAddress.AddressPostalCode; } } }
private void InitializeOrderItems(ICollection <OrderItem> orderItems) { foreach (var wrapper in OrderItems) { wrapper.PropertyChanged -= OrderItemWrapper_PropertyChanged; } OrderItems.Clear(); foreach (var orderItem in orderItems) { var wrapper = new OrderItemWrapper(orderItem); OrderItems.Add(wrapper); wrapper.PropertyChanged += OrderItemWrapper_PropertyChanged; } }
private void UpdateItemTotals() { if (SelectedOrderItemIndex != -1 && Order.OrderItems.Count > 0) { OrderItemWrapper order_item = Order.OrderItems[SelectedOrderItemIndex]; //OrderItem order_item = OrderItems[SelectedOrderItemIndex]; if (order_item != null & order_item.OrderItemStatus != QIQOOrderItemStatus.Canceled) { if (order_item.ItemPricePer <= 0) { if (order_item.OrderItemProduct != null) { var rp = order_item.OrderItemProduct.ProductAttributes.Where(item => item.AttributeType == QIQOAttributeType.Product_PRODBASE).FirstOrDefault(); if (rp != null) { order_item.ItemPricePer = ApplyFeeSchedule(order_item.ProductKey, Decimal.Parse(rp.AttributeValue)); } } } if (order_item.OrderItemQuantity <= 0) { if (order_item.OrderItemProduct != null) { var dq = order_item.OrderItemProduct.ProductAttributes.Where(item => item.AttributeType == QIQOAttributeType.Product_PRODDFQTY).FirstOrDefault(); if (dq != null) { order_item.OrderItemQuantity = Int32.Parse(dq.AttributeValue); } } } order_item.OrderItemLineSum = order_item.OrderItemQuantity * order_item.ItemPricePer; } } Order.OrderItemCount = Order.OrderItems.Sum(item => item.OrderItemQuantity); Order.OrderValueSum = Order.OrderItems.Sum(item => item.OrderItemLineSum); Order.OrderItems.ForEach(item => item.OrderItemSeq = Order.OrderItems.IndexOf(item) + 1); }