';
return $this->_html;
}
public function getTotalCount()
{
$result = Db::getInstance()->getRow('
SELECT COUNT(DISTINCT c.`id_customer`) totalCount FROM `'._DB_PREFIX_.'customer` c
LEFT JOIN `'._DB_PREFIX_.'orders` o ON c.id_customer = o.id_customer
WHERE o.valid = 1');
return $result['totalCount'];
}
public function setOption($option)
{
}
public function getData()
{
$this->_totalCount = $this->getTotalCount();
$this->_query = '
SELECT c.`id_customer`, c.`lastname`, c.`firstname`, c.`email`,
COUNT(DISTINCT co.`id_connections`) AS totalVisits,
COUNT(cop.`id_page`) AS totalPageViewed, (
SELECT SUM(IFNULL(o.`total_paid_real`, 0) / cu.conversion_rate)
FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'currency` cu ON o.id_currency = cu.id_currency
WHERE o.id_customer = c.id_customer
AND o.invoice_date BETWEEN '.$this->getDate().'
AND o.valid
) AS totalMoneySpent
FROM `'._DB_PREFIX_.'customer` c
LEFT JOIN `'._DB_PREFIX_.'guest` g ON c.`id_customer` = g.`id_customer`
LEFT JOIN `'._DB_PREFIX_.'connections` co ON g.`id_guest` = co.`id_guest`
LEFT JOIN `'._DB_PREFIX_.'connections_page` cop ON co.`id_connections` = cop.`id_connections`
WHERE co.date_add BETWEEN '.$this->getDate().'
GROUP BY c.`id_customer`, c.`lastname`, c.`firstname`, c.`email`';
if (Validate::IsName($this->_sort))
{
if ($this->_sort == 'total')
$this->_sort = 'totalMoneySpent';
$this->_query .= ' ORDER BY `'.$this->_sort.'`';
if (isset($this->_direction) AND Validate::IsSortDirection($this->_direction))
$this->_query .= ' '.$this->_direction;
}
if (($this->_start === 0 OR Validate::IsUnsignedInt($this->_start)) AND Validate::IsUnsignedInt($this->_limit))
$this->_query .= ' LIMIT '.$this->_start.', '.($this->_limit);
$this->_values = Db::getInstance()->ExecuteS($this->_query);
}
}