Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Grid.php
Go to the documentation of this file.
1 <?php
8 
10 
17 class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid
18 {
24  protected $_columnGroupBy = 'period';
25 
31  protected function _construct()
32  {
33  parent::_construct();
34  $this->setCountTotals(true);
35  }
36 
42  public function getResourceCollectionName()
43  {
44  return $this->getFilterData()->getData('report_type') === 'updated_at_order'
45  ? \Magento\Sales\Model\ResourceModel\Report\Order\Updatedat\Collection::class
46  : \Magento\Sales\Model\ResourceModel\Report\Order\Collection::class;
47  }
48 
54  protected function _prepareColumns()
55  {
56  $this->addColumn(
57  'period',
58  [
59  'header' => __('Interval'),
60  'index' => 'period',
61  'sortable' => false,
62  'period_type' => $this->getPeriodType(),
63  'renderer' => \Magento\Reports\Block\Adminhtml\Sales\Grid\Column\Renderer\Date::class,
64  'totals_label' => __('Total'),
65  'html_decorators' => ['nobr'],
66  'header_css_class' => 'col-period',
67  'column_css_class' => 'col-period'
68  ]
69  );
70 
71  $this->addColumn(
72  'orders_count',
73  [
74  'header' => __('Orders'),
75  'index' => 'orders_count',
76  'type' => 'number',
77  'total' => 'sum',
78  'sortable' => false,
79  'header_css_class' => 'col-orders',
80  'column_css_class' => 'col-orders'
81  ]
82  );
83 
84  $this->addColumn(
85  'total_qty_ordered',
86  [
87  'header' => __('Sales Items'),
88  'index' => 'total_qty_ordered',
89  'type' => 'number',
90  'total' => 'sum',
91  'sortable' => false,
92  'header_css_class' => 'col-sales-items',
93  'column_css_class' => 'col-sales-items'
94  ]
95  );
96 
97  $this->addColumn(
98  'total_qty_invoiced',
99  [
100  'header' => __('Items'),
101  'index' => 'total_qty_invoiced',
102  'type' => 'number',
103  'total' => 'sum',
104  'sortable' => false,
105  'visibility_filter' => ['show_actual_columns'],
106  'header_css_class' => 'col-items',
107  'column_css_class' => 'col-items'
108  ]
109  );
110 
111  $this->setStoreIds($this->_getStoreIds());
112  $currencyCode = $this->getCurrentCurrencyCode();
113  $rate = $this->getRate($currencyCode);
114 
115  $this->addColumn(
116  'total_income_amount',
117  [
118  'header' => __('Sales Total'),
119  'type' => 'currency',
120  'currency_code' => $currencyCode,
121  'index' => 'total_income_amount',
122  'total' => 'sum',
123  'sortable' => false,
124  'renderer' => Currency::class,
125  'rate' => $rate,
126  'header_css_class' => 'col-sales-total',
127  'column_css_class' => 'col-sales-total'
128  ]
129  );
130 
131  $this->addColumn(
132  'total_revenue_amount',
133  [
134  'header' => __('Revenue'),
135  'type' => 'currency',
136  'currency_code' => $currencyCode,
137  'index' => 'total_revenue_amount',
138  'total' => 'sum',
139  'sortable' => false,
140  'renderer' => Currency::class,
141  'visibility_filter' => ['show_actual_columns'],
142  'rate' => $rate,
143  'header_css_class' => 'col-revenue',
144  'column_css_class' => 'col-revenue'
145  ]
146  );
147 
148  $this->addColumn(
149  'total_profit_amount',
150  [
151  'header' => __('Profit'),
152  'type' => 'currency',
153  'currency_code' => $currencyCode,
154  'index' => 'total_profit_amount',
155  'total' => 'sum',
156  'sortable' => false,
157  'renderer' => Currency::class,
158  'visibility_filter' => ['show_actual_columns'],
159  'rate' => $rate,
160  'header_css_class' => 'col-profit',
161  'column_css_class' => 'col-profit'
162  ]
163  );
164 
165  $this->addColumn(
166  'total_invoiced_amount',
167  [
168  'header' => __('Invoiced'),
169  'type' => 'currency',
170  'currency_code' => $currencyCode,
171  'index' => 'total_invoiced_amount',
172  'total' => 'sum',
173  'sortable' => false,
174  'renderer' => Currency::class,
175  'rate' => $rate,
176  'header_css_class' => 'col-invoiced',
177  'column_css_class' => 'col-invoiced'
178  ]
179  );
180 
181  $this->addColumn(
182  'total_paid_amount',
183  [
184  'header' => __('Paid'),
185  'type' => 'currency',
186  'currency_code' => $currencyCode,
187  'index' => 'total_paid_amount',
188  'total' => 'sum',
189  'sortable' => false,
190  'renderer' => Currency::class,
191  'visibility_filter' => ['show_actual_columns'],
192  'rate' => $rate,
193  'header_css_class' => 'col-paid',
194  'column_css_class' => 'col-paid'
195  ]
196  );
197 
198  $this->addColumn(
199  'total_refunded_amount',
200  [
201  'header' => __('Refunded'),
202  'type' => 'currency',
203  'currency_code' => $currencyCode,
204  'index' => 'total_refunded_amount',
205  'total' => 'sum',
206  'sortable' => false,
207  'renderer' => Currency::class,
208  'rate' => $rate,
209  'header_css_class' => 'col-refunded',
210  'column_css_class' => 'col-refunded'
211  ]
212  );
213 
214  $this->addColumn(
215  'total_tax_amount',
216  [
217  'header' => __('Sales Tax'),
218  'type' => 'currency',
219  'currency_code' => $currencyCode,
220  'index' => 'total_tax_amount',
221  'total' => 'sum',
222  'sortable' => false,
223  'renderer' => Currency::class,
224  'rate' => $rate,
225  'header_css_class' => 'col-sales-tax',
226  'column_css_class' => 'col-sales-tax'
227  ]
228  );
229 
230  $this->addColumn(
231  'total_tax_amount_actual',
232  [
233  'header' => __('Tax'),
234  'type' => 'currency',
235  'currency_code' => $currencyCode,
236  'index' => 'total_tax_amount_actual',
237  'total' => 'sum',
238  'sortable' => false,
239  'renderer' => Currency::class,
240  'visibility_filter' => ['show_actual_columns'],
241  'rate' => $rate,
242  'header_css_class' => 'col-tax',
243  'column_css_class' => 'col-tax'
244  ]
245  );
246 
247  $this->addColumn(
248  'total_shipping_amount',
249  [
250  'header' => __('Sales Shipping'),
251  'type' => 'currency',
252  'currency_code' => $currencyCode,
253  'index' => 'total_shipping_amount',
254  'total' => 'sum',
255  'sortable' => false,
256  'renderer' => Currency::class,
257  'rate' => $rate,
258  'header_css_class' => 'col-sales-shipping',
259  'column_css_class' => 'col-sales-shipping'
260  ]
261  );
262 
263  $this->addColumn(
264  'total_shipping_amount_actual',
265  [
266  'header' => __('Shipping'),
267  'type' => 'currency',
268  'currency_code' => $currencyCode,
269  'index' => 'total_shipping_amount_actual',
270  'total' => 'sum',
271  'sortable' => false,
272  'renderer' => Currency::class,
273  'visibility_filter' => ['show_actual_columns'],
274  'rate' => $rate,
275  'header_css_class' => 'col-shipping',
276  'column_css_class' => 'col-shipping'
277  ]
278  );
279 
280  $this->addColumn(
281  'total_discount_amount',
282  [
283  'header' => __('Sales Discount'),
284  'type' => 'currency',
285  'currency_code' => $currencyCode,
286  'index' => 'total_discount_amount',
287  'total' => 'sum',
288  'sortable' => false,
289  'renderer' => Currency::class,
290  'rate' => $rate,
291  'header_css_class' => 'col-sales-discount',
292  'column_css_class' => 'col-sales-discount'
293  ]
294  );
295 
296  $this->addColumn(
297  'total_discount_amount_actual',
298  [
299  'header' => __('Discount'),
300  'type' => 'currency',
301  'currency_code' => $currencyCode,
302  'index' => 'total_discount_amount_actual',
303  'total' => 'sum',
304  'sortable' => false,
305  'renderer' => Currency::class,
306  'visibility_filter' => ['show_actual_columns'],
307  'rate' => $rate,
308  'header_css_class' => 'col-discount',
309  'column_css_class' => 'col-discount'
310  ]
311  );
312 
313  $this->addColumn(
314  'total_canceled_amount',
315  [
316  'header' => __('Canceled'),
317  'type' => 'currency',
318  'currency_code' => $currencyCode,
319  'index' => 'total_canceled_amount',
320  'total' => 'sum',
321  'sortable' => false,
322  'renderer' => Currency::class,
323  'rate' => $rate,
324  'header_css_class' => 'col-canceled',
325  'column_css_class' => 'col-canceled'
326  ]
327  );
328 
329  $this->addExportType('*/*/exportSalesCsv', __('CSV'));
330  $this->addExportType('*/*/exportSalesExcel', __('Excel XML'));
331 
332  return parent::_prepareColumns();
333  }
334 }
__()
Definition: __.php:13