6
6
namespace Magento \TestFramework \Db \Sequence ;
7
7
8
8
use Magento \Framework \App \ResourceConnection ;
9
- use Magento \Framework \Webapi \Exception ;
10
- use Magento \SalesSequence \Model \ResourceModel \Meta as ResourceMetadata ;
11
9
use Magento \Framework \App \ResourceConnection as AppResource ;
12
10
use Magento \Framework \DB \Ddl \Sequence as DdlSequence ;
13
- use Magento \SalesSequence \ Model \ ProfileFactory ;
11
+ use Magento \Framework \ Webapi \ Exception ;
14
12
use Magento \SalesSequence \Model \MetaFactory ;
13
+ use Magento \SalesSequence \Model \ProfileFactory ;
14
+ use Magento \SalesSequence \Model \ResourceModel \Meta as ResourceMetadata ;
15
+ use Magento \SalesSequence \Model \ResourceModel \Profile as ResourceProfile ;
15
16
16
17
/**
17
18
* Class Builder
@@ -69,6 +70,11 @@ class Builder extends \Magento\SalesSequence\Model\Builder
69
70
'warning_value ' ,
70
71
];
71
72
73
+ /**
74
+ * @var ResourceProfile
75
+ */
76
+ protected $ resourceProfile ;
77
+
72
78
/**
73
79
* Concrete data of sequence
74
80
*
@@ -82,19 +88,22 @@ class Builder extends \Magento\SalesSequence\Model\Builder
82
88
* @param ProfileFactory $profileFactory
83
89
* @param AppResource $appResource
84
90
* @param DdlSequence $ddlSequence
91
+ * @param ResourceProfile $resourceProfile
85
92
*/
86
93
public function __construct (
87
94
ResourceMetadata $ resourceMetadata ,
88
95
MetaFactory $ metaFactory ,
89
96
ProfileFactory $ profileFactory ,
90
97
AppResource $ appResource ,
91
- DdlSequence $ ddlSequence
98
+ DdlSequence $ ddlSequence ,
99
+ ResourceProfile $ resourceProfile
92
100
) {
93
101
$ this ->resourceMetadata = $ resourceMetadata ;
94
102
$ this ->metaFactory = $ metaFactory ;
95
103
$ this ->profileFactory = $ profileFactory ;
96
104
$ this ->appResource = $ appResource ;
97
105
$ this ->ddlSequence = $ ddlSequence ;
106
+ $ this ->resourceProfile = $ resourceProfile ;
98
107
$ this ->data = array_flip ($ this ->pattern );
99
108
}
100
109
@@ -263,4 +272,33 @@ public function create()
263
272
}
264
273
$ this ->data = array_flip ($ this ->pattern );
265
274
}
275
+
276
+ /**
277
+ * Deletes all sequence linked entites
278
+ *
279
+ * @param $storeId
280
+ *
281
+ * @return void
282
+ * @throws \Magento\Framework\Exception\LocalizedException
283
+ */
284
+ public function deleteByStoreId ($ storeId )
285
+ {
286
+ $ metadataIds = $ this ->resourceMetadata ->getIdsByStore ($ storeId );
287
+ $ profileIds = $ this ->resourceProfile ->getProfileIdsByMetadataIds ($ metadataIds );
288
+
289
+ $ this ->appResource ->getConnection ()->delete (
290
+ $ this ->appResource ->getTableName ('sales_sequence_profile ' ),
291
+ ['profile_id IN (?) ' => $ profileIds ]
292
+ );
293
+
294
+ foreach ($ metadataIds as $ metadataId ) {
295
+ $ metadata = $ this ->metaFactory ->create ();
296
+ $ this ->resourceMetadata ->load ($ metadata , $ metadataId );
297
+ if (!$ metadata ->getId ()) {
298
+ continue ;
299
+ }
300
+
301
+ $ this ->resourceMetadata ->delete ($ metadata );
302
+ }
303
+ }
266
304
}
0 commit comments