11 use \Magento\Sales\Model\Order\CreditmemoFactory;
107 parent::__construct(
$data);
117 $data = $this->getCreditmemo();
119 $data = $this->backendSession->getFormData(
true);
122 if (isset(
$data[
'items'])) {
123 $qtys =
$data[
'items'];
141 $this->messageManager->addErrorMessage(
__(
'The order no longer exists.'));
148 if (!
$order->canCreditmemo()) {
149 $this->messageManager->addErrorMessage(
__(
'We can\'t create credit memo for the order.'));
161 $invoiceId = $this->getInvoiceId();
163 $invoice = $this->invoiceRepository->get($invoiceId);
181 $creditmemoId = $this->getCreditmemoId();
182 $orderId = $this->getOrderId();
184 $creditmemo = $this->creditmemoRepository->get($creditmemoId);
186 $data = $this->getCreditmemo();
187 $order = $this->orderFactory->create()->load($orderId);
198 foreach ($savedData as $orderItemId => $itemData) {
199 if (isset($itemData[
'qty'])) {
200 $qtys[$orderItemId] = $itemData[
'qty'];
202 if (isset($itemData[
'back_to_stock'])) {
203 $backToStock[$orderItemId] =
true;
206 $data[
'qtys'] = $qtys;
217 foreach (
$creditmemo->getAllItems() as $creditmemoItem) {
220 if ($parentId && isset($backToStock[$parentId]) && $backToStock[$parentId]) {
221 $creditmemoItem->setBackToStock(
true);
223 $creditmemoItem->setBackToStock(
true);
224 }
elseif (empty($savedData)) {
225 $creditmemoItem->setBackToStock(
226 $this->stockConfiguration->isAutoReturnEnabled()
229 $creditmemoItem->setBackToStock(
false);
234 $this->eventManager->dispatch(
235 'adminhtml_sales_order_creditmemo_register_before',
236 [
'creditmemo' =>
$creditmemo,
'input' => $this->getCreditmemo()]
239 $this->registry->register(
'current_creditmemo',
$creditmemo);
elseif(isset( $params[ 'redirect_parent']))
__construct(CreditmemoRepositoryInterface $creditmemoRepository, CreditmemoFactory $creditmemoFactory, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Sales\Api\InvoiceRepositoryInterface $invoiceRepository, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Backend\Model\Session $backendSession, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\Framework\Registry $registry, \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration, array $data=[])