123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?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);
- }
- }
|