Skip to content

Commit 5e3ee29

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-94909' into 2.3-develop-pr8
2 parents 4327325 + a9e013e commit 5e3ee29

File tree

3 files changed

+118
-36
lines changed

3 files changed

+118
-36
lines changed

app/code/Magento/Reports/Block/Adminhtml/Grid/AbstractGrid.php

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
namespace Magento\Reports\Block\Adminhtml\Grid;
78

9+
/**
10+
* Backend reports grid
11+
*/
812
class AbstractGrid extends \Magento\Backend\Block\Widget\Grid\Extended
913
{
1014
/**
@@ -90,16 +94,17 @@ protected function _construct()
9094
/**
9195
* Get resource collection name
9296
*
93-
* @codeCoverageIgnore
94-
*
9597
* @return string
98+
* @codeCoverageIgnore
9699
*/
97100
public function getResourceCollectionName()
98101
{
99102
return $this->_resourceCollectionName;
100103
}
101104

102105
/**
106+
* Return reports collection
107+
*
103108
* @return \Magento\Framework\Data\Collection
104109
*/
105110
public function getCollection()
@@ -111,6 +116,8 @@ public function getCollection()
111116
}
112117

113118
/**
119+
* Retrieve array of columns that should be aggregated
120+
*
114121
* @return array
115122
*/
116123
protected function _getAggregatedColumns()
@@ -170,12 +177,7 @@ public function addColumn($columnId, $column)
170177
*/
171178
protected function _getStoreIds()
172179
{
173-
$filterData = $this->getFilterData();
174-
if ($filterData) {
175-
$storeIds = explode(',', $filterData->getData('store_ids'));
176-
} else {
177-
$storeIds = [];
178-
}
180+
$storeIds = $this->getFilteredStores();
179181
// By default storeIds array contains only allowed stores
180182
$allowedStoreIds = array_keys($this->_storeManager->getStores());
181183
// And then array_intersect with post data for prevent unauthorized stores reports
@@ -191,6 +193,8 @@ protected function _getStoreIds()
191193
}
192194

193195
/**
196+
* Apply sorting and filtering to collection
197+
*
194198
* @return $this|\Magento\Backend\Block\Widget\Grid
195199
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
196200
* @SuppressWarnings(PHPMD.NPathComplexity)
@@ -280,6 +284,8 @@ protected function _prepareCollection()
280284
}
281285

282286
/**
287+
* Return count totals
288+
*
283289
* @return array
284290
*/
285291
public function getCountTotals()
@@ -319,6 +325,8 @@ public function getCountTotals()
319325
}
320326

321327
/**
328+
* Retrieve subtotal items
329+
*
322330
* @return array
323331
*/
324332
public function getSubTotals()
@@ -360,6 +368,8 @@ public function setStoreIds($storeIds)
360368
}
361369

362370
/**
371+
* Return current currency code
372+
*
363373
* @return string|\Magento\Directory\Model\Currency $currencyCode
364374
*/
365375
public function getCurrentCurrencyCode()
@@ -399,6 +409,7 @@ protected function _addOrderStatusFilter($collection, $filterData)
399409

400410
/**
401411
* Adds custom filter to resource collection
412+
*
402413
* Can be overridden in child classes if custom filter needed
403414
*
404415
* @param \Magento\Reports\Model\ResourceModel\Report\Collection\AbstractCollection $collection
@@ -411,4 +422,35 @@ protected function _addCustomFilter($collection, $filterData)
411422
{
412423
return $this;
413424
}
425+
426+
/**
427+
* Return stores by website, group and store id
428+
*
429+
* @return array
430+
* @throws \Magento\Framework\Exception\LocalizedException
431+
*/
432+
private function getFilteredStores(): array
433+
{
434+
$storeIds = [];
435+
436+
$filterData = $this->getFilterData();
437+
if ($filterData) {
438+
if ($filterData->getWebsite()) {
439+
$storeIds = array_keys(
440+
$this->_storeManager->getWebsite($filterData->getWebsite())->getStores()
441+
);
442+
}
443+
444+
if ($filterData->getGroup()) {
445+
$storeIds = array_keys(
446+
$this->_storeManager->getGroup($filterData->getGroup())->getStores()
447+
);
448+
}
449+
450+
if ($filterData->getData('store_ids')) {
451+
$storeIds = explode(',', $filterData->getData('store_ids'));
452+
}
453+
}
454+
return is_array($storeIds) ? $storeIds : [];
455+
}
414456
}

app/code/Magento/Reports/Block/Adminhtml/Sales/Sales/Grid.php

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Reports\Block\Adminhtml\Sales\Sales;
88

9+
use Magento\Reports\Block\Adminhtml\Grid\Column\Renderer\Currency;
10+
911
/**
1012
* Adminhtml sales report grid block
1113
*
@@ -22,7 +24,8 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid
2224
protected $_columnGroupBy = 'period';
2325

2426
/**
25-
* {@inheritdoc}
27+
* Reports grid constructor
28+
*
2629
* @codeCoverageIgnore
2730
*/
2831
protected function _construct()
@@ -32,17 +35,19 @@ protected function _construct()
3235
}
3336

3437
/**
35-
* {@inheritdoc}
38+
* Return collection name based on report_type
39+
*
40+
* @return string
3641
*/
3742
public function getResourceCollectionName()
3843
{
39-
return $this->getFilterData()->getData('report_type') == 'updated_at_order'
44+
return $this->getFilterData()->getData('report_type') === 'updated_at_order'
4045
? \Magento\Sales\Model\ResourceModel\Report\Order\Updatedat\Collection::class
4146
: \Magento\Sales\Model\ResourceModel\Report\Order\Collection::class;
4247
}
4348

4449
/**
45-
* {@inheritdoc}
50+
* Initialize reports grid columns
4651
*
4752
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
4853
*/
@@ -103,9 +108,7 @@ protected function _prepareColumns()
103108
]
104109
);
105110

106-
if ($this->getFilterData()->getStoreIds()) {
107-
$this->setStoreIds(explode(',', $this->getFilterData()->getStoreIds()));
108-
}
111+
$this->setStoreIds($this->_getStoreIds());
109112
$currencyCode = $this->getCurrentCurrencyCode();
110113
$rate = $this->getRate($currencyCode);
111114

@@ -118,6 +121,7 @@ protected function _prepareColumns()
118121
'index' => 'total_income_amount',
119122
'total' => 'sum',
120123
'sortable' => false,
124+
'renderer' => Currency::class,
121125
'rate' => $rate,
122126
'header_css_class' => 'col-sales-total',
123127
'column_css_class' => 'col-sales-total'
@@ -133,6 +137,7 @@ protected function _prepareColumns()
133137
'index' => 'total_revenue_amount',
134138
'total' => 'sum',
135139
'sortable' => false,
140+
'renderer' => Currency::class,
136141
'visibility_filter' => ['show_actual_columns'],
137142
'rate' => $rate,
138143
'header_css_class' => 'col-revenue',
@@ -149,6 +154,7 @@ protected function _prepareColumns()
149154
'index' => 'total_profit_amount',
150155
'total' => 'sum',
151156
'sortable' => false,
157+
'renderer' => Currency::class,
152158
'visibility_filter' => ['show_actual_columns'],
153159
'rate' => $rate,
154160
'header_css_class' => 'col-profit',
@@ -165,6 +171,7 @@ protected function _prepareColumns()
165171
'index' => 'total_invoiced_amount',
166172
'total' => 'sum',
167173
'sortable' => false,
174+
'renderer' => Currency::class,
168175
'rate' => $rate,
169176
'header_css_class' => 'col-invoiced',
170177
'column_css_class' => 'col-invoiced'
@@ -180,6 +187,7 @@ protected function _prepareColumns()
180187
'index' => 'total_paid_amount',
181188
'total' => 'sum',
182189
'sortable' => false,
190+
'renderer' => Currency::class,
183191
'visibility_filter' => ['show_actual_columns'],
184192
'rate' => $rate,
185193
'header_css_class' => 'col-paid',
@@ -196,6 +204,7 @@ protected function _prepareColumns()
196204
'index' => 'total_refunded_amount',
197205
'total' => 'sum',
198206
'sortable' => false,
207+
'renderer' => Currency::class,
199208
'rate' => $rate,
200209
'header_css_class' => 'col-refunded',
201210
'column_css_class' => 'col-refunded'
@@ -211,6 +220,7 @@ protected function _prepareColumns()
211220
'index' => 'total_tax_amount',
212221
'total' => 'sum',
213222
'sortable' => false,
223+
'renderer' => Currency::class,
214224
'rate' => $rate,
215225
'header_css_class' => 'col-sales-tax',
216226
'column_css_class' => 'col-sales-tax'
@@ -226,6 +236,7 @@ protected function _prepareColumns()
226236
'index' => 'total_tax_amount_actual',
227237
'total' => 'sum',
228238
'sortable' => false,
239+
'renderer' => Currency::class,
229240
'visibility_filter' => ['show_actual_columns'],
230241
'rate' => $rate,
231242
'header_css_class' => 'col-tax',
@@ -242,6 +253,7 @@ protected function _prepareColumns()
242253
'index' => 'total_shipping_amount',
243254
'total' => 'sum',
244255
'sortable' => false,
256+
'renderer' => Currency::class,
245257
'rate' => $rate,
246258
'header_css_class' => 'col-sales-shipping',
247259
'column_css_class' => 'col-sales-shipping'
@@ -257,6 +269,7 @@ protected function _prepareColumns()
257269
'index' => 'total_shipping_amount_actual',
258270
'total' => 'sum',
259271
'sortable' => false,
272+
'renderer' => Currency::class,
260273
'visibility_filter' => ['show_actual_columns'],
261274
'rate' => $rate,
262275
'header_css_class' => 'col-shipping',
@@ -273,6 +286,7 @@ protected function _prepareColumns()
273286
'index' => 'total_discount_amount',
274287
'total' => 'sum',
275288
'sortable' => false,
289+
'renderer' => Currency::class,
276290
'rate' => $rate,
277291
'header_css_class' => 'col-sales-discount',
278292
'column_css_class' => 'col-sales-discount'
@@ -288,6 +302,7 @@ protected function _prepareColumns()
288302
'index' => 'total_discount_amount_actual',
289303
'total' => 'sum',
290304
'sortable' => false,
305+
'renderer' => Currency::class,
291306
'visibility_filter' => ['show_actual_columns'],
292307
'rate' => $rate,
293308
'header_css_class' => 'col-discount',
@@ -304,6 +319,7 @@ protected function _prepareColumns()
304319
'index' => 'total_canceled_amount',
305320
'total' => 'sum',
306321
'sortable' => false,
322+
'renderer' => Currency::class,
307323
'rate' => $rate,
308324
'header_css_class' => 'col-canceled',
309325
'column_css_class' => 'col-canceled'

0 commit comments

Comments
 (0)