* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\Ps_metrics\Kpi; use PrestaShop\Module\Ps_metrics\Kpi\Configuration\KpiConfiguration; class TotalKpi extends Kpi implements KpiStrategyInterface { /** * @var VisitsKpi */ private $visitsKpi; /** * @var OrdersKpi */ private $ordersKpi; /** * @var RevenuesKpi */ private $revenuesKpi; /** * TotalKpi constructor. * * @param KpiConfiguration $kpiConfiguration * @param VisitsKpi $visitsKpi * @param OrdersKpi $ordersKpi * @param RevenuesKpi $revenuesKpi */ public function __construct( KpiConfiguration $kpiConfiguration, VisitsKpi $visitsKpi, OrdersKpi $ordersKpi, RevenuesKpi $revenuesKpi ) { parent::__construct($kpiConfiguration); $this->visitsKpi = $visitsKpi; $this->ordersKpi = $ordersKpi; $this->revenuesKpi = $revenuesKpi; } /** * Return all revenues data * * @return array */ public function present() { $this->revenuesKpi->setConfiguration($this->getConfiguration()); $this->ordersKpi->setConfiguration($this->getConfiguration()); $this->visitsKpi->setConfiguration($this->getConfiguration()); return [ 'revenuesTotal' => $this->revenuesKpi->getTotal(), 'ordersTotal' => $this->ordersKpi->getTotal(), 'ordersTotalForConversion' => $this->ordersKpi->getTotalForConversion(), 'visits' => $this->visitsKpi->getTotal(), ]; } }