7
7
8
8
namespace Magento \Sales \Plugin \Model \ResourceModel \Order ;
9
9
10
- use DateTime ;
11
10
use DateTimeInterface ;
11
+ use Magento \Framework \Exception \LocalizedException ;
12
12
use Magento \Framework \ObjectManagerInterface ;
13
13
use Magento \Framework \Stdlib \DateTime \TimezoneInterface ;
14
14
use Magento \Framework \View \Element \UiComponent \DataProvider \SearchResult ;
15
- use Magento \Sales \Model \ResourceModel \Order \Creditmemo ;
16
- use Magento \Sales \Model \ResourceModel \Order \Grid \Collection as OrderCollection ;
17
- use Magento \Sales \Model \ResourceModel \Order \Invoice ;
18
- use Magento \Sales \Model \ResourceModel \Order \Shipment ;
19
15
use Magento \TestFramework \Helper \Bootstrap ;
20
16
use PHPUnit \Framework \TestCase ;
21
17
@@ -67,18 +63,27 @@ protected function setUp(): void
67
63
/**
68
64
* Verifies that filter condition date is being converted to config timezone before select sql query
69
65
*
70
- * @dataProvider getCollectionFiltersDataProvider
66
+ * @dataProvider \Magento\Sales\Plugin\Model\ResourceModel\Order\DataProvider\OrdersCollectionFilters::getCollectionFiltersDataProvider
67
+ *
71
68
* @param $mainTable
72
69
* @param $resourceModel
73
70
* @param $field
74
- * @throws \Magento\Framework\Exception\LocalizedException
71
+ * @param $fieldValue
72
+ * @throws LocalizedException
75
73
*/
76
- public function testAroundAddFieldToFilter ($ mainTable , $ resourceModel , $ field ): void
74
+ public function testAroundAddFieldToFilter ($ mainTable , $ resourceModel , $ field, $ fieldValue ): void
77
75
{
78
- $ filterDate = "2021-12-13 00:00:00 " ;
76
+ $ expectedSelect = "SELECT `main_table`.* FROM ` {$ mainTable }` AS `main_table` " ;
77
+
78
+ $ convertedDate = $ fieldValue instanceof DateTimeInterface
79
+ ? $ fieldValue ->format ('Y-m-d H:i:s ' ) : $ this ->timeZone ->convertConfigTimeToUtc ($ fieldValue );
80
+
79
81
if ($ mainTable == 'sales_order_grid ' ) {
80
- $ filterDate = new DateTime ($ filterDate );
81
- $ filterDate ->setTimezone (new \DateTimeZone ('UTC ' ));
82
+ $ condition = ['from ' => $ fieldValue , 'locale ' => "en_US " , 'datetime ' => true ];
83
+ $ selectCondition = "WHERE (` {$ field }` >= ' {$ convertedDate }') " ;
84
+ } else {
85
+ $ condition = ['qteq ' => $ fieldValue ];
86
+ $ selectCondition = "WHERE (((` {$ field }` = ' {$ convertedDate }'))) " ;
82
87
}
83
88
84
89
$ this ->searchResult = $ this ->objectManager ->create (
@@ -92,59 +97,9 @@ public function testAroundAddFieldToFilter($mainTable, $resourceModel, $field):
92
97
$ this ->searchResult ,
93
98
$ this ->proceed ,
94
99
$ field ,
95
- [ ' qteq ' => $ filterDate ]
100
+ $ condition
96
101
);
97
102
98
- $ convertedDate = $ filterDate instanceof DateTimeInterface
99
- ? $ filterDate ->format ('Y-m-d H:i:s ' ) : $ this ->timeZone ->convertConfigTimeToUtc ($ filterDate );
100
-
101
- $ expectedSelect = "SELECT `main_table`.* FROM ` {$ mainTable }` AS `main_table` " .
102
- "WHERE (((` {$ field }` = ' {$ convertedDate }'))) " ;
103
-
104
- $ this ->assertEquals ($ expectedSelect , $ result ->getSelectSql (true ));
105
- }
106
-
107
- /**
108
- * @return array
109
- */
110
- public function getCollectionFiltersDataProvider (): array
111
- {
112
- return [
113
- 'invoice_grid_collection_for_created_at ' => [
114
- 'mainTable ' => 'sales_invoice_grid ' ,
115
- 'resourceModel ' => Invoice::class,
116
- 'field ' => 'created_at ' ,
117
- ],
118
- 'invoice_grid_collection_for_order_created_at ' => [
119
- 'mainTable ' => 'sales_invoice_grid ' ,
120
- 'resourceModel ' => Invoice::class,
121
- 'field ' => 'order_created_at ' ,
122
- ],
123
- 'shipment_grid_collection_for_created_at ' => [
124
- 'mainTable ' => 'sales_shipment_grid ' ,
125
- 'resourceModel ' => Shipment::class,
126
- 'field ' => 'created_at ' ,
127
- ],
128
- 'shipment_grid_collection_for_order_created_at ' => [
129
- 'mainTable ' => 'sales_shipment_grid ' ,
130
- 'resourceModel ' => Shipment::class,
131
- 'field ' => 'order_created_at ' ,
132
- ],
133
- 'creditmemo_grid_collection_for_created_at ' => [
134
- 'mainTable ' => 'sales_creditmemo_grid ' ,
135
- 'resourceModel ' => Creditmemo::class,
136
- 'field ' => 'created_at ' ,
137
- ],
138
- 'creditmemo_grid_collection_for_order_created_at ' => [
139
- 'mainTable ' => 'sales_creditmemo_grid ' ,
140
- 'resourceModel ' => Creditmemo::class,
141
- 'field ' => 'order_created_at ' ,
142
- ],
143
- 'customer_orders_grid_collection_for_order_created_at ' => [
144
- 'mainTable ' => 'sales_order_grid ' ,
145
- 'resourceModel ' => OrderCollection::class,
146
- 'field ' => 'created_at ' ,
147
- ]
148
- ];
103
+ $ this ->assertEquals ($ expectedSelect . $ selectCondition , $ result ->getSelectSql (true ));
149
104
}
150
105
}
0 commit comments