Skip to content

Commit 74b37e9

Browse files
author
valdislav
committed
Merge branch 'MAGETWO-35628' of github.corp.ebay.com:magento-firedrakes/magento2ce into MAGETWO-35638
2 parents c915f36 + b52592c commit 74b37e9

File tree

2 files changed

+16
-88
lines changed

2 files changed

+16
-88
lines changed

app/code/Magento/Reports/Model/Resource/Customer/Collection.php

Lines changed: 12 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ class Collection extends \Magento\Customer\Model\Resource\Customer\Collection
6666
*/
6767
protected $_quoteItemFactory;
6868

69+
/**
70+
* @var \Magento\Sales\Model\Resource\Order\Collection
71+
*/
72+
protected $orderResource;
73+
6974
/**
7075
* @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
7176
* @param \Psr\Log\LoggerInterface $logger
@@ -79,6 +84,7 @@ class Collection extends \Magento\Customer\Model\Resource\Customer\Collection
7984
* @param \Magento\Framework\Object\Copy\Config $fieldsetConfig
8085
* @param \Magento\Quote\Model\QuoteRepository $quoteRepository
8186
* @param \Magento\Quote\Model\Resource\Quote\Item\CollectionFactory $quoteItemFactory
87+
* @param \Magento\Sales\Model\Resource\Order\Collection $orderResource
8288
* @param mixed $connection
8389
* @param string $modelName
8490
*
@@ -97,6 +103,7 @@ public function __construct(
97103
\Magento\Framework\Object\Copy\Config $fieldsetConfig,
98104
\Magento\Quote\Model\QuoteRepository $quoteRepository,
99105
\Magento\Quote\Model\Resource\Quote\Item\CollectionFactory $quoteItemFactory,
106+
\Magento\Sales\Model\Resource\Order\Collection $orderResource,
100107
$connection = null,
101108
$modelName = self::CUSTOMER_MODEL_NAME
102109
) {
@@ -114,6 +121,7 @@ public function __construct(
114121
$connection,
115122
$modelName
116123
);
124+
$this->orderResource = $orderResource;
117125
$this->quoteRepository = $quoteRepository;
118126
$this->_quoteItemFactory = $quoteItemFactory;
119127
}
@@ -152,90 +160,6 @@ public function addCustomerName()
152160
return $this;
153161
}
154162

155-
/**
156-
* Order for each customer
157-
*
158-
* @param string $fromDate
159-
* @param string $toDate
160-
* @return $this
161-
*/
162-
public function joinOrders($fromDate = '', $toDate = '')
163-
{
164-
if ($fromDate != '' && $toDate != '') {
165-
$dateFilter = " AND orders.created_at BETWEEN '{$fromDate}' AND '{$toDate}'";
166-
} else {
167-
$dateFilter = '';
168-
}
169-
170-
$this->getSelect()->joinLeft(
171-
['orders' => $this->getTable('sales_order')],
172-
"orders.customer_id = e.entity_id" . $dateFilter,
173-
[]
174-
);
175-
176-
return $this;
177-
}
178-
179-
/**
180-
* Add orders count
181-
*
182-
* @return $this
183-
*/
184-
public function addOrdersCount()
185-
{
186-
$this->getSelect()->columns(
187-
["orders_count" => "COUNT(orders.entity_id)"]
188-
)->where(
189-
'orders.state <> ?',
190-
\Magento\Sales\Model\Order::STATE_CANCELED
191-
)->group(
192-
"e.entity_id"
193-
);
194-
195-
return $this;
196-
}
197-
198-
/**
199-
* Order summary info for each customer such as orders_count, orders_avg_amount, orders_total_amount
200-
*
201-
* @param int $storeId
202-
* @return $this
203-
*/
204-
public function addSumAvgTotals($storeId = 0)
205-
{
206-
$adapter = $this->getConnection();
207-
$baseSubtotalRefunded = $adapter->getIfNullSql('orders.base_subtotal_refunded', 0);
208-
$baseSubtotalCanceled = $adapter->getIfNullSql('orders.base_subtotal_canceled', 0);
209-
210-
/**
211-
* calculate average and total amount
212-
*/
213-
$expr = $storeId ==
214-
0 ?
215-
"(orders.base_subtotal - {$baseSubtotalCanceled} - {$baseSubtotalRefunded}) * orders.base_to_global_rate" :
216-
"orders.base_subtotal - {$baseSubtotalCanceled} - {$baseSubtotalRefunded}";
217-
218-
$this->getSelect()->columns(
219-
["orders_avg_amount" => "AVG({$expr})"]
220-
)->columns(
221-
["orders_sum_amount" => "SUM({$expr})"]
222-
);
223-
224-
return $this;
225-
}
226-
227-
/**
228-
* Order by total amount
229-
*
230-
* @param string $dir
231-
* @return $this
232-
*/
233-
public function orderByTotalAmount($dir = self::SORT_ORDER_DESC)
234-
{
235-
$this->getSelect()->order("orders_sum_amount {$dir}");
236-
return $this;
237-
}
238-
239163
/**
240164
* Add order statistics
241165
*
@@ -259,17 +183,17 @@ protected function _addOrdersStatistics()
259183
$customerIds = $this->getColumnValues($this->getResource()->getIdFieldName());
260184

261185
if ($this->_addOrderStatistics && !empty($customerIds)) {
262-
$adapter = $this->getConnection();
186+
$adapter = $this->orderResource->getConnection();
263187
$baseSubtotalRefunded = $adapter->getIfNullSql('orders.base_subtotal_refunded', 0);
264188
$baseSubtotalCanceled = $adapter->getIfNullSql('orders.base_subtotal_canceled', 0);
265189

266190
$totalExpr = $this->_addOrderStatFilter ?
267191
"(orders.base_subtotal-{$baseSubtotalCanceled}-{$baseSubtotalRefunded})*orders.base_to_global_rate" :
268192
"orders.base_subtotal-{$baseSubtotalCanceled}-{$baseSubtotalRefunded}";
269193

270-
$select = $this->getConnection()->select();
194+
$select = $this->orderResource->getConnection()->select();
271195
$select->from(
272-
['orders' => $this->getTable('sales_order')],
196+
['orders' => $this->orderResource->getTable('sales_order')],
273197
[
274198
'orders_avg_amount' => "AVG({$totalExpr})",
275199
'orders_sum_amount' => "SUM({$totalExpr})",
@@ -286,7 +210,7 @@ protected function _addOrdersStatistics()
286210
'orders.customer_id'
287211
);
288212

289-
foreach ($this->getConnection()->fetchAll($select) as $ordersInfo) {
213+
foreach ($this->orderResource->getConnection()->fetchAll($select) as $ordersInfo) {
290214
$this->getItemById($ordersInfo['customer_id'])->addData($ordersInfo);
291215
}
292216
}

dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2155,4 +2155,8 @@
21552155
['_isCacheEnabled', 'Magento\Eav\Model\Config'],
21562156
['_createCustomerAttribute', '\Magento\Customer\Model\Customer'],
21572157
['prepareCatalogProductPriceIndexTable', 'Magento\CatalogRule\Model\Observer'],
2158+
['joinOrders', 'Magento\Reports\Model\Resource\Customer\Collection'],
2159+
['addOrdersCount', 'Magento\Reports\Model\Resource\Customer\Collection'],
2160+
['addSumAvgTotals', 'Magento\Reports\Model\Resource\Customer\Collection'],
2161+
['orderByTotalAmount', 'Magento\Reports\Model\Resource\Customer\Collection'],
21582162
];

0 commit comments

Comments
 (0)