/**
  * Add discounts for shipping discount amount.
  *
  * Does not use the eb2ccore/discount helper as shipping discount
  * data may not have been collected to be used by the helper - both
  * use the same event so order between the two cannot be guarantted
  * without introducing a hard dependency. In this case, however,
  * discount data is simple enough to collect independently.
  *
  * @param ITaxDiscountContainer
  * @return ITaxDiscountContainer
  */
 protected function _addShippingDiscount(IDiscountContainer $discountContainer)
 {
     $shippingDiscountAmount = $this->_address->getShippingDiscountAmount();
     if ($shippingDiscountAmount) {
         $discounts = $discountContainer->getDiscounts();
         $shippingDiscount = $discounts->getEmptyDiscount()->setAmount($shippingDiscountAmount);
         $discounts[$shippingDiscount] = $shippingDiscount;
         $discountContainer->setDiscounts($discounts);
     }
     return $discountContainer;
 }
 /**
  * Transfer discount data from Mage_Sales_Model_Qoute_Addresses
  * or Mage_Sales_Model_Quote_Items to TaxDutyFee\IDiscountContainer.
  *
  * @param Varien_Object
  * @param ITaxDiscountContainer
  * @return ITaxDiscountContainer
  */
 public function transferTaxDiscounts(Varien_Object $salesObject, ITaxDiscountContainer $discountContainer)
 {
     /** @var ITaxDiscountIterable $discounts */
     $discounts = $discountContainer->getDiscounts();
     $data = $this->getDiscountsData($salesObject);
     foreach ($data as $loneDiscountData) {
         $discount = $this->_fillOutTaxDiscount($discounts->getEmptyDiscount(), $loneDiscountData);
         $discounts[$discount] = $discount;
     }
     return $discountContainer->setDiscounts($discounts);
 }