Automation.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace Dotdigitalgroup\Email\Model\ResourceModel;
  3. use Dotdigitalgroup\Email\Setup\Schema;
  4. class Automation extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
  5. {
  6. /**
  7. * @var \Dotdigitalgroup\Email\Helper\Data
  8. */
  9. public $helper;
  10. /**
  11. * Initialize resource.
  12. *
  13. * @return null
  14. */
  15. public function _construct()
  16. {
  17. $this->_init(Schema::EMAIL_AUTOMATION_TABLE, 'id');
  18. }
  19. /**
  20. * @param \Magento\Framework\Model\ResourceModel\Db\Context $context
  21. * @param \Dotdigitalgroup\Email\Helper\Data $data
  22. */
  23. public function __construct(
  24. \Magento\Framework\Model\ResourceModel\Db\Context $context,
  25. \Dotdigitalgroup\Email\Helper\Data $data
  26. ) {
  27. $this->helper = $data;
  28. parent::__construct($context);
  29. }
  30. /**
  31. * update status for automation entries
  32. *
  33. * @param array $contactIds
  34. * @param string $status
  35. * @param string $message
  36. * @param string $updatedAt
  37. * @param string $type
  38. *
  39. * @return null
  40. */
  41. public function updateStatus($contactIds, $status, $message, $updatedAt, $type)
  42. {
  43. $bind = [
  44. 'enrolment_status' => $status,
  45. 'message' => $message,
  46. 'updated_at' => $updatedAt,
  47. ];
  48. $where = ['id IN(?)' => $contactIds];
  49. $num = $this->getConnection()->update(
  50. $this->getTable(Schema::EMAIL_AUTOMATION_TABLE),
  51. $bind,
  52. $where
  53. );
  54. //number of updated records
  55. if ($num) {
  56. $this->helper->log(
  57. 'Automation type : ' . $type . ', updated : ' . $num
  58. );
  59. }
  60. }
  61. /**
  62. * @param array $ids
  63. * @param string $date
  64. * @param bool $enrolmentStatus
  65. */
  66. public function update($ids, $date, $enrolmentStatus = false)
  67. {
  68. $bind = ['updated_at' => $date];
  69. if ($enrolmentStatus) {
  70. $bind['enrolment_status'] = $enrolmentStatus;
  71. }
  72. $where = ['id IN(?)' => $ids];
  73. $this->getConnection()->update(
  74. $this->getTable(Schema::EMAIL_AUTOMATION_TABLE),
  75. $bind,
  76. $where
  77. );
  78. }
  79. }