![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales/Block/Adminhtml/Order/Creditmemo/Create/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create; /** * Adminhtml credit memo items grid * * @api * @since 100.0.2 */ class Items extends \Magento\Sales\Block\Adminhtml\Items\AbstractItems { /** * @var bool */ protected $_canReturnToStock; /** * Sales data * * @var \Magento\Sales\Helper\Data */ protected $_salesData; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry * @param \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration * @param \Magento\Framework\Registry $registry * @param \Magento\Sales\Helper\Data $salesData * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration, \Magento\Framework\Registry $registry, \Magento\Sales\Helper\Data $salesData, array $data = [] ) { $this->_salesData = $salesData; parent::__construct($context, $stockRegistry, $stockConfiguration, $registry, $data); } /** * Prepare child blocks * * @return $this */ protected function _prepareLayout() { $onclick = "submitAndReloadArea($('creditmemo_item_container'),'" . $this->getUpdateUrl() . "')"; $this->addChild( 'update_button', \Magento\Backend\Block\Widget\Button::class, ['label' => __('Update Qty\'s'), 'class' => 'update-button', 'onclick' => $onclick] ); if ($this->getCreditmemo()->canRefund()) { if ($this->getCreditmemo()->getInvoice() && $this->getCreditmemo()->getInvoice()->getTransactionId()) { $this->addChild( 'submit_button', \Magento\Backend\Block\Widget\Button::class, [ 'label' => __('Refund'), 'class' => 'save submit-button refund primary', 'onclick' => 'disableElements(\'submit-button\');submitCreditMemo()' ] ); } $this->addChild( 'submit_offline', \Magento\Backend\Block\Widget\Button::class, [ 'label' => __('Refund Offline'), 'class' => 'save submit-button primary', 'onclick' => 'disableElements(\'submit-button\');submitCreditMemoOffline()' ] ); } else { $this->addChild( 'submit_button', \Magento\Backend\Block\Widget\Button::class, [ 'label' => __('Refund Offline'), 'class' => 'save submit-button primary', 'onclick' => 'disableElements(\'submit-button\');submitCreditMemoOffline()' ] ); } return parent::_prepareLayout(); } /** * Retrieve invoice order * * @return \Magento\Sales\Model\Order */ public function getOrder() { return $this->getCreditmemo()->getOrder(); } /** * Retrieve source * * @return \Magento\Sales\Model\Order\Creditmemo */ public function getSource() { return $this->getCreditmemo(); } /** * Retrieve order totals block settings * * @return array */ public function getOrderTotalData() { return []; } /** * Retrieve order total bar block data * * @return array */ public function getOrderTotalbarData() { $this->setPriceDataObject($this->getOrder()); $totalBarData = []; $totalBarData[] = [__('Paid Amount'), $this->displayPriceAttribute('total_invoiced'), false]; $totalBarData[] = [__('Refund Amount'), $this->displayPriceAttribute('total_refunded'), false]; $totalBarData[] = [__('Shipping Amount'), $this->displayPriceAttribute('shipping_invoiced'), false]; $totalBarData[] = [__('Shipping Refund'), $this->displayPriceAttribute('shipping_refunded'), false]; $totalBarData[] = [__('Order Grand Total'), $this->displayPriceAttribute('grand_total'), true]; return $totalBarData; } /** * Retrieve credit memo model instance * * @return \Magento\Sales\Model\Order\Creditmemo */ public function getCreditmemo() { return $this->_coreRegistry->registry('current_creditmemo'); } /** * Check if allow to edit qty * * @return bool */ public function canEditQty() { if ($this->getCreditmemo()->getOrder()->getPayment()->canRefund()) { return $this->getCreditmemo()->getOrder()->getPayment()->canRefundPartialPerInvoice(); } return true; } /** * Get update button html * * @return string */ public function getUpdateButtonHtml() { return $this->getChildHtml('update_button'); } /** * Get update url * * @return string */ public function getUpdateUrl() { return $this->getUrl( 'sales/*/updateQty', [ 'order_id' => $this->getCreditmemo()->getOrderId(), 'invoice_id' => $this->getRequest()->getParam('invoice_id', null) ] ); } /** * Whether to show 'Return to stock' column in creaditmemo grid * * @return bool */ public function canReturnItemsToStock() { if ($this->_canReturnToStock === null) { $this->_canReturnToStock = $this->canReturnToStock(); if ($this->_canReturnToStock) { $canReturnToStock = false; foreach ($this->getCreditmemo()->getAllItems() as $item) { $productId = $item->getOrderItem()->getProductId(); $stockItem = $this->stockRegistry->getStockItem( $productId, $item->getOrderItem()->getStore()->getWebsiteId() ); if ($stockItem->getManageStock()) { $canReturnToStock = true; $item->setCanReturnToStock($canReturnToStock); } else { $item->setCanReturnToStock(false); } } $this->_canReturnToStock = $canReturnToStock; $this->getCreditmemo()->getOrder()->setCanReturnToStock($this->_canReturnToStock); } } return $this->_canReturnToStock; } /** * Check allow to send new credit memo email * * @return bool */ public function canSendCreditmemoEmail() { return $this->_salesData->canSendNewCreditmemoEmail($this->getOrder()->getStore()->getId()); } }