示例#1
0
 /**
  * @param Mage_Sales_Model_Abstract $itemContainer
  * @return array
  */
 public function extractAdditionalParams(Mage_Sales_Model_Abstract $itemContainer = null)
 {
     $invoice = null;
     if ($itemContainer instanceof Mage_Sales_Model_Order_Invoice && $itemContainer) {
         $invoice = $itemContainer;
     } else {
         if ($itemContainer instanceof Mage_Sales_Block_Order_Creditmemo && $itemContainer) {
             $invoice = Mage::getModel('sales/order_invoice')->load($itemContainer->getInvoiceId());
         }
     }
     if ($invoice == null) {
         // if invoice is not set we load id hard from the request params
         $invoice = $this->getRefundHelper()->getInvoiceFromCreditMemoRequest();
     }
     $this->creditmemo = $this->getRefundHelper()->getCreditMemoFromRequest();
     if ($invoice instanceof Mage_Sales_Model_Order_Invoice) {
         $this->extractFromCreditMemoItems($invoice);
         // We dont extract from discount data for the moment, because partial refunds are a problem
         // $this->extractFromDiscountData($invoice);
         $this->extractFromInvoicedShippingMethod($invoice);
         $this->extractFromAdjustments($invoice);
         // Overwrite amount to fix Magentos rounding problems (eg +1ct)
         $this->additionalParams['AMOUNT'] = $this->amount;
     }
     return $this->additionalParams;
 }