![]() 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/Invoice/Create/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Block\Adminhtml\Order\Invoice\Create; /** * Adminhtml invoice items grid * * @api * @since 100.0.2 */ class Items extends \Magento\Sales\Block\Adminhtml\Items\AbstractItems { /** * Disable submit button * * @var bool */ protected $_disableSubmitButton = false; /** * 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 _beforeToHtml() { $onclick = "submitAndReloadArea($('invoice_item_container'),'" . $this->getUpdateUrl() . "')"; $this->addChild( 'update_button', \Magento\Backend\Block\Widget\Button::class, ['class' => 'update-button', 'label' => __('Update Qty\'s'), 'onclick' => $onclick] ); $this->_disableSubmitButton = true; $submitButtonClass = ' disabled'; foreach ($this->getInvoice()->getAllItems() as $item) { /** * @see bug #14839 */ if ($item->getQty()/* || $this->getSource()->getData('base_grand_total')*/) { $this->_disableSubmitButton = false; $submitButtonClass = ''; break; } } if ($this->getOrder()->getForcedShipmentWithInvoice()) { $_submitLabel = __('Submit Invoice and Shipment'); } else { $_submitLabel = __('Submit Invoice'); } $this->addChild( 'submit_button', \Magento\Backend\Block\Widget\Button::class, [ 'label' => $_submitLabel, 'class' => 'save submit-button primary' . $submitButtonClass, 'onclick' => 'disableElements(\'submit-button\');$(\'edit_form\').submit()', 'disabled' => $this->_disableSubmitButton ] ); return parent::_prepareLayout(); } /** * Get is submit button disabled or not * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getDisableSubmitButton() { return $this->_disableSubmitButton; } /** * Retrieve invoice order * * @return \Magento\Sales\Model\Order */ public function getOrder() { return $this->getInvoice()->getOrder(); } /** * Retrieve source * * @return \Magento\Sales\Model\Order\Invoice */ public function getSource() { return $this->getInvoice(); } /** * Retrieve invoice model instance * * @return \Magento\Sales\Model\Order\Invoice */ public function getInvoice() { return $this->_coreRegistry->registry('current_invoice'); } /** * Retrieve order totals block settings * * @return array */ public function getOrderTotalData() { return []; } /** * Retrieve order totalbar block data * * @return array */ public function getOrderTotalbarData() { $this->setPriceDataObject($this->getInvoice()->getOrder()); $totalbarData = []; $totalbarData[] = [__('Paid Amount'), $this->displayPriceAttribute('amount_paid'), false]; $totalbarData[] = [__('Refund Amount'), $this->displayPriceAttribute('amount_refunded'), false]; $totalbarData[] = [__('Shipping Amount'), $this->displayPriceAttribute('shipping_captured'), false]; $totalbarData[] = [__('Shipping Refund'), $this->displayPriceAttribute('shipping_refunded'), false]; $totalbarData[] = [__('Order Grand Total'), $this->displayPriceAttribute('grand_total'), true]; return $totalbarData; } /** * Format price * * @param float $price * @return string */ public function formatPrice($price) { return $this->getInvoice()->getOrder()->formatPrice($price); } /** * 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->getInvoice()->getOrderId()]); } /** * Check shipment availability for current invoice * * @return bool */ public function canCreateShipment() { foreach ($this->getInvoice()->getAllItems() as $item) { if ($item->getOrderItem()->getQtyToShip()) { return true; } } return false; } /** * Check if qty can be edited * * @return bool */ public function canEditQty() { if ($this->getInvoice()->getOrder()->getPayment()->canCapture()) { return $this->getInvoice()->getOrder()->getPayment()->canCapturePartial(); } return true; } /** * Check if capture operation is allowed in ACL * * @return bool */ public function isCaptureAllowed() { return $this->_authorization->isAllowed('Magento_Sales::capture'); } /** * Check if invoice can be captured * * @return bool */ public function canCapture() { return $this->getInvoice()->canCapture(); } /** * Check if gateway is associated with invoice order * * @return bool */ public function isGatewayUsed() { return $this->getInvoice()->getOrder()->getPayment()->getMethodInstance()->isGateway(); } /** * Check if new invoice emails can be sent * * @return bool */ public function canSendInvoiceEmail() { return $this->_salesData->canSendNewInvoiceEmail($this->getOrder()->getStore()->getId()); } }