SequenceCreatorObserver.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\SalesSequence\Observer;
  7. use Magento\Framework\Event\Observer as EventObserver;
  8. use Magento\SalesSequence\Model\Builder;
  9. use Magento\SalesSequence\Model\EntityPool;
  10. use Magento\SalesSequence\Model\Config;
  11. use Magento\Framework\Event\ObserverInterface;
  12. /**
  13. * Class CreateSequence
  14. */
  15. class SequenceCreatorObserver implements ObserverInterface
  16. {
  17. /**
  18. * @var Builder
  19. */
  20. private $sequenceBuilder;
  21. /**
  22. * @var EntityPool
  23. */
  24. private $entityPool;
  25. /**
  26. * @var Config
  27. */
  28. private $sequenceConfig;
  29. /**
  30. * Initialization
  31. *
  32. * @param Builder $sequenceBuilder
  33. * @param EntityPool $entityPool
  34. * @param Config $sequenceConfig
  35. */
  36. public function __construct(
  37. Builder $sequenceBuilder,
  38. EntityPool $entityPool,
  39. Config $sequenceConfig
  40. ) {
  41. $this->sequenceBuilder = $sequenceBuilder;
  42. $this->entityPool = $entityPool;
  43. $this->sequenceConfig = $sequenceConfig;
  44. }
  45. /**
  46. * Observer triggered during adding new store
  47. *
  48. * @param EventObserver $observer
  49. *
  50. * @return $this|void
  51. * @throws \Magento\Framework\Exception\AlreadyExistsException
  52. */
  53. public function execute(EventObserver $observer)
  54. {
  55. $storeId = $observer->getData('store')->getId();
  56. foreach ($this->entityPool->getEntities() as $entityType) {
  57. $this->sequenceBuilder->setPrefix($storeId)
  58. ->setSuffix($this->sequenceConfig->get('suffix'))
  59. ->setStartValue($this->sequenceConfig->get('startValue'))
  60. ->setStoreId($storeId)
  61. ->setStep($this->sequenceConfig->get('step'))
  62. ->setWarningValue($this->sequenceConfig->get('warningValue'))
  63. ->setMaxValue($this->sequenceConfig->get('maxValue'))
  64. ->setEntityType($entityType)
  65. ->create();
  66. }
  67. return $this;
  68. }
  69. }