Profile.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\SalesSequence\Model\ResourceModel;
  7. use Magento\Framework\Model\ResourceModel\Db\Context as DatabaseContext;
  8. use Magento\SalesSequence\Model\ProfileFactory;
  9. /**
  10. * Class Profile represents profile data for sequence as prefix, suffix, start value etc.
  11. *
  12. * @api
  13. * @since 100.0.2
  14. */
  15. class Profile extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
  16. {
  17. /**
  18. * Event prefix
  19. *
  20. * @var string
  21. */
  22. protected $_eventPrefix = 'sales_sequence_profile';
  23. /**
  24. * Model initialization
  25. *
  26. * @return void
  27. */
  28. protected function _construct()
  29. {
  30. $this->_init('sales_sequence_profile', 'profile_id');
  31. }
  32. /**
  33. * @var ProfileFactory
  34. */
  35. protected $profileFactory;
  36. /**
  37. * @param DatabaseContext $context
  38. * @param ProfileFactory $profileFactory
  39. * @param string $connectionName
  40. */
  41. public function __construct(
  42. DatabaseContext $context,
  43. ProfileFactory $profileFactory,
  44. $connectionName = null
  45. ) {
  46. $this->profileFactory = $profileFactory;
  47. parent::__construct($context, $connectionName);
  48. }
  49. /**
  50. * Load active profile
  51. *
  52. * @param int $metadataId
  53. * @return \Magento\SalesSequence\Model\Profile
  54. * @throws \Magento\Framework\Exception\LocalizedException
  55. */
  56. public function loadActiveProfile($metadataId)
  57. {
  58. $profile = $this->profileFactory->create();
  59. $connection = $this->getConnection();
  60. $bind = ['meta_id' => $metadataId];
  61. $select = $connection->select()
  62. ->from($this->getMainTable(), ['profile_id'])
  63. ->where('meta_id = :meta_id')
  64. ->where('is_active = 1');
  65. $profileId = $connection->fetchOne($select, $bind);
  66. if ($profileId) {
  67. $this->load($profile, $profileId);
  68. }
  69. return $profile;
  70. }
  71. }