| Current Path : /home/rtorresani/www/vendor/magento/module-sales/Block/Adminhtml/Order/Invoice/Create/ |
| Current File : //home/rtorresani/www/vendor/magento/module-sales/Block/Adminhtml/Order/Invoice/Create/Form.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Sales\Block\Adminhtml\Order\Invoice\Create;
use Magento\Framework\App\ObjectManager;
use Magento\Tax\Helper\Data as TaxHelper;
/**
* Adminhtml invoice create form
*
* @api
* @author Magento Core Team <core@magentocommerce.com>
* @since 100.0.2
*/
class Form extends \Magento\Sales\Block\Adminhtml\Order\AbstractOrder
{
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Framework\Registry $registry
* @param \Magento\Sales\Helper\Admin $adminHelper
* @param array $data
* @param TaxHelper|null $taxHelper
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Registry $registry,
\Magento\Sales\Helper\Admin $adminHelper,
array $data = [],
?TaxHelper $taxHelper = null
) {
$data['taxHelper'] = $taxHelper ?? ObjectManager::getInstance()->get(TaxHelper::class);
parent::__construct($context, $registry, $adminHelper, $data);
}
/**
* 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');
}
/**
* Get save url
*
* @return string
*/
public function getSaveUrl()
{
return $this->getUrl('sales/*/save', ['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 invoice shipment type mismatch
*
* @return bool
*/
public function hasInvoiceShipmentTypeMismatch()
{
foreach ($this->getInvoice()->getAllItems() as $item) {
if ($item->getOrderItem()->isChildrenCalculated() && !$item->getOrderItem()->isShipSeparately()) {
return true;
}
}
return false;
}
/**
* Check shipment availability for partially item
*
* @return bool
*/
public function canShipPartiallyItem()
{
$value = $this->getOrder()->getCanShipPartiallyItem();
if ($value !== null && !$value) {
return false;
}
return true;
}
/**
* Return forced creating of shipment flag
*
* @return int
*/
public function getForcedShipmentCreate()
{
return (int)$this->getOrder()->getForcedShipmentWithInvoice();
}
}