Skip to content

Commit 8c9787e

Browse files
committed
MAGETWO-35141: Sequence component pull request processing
1 parent 8cefd0e commit 8c9787e

File tree

5 files changed

+133
-36
lines changed

5 files changed

+133
-36
lines changed

app/code/Magento/Sales/Setup/InstallData.php

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -173,26 +173,5 @@ public function install(ModuleDataSetupInterface $setup, ModuleContextInterface
173173
['state = ?' => $state]
174174
);
175175
}
176-
$defaultEntityTypes = array_keys($salesSetup->getDefaultEntities());
177-
foreach ($defaultEntityTypes as $entityType) {
178-
$this->sequenceBuilder->setPrefix($this->sequenceConfig->get('prefix'))
179-
->setSuffix($this->sequenceConfig->get('suffix'))
180-
->setStartValue($this->sequenceConfig->get('startValue'))
181-
->setStoreId(0)
182-
->setStep($this->sequenceConfig->get('step'))
183-
->setWarningValue($this->sequenceConfig->get('warningValue'))
184-
->setMaxValue($this->sequenceConfig->get('maxValue'))
185-
->setEntityType($entityType)->create();
186-
}
187-
foreach ($defaultEntityTypes as $entityType) {
188-
$this->sequenceBuilder->setPrefix($this->sequenceConfig->get('prefix'))
189-
->setSuffix($this->sequenceConfig->get('suffix'))
190-
->setStartValue($this->sequenceConfig->get('startValue'))
191-
->setStoreId(1)
192-
->setStep($this->sequenceConfig->get('step'))
193-
->setWarningValue($this->sequenceConfig->get('warningValue'))
194-
->setMaxValue($this->sequenceConfig->get('maxValue'))
195-
->setEntityType($entityType)->create();
196-
}
197176
}
198177
}

app/code/Magento/Sales/etc/di.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,14 @@
157157
<argument name="entityGrid" xsi:type="object">Magento\Sales\Model\Resource\Order\Creditmemo\Grid</argument>
158158
</arguments>
159159
</virtualType>
160+
<type name="Magento\SalesSequence\Model\EntityPool">
161+
<arguments>
162+
<argument name="entities" xsi:type="array">
163+
<item name="order" xsi:type="string">order</item>
164+
<item name="invoice" xsi:type="string">invoice</item>
165+
<item name="creditmemo" xsi:type="string">creditmemo</item>
166+
<item name="shipment" xsi:type="string">shipment</item>
167+
</argument>
168+
</arguments>
169+
</type>
160170
</config>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\SalesSequence\Model;
7+
8+
/**
9+
* Class EntityPool
10+
*
11+
* Pool of entities that require sequence
12+
*/
13+
class EntityPool
14+
{
15+
/**
16+
* @var array
17+
*/
18+
protected $entities;
19+
20+
/**
21+
* @param array $entities
22+
*/
23+
public function __construct(array $entities = [])
24+
{
25+
$this->entities = $entities;
26+
}
27+
28+
/**
29+
* Retrieve entities that require sequence
30+
*
31+
* @return array
32+
*/
33+
public function getEntities()
34+
{
35+
return $this->entities;
36+
}
37+
}

app/code/Magento/Sales/Model/Observer/CreateSequence.php renamed to app/code/Magento/SalesSequence/Model/Observer.php

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,24 @@
33
* Copyright © 2015 Magento. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
namespace Magento\Sales\Model\Observer;
6+
namespace Magento\SalesSequence\Model;
77

8-
use Magento\Sales\Setup\SalesSetup;
9-
use Magento\SalesSequence\Model\Config;
10-
use Magento\SalesSequence\Model\Builder;
11-
use Magento\Framework\Event\Observer;
8+
use Magento\Framework\Event\Observer as EventObserver;
129

1310
/**
1411
* Class CreateSequence
1512
*/
16-
class CreateSequence
13+
class Observer
1714
{
1815
/**
1916
* @var Builder
2017
*/
2118
private $sequenceBuilder;
2219

2320
/**
24-
* @var SalesSetup
21+
* @var EntityPool
2522
*/
26-
private $salesSetup;
23+
private $entityPool;
2724

2825
/**
2926
* @var Config
@@ -34,28 +31,27 @@ class CreateSequence
3431
* Initialization
3532
*
3633
* @param Builder $sequenceBuilder
37-
* @param SalesSetup $salesSetup
34+
* @param EntityPool $entityPool
3835
* @param Config $sequenceConfig
3936
*/
4037
public function __construct(
4138
Builder $sequenceBuilder,
42-
SalesSetup $salesSetup,
39+
EntityPool $entityPool,
4340
Config $sequenceConfig
4441
) {
4542
$this->sequenceBuilder = $sequenceBuilder;
46-
$this->salesSetup = $salesSetup;
43+
$this->entityPool = $entityPool;
4744
$this->sequenceConfig = $sequenceConfig;
4845
}
4946

5047
/**
51-
* @param Observer $observer
48+
* @param EventObserver $observer
5249
* @return $this
5350
*/
54-
public function execute(Observer $observer)
51+
public function execute(EventObserver $observer)
5552
{
5653
$storeId = $observer->getData('store')->getId();
57-
$defaultEntities = array_keys($this->salesSetup->getDefaultEntities());
58-
foreach ($defaultEntities as $entityType) {
54+
foreach ($this->entityPool->getEntities() as $entityType) {
5955
$this->sequenceBuilder->setPrefix($this->sequenceConfig->get('prefix'))
6056
->setSuffix($this->sequenceConfig->get('suffix'))
6157
->setStartValue($this->sequenceConfig->get('startValue'))
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\SalesSequence\Setup;
8+
9+
use Magento\Framework\Setup\InstallDataInterface;
10+
use Magento\Framework\Setup\ModuleContextInterface;
11+
use Magento\Framework\Setup\ModuleDataSetupInterface;
12+
use Magento\SalesSequence\Model\Builder;
13+
use Magento\SalesSequence\Model\Config as SequenceConfig;
14+
use Magento\SalesSequence\Model\EntityPool;
15+
16+
/**
17+
* Class InstallData
18+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
19+
* @codeCoverageIgnore
20+
*/
21+
class InstallData implements InstallDataInterface
22+
{
23+
/**
24+
* Sales setup factory
25+
*
26+
* @var EntityPool
27+
*/
28+
private $entityPool;
29+
30+
/**
31+
* @var Builder
32+
*/
33+
private $sequenceBuilder;
34+
35+
/**
36+
* @var SequenceConfig
37+
*/
38+
private $sequenceConfig;
39+
40+
/**
41+
* @param EntityPool $entityPool
42+
* @param Builder $sequenceBuilder
43+
* @param SequenceConfig $sequenceConfig
44+
*/
45+
public function __construct(
46+
EntityPool $entityPool,
47+
Builder $sequenceBuilder,
48+
SequenceConfig $sequenceConfig
49+
) {
50+
$this->salesSetupFactory = $entityPool;
51+
$this->sequenceBuilder = $sequenceBuilder;
52+
$this->sequenceConfig = $sequenceConfig;
53+
}
54+
55+
/**
56+
* {@inheritdoc}
57+
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
58+
*/
59+
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
60+
{
61+
$defaultStoreIds = [0, 1];
62+
foreach ($defaultStoreIds as $storeId) {
63+
foreach ($this->entityPool->getEntities() as $entityType) {
64+
$this->sequenceBuilder->setPrefix($this->sequenceConfig->get('prefix'))
65+
->setSuffix($this->sequenceConfig->get('suffix'))
66+
->setStartValue($this->sequenceConfig->get('startValue'))
67+
->setStoreId($storeId)
68+
->setStep($this->sequenceConfig->get('step'))
69+
->setWarningValue($this->sequenceConfig->get('warningValue'))
70+
->setMaxValue($this->sequenceConfig->get('maxValue'))
71+
->setEntityType($entityType)->create();
72+
}
73+
}
74+
}
75+
}

0 commit comments

Comments
 (0)