public function getStatistics() { global $sessionId; $data = array("total" => 0, "bymonth" => array()); $masterTable = new table('master'); $master = $masterTable->loadById($sessionId); $permittedCities = $master['city']; $permittedStreets = $master['street']; $permittedGroups = $master['usergroup']; foreach ($this->getCoveredMonths() as $month) { $monthAsText = $month->format('Y-m'); $cacheFilename = 'paymentstats-' . $monthAsText; if (pluginExists('grouprestrict') && $permittedGroups) { $cacheFilename .= '-group(' . join($permittedGroups, '_') . ')'; } $cacheFilename .= '.txt'; $cache = new StatisticsCache($cacheFilename); $cache->month = $month; $monthData = json_decode($cache->get(), true); $data['total'] += $monthData['total']; $data['bymonth'][$monthAsText] = $monthData; } return $data; }
function getSelectedTariff() { $tariffId = $this->data['tariff']; if ($tariffId) { $tariffTable = new table('tariff'); $row = $tariffTable->loadById($tariffId); return $row; } }
public function getData() { global $mysqlTimeDateFormat, $sessionId; $data = array("total" => 0, "scratchcard" => 0, "adminpay" => array("total" => 0, "byadmin" => array())); $masterTable = new table('master'); $master = $masterTable->loadById($sessionId); $permittedCities = $master['city']; $permittedStreets = $master['street']; $permittedGroups = $master['usergroup']; $admins = $masterTable->load(); for ($i = 0; $i < count($admins); $i++) { $data['adminpay']['byadmin'][$admins[$i]['id']] = 0; } $currentTime = new DateTime(); $moneyflowTable = new table('moneyflow'); $startDate = clone $this->month; $endDate = clone $this->month; $endDate->modify('1 month'); $endDate->modify('-1 second'); $offsetDays = configgetvalue('system', 'statistics', null, 'paymentsOffset'); $startDate->modify($offsetDays . ' day'); $endDate->modify($offsetDays . ' day'); $condition = "WHERE `date`>='" . $startDate->format($mysqlTimeDateFormat) . "' AND `date`<='" . $endDate->format($mysqlTimeDateFormat) . "' AND (`detailsname`='adminpay' OR `detailsname`='scratchcard') AND `sum`>0"; if (pluginExists('grouprestrict') && $permittedGroups) { $condition .= " AND ( `user` IN (SELECT `id` FROM `user` WHERE `usergroup` IN (" . join($permittedGroups, ",") . ") ) )"; } $rows = $moneyflowTable->load($condition); foreach ($rows as $row) { $sum = $row['sum']; $data['total'] += $sum; if ($row['detailsname'] === 'adminpay') { $data['adminpay']['total'] += $sum; if (!isset($data['adminpay']['byadmin'][$row['detailsid']])) { $data['adminpay']['byadmin'][$row['detailsid']] = 0; } $data['adminpay']['byadmin'][$row['detailsid']] += $sum; } else { $data['scratchcard'] += $sum; } } $lastRow = end($rows); configsetvalue('var', 'cache', null, 'int', $this->fileName, $lastRow['id']); return json_encode($data); }
controllerRouter($row['id'], 'export', false); } $response->success = true; } break; case 'configlist': $response->default = $default; $response->data = configlist(); $response->success = true; break; case 'getacl': $masterTable = new table('master'); $master = $masterTable->loadById($sessionId); $userGroupId = $master['group']; $groupTable = new table('group'); $group = $groupTable->loadById($userGroupId); $userAcl = json_decode($group['acl'], true); $response = $userAcl; break; case 'getstatimage': if (checkPermission($sessionId, array('statistics'))) { $routerId = $_GET['router']; $path = str_replace(' ', '%20', $_GET['path']); $routerTable = new table('router'); $res = $routerTable->load("WHERE id={$routerId}"); if ($row = $res[0]) { $address = $row['ip']; $port = configgetvalue('router', 'main', $routerId, 'statPort'); $url = "http://{$address}:{$port}/{$path}.gif"; header("Content-Type:image/gif"); $img = file_get_contents($url);
$request = "WHERE ((`sender`=" . $user->getId() . " AND `sender_is_admin`=0) OR "; $request .= "(`recipient`=" . $user->getId() . " AND `recipient_is_admin`=0)) "; if (isset($_GET['id'])) { $request .= "AND `id`=" . intval($_GET['id']); } $request = "UPDATE " . DB_TABLE_PREFIX . "`message` SET `is_new`=0, `readdate`='" . date($mysqlTimeDateFormat) . "' " . $request; $db->query($request); // Check for another unread messages $request = "WHERE `recipient`=" . $user->getId() . " AND `recipient_is_admin`=0 AND `is_new`=1"; $newMessages = $messageTable->load($request); if (count($newMessages)) { $nextMessage = $newMessages[0]; redirect('message.php?action=show&id=' . $nextMessage['id']); } else { $usersTable = new table('user'); $row = $usersTable->loadById($user->getId()); controllerRouterQueue($row['router'], "hidemessage", $user->getId()); redirect('message.php?action=finish'); } break; case 'send': if (isset($_POST['text']) && $_POST['text']) { $messageText = htmlspecialchars($_POST['text']); $messageTable->add(array("text" => $messageText, "sender" => $user->getId(), "sender_is_admin" => 0, "recipient" => 0, "is_new" => 1, "recipient_is_admin" => 1, "date" => date($mysqlTimeDateFormat))); } redirect('message.php?action=messagehasbeensent'); break; case 'messagehasbeensent': $fenom->display($theme->getTemplateLocation('header.tpl'), $headerData); $fenom->display($theme->getTemplateLocation('messagehasbeensent.tpl')); $fenom->display($theme->getTemplateLocation('footer.tpl'));