/**
  * Получить список операций
  */
 function listOperations($args)
 {
     // Дата начала
     $dateFrom = isset($this->request->get['dateFrom']) && $this->request->get['dateFrom'] != '' ? Helper_Date::getMysqlFromString($this->request->get['dateFrom']) : Helper_Date::getMysql(time() - 7 * 24 * 60 * 60);
     // Костылёк для PDA
     if (isset($this->request->get['period'])) {
         switch ($this->request->get['period']) {
             case 'month':
                 $dateFrom = Helper_Date::getMysql(time() - 30 * 24 * 60 * 60);
                 break;
             case 'day':
                 $dateFrom = Helper_Date::getMysql(time() - 1 * 24 * 60 * 60);
                 break;
             case 'week':
                 $dateFrom = Helper_Date::getMysql(time() - 7 * 24 * 60 * 60);
         }
         if (_Core_TemplateEngine::getResponseMode($this->request) != "csv") {
             $this->tpl->assign('period', $this->request->get['period']);
         }
     } else {
         if (_Core_TemplateEngine::getResponseMode($this->request) != "csv") {
             $this->tpl->assign('period', 'week');
         }
     }
     // Дата окончания
     $dateTo = isset($this->request->get['dateTo']) && $this->request->get['dateTo'] != '' ? Helper_Date::getMysqlFromString($this->request->get['dateTo']) : Helper_Date::getMysql(time());
     // Категория
     $category = isset($this->request->get['category']) ? (int) $this->request->get['category'] : 0;
     // Счёт
     $account = isset($this->request->get['account']) ? (int) $this->request->get['account'] : 0;
     if (_Core_TemplateEngine::getResponseMode($this->request) != "csv") {
         $this->tpl->assign('accountId', $account);
     }
     //Тип операции
     $type = null;
     if (!isset($this->request->get['type'])) {
         // WTF ?!!
         $type = -1;
     } else {
         $type = $this->request->get['type'];
     }
     // Показывать операции на сумму не меньше ..
     $sumFrom = null;
     if (isset($this->request->get['sumFrom']) && $this->request->get['sumFrom']) {
         $sumFrom = (double) $this->request->get['sumFrom'];
     }
     // Показывать операции на сумму не больше ..
     $sumTo = null;
     if (isset($this->request->get['sumTo']) && $this->request->get['sumTo']) {
         $sumTo = (double) $this->request->get['sumTo'];
     }
     $search_field = isset($this->request->get['search_field']) ? $this->request->get['search_field'] : '';
     $list = $this->model->getOperationList($dateFrom, $dateTo, $category, $account, $type, $sumFrom, $sumTo, $search_field);
     $dateBeforeFrom = Helper_Date::getMysql(strtotime($dateFrom . " -1 day"));
     $listBefore = $this->model->getOperationList($dateFrom, $dateBeforeFrom, $category, $account, $type, $sumFrom, $sumTo, $search_field, true, true);
     $listAfter = $this->model->getOperationList($dateFrom, $dateTo, $category, $account, $type, $sumFrom, $sumTo, $search_field, true);
     if (!$list) {
         $list = array();
     }
     // Привет кэп !
     $array = array();
     // Составляем список операций
     foreach ($list as $key => $operation) {
         if (!is_null($operation['account_name'])) {
             $array[$key] = $operation;
         } else {
             $array[$key] = $operation;
             $array[$key]['account_name'] = '';
         }
         if (_Core_TemplateEngine::getResponseMode($this->request) == "csv") {
             switch ($array[$key]['type']) {
                 case Operation::TYPE_WASTE:
                     $array[$key]['type'] = 'Расход';
                     break;
                 case Operation::TYPE_PROFIT:
                     $array[$key]['type'] = 'Доход';
                     break;
                 case Operation::TYPE_TRANSFER:
                     $array[$key]['type'] = 'Перевод со счёта';
                     break;
                 case Operation::TYPE_TARGET:
                     $array[$key]['type'] = 'Перевод на фин. цель';
                     break;
             }
         }
     }
     $this->_setDrain($array);
     $this->tpl->assign('name_page', 'operations/operation');
     if (_Core_TemplateEngine::getResponseMode($this->request) != "csv") {
         $this->tpl->assign('operations', $array);
         $this->tpl->assign('list_before', $listBefore);
         $this->tpl->assign('period_change', $listAfter);
     } else {
         //CSV
         $headers = array('Дата', 'Тип', 'Сумма', 'Счет', 'Категория', 'Метки', 'Комментарий');
         $this->tpl->assign('elements', $array);
         $this->tpl->assign('headers', $headers);
         $this->tpl->assign('filename', 'EasyFinance Operations ' . $this->request->get['dateFrom'] . " - " . $this->request->get['dateTo'] . '.csv');
     }
 }
Ejemplo n.º 2
0
 public static function redirect($url, $isExternal = false, $statusCode = 200)
 {
     if (array_key_exists($statusCode, self::$headerByCode)) {
         header(self::$headerByCode[$statusCode]);
     }
     if ($isExternal) {
         header('Location: ' . $url);
         exit;
     }
     $request = _Core_Request::getFake($url);
     $router = new _Core_Router($request, _Core_TemplateEngine::getPrepared($request));
     try {
         $router->performRequest();
     } catch (Exception $e) {
         // Вывод отладочной информации
         if (DEBUG) {
             echo highlight_string("<?php\n" . $e->getTraceAsString());
             exit;
         } elseif ('/notfound' == $url) {
             exit;
         } else {
             self::redirect('/notfound', false, 404);
         }
     }
 }
Ejemplo n.º 3
0
/**
 * Индексный файл проекта
 * @copyright http://easyfinance.ru/
 * @version SVN $Id$
 */
define('INDEX', true);
error_reporting(E_ALL);
// Подключаем файл с общей конфигурацией проекта
require_once dirname(dirname(__FILE__)) . '/include/config.php';
// Загружаем общие данные
// @todo оторвать!
require_once SYS_DIR_INC . 'common.php';
// Получаем обьект с параметрами запроса.
$request = _Core_Request::getCurrent();
// Получаем текущий шаблонизатор на основании запроса
$templateEngine = _Core_TemplateEngine::getPrepared($request);
// Запускаем хелпер для IFRAME авторизации и подключения шаблонов
Helper_IframeLogin::login($templateEngine);
// Инициализация роутера
$router = new _Core_Router($request, $templateEngine);
try {
    // Выполнение запроса (разбор ->вызов контроллера)
    $router->performRequest();
    if (_Core_Request::getCurrent()->host . '/' == HOST_ROOT_IFRAME) {
        $templateEngine->display('iframe/index.iframe.html');
    } elseif (_Core_Request::getCurrent()->host . '/' == HOST_ROOT_RAMBLER) {
        $templateEngine->display('index.html');
    } else {
        if (!IS_DEMO) {
            // Если пользователь зашёл с мобильного браузера
            if (_Core_Request::getCurrent()->host . '/' != HOST_ROOT_PDA && Helper_DetectBrowser::detectMobile() && !isset($_COOKIE['DO_WHANT_FULL_VERSION'])) {