Skip to content

Commit 10a0cef

Browse files
lakshmanadevarul
authored andcommitted
ACP2E-1197 : Done changes for different data and fixed static test issues
1 parent 90ed6e0 commit 10a0cef

File tree

2 files changed

+95
-63
lines changed

2 files changed

+95
-63
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Sales\Plugin\Model\ResourceModel\Order\DataProvider;
9+
10+
use DateTime;
11+
use DateTimeZone;
12+
use Exception;
13+
use Magento\Sales\Model\ResourceModel\Order\Creditmemo;
14+
use Magento\Sales\Model\ResourceModel\Order\Grid\Collection as OrderCollection;
15+
use Magento\Sales\Model\ResourceModel\Order\Invoice;
16+
use Magento\Sales\Model\ResourceModel\Order\Shipment;
17+
18+
class OrdersCollectionFilters
19+
{
20+
21+
/**
22+
* Return product attribute data set for update attribute options
23+
*
24+
* @return array
25+
* @throws Exception
26+
*/
27+
public function getCollectionFiltersDataProvider(): array
28+
{
29+
$filterDate = "2021-12-13 00:00:00";
30+
$customerOrdersFilterDate = new DateTime($filterDate);
31+
$customerOrdersFilterDate->setTimezone(new DateTimeZone('UTC'));
32+
return [
33+
'invoice_grid_collection_for_created_at' => [
34+
'mainTable' => 'sales_invoice_grid',
35+
'resourceModel' => Invoice::class,
36+
'field' => 'created_at',
37+
'fieldValue' => $filterDate,
38+
],
39+
'invoice_grid_collection_for_order_created_at' => [
40+
'mainTable' => 'sales_invoice_grid',
41+
'resourceModel' => Invoice::class,
42+
'field' => 'order_created_at',
43+
'fieldValue' => $filterDate,
44+
],
45+
'shipment_grid_collection_for_created_at' => [
46+
'mainTable' => 'sales_shipment_grid',
47+
'resourceModel' => Shipment::class,
48+
'field' => 'created_at',
49+
'fieldValue' => $filterDate,
50+
],
51+
'shipment_grid_collection_for_order_created_at' => [
52+
'mainTable' => 'sales_shipment_grid',
53+
'resourceModel' => Shipment::class,
54+
'field' => 'order_created_at',
55+
'fieldValue' => $filterDate,
56+
],
57+
'creditmemo_grid_collection_for_created_at' => [
58+
'mainTable' => 'sales_creditmemo_grid',
59+
'resourceModel' => Creditmemo::class,
60+
'field' => 'created_at',
61+
'fieldValue' => $filterDate,
62+
],
63+
'creditmemo_grid_collection_for_order_created_at' => [
64+
'mainTable' => 'sales_creditmemo_grid',
65+
'resourceModel' => Creditmemo::class,
66+
'field' => 'order_created_at',
67+
'fieldValue' => $filterDate,
68+
],
69+
'customer_orders_grid_collection_for_order_created_at' => [
70+
'mainTable' => 'sales_order_grid',
71+
'resourceModel' => OrderCollection::class,
72+
'field' => 'created_at',
73+
'fieldValue' => $customerOrdersFilterDate,
74+
],
75+
];
76+
}
77+
}

dev/tests/integration/testsuite/Magento/Sales/Plugin/Model/ResourceModel/Order/OrderGridCollectionFilterTest.php

Lines changed: 18 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,11 @@
77

88
namespace Magento\Sales\Plugin\Model\ResourceModel\Order;
99

10-
use DateTime;
1110
use DateTimeInterface;
11+
use Magento\Framework\Exception\LocalizedException;
1212
use Magento\Framework\ObjectManagerInterface;
1313
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
1414
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;
1915
use Magento\TestFramework\Helper\Bootstrap;
2016
use PHPUnit\Framework\TestCase;
2117

@@ -67,18 +63,27 @@ protected function setUp(): void
6763
/**
6864
* Verifies that filter condition date is being converted to config timezone before select sql query
6965
*
70-
* @dataProvider getCollectionFiltersDataProvider
66+
* @dataProvider \Magento\Sales\Plugin\Model\ResourceModel\Order\DataProvider\OrdersCollectionFilters::getCollectionFiltersDataProvider
67+
*
7168
* @param $mainTable
7269
* @param $resourceModel
7370
* @param $field
74-
* @throws \Magento\Framework\Exception\LocalizedException
71+
* @param $fieldValue
72+
* @throws LocalizedException
7573
*/
76-
public function testAroundAddFieldToFilter($mainTable, $resourceModel, $field): void
74+
public function testAroundAddFieldToFilter($mainTable, $resourceModel, $field, $fieldValue): void
7775
{
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+
7981
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}')))";
8287
}
8388

8489
$this->searchResult = $this->objectManager->create(
@@ -92,59 +97,9 @@ public function testAroundAddFieldToFilter($mainTable, $resourceModel, $field):
9297
$this->searchResult,
9398
$this->proceed,
9499
$field,
95-
['qteq' => $filterDate]
100+
$condition
96101
);
97102

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));
149104
}
150105
}

0 commit comments

Comments
 (0)