private static function getAdditionalStatistics($mongoData, $piData, $fromDate, $toDate) { $services = PseudoStatsModel::$services; $days = MongoUtils::getNumberOfDays($fromDate, $toDate); $res = MongoUtils::initStats($services); for ($i = 0; $i < count($mongoData); $i++) { foreach ($services as $service) { foreach (PseudoStatsModel::$activities as $key => $value) { $res['total'][$service][$key] += $mongoData[$i][$service][$key]; $res['total']['all'][$key] += $mongoData[$i][$service][$key]; } $res['total'][$service]['activities'] += $mongoData[$i][$service]['likes'] + $mongoData[$i][$service]['dislikes']; $res['total']['all']['activities'] += $mongoData[$i][$service]['likes'] + $mongoData[$i][$service]['dislikes']; } } foreach ($services as $service) { foreach (PseudoStatsModel::$activities as $key => $value) { $res['average'][$service][$key] = round($res['total'][$service][$key] / ($days == 0 ? 1 : $days), 2); } $res['ratio'][$service]['dislike_like'] = self::getPercentage($res['total'][$service]['likes'], $res['total'][$service]['dislikes']); $res['ratio'][$service]['clickback_activities'] = self::getPercentage($res['total'][$service]['activities'], $piData['services'][$service]['cb']); $res['ratio'][$service]['contacts_activities'] = self::getPercentage($res['total'][$service]['activities'], $res['total'][$service]['contacts']); $res['ratio'][$service]['like_percentage'] = self::getPercentage($res['total'][$service]['activities'], $res['total'][$service]['likes']); $res['ratio'][$service]['dislike_percentage'] = self::getPercentage($res['total'][$service]['activities'], $res['total'][$service]['dislikes']); } foreach (PseudoStatsModel::$activities as $key => $value) { $res['average']['all'][$key] = round($res['total']['all'][$key] / ($days == 0 ? 1 : $days), 2); } $res['ratio']['all']['dislike_like'] = self::getPercentage($res['total']['all']['likes'], $res['total']['all']['dislikes']); $res['ratio']['all']['clickback_activities'] = self::getPercentage($res['total']['all']['activities'], $piData['services']['all']['cb']); $res['ratio']['all']['contacts_activities'] = self::getPercentage($res['total']['all']['activities'], $res['total']['all']['contacts']); $res['ratio']['all']['like_percentage'] = self::getPercentage($res['total']['all']['activities'], $res['total']['all']['likes']); $res['ratio']['all']['dislike_percentage'] = self::getPercentage($res['total']['all']['activities'], $res['total']['all']['dislikes']); return $res; }