Abandoned.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace Dotdigitalgroup\Email\Model;
  3. class Abandoned extends \Magento\Framework\Model\AbstractModel
  4. {
  5. /**
  6. * @var ResourceModel\Abandoned\Collection
  7. */
  8. public $abandonedCollectionFactory;
  9. /**
  10. * @var \Magento\Framework\Stdlib\DateTime
  11. */
  12. private $dateTime;
  13. /**
  14. * Abandoned constructor.
  15. *
  16. * @param \Magento\Framework\Model\Context $context
  17. * @param \Magento\Framework\Registry $registry
  18. * @param ResourceModel\Abandoned\CollectionFactory $abandoned
  19. * @param \Magento\Framework\Stdlib\DateTime $dateTime
  20. * @param array $data
  21. * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
  22. * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
  23. */
  24. public function __construct(
  25. \Magento\Framework\Model\Context $context,
  26. \Magento\Framework\Registry $registry,
  27. \Dotdigitalgroup\Email\Model\ResourceModel\Abandoned\CollectionFactory $abandoned,
  28. \Magento\Framework\Stdlib\DateTime $dateTime,
  29. array $data = [],
  30. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  31. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null
  32. ) {
  33. $this->abandonedCollectionFactory = $abandoned;
  34. $this->dateTime = $dateTime;
  35. parent::__construct(
  36. $context,
  37. $registry,
  38. $resource,
  39. $resourceCollection,
  40. $data
  41. );
  42. }
  43. /**
  44. * Constructor.
  45. *
  46. * @return null
  47. */
  48. public function _construct()
  49. {
  50. parent::_construct();
  51. $this->_init(\Dotdigitalgroup\Email\Model\ResourceModel\Abandoned::class);
  52. }
  53. /**
  54. * Prepare data to be saved to database.
  55. *
  56. * @return $this
  57. */
  58. public function beforeSave()
  59. {
  60. parent::beforeSave();
  61. if ($this->isObjectNew()) {
  62. $this->setCreatedAt($this->dateTime->formatDate(true));
  63. }
  64. $this->setUpdatedAt($this->dateTime->formatDate(true));
  65. return $this;
  66. }
  67. /**
  68. * @param int $quoteId
  69. * @return \Dotdigitalgroup\Email\Model\Abandoned
  70. */
  71. public function loadByQuoteId($quoteId)
  72. {
  73. $collection = $this->abandonedCollectionFactory->create()
  74. ->addFieldToFilter('quote_id', $quoteId)
  75. ->setPageSize(1);
  76. return $collection->getFirstItem();
  77. }
  78. }