/// <summary>
        /// Calculates the invoice item total.
        /// </summary>
        /// <param name="itemization">
        /// The itemization.
        /// </param>
        /// <returns>
        /// The total.
        /// </returns>
        public static decimal CalculateTotal(this InvoiceItemItemization itemization)
        {
            var productTotal   = itemization.CalculateProductTotal();
            var shippingTotal  = itemization.CalculateShippingTotal();
            var taxTotal       = itemization.CalculateTaxTotal();
            var adjTotal       = itemization.CalculateAdjustmentTotal();
            var discountsTotal = itemization.CalculateDiscountTotal();
            var customTotal    = itemization.CalculateCustomTotal();

            return(productTotal + shippingTotal + taxTotal + customTotal + adjTotal - discountsTotal);
        }
 /// <summary>
 /// Maps <see cref="InvoiceItemItemization"/> to <see cref="InvoiceItemItemizationDisplay"/>.
 /// </summary>
 /// <param name="itemization">
 /// The itemization.
 /// </param>
 /// <returns>
 /// The <see cref="InvoiceItemItemizationDisplay"/>.
 /// </returns>
 public static InvoiceItemItemizationDisplay ToInvoiceItemItemizationDisplay(this InvoiceItemItemization itemization)
 {
     return(AutoMapper.Mapper.Map <InvoiceItemItemizationDisplay>(itemization));
 }
 /// <summary>
 /// Calculates the adjustment total.
 /// </summary>
 /// <param name="itemization">
 /// The itemization.
 /// </param>
 /// <returns>
 /// The <see cref="decimal"/>.
 /// </returns>
 public static decimal CalculateAdjustmentTotal(this InvoiceItemItemization itemization)
 {
     return(Ensure2Places(itemization.Adjustments.Sum(x => x.Price * x.Quantity)));
 }
 /// <summary>
 /// Calculates the  shipping total.
 /// </summary>
 /// <param name="itemization">
 /// The itemization.
 /// </param>
 /// <returns>
 /// The <see cref="decimal"/>.
 /// </returns>
 public static decimal CalculateShippingTotal(this InvoiceItemItemization itemization)
 {
     return(Ensure2Places(itemization.Shipping.Sum(x => x.Price * x.Quantity)));
 }