SequenceCreator.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\SalesSequence\Setup;
  7. use Magento\SalesSequence\Model\Builder;
  8. use Magento\SalesSequence\Model\Config as SequenceConfig;
  9. use Magento\SalesSequence\Model\EntityPool;
  10. /**
  11. * Initial creating sequences.
  12. */
  13. class SequenceCreator
  14. {
  15. /**
  16. * Sales setup factory
  17. *
  18. * @var EntityPool
  19. */
  20. private $entityPool;
  21. /**
  22. * @var Builder
  23. */
  24. private $sequenceBuilder;
  25. /**
  26. * @var SequenceConfig
  27. */
  28. private $sequenceConfig;
  29. /**
  30. * @param EntityPool $entityPool
  31. * @param Builder $sequenceBuilder
  32. * @param SequenceConfig $sequenceConfig
  33. */
  34. public function __construct(
  35. EntityPool $entityPool,
  36. Builder $sequenceBuilder,
  37. SequenceConfig $sequenceConfig
  38. ) {
  39. $this->entityPool = $entityPool;
  40. $this->sequenceBuilder = $sequenceBuilder;
  41. $this->sequenceConfig = $sequenceConfig;
  42. }
  43. /**
  44. * Creates sales sequences.
  45. *
  46. * @throws \Magento\Framework\Exception\AlreadyExistsException
  47. */
  48. public function create()
  49. {
  50. $defaultStoreIds = [0, 1];
  51. foreach ($defaultStoreIds as $storeId) {
  52. foreach ($this->entityPool->getEntities() as $entityType) {
  53. $this->sequenceBuilder->setPrefix($this->sequenceConfig->get('prefix'))
  54. ->setSuffix($this->sequenceConfig->get('suffix'))
  55. ->setStartValue($this->sequenceConfig->get('startValue'))
  56. ->setStoreId($storeId)
  57. ->setStep($this->sequenceConfig->get('step'))
  58. ->setWarningValue($this->sequenceConfig->get('warningValue'))
  59. ->setMaxValue($this->sequenceConfig->get('maxValue'))
  60. ->setEntityType($entityType)->create();
  61. }
  62. }
  63. }
  64. }