Example #1
0
 /**
  * Initialize creditmemo state based on requested parameters
  *
  * @param Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @param array $data
  */
 protected function _initCreditmemoData($creditmemo, $data)
 {
     if (isset($data['shipping_amount'])) {
         $creditmemo->setBaseShippingAmount((double) $data['shipping_amount']);
     }
     if (isset($data['adjustment_positive'])) {
         $creditmemo->setAdjustmentPositive($data['adjustment_positive']);
     }
     if (isset($data['adjustment_negative'])) {
         $creditmemo->setAdjustmentNegative($data['adjustment_negative']);
     }
 }
 /**
  * The grand total is explicitly set from the totalCredit value in the payload
  * Compute any adjustments necessary to make the credit memo total up properly
  *
  * @param Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @return Mage_Sales_Model_Order_Creditmemo
  */
 protected function _fixupTotals(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $creditmemo->setBaseShippingAmount(0.0)->setShippingAmount(0.0)->setBaseTaxAmount(0.0)->setTaxAmount(0.0);
     // totalCredit is passed as a negative number but the credit memo uses
     // positive numbers for refunds so use abs() to get rid of negative numbers
     $grandTotal = abs($this->_payload->getTotalCredit());
     $subTotal = $creditmemo->getBaseSubtotal();
     $creditmemo->setBaseGrandTotal($grandTotal);
     $creditmemo->setGrandTotal($grandTotal);
     if ($grandTotal < $subTotal) {
         $creditmemo->setAdjustmentNegative($subTotal - $grandTotal);
     } elseif ($grandTotal > $subTotal) {
         $creditmemo->setAdjustmentPositive($grandTotal - $subTotal);
     }
     return $creditmemo;
 }