/* **************************** Order Request Item *****************************
  * Required Fields:
  *
  * stockNumber  -	Identifying number for the inventory item   -	string  -	24
  * quantity     -	Number of items desired                     -	int     -	N/A
  *
  * *****************************************************************************/
 private OrderRequestItem EmitOrderRequestItem(OrderLineItem item)
 {
     var orderRequestItem = new OrderRequestItem
         {
             StockNumber = DBCache.EquipmentTypes.First(e => e.EquipmentTypeId == item.EquipTypeId).FrontierSKU,
             Quantity = item.Quantity,
             ShipQuantity = item.Quantity,
             JobNumber = 52000,
             Transaction = _masterOrder.MasterOrderId,
             Sequence = 1
         };
     System.Diagnostics.Debug.WriteLine(orderRequestItem.ToString());
     return orderRequestItem;
 }
Exemple #2
0
        private OrderLineItem AddReturnMailer(OrderLineItem item)
        {
            OrderLineItem returnMailer = null;

            var neededType = DBCache.EquipmentTypes.FirstOrDefault(e => e.EquipmentTypeId == item.EquipTypeId);

            if (neededType != null && neededType.ReturnMailer != null
                && neededType.ReturnMailer.FrontierSKU != null
                && DBCache.EquipmentTypes.Any(e => e.FrontierSKU == neededType.ReturnMailer.FrontierSKU))
            {
                returnMailer = new OrderLineItem
                {
                    EquipTypeId = DBCache.EquipmentTypes.First(e => e.FrontierSKU == neededType.ReturnMailer.FrontierSKU).EquipmentTypeId
                };
            }

            if (returnMailer != null)
            {
                returnMailer.Quantity = item.Quantity;
            }

            return returnMailer;
        }
 /// <summary>
 /// Create a new OrderLineItem object.
 /// </summary>
 /// <param name="orderLineItemId">Initial value of the OrderLineItemId property.</param>
 /// <param name="orderId">Initial value of the OrderId property.</param>
 /// <param name="equipTypeId">Initial value of the EquipTypeId property.</param>
 /// <param name="quantity">Initial value of the Quantity property.</param>
 /// <param name="addedOnFulfillment">Initial value of the AddedOnFulfillment property.</param>
 /// <param name="qtyFulfilled">Initial value of the QtyFulfilled property.</param>
 public static OrderLineItem CreateOrderLineItem(global::System.Int32 orderLineItemId, global::System.Int32 orderId, global::System.Int32 equipTypeId, global::System.Int32 quantity, global::System.Boolean addedOnFulfillment, global::System.Int32 qtyFulfilled)
 {
     OrderLineItem orderLineItem = new OrderLineItem();
     orderLineItem.OrderLineItemId = orderLineItemId;
     orderLineItem.OrderId = orderId;
     orderLineItem.EquipTypeId = equipTypeId;
     orderLineItem.Quantity = quantity;
     orderLineItem.AddedOnFulfillment = addedOnFulfillment;
     orderLineItem.QtyFulfilled = qtyFulfilled;
     return orderLineItem;
 }
Exemple #4
0
        /// <summary>
        /// This is a Complemar-specific method to add necessary pieces of collateral (Exchange letter, disconnect letter, etc.)
        /// to an order based on the items already in the order. This method should be called once all items have been added
        /// and the user has submitted the order for processing.
        /// </summary>
        /// <param name="orderItems"></param>
        /// <returns></returns>
        private IEnumerable<OrderLineItem> AddCollateral(IEnumerable<OrderLineItem> orderItems)
        {
            var collateralList = new List<OrderLineItem>(); // initialize list of collateral to return

            var potentialCollateral = new List<EquipmentType>();

            EquipmentType collateralType = null;

            // loop through all items being ordered
            foreach (var item in orderItems)
            {
                // look collateral equipment type up in the EquipmentTypes table
                var equipmentType = DBCache.EquipmentTypes.First(e => e.EquipmentTypeId == item.EquipTypeId);
                if (equipmentType != null && equipmentType.MailersCollateral != null)
                {
                    collateralType = equipmentType.MailersCollateral;
                }

                // if item exists in dictionary and is not already in collateralToAdd list, add to list
                if (!potentialCollateral.Contains(collateralType) && collateralType != null)
                {
                    potentialCollateral.Add(collateralType);
                }

            }

            /* Now we have all the possible collateral types required on order. We must decide which to include.
             * Logic for this is as follows:
             *
             * If a STB is sent, no matter what else is sent, default to STB Exchange Letter
             * If no STB is sent, but a BHR is sent, default to BHR exchange letter
             * If only return mailers are ordered, default to STB Disconnect letter
             * If only BHR return mailer is ordered, default to BHR disconnect letter
             * */

            // Take highest priority collateral.

            if (potentialCollateral.Count > 0)
            {
                collateralType =
                    potentialCollateral.OrderByDescending(c => c.MailersPriority).FirstOrDefault();

                // create a new item to add to order
                var equipCat = DBCache.EquipmentCategories.FirstOrDefault(c => collateralType != null &&
                    c.EquipmentCategoryId == collateralType.EquipmentCategoryId);
                if (equipCat != null)
                {
                    if (collateralType != null)
                    {
                        var collateralItem = new OrderLineItem
                            {
                                Quantity = 1,
                                EquipTypeId = collateralType.EquipmentTypeId
                            };

                        collateralList.Add(collateralItem);
                    }
                }
            }

            return collateralList;
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the OrderLineItems EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToOrderLineItems(OrderLineItem orderLineItem)
 {
     base.AddObject("OrderLineItems", orderLineItem);
 }