|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / Glace / Conditions / Model / Order / ResourceModel / |
Filename | /home/dev2.destoffenstraat.com/app/code/Glace/Conditions/Model/Order/ResourceModel/Collection.php |
Size | 2.31 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 06-Apr-2021 18:06 |
Last accessed | 23-Aug-2025 06:36 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* @author Glace Team
* @copyright Copyright (c) 2019 Glace (https://www.glace.com)
* @package Glace_Conditions
*/
namespace Glace\Conditions\Model\Order\ResourceModel;
use Magento\Sales\Model\Order;
class Collection extends \Magento\Reports\Model\ResourceModel\Order\Collection
{
/**
* Calculate lifetime and average sales
*
* @param null $customerId
* @param $attribute
* @return $this
*/
public function calculateTotalsOrder($customerId, $attribute)
{
$statuses = $this->_orderConfig->getStateStatuses(Order::STATE_CANCELED);
if (empty($statuses)) {
$statuses = [0];
}
$this->setMainTable('sales_order');
$this->removeAllFieldsFromSelect();
try {
$expr = $this->_getSalesAmountExpression();
} catch (\Magento\Framework\Exception\LocalizedException $e) {
$this->_logger->critical($e->getMessage());
}
$this->getSelect()->columns(
['lifetime' => "SUM({$expr})", 'average' => "AVG({$expr})"]
);
$this->addFieldToFilter('status', ['nin' => $statuses]);
if ($attribute !== 'of_placed_orders') {
$this->addFieldToFilter(
'state',
['nin' => [Order::STATE_NEW, Order::STATE_PENDING_PAYMENT]]
);
}
return $this->addFieldToFilter('customer_id', $customerId);
}
/**
* @return string
* @throws \Magento\Framework\Exception\LocalizedException
*/
protected function _getSalesAmountExpression()
{
if (null === $this->_salesAmountExpression) {
$connection = $this->getConnection();
$expressionTransferObject = new \Magento\Framework\DataObject(
[
'expression' => '%s - %s',
'arguments' => [
$connection->getIfNullSql('main_table.lib01_total_invoiced', 0),
$connection->getIfNullSql('main_table.lib01_total_refunded', 0),
],
]
);
$this->_salesAmountExpression = vsprintf(
$expressionTransferObject->getExpression(),
$expressionTransferObject->getArguments()
);
}
return $this->_salesAmountExpression;
}
}
/**
* @author Glace Team
* @copyright Copyright (c) 2019 Glace (https://www.glace.com)
* @package Glace_Conditions
*/
namespace Glace\Conditions\Model\Order\ResourceModel;
use Magento\Sales\Model\Order;
class Collection extends \Magento\Reports\Model\ResourceModel\Order\Collection
{
/**
* Calculate lifetime and average sales
*
* @param null $customerId
* @param $attribute
* @return $this
*/
public function calculateTotalsOrder($customerId, $attribute)
{
$statuses = $this->_orderConfig->getStateStatuses(Order::STATE_CANCELED);
if (empty($statuses)) {
$statuses = [0];
}
$this->setMainTable('sales_order');
$this->removeAllFieldsFromSelect();
try {
$expr = $this->_getSalesAmountExpression();
} catch (\Magento\Framework\Exception\LocalizedException $e) {
$this->_logger->critical($e->getMessage());
}
$this->getSelect()->columns(
['lifetime' => "SUM({$expr})", 'average' => "AVG({$expr})"]
);
$this->addFieldToFilter('status', ['nin' => $statuses]);
if ($attribute !== 'of_placed_orders') {
$this->addFieldToFilter(
'state',
['nin' => [Order::STATE_NEW, Order::STATE_PENDING_PAYMENT]]
);
}
return $this->addFieldToFilter('customer_id', $customerId);
}
/**
* @return string
* @throws \Magento\Framework\Exception\LocalizedException
*/
protected function _getSalesAmountExpression()
{
if (null === $this->_salesAmountExpression) {
$connection = $this->getConnection();
$expressionTransferObject = new \Magento\Framework\DataObject(
[
'expression' => '%s - %s',
'arguments' => [
$connection->getIfNullSql('main_table.lib01_total_invoiced', 0),
$connection->getIfNullSql('main_table.lib01_total_refunded', 0),
],
]
);
$this->_salesAmountExpression = vsprintf(
$expressionTransferObject->getExpression(),
$expressionTransferObject->getArguments()
);
}
return $this->_salesAmountExpression;
}
}