Skip to content

Instantly share code, notes, and snippets.

@mcjwsk
Last active September 22, 2016 10:51
Show Gist options
  • Save mcjwsk/348170727b2eb5640d065b5a9f286836 to your computer and use it in GitHub Desktop.
Save mcjwsk/348170727b2eb5640d065b5a9f286836 to your computer and use it in GitHub Desktop.
<?php
require_once 'app/Mage.php';
Mage::app();
/** @var Enterprise_Rma_Model_Rma $rma */
$rma = Mage::getModel('enterprise_rma/rma')->load(135215);
$qtys = array();
/** @var Enterprise_Rma_Model_Item $item */
foreach ($rma->getItemsForDisplay() as $item) {
$id = $item->getData('order_item_id');
$qtys[$id] = $item->getData('qty_approved');
}
$data = array('qtys' => $qtys);
$orderId = $rma->getData('order_id');
$order = Mage::getModel('sales/order')->load($orderId);
/** @var Mage_Sales_Model_Service_Order $orderService */
$orderService = Mage::getModel('sales/service_order', $order);
/** @var Mage_Sales_Model_Order_Creditmemo $creditMemo */
$creditmemo = $orderService->prepareCreditmemo($data);
$creditmemo->setOfflineRequested(true);
$creditmemo->register()->save();
// Save creditmemo and related order, invoice in one transaction
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($creditmemo)
->addObject($order);
if ($creditmemo->getInvoice()) {
$transactionSave->addObject($creditmemo->getInvoice());
}
$transactionSave->save();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment