コード例 #1
0
        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;
                    }
                }
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 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;
         }
     }
 }
コード例 #4
0
 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;
     }
 }
コード例 #5
0
        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);
        }