Beispiel #1
0
 public function createsl($rec)
 {
     extract($rec);
     $excel = file_get_contents($this->getDir() . $template);
     if ($fileext == "xml") {
         // усли шаблон xml файл
         // заменяем в xml файле данные попадающие под шаблон _имя_ на переменную имя из $rec
         preg_match_all('/_([0-9a-z]+)_/', $excel, $matchesarray);
         for ($i = 0; $i < count($matchesarray[0]); $i++) {
             $excel = str_replace($matchesarray[0][$i], ${$matchesarray[1][$i]}, $excel);
         }
     } elseif ($fileext == "xls") {
         // а шаблон может быть и xls файлом,
         if (fileserver::savefile("{$filename}.txt", $rec)) {
             $url = "http://baza3.mpp/?level=getdata&getdata[act]=checksl&slid={$number}";
             try {
                 $barcode = new QR_Code(-1, QR_ErrorCorrectLevel::H);
                 $barcode->addData($url);
                 $barcode->make();
                 $imgbarcode = new QR_CodeImage($barcode, 150, 150, 10);
                 $imgbarcode->draw();
                 $imgbarcode->store("{$filename}.jpg");
                 $imgbarcode->finish();
                 @chmod("{$filename}.jpg", 0777);
             } catch (Exception $ex) {
                 console::getInstance()->out($ex->getMessage());
                 console::getInstance()->out($ex->getTraceAsString());
             }
             /*$barcode = new BarcodeQR();
               $barcode->url($url);
               $barcode->draw(150, "{$filename}.png");
               */
         } else {
             $out = "Не удалось создать файл txt";
             return false;
         }
         // а сам xls запишитеся ниже
     } else {
         // вернем ошибку или в будущем как-то обработаем файл
         return false;
     }
     // сохранить
     if (fileserver::savefile($filename, $excel)) {
         Output::assign('sllink', fileserver::sharefilelink($filename));
         Output::assign('slid', $lanch_id);
         $out = $this->fetch('partylink.tpl') . ($last ? '<script>reload_table();</script>' : '');
     } else {
         $out = "Не удалось записать файл";
         $out = false;
     }
     // вернуть ссылку на файл
     return $out;
 }
 public function getRangePeriod($sdate, $edate)
 {
     $ret = array();
     console::getInstance()->out("{$sdate} nnn {$edate}");
     $sdate = date("Y-m-d", mktime(0, 0, 0, substr($sdate, 3, 2), substr($sdate, 0, 2), substr($sdate, 6, 4)));
     //$dyear."-".$dmonth."-".$dday;
     $edate = date("Y-m-d", mktime(0, 0, 0, substr($edate, 3, 2), substr($edate, 0, 2), substr($edate, 6, 4)));
     //$dyear."-".$dmonth."-".$dday;
     $sql = "SELECT *,sk_{$this->sklad}_spr.id FROM {$this->db}sk_{$this->sklad}_spr\n\t\t\t\tJOIN {$this->db}sk_{$this->sklad}_ost ON sk_{$this->sklad}_ost.spr_id=sk_{$this->sklad}_spr.id\n\t\t\t\tWHERE nazv<>''\n\t\t\t\tORDER BY nazv";
     $res = sql::fetchAll($sql);
     foreach ($res as $rs) {
         $prih = 0;
         $rash = 0;
         $sql = "SELECT SUM(quant) as prihod FROM ({$this->db}sk_{$this->sklad}_dvizh)\n\t\t\t\t\tJOIN {$this->db}sk_{$this->sklad}_spr ON (sk_{$this->sklad}_spr.id=sk_{$this->sklad}_dvizh.spr_id)\n\t\t\t\t\tWHERE ddate >= '{$sdate}'\n\t\t\t\t\t\t\tAND ddate <= '{$edate}'\n\t\t\t\t\t\t\tAND sk_{$this->sklad}_spr.id='{$rs[id]}'\n\t\t\t\t\t\t\tAND type='1'\n\t\t\t\t\t\t\tAND numd<>'9999'\n\t\t\t\t\tGROUP BY sk_{$this->sklad}_spr.id";
         //echo $sql;
         $res1 = sql::fetchAll($sql);
         foreach ($res1 as $rs1) {
             $prih += $rs1["prihod"];
         }
         $sql = "SELECT SUM(quant) as prihod FROM ({$this->db}sk_{$this->sklad}_dvizh_arc)\n\t\t\t\t\tJOIN {$this->db}sk_{$this->sklad}_spr ON (sk_{$this->sklad}_spr.id=sk_{$this->sklad}_dvizh_arc.spr_id)\n\t\t\t\t\tWHERE ddate >= '{$sdate}'\n\t\t\t\t\t\t\tAND ddate <= '{$edate}'\n\t\t\t\t\t\t\tAND sk_{$this->sklad}_spr.id='{$rs[id]}'\n\t\t\t\t\t\t\tAND type='1'\n\t\t\t\t\t\t\tAND numd<>'9999'\n\t\t\t\t\t\t\tGROUP BY sk_{$this->sklad}_spr.id";
         $res1 = sql::fetchAll($sql);
         foreach ($res1 as $rs1) {
             $prih += $rs1["prihod"];
         }
         $sql = "SELECT SUM(quant) as prihod FROM ({$this->db}sk_{$this->sklad}_dvizh)\n\t\t\t\t\tJOIN {$this->db}sk_{$this->sklad}_spr ON (sk_{$this->sklad}_spr.id=sk_{$this->sklad}_dvizh.spr_id)\n\t\t\t\t\tWHERE ddate >= '{$sdate}'\n\t\t\t\t\t\t\tAND ddate <= '{$edate}'\n\t\t\t\t\t\t\tAND sk_{$this->sklad}_spr.id='{$rs[id]}'\n\t\t\t\t\t\t\tAND type='0'\n\t\t\t\t\t\t\tAND numd<>'9999'\n\t\t\t\t\tGROUP BY sk_{$this->sklad}_spr.id";
         $rs1 = sql::fetchOne($sql);
         if (!empty($rs1)) {
             $rash += $rs1["prihod"];
         }
         $sql = "SELECT SUM(quant) as prihod FROM ({$this->db}sk_{$this->sklad}_dvizh_arc)\n\t\t\t\t\tJOIN {$this->db}sk_{$this->sklad}_spr ON (sk_{$this->sklad}_spr.id=sk_{$this->sklad}_dvizh_arc.spr_id)\n\t\t\t\t\tWHERE ddate >= '{$sdate}'\n\t\t\t\t\t\t\tAND ddate <= '{$edate}'\n\t\t\t\t\t\t\tAND sk_{$this->sklad}_spr.id='{$rs[id]}'\n\t\t\t\t\t\t\tAND type='0'\n\t\t\t\t\t\t\tAND numd<>'9999'\n\t\t\t\t\tGROUP BY sk_{$this->sklad}_spr.id";
         $res1 = sql::fetchAll($sql);
         foreach ($res1 as $rs1) {
             $rash += $rs1["prihod"];
         }
         if ($prih != 0 || $rash != 0 || $rs["ost"] != 0) {
             $cols[nazv] = $rs[nazv];
             $cols[prihod] = sprintf("%10.2f", $prih);
             $cols[rashod] = sprintf("%10.2f", $rash);
             $cols[ost] = sprintf("%10.2f", $rs["ost"]);
             $cols[edizm] = $rs[edizm];
             $ret[] = $cols;
         }
     }
     return $ret;
 }
Beispiel #3
0
 protected static function getMessage()
 {
     $selfObj = console::getInstance();
     $format = 'html';
     if (!isset($_SERVER['HTTP_HOST']) || $selfObj->mode !== 'log') {
         $format = $selfObj->mode;
     } else {
         $response_arr = @headers_list();
         if ($response_arr) {
             foreach ($response_arr as $header) {
                 if (strpos($header, 'text/plain') !== false) {
                     $format = 'plain';
                 }
             }
         }
     }
     $backtrace = debug_backtrace();
     $msg_head = $format === 'file' ? date('Y-m-d H:i:s') . ', ' : '';
     $msg_head .= 'File ' . str_replace(DIRECTORY_SEPARATOR, '/', $backtrace[1]['file']) . ', ' . 'Line ' . $backtrace[1]['line'];
     switch ($format) {
         case 'console':
         case 'firebug':
             return $backtrace[1]['args'];
             break;
         case 'src':
         case 'plain':
         case 'file':
             $format_arr = array('open' => $format === 'src' ? "<!--\n" : '', 'close' => $format === 'src' ? "\n-->" : '', 'break' => "\n", 'sep' => str_repeat('-', strlen($msg_head)), 'highlight' => false);
             break;
         case 'html':
             $msg_head = 'File <span style="color:#669">' . str_replace(DIRECTORY_SEPARATOR, '/', $backtrace[1]['file']) . '</span>, ' . 'Line <span style="color:#966">' . $backtrace[1]['line'] . '</span>';
             $format_arr = array('open' => '<pre style="white-space: pre-wrap; font: 16px \'courier new\'; border:10px solid #ccc;background:#eee;padding: 15px;position:relative"><button type=button onclick="this.parentNode.style.display=\'none\'" style="position:absolute; right:5px; top:5px; cursor:pointer" title="Close console">×</button>', 'close' => '</pre>', 'break' => '', 'sep' => '<hr style=\'border: 0;color: #ccc;background-color: #99c;height: 1px;width: 100%;\' />', 'highlight' => true);
             break;
     }
     $msg = $format_arr['break'] . $format_arr['open'] . $msg_head . $format_arr['break'];
     foreach ($backtrace[1]['args'] as $arg) {
         $msg .= $format_arr['sep'] . $format_arr['break'] . self::dumpAsString($arg, 15, $format_arr['highlight']) . $format_arr['break'];
     }
     $msg .= $format_arr['close'];
     return $msg;
 }
Beispiel #4
0
    function add($name, $value = false, $options = array()) {

        $array = $this->fields[$name];
        $errorsHtml = array();
        $errorsText = array();
        $errors = false;

        // возможно здесь следует провести проверку, и если значение установлено в реквесте — ставить всеже его
        if ($value)
            $array[value] = $value;
        if ($value)
            $array[src] = $value;

        if (count($this->errors)) {

            foreach ($this->errors as $error) {

                if ($this->getID($name) == $error[id]) {

                    $errors = true;

                    // если ID совпадают, то враппим в блок текст ошибки
                    $errorsHtml[] = $error[html]; // для span
                    $errorsText[] = $error[text]; // для title
                }
            }
        }


        $return = null;
        if (!is_array($array[options]))
            $array[options] = array();
        $array[options] = array_merge($array[options], $options);

        if ($errors) {
            $array[options][html] .= " title='" . implode(", ", $errorsText) . "'";
        } // для title

        switch ($array[type]) {

            case AJAXFORM_TYPE_CODE: $return = $this->code($array[options]);
                break;
            case AJAXFORM_TYPE_HIDDEN: $return = $this->hidden($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_TEXT: $return = $this->text($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_PASSWORD: $return = $this->password($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_TEXTAREA: $return = $this->textarea($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_BUTTON: $return = $this->button($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_SUBMIT: $return = $this->submit($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_RESET: $return = $this->reset($array[name], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_IMAGE: $return = $this->image($array[name], $array[src], $array[options]);
                break;
            case AJAXFORM_TYPE_CHECKBOX: $return = $this->checkbox($array[name], $array[label], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_CHECKBOXES: $return = $this->checkboxes($array[name], $array[values], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_RADIO: $return = $this->radio($array[name], $array[values], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_SELECT: $return = $this->select($array[name], $array[values], $array[value], $array[options]);
                break;
            case AJAXFORM_TYPE_FILE: $return = $this->file($array[name], $array[options]);
                break;
            case AJAXFORM_TYPE_DATE: $return = $this->date($array[name], $array[value], $array[options]);
                break;
            default:
                console::getInstance()->error("Поле «{$name}» не найдено в массиве или неверно задан тип ({$array[type]}).");
        }

        // если есть ошибки — выводим их под поле
        if ($errors)
            $return .= $this->errorHTML($name, implode($errorsHtml), true);

        return $return;
    }
Beispiel #5
0
 public function init()
 {
     $this->type = $this->getName();
     $this->tid = uniqid($this->type);
     if (!empty($_POST[find])) {
         $_GET[$this->getName()][index][2] = multibyte::UTF_decode($_POST[find]);
     }
     $param = $this->getLegoParam('index');
     $this->all = (bool) $param[0];
     $this->order = $param[1];
     $this->find = $param[2];
     //empty($_REQUEST[find])?$param[2]:  multibyte::UTF_decode($_REQUEST[find]);
     $this->idstr = $param[3];
     $this->del = Auth::getInstance()->getRights($this->type, 'del');
     $this->edit = Auth::getInstance()->getRights($this->type, 'edit');
     $this->buttons = true;
     $this->addbutton = Auth::getInstance()->getRights($this->type, 'edit');
     $this->findbutton = true;
     try {
         $classname = "{$this->getName()}_model";
         if (!class_exists($classname)) {
             $classname = get_class($this) . "_model";
         }
         if (!class_exists($classname)) {
             throw new Exception("Нет класса {$classname}");
         }
         $this->model = new $classname();
         $this->model->init();
     } catch (Exception $e) {
         console::getInstance()->out("[class=" . get_class($this) . "] : " . $e->getMessage());
     }
     try {
         $classname = "{$this->getName()}_view";
         if (!class_exists($classname)) {
             $classname = get_class($this) . "_view";
         }
         if (!class_exists($classname)) {
             $classname = "sqltable_view";
         }
         if (!class_exists($classname)) {
             throw new Exception("Нет класса {$classname}");
         }
         $this->view = new $classname($this);
     } catch (Exception $e) {
         console::getInstance()->out("[class=" . get_class($this) . "] : " . $e->getMessage());
     }
     try {
         $this->form = new ajaxform('');
         // для подключения скриптов
     } catch (Exception $e) {
         console::getInstance()->out("[class=" . get_class($this) . "] : " . $e->getMessage());
     }
 }
Beispiel #6
0
}
if (empty($_REQUEST["level"])) {
    $_REQUEST["level"] = 'baza';
}
include "_setup.php";
header("Content-Type: text/html; charset={$_SERVER[Encoding]}");
if ($_SERVER[Auth]) {
    // update и getdata делается без авторизации
    if (!Auth::getInstance()->run()->success) {
        echo Auth::getInstance()->getOutput();
        echo console::getInstance()->run()->getOutput();
        exit;
    }
}
$classname = $_REQUEST["level"];
$m = new $classname();
if ($m->run()) {
    if (!Ajax::isAjaxRequest()) {
        echo $m->getOutput();
    }
}
//    echo "<script>";
//    echo "storeSetting(".multibyte::Json_encode($_SESSION["user_setting"]).");";
//    echo "</script>";
if ($_SERVER[debug][report]) {
    if (Ajax::isAjaxRequest()) {
        echo console::getInstance()->getScripts();
    } else {
        echo console::getInstance()->run()->getOutput();
    }
}
Beispiel #7
0
// при правильном использовании namespace достаточно только (PSR-0  https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md)
spl_autoload_register();
// а так придестя зарегить функцию вслед за дефолтной
spl_autoload_register('Autoloader::loadPackages');
// сам класс 'Autoloader' описан по PSR-0
// очень внимательно файлы будут искаться в МАЛЕНЬКИМИ буквами autoloader.php - Это известный БАГ и скоро может быть пофиксен
/*
 * Строки ниже  есть в файле autoload
 * НО с использованием SPL приишлось вставить сюда потому, что
 * auttoload включался  каждый раз, а теперь используется include_once
 */
if (!$_SERVER["debug"]["noCache"]["php"]) {
    if (!empty($_SESSION["cache"]) && is_array($_SESSION["cache"])) {
        require_once realpath($_SERVER['DOCUMENT_ROOT']) . cache::buildScript($_SESSION["cache"], 'php');
    }
}
/*
 * пожалуй уберу строчку из файла autoload и поставлю включение сюда
 */
//include_once __DIR__ . '/_engine/autoload.php'; // инклудим автозагрузку модулей
ob_get_clean();
/*
 * Делать хоть один инстанс нужно для включения скриптов в заголовки
 */
Lang::getInstance()->setLang('ru');
// перехватим ошибки
if ($_SERVER[debug][report]) {
    console::getInstance();
    //->out(print_r($_REQUEST, true));
    profiler::add('Autoexec', 'Выполнение начальных установок');
}