Exemple #1
0
 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;
 }
Exemple #2
0
 function getSelectedTariff()
 {
     $tariffId = $this->data['tariff'];
     if ($tariffId) {
         $tariffTable = new table('tariff');
         $row = $tariffTable->loadById($tariffId);
         return $row;
     }
 }
Exemple #3
0
 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);
 }
Exemple #4
0
             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);
Exemple #5
0
     $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'));