Comment.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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\Creditmemo;
  7. use Magento\Sales\Model\ResourceModel\EntityAbstract;
  8. use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot;
  9. use Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface;
  10. /**
  11. * Flat sales order creditmemo comment resource
  12. *
  13. * @author Magento Core Team <core@magentocommerce.com>
  14. */
  15. class Comment extends EntityAbstract implements CreditmemoCommentResourceInterface
  16. {
  17. /**
  18. * Event prefix
  19. *
  20. * @var string
  21. */
  22. protected $_eventPrefix = 'sales_order_creditmemo_comment_resource';
  23. /**
  24. * Validator
  25. *
  26. * @var \Magento\Sales\Model\Order\Creditmemo\Comment\Validator
  27. */
  28. protected $validator;
  29. /**
  30. * @param \Magento\Framework\Model\ResourceModel\Db\Context $context
  31. * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute
  32. * @param \Magento\SalesSequence\Model\Manager $sequenceManager
  33. * @param Snapshot $entitySnapshot
  34. * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite
  35. * @param \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator
  36. * @param string $connectionName
  37. */
  38. public function __construct(
  39. \Magento\Framework\Model\ResourceModel\Db\Context $context,
  40. Snapshot $entitySnapshot,
  41. \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite,
  42. \Magento\Sales\Model\ResourceModel\Attribute $attribute,
  43. \Magento\SalesSequence\Model\Manager $sequenceManager,
  44. \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator,
  45. $connectionName = null
  46. ) {
  47. $this->validator = $validator;
  48. parent::__construct(
  49. $context,
  50. $entitySnapshot,
  51. $entityRelationComposite,
  52. $attribute,
  53. $sequenceManager,
  54. $connectionName
  55. );
  56. }
  57. /**
  58. * Model initialization
  59. *
  60. * @return void
  61. */
  62. protected function _construct()
  63. {
  64. $this->_init('sales_creditmemo_comment', 'entity_id');
  65. }
  66. /**
  67. * Performs validation before save
  68. *
  69. * @param \Magento\Framework\Model\AbstractModel $object
  70. * @return $this
  71. * @throws \Magento\Framework\Exception\LocalizedException
  72. */
  73. protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
  74. {
  75. /**@var $object \Magento\Sales\Model\Order\Creditmemo\Comment*/
  76. if (!$object->getParentId() && $object->getCreditmemo()) {
  77. $object->setParentId($object->getCreditmemo()->getId());
  78. }
  79. parent::_beforeSave($object);
  80. $errors = $this->validator->validate($object);
  81. if (!empty($errors)) {
  82. throw new \Magento\Framework\Exception\LocalizedException(
  83. __("Cannot save comment:\n%1", implode("\n", $errors))
  84. );
  85. }
  86. return $this;
  87. }
  88. }