History.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\ResourceModel\Order\Status;
  7. use Magento\Sales\Model\Order\Status\History\Validator;
  8. use Magento\Sales\Model\ResourceModel\EntityAbstract;
  9. use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot;
  10. use Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface;
  11. /**
  12. * Flat sales order status history resource
  13. *
  14. * @author Magento Core Team <core@magentocommerce.com>
  15. */
  16. class History extends EntityAbstract implements OrderStatusHistoryResourceInterface
  17. {
  18. /**
  19. * @var Validator
  20. */
  21. protected $validator;
  22. /**
  23. * @param \Magento\Framework\Model\ResourceModel\Db\Context $context
  24. * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute
  25. * @param \Magento\SalesSequence\Model\Manager $sequenceManager
  26. * @param Snapshot $entitySnapshot
  27. * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite
  28. * @param Validator $validator
  29. * @param string $connectionName
  30. */
  31. public function __construct(
  32. \Magento\Framework\Model\ResourceModel\Db\Context $context,
  33. Snapshot $entitySnapshot,
  34. \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite,
  35. \Magento\Sales\Model\ResourceModel\Attribute $attribute,
  36. \Magento\SalesSequence\Model\Manager $sequenceManager,
  37. Validator $validator,
  38. $connectionName = null
  39. ) {
  40. $this->validator = $validator;
  41. parent::__construct(
  42. $context,
  43. $entitySnapshot,
  44. $entityRelationComposite,
  45. $attribute,
  46. $sequenceManager,
  47. $connectionName
  48. );
  49. }
  50. /**
  51. * Event prefix
  52. *
  53. * @var string
  54. */
  55. protected $_eventPrefix = 'sales_order_status_history_resource';
  56. /**
  57. * Model initialization
  58. *
  59. * @return void
  60. */
  61. protected function _construct()
  62. {
  63. $this->_init('sales_order_status_history', 'entity_id');
  64. }
  65. /**
  66. * Perform actions before object save
  67. *
  68. * @param \Magento\Framework\Model\AbstractModel $object
  69. * @return $this
  70. * @throws \Magento\Framework\Exception\LocalizedException
  71. */
  72. protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
  73. {
  74. parent::_beforeSave($object);
  75. $warnings = $this->validator->validate($object);
  76. if (!empty($warnings)) {
  77. throw new \Magento\Framework\Exception\LocalizedException(
  78. __("Cannot save comment:\n%1", implode("\n", $warnings))
  79. );
  80. }
  81. return $this;
  82. }
  83. }