public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $allowedAmount = $order->getShippingAmount() - $order->getShippingRefunded();
     $baseAllowedAmount = $order->getBaseShippingAmount() - $order->getBaseShippingRefunded();
     /**
      * Check if shipping amount was specified (from invoice or another source).
      * Using has magic method to allow setting 0 as shipping amount.
      */
     if ($creditmemo->hasBaseShippingAmount()) {
         $baseShippingAmount = Mage::app()->getStore()->roundPrice($creditmemo->getBaseShippingAmount());
         if ($baseShippingAmount < $baseAllowedAmount) {
             $shippingAmount = $allowedAmount * $baseShippingAmount / $baseAllowedAmount;
             $shippingAmount = Mage::app()->getStore()->roundPrice($shippingAmount);
         } elseif ($baseShippingAmount == $baseAllowedAmount) {
             $shippingAmount = $allowedAmount;
         } else {
             $baseAllowedAmount = $order->formatBasePrice($baseAllowedAmount);
             Mage::throwException(Mage::helper('sales')->__('Maximum shipping amount allowed to refound is: %s', $baseAllowedAmount));
         }
     } else {
         $baseShippingAmount = $baseAllowedAmount;
         $shippingAmount = $allowedAmount;
     }
     $creditmemo->setShippingAmount($shippingAmount);
     $creditmemo->setBaseShippingAmount($baseShippingAmount);
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $shippingAmount);
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseShippingAmount);
     return $this;
 }
Example #2
0
 /**
  * Set entity
  *
  * @param Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @return $this
  */
 public function setEntity($object)
 {
     $this->setEntityId($object->getId());
     $this->setEntityIncrementId($object->getIncrementId());
     $this->setStoreId($object->getStoreId());
     return $this;
 }
Example #3
0
 /**
  * Save order in AvaTax system
  *
  * @see OnePica_AvaTax_Model_Observer_SalesOrderCreditmemoSaveAfter::execute()
  * @param Mage_Sales_Model_Order_Creditmemo  $creditmemo
  * @param OnePica_AvaTax_Model_Records_Queue $queue
  * @return mixed
  * @throws OnePica_AvaTax_Exception
  * @throws OnePica_AvaTax_Model_Service_Exception_Commitfailure
  * @throws OnePica_AvaTax_Model_Service_Exception_Unbalanced
  */
 public function process($creditmemo, $queue)
 {
     $order = $creditmemo->getOrder();
     $storeId = $order->getStoreId();
     $this->setStoreId($storeId);
     $shippingAddress = $order->getShippingAddress() ? $order->getShippingAddress() : $order->getBillingAddress();
     if (!$shippingAddress) {
         throw new OnePica_AvaTax_Exception($this->_getHelper()->__('There is no address attached to this order'));
     }
     /** @var OnePica_AvaTax_Model_Service_Result_Creditmemo $creditmemoResult */
     $creditmemoResult = $this->_getService()->creditmemo($creditmemo, $queue);
     //if successful
     if (!$creditmemoResult->getHasError()) {
         $message = $this->_getHelper()->__('Credit memo #%s was saved to AvaTax', $creditmemoResult->getDocumentCode());
         $this->_getHelper()->addStatusHistoryComment($order, $message);
         $totalTax = $creditmemoResult->getTotalTax();
         if ($totalTax != $creditmemo->getBaseTaxAmount() * -1) {
             throw new OnePica_AvaTax_Model_Service_Exception_Unbalanced('Collected: ' . $creditmemo->getTaxAmount() . ', Actual: ' . $totalTax);
         }
         //if not successful
     } else {
         $messages = $creditmemoResult->getErrors();
         throw new OnePica_AvaTax_Model_Service_Exception_Commitfailure(implode(' // ', $messages));
     }
     return true;
 }
Example #4
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $totalTax = 0;
     $baseTotalTax = 0;
     foreach ($creditmemo->getAllItems() as $item) {
         $orderItemTax = $item->getOrderItem()->getTaxAmount();
         $baseOrderItemTax = $item->getOrderItem()->getBaseTaxAmount();
         $orderItemQty = $item->getOrderItem()->getQtyOrdered();
         if ($orderItemTax && $orderItemQty) {
             $tax = $orderItemTax * $item->getQty() / $orderItemQty;
             $baseTax = $baseOrderItemTax * $item->getQty() / $orderItemQty;
             $tax = $creditmemo->getStore()->roundPrice($tax);
             $baseTax = $creditmemo->getStore()->roundPrice($baseTax);
             $item->setTaxAmount($tax);
             $item->setBaseTaxAmount($baseTax);
             $totalTax += $tax;
             $baseTotalTax += $baseTax;
         }
     }
     $creditmemo->setTaxAmount($totalTax);
     $creditmemo->setBaseTaxAmount($baseTotalTax);
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $totalTax);
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseTotalTax);
     return $this;
 }
Example #5
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order_id = $creditmemo->getOrderId();
     $order = Mage::getModel('sales/order')->load($order_id);
     $creditmemo->setFeeAmount($order->getFeeAmount());
     $creditmemo->setBaseFeeAmount($order->getBaseFeeAmount());
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $creditmemo->getFeeAmount());
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $creditmemo->getBaseFeeAmount());
     return $this;
 }
Example #6
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $baseDiscount = 0;
     $discount = 0;
     foreach ($creditmemo->getAllItems() as $item) {
         if ($item->getOrderItem()->isDummy()) {
             continue;
         }
         $orderItem = $item->getOrderItem();
         $orderItemDiscount = (double) $orderItem->getAffiliateplusAmount();
         $baseOrderItemDiscount = (double) $orderItem->getBaseAffiliateplusAmount();
         $orderItemQty = $orderItem->getQtyOrdered();
         if ($orderItemDiscount && $orderItemQty) {
             $discount -= $orderItemDiscount * $item->getQty() / $orderItemQty;
             $baseDiscount -= $baseOrderItemDiscount * $item->getQty() / $orderItemQty;
         }
     }
     if (!floatval($baseDiscount)) {
         $order = $creditmemo->getOrder();
         $baseDiscount = $order->getBaseAffiliateplusDiscount();
         $discount = $order->getAffiliateplusDiscount();
     }
     if (floatval($baseDiscount)) {
         $baseDiscount = Mage::app()->getStore()->roundPrice($baseDiscount);
         $discount = Mage::app()->getStore()->roundPrice($discount);
         $creditmemo->setBaseAffiliateplusDiscount($baseDiscount);
         $creditmemo->setAffiliateplusDiscount($discount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseDiscount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $discount);
     }
     return $this;
 }
Example #7
0
 /**
  * Collect total cost of refunded items
  *
  * @param Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @return Mage_Sales_Model_Order_Creditmemo_Total_Cost
  */
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $baseRefundTotalCost = 0;
     foreach ($creditmemo->getAllItems() as $item) {
         if (!$item->getHasChildren()) {
             $baseRefundTotalCost += $item->getBaseCost() * $item->getQty();
         }
     }
     $creditmemo->setBaseCost($baseRefundTotalCost);
     return $this;
 }
Example #8
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     if (!$creditmemo->getInvoice() || !$creditmemo->getInvoice()->getId()) {
         return;
     }
     $order = $creditmemo->getOrder();
     if ($order->getWebposChange() < 0.0001) {
         return;
     }
     $creditmemo->setWebposChange($order->getWebposChange())->setWebposBaseChange($order->getWebposBaseChange());
 }
 /**
  * Returns the currency compliant to ISO 4217 (3 char code)
  * @return string 3 Character long currency code
  *
  * @param Mage_Sales_Model_Quote|Mage_Sales_Model_Order|Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @return string
  */
 public function getCurrency($object)
 {
     $currency = $object->getBaseCurrencyCode();
     if (!Mage::helper('paymill/optionHelper')->isBaseCurrency()) {
         if ($object instanceof Mage_Sales_Model_Quote) {
             $currency = $object->getQuoteCurrencyCode();
         } else {
             $currency = $object->getOrderCurrencyCode();
         }
     }
     return $currency;
 }
Example #10
0
 *
 * @category    FCM
 * @package     FCM_Fulfillment
 * @author	Pawan Prakash Gupta
 * @author_id	51405591
 * @company	HCL Technologies
 * @created Monday, August 13, 2012
 * @copyright	Four cross media
 */
/**
 * Orderpayment model class
 *
 * @category    FCM
 * @package     FCM_Fulfillment
 * @author      Pawan Prakash Gupta <51405591>
 */
class FCM_Fulfillment_Model_Salespayment extends Mage_Sales_Model_Order_Payment
{
    /**
     * Refund payment online or offline, depending on whether there is invoice set in the creditmemo instance
     * Updates transactions hierarchy, if required
     * Updates payment totals, updates order status and adds proper comments
     *
     * @param Mage_Sales_Model_Order_Creditmemo $creditmemo
     * @return Mage_Sales_Model_Order_Payment
     */
    public function refund($creditmemo)
    {
        $baseAmountToRefund = $this->_formatAmount($creditmemo->getBaseGrandTotal());
        $order = $this->getOrder();
        $this->_generateTransactionId(Mage_Sales_Model_Order_Payment_Transaction::TYPE_REFUND);
        // call refund from gateway if required
        $isOnline = false;
        $gateway = $this->getMethodInstance();
        $invoice = null;
        if ($gateway->canRefund() && $creditmemo->getDoTransaction()) {
            $this->setCreditmemo($creditmemo);
            $invoice = $creditmemo->getInvoice();
            if ($invoice) {
                $isOnline = true;
                $captureTxn = $this->_lookupTransaction($invoice->getTransactionId());
                if ($captureTxn) {
                    $this->setParentTransactionId($captureTxn->getTxnId());
                }
                $this->setShouldCloseParentTransaction(true);
                // TODO: implement multiple refunds per capture
                try {
                    $gateway->setStore($this->getOrder()->getStoreId())->processBeforeRefund($invoice, $this)->refund($this, $baseAmountToRefund)->processCreditmemo($creditmemo, $this);
                } catch (Mage_Core_Exception $e) {
                    if (!$captureTxn) {
Example #11
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $totalDiscountAmount = $order->getMwStorecreditDiscountShow();
     $baseTotalDiscountAmount = $order->getMwStorecreditDiscount();
     /* $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $totalDiscountAmount);
        $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $baseTotalDiscountAmount); */
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal());
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal());
     $creditmemo->setMwStorecredit($order->getMwStorecredit());
     $creditmemo->setMwStorecreditBuyCredit($order->getMwStorecreditBuyCredit());
     $creditmemo->setMwStorecreditDiscount($baseTotalDiscountAmount);
     $creditmemo->setMwStorecreditDiscountShow($totalDiscountAmount);
     return $this;
 }
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $creditmemo->setWebposGiftwrapAmount(0);
     $orderGiftwrapAmount = $creditmemo->getOrder()->getWebposGiftwrapAmount();
     $baseOrderShippingAmount = $creditmemo->getOrder()->getWebposGiftwrapAmount();
     if ($orderGiftwrapAmount) {
         $creditmemo->setWebposGiftwrapAmount($orderGiftwrapAmount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $orderGiftwrapAmount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $orderGiftwrapAmount);
     }
     return $this;
 }
Example #13
0
 /**
  * If no fee is available, return an empty string.
  *
  * @return string
  */
 protected function _toHtml()
 {
     if (!$this->_source->getBuckarooFee()) {
         return '';
     }
     return parent::_toHtml();
 }
Example #14
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $creditmemo->setSurchargeAmount(0);
     $creditmemo->setBaseSurchargeAmount(0);
     $orderSurchargeAmount = Mage::helper('sagepaysurcharges')->getAmount($creditmemo->getOrder()->getId());
     if (!$orderSurchargeAmount) {
         $orderSurchargeAmount = Mage::getSingleton('core/session')->getData('surchargeamount');
     }
     if ($orderSurchargeAmount) {
         $creditmemo->setSurchargeAmount($orderSurchargeAmount);
         $creditmemo->setBaseSurchargeAmount($orderSurchargeAmount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $orderSurchargeAmount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $orderSurchargeAmount);
     }
     return $this;
 }
Example #15
0
 /**
  * @magentoConfigFixture current_store design/theme/full_name default/default/default
  * @magentoDataFixture Mage/Sales/_files/order.php
  */
 public function testSendEmail()
 {
     $order = new Mage_Sales_Model_Order();
     $order->loadByIncrementId('100000001');
     $order->setCustomerEmail('*****@*****.**');
     $creditmemo = new Mage_Sales_Model_Order_Creditmemo();
     $creditmemo->setOrder($order);
     $payment = $order->getPayment();
     $paymentInfoBlock = Mage::helper('Mage_Payment_Helper_Data')->getInfoBlock($payment);
     $paymentInfoBlock->setArea('invalid-area');
     $payment->setBlockMock($paymentInfoBlock);
     $this->assertEmpty($creditmemo->getEmailSent());
     $creditmemo->sendEmail(true);
     $this->assertNotEmpty($creditmemo->getEmailSent());
     $this->assertEquals('frontend', $paymentInfoBlock->getArea());
 }
Example #16
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $amount = $order->getServicecostInvoiced() - $order->getServicecostRefunded();
     $baseamount = $order->getBaseServicecostInvoiced() - $order->getBaseServicecostRefunded();
     $taxamount = $order->getServicecostTaxInvoiced() - $order->getServicecostTaxRefunded();
     $basetaxamount = $order->getBaseServicecostTaxInvoiced() - $order->getBaseServicecostTaxRefunded();
     if ($baseamount > 0) {
         $creditmemo->setServicecost($amount);
         $creditmemo->setBaseServicecost($baseamount);
         $creditmemo->setServicecostTax($order->getServicecostTaxRefunded());
         $creditmemo->setBaseServicecostTax($order->getBaseServicecostTaxRefunded());
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $amount + $taxamount - $order->getServicecostTax());
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseamount + $basetaxamount - $order->getServicecostTax());
     }
     return $this;
 }
Example #17
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $_helper = Mage::helper('msp_cashondelivery');
     $_model = Mage::getModel('msp_cashondelivery/cashondelivery');
     $order = $creditmemo->getOrder();
     $baseAmount = $order->getMspBaseCashondelivery();
     $baseAmountInclTax = $order->getMspBaseCashondeliveryInclTax();
     $amount = $order->getMspCashondelivery();
     $amountInclTax = $order->getMspCashondeliveryInclTax();
     $codTax = $amountInclTax - $amount;
     $codBaseTax = $baseAmountInclTax - $baseAmount;
     $creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $codTax);
     $creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $codBaseTax);
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $codTax);
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $codBaseTax);
     return $this;
 }
Example #18
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $invoice = $order->getInvoiceCollection()->getFirstItem();
     $payment = $order->getPayment();
     $paymentMethod = $payment->getMethod();
     if ($this->getHelper()->isBillpayRatPayment($paymentMethod)) {
         $info = $payment->getMethodInstance()->getInfoInstance();
         // Temporary set creditmemo amount to current amount (will be overriden after partialCancel-request was successful)
         $creditmemo->setBillpayRateSurcharge($info->getBillpayRateSurcharge());
         $creditmemo->setBillpayRateFee($info->getBillpayRateFee());
         $creditmemo->setBillpayRateFeeNet($info->getBillpayRateFeeNet());
         $creditmemo->setBillpayRateTotalAmount($info->getBillpayRateTotalAmount());
         $creditmemo->setBillpayRateFeeTax($info->getBillpayRateFeeTax());
         // TODO: ...
         /*if ($diff < 0 && -$diff = $feeTaxAmount) {		// must be a full cancel
         			$creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $feeTaxAmount);
         		}
         		else if ($diff == 0) {
         			$creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $feeTaxAmount);
         		}
         		
         		$diffBase = $order->getBaseGrandTotal() - $order->getBaseTotalRefunded() - $creditmemo->getBaseGrandTotal();
         		if ($diffBase < 0 && -$diffBase = $feeTaxAmount) {		// must be a full cancel
         			$creditmemo->setBaseGrandTotal($creditmemo->getGrandTotal() - $feeTaxAmount);
         		}
         		else if ($diff == 0) {
         			$creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $feeTaxAmount);
         		}*/
     }
     return $this;
 }
Example #19
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $invoice)
 {
     $order = $invoice->getOrder();
     $amount = $order->getMspCashondelivery();
     $baseAmount = $order->getMspBaseCashondelivery();
     $invoice->setGrandTotal($invoice->getGrandTotal() + $amount);
     $invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseAmount);
     $invoice->setMspCashondelivery($amount);
     $invoice->setMspBaseCashondelivery($baseAmount);
     return $this;
 }
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $creditmemo->setWebposDiscountAmount(0);
     $orderWebposDiscount = $creditmemo->getOrder()->getWebposDiscountAmount();
     if ($orderWebposDiscount) {
         $creditmemo->setWebposDiscountAmount($orderWebposDiscount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $orderWebposDiscount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $orderWebposDiscount);
     }
     return $this;
 }
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $amount = number_format($order->getGiftCardValue(), 2);
     if ($amount) {
         if ($creditmemo->getGrandTotal() - $amount < 0) {
             $creditmemo->setGrandTotal(number_format(0.0));
             $creditmemo->setBaseGrandTotal(number_format(0.0));
         } else {
             $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $amount);
             $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $amount);
         }
     }
     return $this;
 }
Example #22
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $amount = $this->_giftWrapAmount($creditmemo->getOrder());
     $creditmemo->setGiftWrapAmount($amount);
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $amount);
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $amount);
     return $this;
 }
Example #23
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $baseDiscount = $order->getBaseLuckydrawDiscount();
     $discount = $order->getLuckydrawDiscount();
     if (floatval($baseDiscount)) {
         $creditmemo->setBaseLuckydrawDiscount($baseDiscount);
         $creditmemo->setLuckydrawDiscount($discount);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseDiscount);
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $discount);
     }
     return $this;
 }
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $feeAmountLeft = $order->getFeeAmountInvoiced() - $order->getFeeAmountRefunded();
     $basefeeAmountLeft = $order->getBaseFeeAmountInvoiced() - $order->getBaseFeeAmountRefunded();
     if ($basefeeAmountLeft > 0) {
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $feeAmountLeft);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $basefeeAmountLeft);
         $creditmemo->setFeeAmount($feeAmountLeft);
         $creditmemo->setBaseFeeAmount($basefeeAmountLeft);
     }
     return $this;
 }
Example #25
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $creditmemo->setRewardpointsInvitedDiscount(0);
     $creditmemo->setRewardpointsInvitedBaseDiscount(0);
     $order = $creditmemo->getOrder();
     $totalDiscountAmount = 0;
     $baseTotalDiscountAmount = 0;
     if ($this->isLast($creditmemo)) {
         $baseTotalDiscountAmount = $order->getRewardpointsInvitedBaseDiscount();
         $totalDiscountAmount = $order->getRewardpointsInvitedDiscount();
         foreach ($order->getCreditmemosCollection() as $existedCreditmemo) {
             if ($baseTotalDiscountAmount > 0.0001) {
                 $baseTotalDiscountAmount -= $existedCreditmemo->getRewardpointsInvitedBaseDiscount();
                 $totalDiscountAmount -= $existedCreditmemo->getRewardpointsInvitedDiscount();
             }
         }
     } else {
         foreach ($creditmemo->getAllItems() as $item) {
             $orderItem = $item->getOrderItem();
             if ($orderItem->isDummy()) {
                 continue;
             }
             $orderItemDiscount = (double) $orderItem->getRewardpointsInvitedDiscount();
             $baseOrderItemDiscount = (double) $orderItem->getRewardpointsInvitedBaseDiscount();
             $orderItemQty = $orderItem->getQtyOrdered();
             if ($orderItemDiscount && $orderItemQty) {
                 $discount = $creditmemo->roundPrice($orderItemDiscount / $orderItemQty * $item->getQty(), 'regular', true);
                 $baseDiscount = $creditmemo->roundPrice($baseOrderItemDiscount / $orderItemQty * $item->getQty(), 'base', true);
                 $item->setRewardpointsInvitedDiscount($discount);
                 $item->setRewardpointsInvitedBaseDiscount($baseDiscount);
                 $totalDiscountAmount += $discount;
                 $baseTotalDiscountAmount += $baseDiscount;
             }
         }
     }
     $creditmemo->setRewardpointsInvitedDiscount($totalDiscountAmount);
     $creditmemo->setRewardpointsInvitedBaseDiscount($baseTotalDiscountAmount);
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $totalDiscountAmount);
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $baseTotalDiscountAmount);
     return $this;
 }
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     if ($order->getPayment()->getMethodInstance()->getCode() != 'Balticode_Cashondelivery') {
         return $this;
     }
     $creditmemoBaseGrandTotal = $creditmemo->getBaseGrandTotal();
     $creditmemoGrandTotal = $creditmemo->getGrandTotal();
     $baseCodFeeRefunded = $order->getBaseCodFeeRefunded();
     $codFeeRefunded = $order->getCodFeeRefunded();
     $baseCodFeeInvoiced = $order->getBaseCodFeeInvoiced();
     $codFeeInvoiced = $order->getCodFeeInvoiced();
     $baseCodFeeToRefund = abs($baseCodFeeInvoiced - $baseCodFeeRefunded);
     $codFeeToRefund = abs($codFeeInvoiced - $codFeeRefunded);
     if ($baseCodFeeToRefund <= 0) {
         return $this;
     }
     $creditmemo->setBaseGrandTotal($creditmemoBaseGrandTotal + $baseCodFeeToRefund)->setGrandTotal($creditmemoGrandTotal + $codFeeToRefund)->setBaseCodFee($baseCodFeeToRefund)->setCodFee($codFeeToRefund);
     $order->setBaseCodFeeRefunded($baseCodFeeRefunded + $baseCodFeeToRefund)->setCodFeeRefunded($codFeeRefunded + $codFeeToRefund);
     return $this;
 }
 /**
  * Dispatch order and update planning
  *
  */
 protected function _afterSave()
 {
     parent::_afterSave();
     $order = $this->getOrder();
     //plan update for ordered and reserved qty for products
     foreach ($this->getAllItems() as $item) {
         $productId = $item->getProductId();
         mage::helper('BackgroundTask')->AddTask('Update stock for product ' . $productId . ' (from credit memo aftersave)', 'purchase', 'UpdateProductStock', $productId);
     }
     //dispatch order in order preparation tabs
     mage::helper('BackgroundTask')->AddTask('Dispatch order #' . $order->getId(), 'Orderpreparation', 'dispatchOrder', $order->getId());
 }
Example #28
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $order->getDesconto());
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $order->getBaseDesconto());
     return $this;
 }
Example #29
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $cm)
 {
     $order = $cm->getOrder();
     if ($order->getPayment()->getMethodInstance()->getCode() != 'cashondelivery') {
         return $this;
     }
     $baseCmTotal = $cm->getBaseGrandTotal();
     $cmTotal = $cm->getGrandTotal();
     $baseCodFeeCredited = $order->getBaseCodFeeCredited();
     $codFeeCredited = $order->getCodFeeCredited();
     $baseCodFeeInvoiced = $order->getBaseCodFeeInvoiced();
     $codFeeInvoiced = $order->getCodFeeInvoiced();
     if ($cm->getInvoice()) {
         $invoice = $cm->getInvoice();
         $baseCodFeeToCredit = $invoice->getBaseCodFee();
         $codFeeToCredit = $invoice->getCodFee();
     } else {
         $baseCodFeeToCredit = $baseCodFeeInvoiced;
         $codFeeToCredit = $codFeeInvoiced;
     }
     if (!$baseCodFeeToCredit > 0) {
         return $this;
     }
     // Subtracting invoiced COD fee from Credit memo total
     //$cm->setBaseGrandTotal($baseCmTotal-$baseCodFeeToCredit);
     //$cm->setGrandTotal($cmTotal-$codFeeToCredit);
     //$cm->setBaseCodFee($baseCodFeeToCredit);
     //$cm->setCodFee($codFeeToCredit);
     //$order->setBaseCodFeeCredited($baseCodFeeCredited+$baseCodFeeToCredit);
     //$order->setCodFeeCredited($codFeeCredited+$baseCodFeeToCredit);
     return $this;
 }
Example #30
0
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     $creditpointAmountLeft = $order->getCreditpointAmountInvoiced() - $order->getCreditpointAmountRefunded();
     $basecreditpointAmountLeft = $order->getBaseCreditpointAmountInvoiced() - $order->getBaseCreditpointAmountRefunded();
     if ($basecreditpointAmountLeft > 0) {
         //customer redeemed discount so we are subtracting the value from total
         $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $creditpointAmountLeft);
         $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $basecreditpointAmountLeft);
         $creditmemo->setCreditpointAmount($creditpointAmountLeft);
         $creditmemo->setBaseCreditpointAmount($basecreditpointAmountLeft);
     }
     return $this;
 }