47 lines
1.3 KiB
PHP
Executable File
47 lines
1.3 KiB
PHP
Executable File
<?php
|
|
namespace JR\NetSuite\Plugin;
|
|
|
|
class SendEmailWhenRmaChanged
|
|
{
|
|
/**
|
|
* @var \JR\NetSuite\Model\ResourceModel\RmaQueue\CollectionFactory
|
|
*/
|
|
private $rmaQueueCollectionFactory;
|
|
|
|
/**
|
|
* @var \Mirasvit\Rma\Api\Service\Rma\RmaManagementInterface
|
|
*/
|
|
private $rmaManagement;
|
|
|
|
public function __construct(
|
|
\JR\NetSuite\Model\ResourceModel\RmaQueue\CollectionFactory $rmaQueueCollectionFactory,
|
|
\Mirasvit\Rma\Api\Service\Rma\RmaManagementInterface $rmaManagement
|
|
)
|
|
{
|
|
$this->rmaQueueCollectionFactory = $rmaQueueCollectionFactory;
|
|
$this->rmaManagement = $rmaManagement;
|
|
}
|
|
|
|
public function aroundOnRmaStatusChange(
|
|
\Mirasvit\Rma\Helper\Rma\Event $subject,
|
|
callable $proceed,
|
|
$rma
|
|
) {
|
|
// if RMA just created, do nothing
|
|
$rmaQueueCollection = $this->rmaQueueCollectionFactory->create();
|
|
$rmaQueueCollection->addFieldToFilter('status', 'processing');
|
|
|
|
$order = $this->rmaManagement->getOrder($rma);
|
|
|
|
foreach ($rmaQueueCollection as $rmaQueue) {
|
|
if ($rmaQueue->getOrderIncrementId() == $order->getRealorderId()) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
$result = $proceed($rma);
|
|
|
|
return $result;
|
|
}
|
|
}
|