public function setRecord($data)
 {
     $data[blocktype] = $this->blocktype;
     $operation[$data[operation_id]] = array('date' => $data[action_date], 'comment_id' => sqltable_model::getCommentId($data[comment]));
     // если в поле для нового ввели номер сопроводиловки уже существующий в журнале
     // то будем править его
     $sql = "SELECT * FROM {$this->maintable} WHERE lanch_id='{$data[lanch_id]}'";
     $res = sql::fetchOne($sql);
     if (empty($res)) {
         // гадство! тут нужен уникальный, а без коментариев будет получаться один
         sql::insert('coments', array(array("comment" => multibyte::Json_encode($operation))));
         $data[coment_id] = sql::lastId();
     } else {
         $coment = multibyte::Json_decode(sqltable_model::getComment($res[coment_id]));
         $coment[$data[operation_id]] = $operation[$data[operation_id]];
         // заменить старый по ключу
         sql::insertUpdate('coments', array(array("id" => $res[coment_id], "comment" => multibyte::Json_encode($coment))));
         $data[edit] = $res[id];
         // если был такой его и правим
         $data[coment_id] = $res[coment_id];
     }
     $data[lastoperation] = $data[operation_id];
     parent::setRecord($data);
     return true;
 }
Example #2
0
    /**
     * 	Функция возвращает обработанный для фронтенда контент
     * 	@param	$content string	Текущий контент (то, что вывелось на страницу тем или иным образом)
     */
    public static function process($content) {

        $json = multibyte::Json_encode(array(
            "js" => self::$result,
            "text" => "{$content}",
                ), self::$entityDecode);
        return $json;
    }
Example #3
0
 public function action_commentupdate($coment_id)
 {
     $operationid = $_REQUEST[idstr];
     $operations = multibyte::Json_decode(sqltable_model::getComment($coment_id));
     $coment_id = $operations[$operationid][comment_id];
     $out = sqltable_model::getComment($coment_id);
     $date = ajaxform::date2datepicker($operations[$operationid][date]);
     $out .= "<script>\$(\"*[datepicker='1']\").val('{$date}')</script>";
     return $out;
 }
Example #4
0
 /**
  * Универсальный запрос и возврат
  * @param array $rec содержит массив REQUEST с параметрами
  * должны быть $id, $table, $format, соответственно идентификатор в таблице, таблица и формат возврата
  * Так как используется для запросов из скриптов (САМ, cmd, bash) форматы 
  * line - посторочно без ключа
  * keyline - посторочно ключ|значение (default)
  * array - в массиве PHP на всякий случай
  * json - ну понятно
  * @return  variable в зависимости
  * rem tear "http://baza4/?level=getdata&getdata[act]=uniget&table=customers&id=5" > res
  * rem tear "http://baza4/?level=getdata&getdata[act]=uniget&object=orders_customers_model&id=5" > res
  * rem tear "http://baza4/?level=getdata&getdata[act]=uniget&object=orders_customers_model&id=5&format=json" > res
  * rem tear "http://baza4/?level=getdata&getdata[act]=uniget&table=customers&id=%%D0%%90%%D0%%B7%%D0%%B8%%D0%%BC%%D1%%83%%D1%%82&field=customer" >res
  * tear "http://baza4/?level=getdata&getdata[act]=uniget&table=customers&id=Аврора&field=customer" >res
  */
 public function uniget($rec)
 {
     if (!multibyte::is_utf($rec)) {
         $rec = multibyte::cp1251_to_utf8($rec);
     }
     extract($rec);
     if (!isset($format)) {
         $format = "keyline";
     }
     if (isset($id)) {
         if (isset($table)) {
             if (1 * $id != 0) {
                 $sql = "SELECT * FROM `{$table}` WHERE id='{$id}'";
             } else {
                 if (isset($field)) {
                     $sql = "SELECT * FROM `{$table}` WHERE `{$field}`='{$id}'";
                 } else {
                     // не определить
                     return;
                 }
             }
             $res = sql::fetchOne($sql);
         } elseif (isset($object)) {
             if (class_exists($object)) {
                 $object = new $object();
                 if (method_exists($object, "getRecord")) {
                     $res = $object->getRecord($id);
                 }
             }
         }
         // вывод
         if ($format == "json") {
             $res = json_encode($res, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
             echo $res;
             return $res;
         } elseif ($format == "array") {
             return $res;
         } else {
             foreach ($res as $key => $value) {
                 if ($format == "line") {
                     echo "{$value}\n";
                 } else {
                     echo "{$key}|{$value}\n";
                 }
             }
             return;
         }
     }
 }
Example #5
0
 public function showrec($rec)
 {
     extract($rec);
     $top = file_get_contents($this->getDir() . "/treb.tpl");
     $middle = file_get_contents($this->getDir() . "/row.tpl");
     $bot = file_get_contents($this->getDir() . "/bottom.tpl");
     $buffer = $top;
     $buffer = str_replace("_nomer_", '', $buffer);
     $buffer = str_replace("_date_", date("d.m.Y", mktime(0, 0, 0, ceil(substr($ddate, 5, 2)), ceil(substr($ddate, 8, 2)), ceil(substr($ddate, 0, 4)))), $buffer);
     $buffer = str_replace("_cherezkogo_", multibyte::UTF_decode($cherezkogo), $buffer);
     $buffer = str_replace("_zatreb_", multibyte::UTF_decode($zatreb), $buffer);
     $buffer = str_replace("_razresh_", multibyte::UTF_decode($razresh), $buffer);
     //echo $buffer;
     foreach ($positions as $rs) {
         $buffer .= $middle;
         $buffer = str_replace("_nazv_", $rs["nazv"], $buffer);
         $buffer = str_replace("_edizm_", $rs["edizm"], $buffer);
         $buffer = str_replace("_otp_", $rs["quant"], $buffer);
     }
     $buffer .= $bot;
     $buffer = str_replace("_cherezkogo_", multibyte::UTF_decode($cherezkogo), $buffer);
     return $buffer;
 }
Example #6
0
 static public function savefile($filename, $content) {
     // записать файл
     $file = @fopen($filename, "w");
     if ($file) {
         if (is_array($content)) {
             // если передали набор данных сохраним переменные в формате key|var
             foreach ($content as $key => $value) {
                 // сохраним все переменные в файл txt, чтоб xls потом сам оттуда забрал
                 // использем в качестве разделителя вертикальную черту, скорее всего её не будет в данных
                 // если же, паче чаяния, она там окажется придется использовать тройную, скажем, и
                 //  переписывать скрипты в xls файле
                 fwrite($file, sprintf("%s|%s\n",multibyte::utf8_to_cp1251($key),multibyte::utf8_to_cp1251(html_entity_decode($value))));
             }
         } else {
             // иначе просто запишем текст
             fwrite($file, $content);
         }
         fclose($file);
         chmod($filename, 0777);
         return true;
     } else {
         return false;
     }
 }
Example #7
0
 public function storeFiles($files = false, $dir = '')
 {
     if ($files) {
         // файл если есть сохраним
         $curfile = array();
         foreach ($files as $file) {
             if (!empty($file[size])) {
                 $pathname = $_SERVER["DOCUMENT_ROOT"] . UPLOAD_FILES_DIR . "/" . multibyte::UTF_encode($dir);
                 if (!file_exists($pathname)) {
                     // содать каталог
                     @mkdir($pathname, 0777);
                 }
                 $filename = $pathname . "/" . multibyte::UTF_encode($file["name"]);
                 $i = 0;
                 while (file_exists($filename)) {
                     $i++;
                     $filename = $pathname . "/{$i}_" . multibyte::UTF_encode($file["name"]);
                 }
                 if (@move_uploaded_file($file["tmp_name"], $filename)) {
                     // переместилось удачно
                     @chmod($filename, 0777);
                     $filename = multibyte::UTF_decode($filename);
                     $curfile[$this->getFileId($filename)] = 1;
                     // сделаем структуру как уже существующие
                 } else {
                     return false;
                 }
             }
         }
         return $curfile;
     } else {
         return array();
     }
 }
Example #8
0
 /**
  * Сохраняет или обновляет данные о расчете цены в таблице orderformoney
  * @param array $rec
  * @return var
  */
 public function moneyfororder($rec)
 {
     $rec = multibyte::cp1251_to_utf8($rec);
     extract($rec);
     $rec[hash] = hash('md5', $customer . $order . $board . $mater . $trud);
     $sql = "SELECT * FROM moneyfororder WHERE hash='{$rec[hash]}'";
     $rs = sql::fetchOne($sql);
     if (!empty($rs)) {
         $rec[id] = $rs[id];
     }
     //echo $sql;
     sql::insertUpdate("moneyfororder", array($rec));
     return true;
 }
Example #9
0
    function checkboxes($name, $values, $value, $options = array()) {

        ob_start();

        $value = $this->getValue($name, $value);
        $value = (@!is_array($value)) ? multibyte::Json_decode($value) : $value;

        list($optionsHTML, $options) = $this->parseOptions($options);
        list($block, $line) = $this->getBlock($options[nobr], $this->getId($name));

        $options[nobr] = true;

        echo $block[begin];
        if (is_array($values))
            foreach ($values as $id => $label) {

                echo $line[begin];
                $val = (@in_array($id, $value) || !empty($value[$id])) ? 1 : 0;
                echo $this->checkbox($name . "|" . $id, $label, $val, $options, true);
                echo $line[end];
            }
        echo $block[end];

        return ob_get_clean();
    }
Example #10
0
<?php

require_once 'multibyte.inc';
$o = new multibyte();
$s = "";
$o->set_sjis();
$o->convert($s);
$o->set_euc();
$o->convert($s);
$o->set_jis();
$o->convert($s);
$o->set_utf8();
$o->convert($s);
$o->set_guess_string("Sjis");
print $o->get_charset_string() . "\n";
$o->set_guess_string("eUC");
print $o->get_charset_string() . "\n";
$o->set_guess_string("shift-jis");
print $o->get_charset_string() . "\n";
$o->set_guess_string("shift_jis");
print $o->get_charset_string() . "\n";
$o->set_guess_string("jis");
print $o->get_charset_string() . "\n";
$o->set_guess_string("utf-8");
print $o->get_charset_string() . "\n";
$o->set_guess_string("utf8");
$o->convert($s);
Example #11
0
 public function getSlMpp($rec)
 {
     extract($rec);
     // получить данные в переменные
     $sql = "SELECT\r\n                    blockname AS board_name,\r\n                    CONCAT(orders.number,CONCAT(' от ',CONCAT(DATE_FORMAT(orderdate,'%d.%m.%Y'),CONCAT(' - ',CONCAT(posintz.numbers,' шт.'))))) AS letter,\r\n                    fullname AS customerfullname,\r\n                    posintz.numbers AS numbers,\r\n                    drlname AS frezfile,\r\n                    scomp AS copperc,\r\n                    ssolder AS coppers,\r\n                    CONCAT(CEIL(blocks.sizex),CONCAT('x',CEIL(blocks.sizey))) AS sizez,\r\n                    priem,\r\n                    tz.id as tzid,\r\n                    blocks.id AS block_id,\r\n                    customers.id AS customer_id,\r\n                    blocks.comment_id AS comment_id1,\r\n                    posintz.comment_id AS comment_id2,\r\n                    posintz.posintz AS posintz\r\n\r\n                    FROM posintz\r\n                    JOIN (customers,blocks,tz,\r\n                            orders)\r\n                    ON (blocks.id=posintz.block_id\r\n                        AND customers.id=orders.customer_id\r\n                        AND posintz.tz_id=tz.id\r\n                        AND tz.order_id=orders.id\r\n                        )\r\n                    WHERE posintz.id='{$posid}'";
     $rs = sql::fetchOne($sql);
     $rs = multibyte::UTF_encode($rs);
     $rec = array_merge($rec, $rs);
     extract($rs);
     $param = json_decode(multibyte::Unescape(sqltable_model::getComment($comment_id1)), true);
     if (empty($param)) {
         $param = array();
     }
     // если коментарий не JSON или неправильный JSON
     $rec[customerfullname] = html_entity_decode($rec[customerfullname]);
     // кавычки в названии
     $rec = array_merge($rec, $param);
     $rec[mkrfile] = "{$rec[frezfile]}.{$param[filext]}";
     $rec[comment1] = multibyte::UTF_encode($param["coment"]);
     $rec[comment2] = sqltable_model::getComment($comment_id2);
     $sql = "SELECT *, board_name AS boardname, sizex AS psizex,\r\n                        sizey AS psizey\r\n                FROM blockpos\r\n                JOIN (boards)\r\n                ON (boards.id=blockpos.board_id)\r\n                WHERE blockpos.block_id='{$block_id}'";
     $res = sql::fetchOne($sql);
     extract($res);
     $platonblock = $res[nib];
     $tolsh = $res[thickness];
     $rec[sizep] = sprintf("%5.1fx%5.1f", $res[sizex], $res[sizey]);
     $mask = $res[mask];
     $mark = $res[mark];
     $rec = array_merge($rec, compact('platonblock', 'numlam', 'rmark', 'immer', 'mask', 'layers', 'mark', 'commentp'));
     if ($customer_id == '8') {
         // радар
         $zagotinparty = 1;
     } else {
         $zagotinparty = 5;
     }
     $rec[zagotinparty] = $zagotinparty;
     if ($dozap === true) {
         $zagotovokvsego = ceil($dozapnumbers / $platonblock);
         $zag = $zagotovokvsego;
         $ppart = $dozapnumbers;
         $numpl1 = $numbers = $dozapnumbers;
         $part = -2;
         //$party;
     } elseif ($dozap == "zadel") {
         $part = -1;
         $zagotovokvsego = ceil($dozapnumbers["use"] / $platonblock);
         $zag = $zagotovokvsego;
         $ppart = $dozapnumbers["use"];
         $numpl1 = $numbers = $dozapnumbers["use"];
     } else {
         // в дозапуске указано сколько запускать в реале
         $zagotovokvsego = ceil($dozap / $platonblock);
         // общее количество заготовок + 15% потом может быть
         $zag = $party * $zagotinparty >= $zagotovokvsego ? $zagotovokvsego - ($party - 1) * $zagotinparty : $zagotinparty;
         $ppart = ceil($zagotovokvsego / $zagotinparty) > 1 ? isset($last) ? $numbers - (ceil($numbers / $platonblock / $zagotinparty) - 1) * $platonblock * $zagotinparty . "({$numbers})" : $zag * $platonblock . "({$numbers})" : $numbers;
     }
     $rec[last] = ceil($zagotovokvsego / $zagotinparty) <= $party;
     // реорганизуем для запонения сл одной строчкой
     $rec[number] = sprintf("%08d", $lanch_id);
     $platonblock = $zagotovokvsego * $platonblock;
     $rec[numonzag] = "{$rec[platonblock]} ({$platonblock})";
     $rec[znumbers] = "{$zag} ({$zagotovokvsego})";
     $rec[marktype] = stristr($rec[mark], multibyte::UTF_encode('PR')) ? multibyte::UTF_encode('Маркировка на PRINTARе') : multibyte::UTF_encode('Фотомаркировка');
     $rec[phm1] = strstr($rec[mark], '1') || strstr($rec[mark], '2') ? "+" : "-";
     $rec[phm2] = strstr($rec[mark], '2') ? "+" : "-";
     $rec[rmark] = $rec[rmark] == '1' ? "+" : "-";
     $rec[sizex] = ceil($rec[sizex]);
     $rec[sizey] = ceil($rec[sizey]);
     $rec[dataz] = date("d.m.Y");
     $rec[tolsh] = $tolsh;
     $rec[spm] = strstr($rec[mask], multibyte::UTF_encode('КМ')) ? "+" : "-";
     $rec[zhpm] = strstr($rec[mask], multibyte::UTF_encode('ЖМ')) ? "+" : "-";
     $rec[immer] = $rec[immer] == '1' ? "+" : "-";
     $rec[priempz] = strstr($priem, multibyte::UTF_encode('ПЗ')) ? "+" : "-";
     $rec[priemotk] = '+';
     // всегда
     $rec[copperc] = sprintf("%3.2f", $rec[copperc] / 10000);
     $rec[coppers] = sprintf("%3.2f", $rec[coppers] / 10000);
     $rec[lamel] = $rec[numlam] > 0 ? "+" : "-";
     // прокоментируем сопроводительный лист
     $rec[dozapcoment] = $rec[dozap] === true ? multibyte::UTF_encode('ДОЗАПУСК') : ($rec[dozap] == "zadel" ? multibyte::UTF_encode('ИЗ ЗАДЕЛА') : '');
     $rec[comment] = $rec[comment1] . " " . $rec[comment2] . " " . $rec[dozapcoment];
     $rec = array_merge($rec, compact('ppart', 'part', 'zagotovokvsego', 'zag'));
     return $rec;
 }
Example #12
0
 public function getDataForCalc($id)
 {
     $rec = array();
     $sql = "SELECT *,CONCAT (number,' от ',DATE_FORMAT(orderdate,'%d.%m.%Y')) as letter, " . "boards.sizex/100.0 as psizex, " . "boards.sizey/100.0 as psizey, " . "blocks.sizex/100.0 as bsizex, " . "blocks.sizey/100.0 as bsizey, " . "immer*auarea as gold, " . "CONCAT(numlam,' ',lsizex,'x',lsizey) as lamel, " . "blocks.comment_id as bcid " . "FROM posintz JOIN (tz,orders,customers,blocks,blockpos,boards) " . "ON (posintz.tz_id=tz.id " . "AND tz.order_id=orders.id " . "AND posintz.block_id=blocks.id " . "AND orders.customer_id=customers.id " . "AND blockpos.block_id=blocks.id " . "AND blockpos.board_id=boards.id )  " . "WHERE posintz.id='{$id}'";
     $rec = sql::fetchOne($sql);
     $params = json_decode(multibyte::Unescape(sqltable_model::getComment($rec["bcid"])), true);
     //получим текщий комент из блока
     $rec[eltest] = $params[eltest];
     $rec[etpib] = $params[etpib];
     $rec[etpoints] = $params[etpoints];
     $rec[etcompl] = $params[etcompl];
     $rec[thickness] = (double) $rec[thickness];
     $rec[type] = $rec[layers] > 2 ? 'mpp' : 'dpp';
     $rec[template] = "r{$rec[type]}.xls";
     preg_match('/(?P<nummask>[+0-9]*)(?P<mask>.*)/i', $rec[mask], $matches);
     $rec[mask] = $matches[mask];
     $rec[nummask] = empty($matches[nummask]) ? 2 : $matches[nummask];
     $rec[frez_factor] = $rec[frez_factor] > 0 ? $rec[frez_factor] : 1.0;
     $orderstring = fileserver::removeOSsimbols($rec[letter] . " tz{$rec[tz_id]} posintz{$id}");
     $rec[filename] = "t:\\\\Расчет стоимости плат\\\\{$rec[customer]}\\\\{$rec[blockname]}\\\\{$orderstring}.xls";
     return $rec;
 }
Example #13
0
 public function action_addfilelink()
 {
     $edit = new ajaxform_edit($this->getName());
     $edit->restore();
     $filename = multibyte::UTF_decode($_REQUEST[filename]);
     $id = $this->model->getFileId($filename);
     $values[$id] = basename($this->model->getFileNameById($id));
     $value[$id] = 1;
     $field = array("type" => AJAXFORM_TYPE_CHECKBOXES, "name" => "linkfile", "label" => '', "value" => $value, "values" => $values);
     $edit->addFieldAsArray($field);
     $edit->form->SessionSet();
     $out = $edit->getFieldOut($edit->fields[$field[name]]);
     return $out;
 }
Example #14
0
 public function setRecord($data)
 {
     extract($data);
     // в скрытых параметрах формы есть идентификатор коментария, заберем текущий и заменим в нем собственно коментарий
     $param = json_decode(multibyte::Unescape($this->getComment($comment_id)), true);
     $param["class"] = $data["class"];
     $param[basemat] = $data["basemat"];
     $param[sttkan] = $data["sttkan"];
     $param[sttkankl] = $data["sttkankl"];
     $param[sttkanrasp] = $data["sttkanrasp"];
     $param[rtolsh] = $data["rtolsh"];
     $param[filext] = $data["filext"];
     $param[elkon] = $data["elkon"];
     for ($i = 1; $i < 11; $i++) {
         $param["sl{$i}"] = $data["sl{$i}"];
         $param["pr{$i}"] = $data["pr{$i}"];
         $param["mat{$i}"] = $data["mat{$i}"];
     }
     $param["coment"] = $comment;
     $data["comment_id"] = $this->getCommentId(multibyte::Json_encode(multibyte::recursiveEscape($param)));
     return parent::setRecord($data);
 }
Example #15
0
 public function getJson($data)
 {
     //header("CONTENT-TYPE: TEXT/X-JSON; CHARSET={$_SERVER[Encoding]}");
     header("CONTENT-TYPE: APPLICATION/JSON; CHARSET={$_SERVER[Encoding]}");
     echo multibyte::Json_encode($data, true);
 }