Example #1
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $baseDiscount = 0;
     $discount = 0;
     $order = $creditmemo->getOrder();
     $baseOrderDiscount = $order->getBaseAffiliateCredit();
     $orderDiscount = $order->getAffiliateCredit();
     if ($creditmemo->getBaseGrandTotal() < 0.0001 || $baseOrderDiscount >= 0) {
         return $this;
     }
     $baseInvoicedDiscount = 0;
     $invoicedDiscount = 0;
     foreach ($order->getCreditmemosCollection() as $_creditmemo) {
         $baseInvoicedDiscount += $_creditmemo->getBaseAffiliateCredit();
         $invoicedDiscount += $_creditmemo->getAffiliateCredit();
     }
     $baseOrderTotal = $order->getBaseGrandTotal() - $baseOrderDiscount;
     $baseDiscount = $baseOrderDiscount * $creditmemo->getBaseGrandTotal() / $baseOrderTotal;
     $discount = $orderDiscount * $creditmemo->getBaseGrandTotal() / $baseOrderTotal;
     if ($baseDiscount < $baseOrderDiscount) {
         $baseDiscount = $baseOrderDiscount;
         $discount = $orderDiscount;
     }
     if ($baseDiscount) {
         $baseDiscount = Mage::app()->getStore()->roundPrice($baseDiscount);
         $discount = Mage::app()->getStore()->roundPrice($discount);
         $creditmemo->setBaseAffiliateCredit($baseDiscount);
         $creditmemo->setAffiliateCredit($discount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseDiscount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $discount);
         $creditmemo->setAllowZeroGrandTotal(true);
     }
     return $this;
 }
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     // Changed By Adam 22/09/2014
     if (!Mage::helper('affiliateplus')->isAffiliateModuleEnabled()) {
         return $this;
     }
     $baseDiscount = 0;
     $discount = 0;
     $order = $creditmemo->getOrder();
     $baseOrderDiscount = $order->getBaseAffiliateCredit();
     $orderDiscount = $order->getAffiliateCredit();
     if ($creditmemo->getBaseGrandTotal() < 0.0001 || $baseOrderDiscount >= 0) {
         return $this;
     }
     $baseInvoicedDiscount = 0;
     $invoicedDiscount = 0;
     foreach ($order->getCreditmemosCollection() as $_creditmemo) {
         $baseInvoicedDiscount += $_creditmemo->getBaseAffiliateCredit();
         $invoicedDiscount += $_creditmemo->getAffiliateCredit();
     }
     $baseOrderTotal = $order->getBaseSubtotalInclTax();
     // - $baseOrderDiscount;
     $baseDiscount = $baseOrderDiscount * $creditmemo->getBaseSubtotalInclTax() / $baseOrderTotal;
     $discount = $orderDiscount * $creditmemo->getBaseSubtotalInclTax() / $baseOrderTotal;
     if ($baseDiscount < $baseOrderDiscount) {
         $baseDiscount = $baseOrderDiscount;
         $discount = $orderDiscount;
     }
     if ($baseDiscount) {
         $baseDiscount = Mage::app()->getStore()->roundPrice($baseDiscount);
         $discount = Mage::app()->getStore()->roundPrice($discount);
         $creditmemo->setBaseAffiliateCredit($baseDiscount);
         $creditmemo->setAffiliateCredit($discount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseDiscount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $discount);
         $creditmemo->setAllowZeroGrandTotal(true);
     }
     return $this;
 }