Zend certified PHP/Magento developer

Order status not set to closed after refunding giftcard

The orders status gets updated to “closed” after I do a full refund for every order except for those paid using a gift card.I am able to manually set the order to “closed” using the following code:

$order->setData('state', 'complete');
$order->setStatus('complete');
$history = $order->addStatusHistoryComment('Manually set order to Complete.', false);
$history->setIsCustomerNotified(false);
$order->save();

This shows on the Magento Admin web too but right after, some event if triggered which sets the status back to “Completed”. I use the following code to process a refund to giftcards:

$creditmemo = $serviceOrder->prepareInvoiceCreditmemo($invoice,$data);
        $creditmemo->setRefundRequested(true)
                ->setShippingAmount($order['shipping_amount'])
                ->setGrandTotal($order['grand_total'])
                ->setOfflineRequested(false)
                ->load()->refund();
$transaction = Mage::getModel('core/resource_transaction');
        $transaction->addObject($creditmemo)
                ->addObject($creditmemo->getOrder())
                ->addObject($creditmemo->getInvoice())
                ->save();