b374k
m1n1 1.01
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
Size2.31 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified06-Apr-2021 18:06
Last accessed23-Aug-2025 06:36
Actionsedit | rename | delete | download (gzip)
Viewtext | 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;
}
}