Ejemplo n.º 1
0
        private OrderItem GetShippingOrderItem(IShipment shipment, IMarket market)
        {
            var currency          = shipment.ParentOrderGroup.Currency;
            var shippingVatAmount = _shippingCalculator.GetShippingTax(shipment, market, currency).Round();

            var shippingAmount = _shippingCalculator.GetDiscountedShippingAmount(shipment, market, currency);

            var amount = market.PricesIncludeTax ? shippingAmount : shippingAmount + shippingVatAmount;

            var vatPercent = shippingAmount > 0
                ? market.PricesIncludeTax
                    ? (int)((shippingVatAmount / (shippingAmount - shippingVatAmount)).Round() * 10000)
                    : (int)((shippingVatAmount / (shippingAmount)).Round() * 10000)
                : 0;

            return(new OrderItem("SHIPPING", "SHIPPINGFEE", OrderItemType.ShippingFee, "NOTAPPLICABLE", 1, "PCS",
                                 Amount.FromDecimal(shippingAmount.Amount), vatPercent, Amount.FromDecimal(amount.Amount),
                                 Amount.FromDecimal(shippingVatAmount.Amount)));
        }