mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
- removed @since 2.0.0 as it is a base release - updated version in @since and @deprecated tag taking into account all patch releases
67 lines
1.9 KiB
PHP
67 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Sales\Model\ResourceModel\Order;
|
|
|
|
use Magento\Framework\App\ResourceConnection as AppResource;
|
|
use Magento\SalesSequence\Model\Manager;
|
|
use Magento\Sales\Model\ResourceModel\Attribute;
|
|
use Magento\Sales\Model\ResourceModel\EntityAbstract as SalesResource;
|
|
use Magento\Sales\Model\Spi\ShipmentResourceInterface;
|
|
|
|
/**
|
|
* Flat sales order shipment resource
|
|
*
|
|
* @author Magento Core Team <core@magentocommerce.com>
|
|
*/
|
|
class Shipment extends SalesResource implements ShipmentResourceInterface
|
|
{
|
|
/**
|
|
* Event prefix
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $_eventPrefix = 'sales_order_shipment_resource';
|
|
|
|
/**
|
|
* Fields that should be serialized before persistence
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $_serializableFields = ['packages' => [[], []]];
|
|
|
|
/**
|
|
* Model initialization
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function _construct()
|
|
{
|
|
$this->_init('sales_shipment', 'entity_id');
|
|
}
|
|
|
|
/**
|
|
* Perform actions before object save
|
|
*
|
|
* @param \Magento\Framework\Model\AbstractModel|\Magento\Framework\DataObject $object
|
|
* @return $this
|
|
* @throws \Magento\Framework\Exception\LocalizedException
|
|
*/
|
|
protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
|
|
{
|
|
/** @var \Magento\Sales\Model\Order\Shipment $object */
|
|
if ((!$object->getId() || null !== $object->getItems()) && !count($object->getAllItems())) {
|
|
throw new \Magento\Framework\Exception\LocalizedException(__('We cannot create an empty shipment.'));
|
|
}
|
|
|
|
if (!$object->getOrderId() && $object->getOrder()) {
|
|
$object->setOrderId($object->getOrder()->getId());
|
|
$object->setShippingAddressId($object->getOrder()->getShippingAddress()->getId());
|
|
}
|
|
|
|
return parent::_beforeSave($object);
|
|
}
|
|
}
|