Esempio n. 1
0
 /**
  * Добавляет к блоку данные о проводниках и зазорах
  */
 public function wideandgap($rec)
 {
     $rec = multibyte::cp1251_to_utf8($rec);
     // TODO duble code
     // update block size
     extract($rec);
     $sql = "SELECT id FROM customers WHERE customer='{$customer}'";
     $rs = sql::fetchOne($sql);
     if (empty($rs)) {
         $sql = "INSERT INTO customers (customer) VALUES ('{$customer}')";
         sql::query($sql);
         $customer_id = sql::lastId();
     } else {
         $customer_id = $rs[id];
     }
     $sql = "SELECT id,comment_id FROM blocks WHERE customer_id='{$customer_id}' AND blockname='{$board}'";
     $rs = sql::fetchOne($sql);
     if (!empty($rs)) {
         $params = json_decode(multibyte::Unescape(sqltable_model::getComment($rs["comment_id"])), true);
         //получим текщий комент
         $params["wideandgaps"] = update_model::parsexstring($wideandgaps);
         $comment_id = sqltable_model::getCommentId(multibyte::Json_encode(multibyte::recursiveEscape($params)));
         $id = $rs["id"];
         $sql = "UPDATE blocks SET comment_id='{$comment_id}' WHERE id='{$id}'";
         sql::query($sql);
         echo json_encode($params);
     }
     /* если не нашелся такой блок, то не понятно как вызывался метод, блок создается раньше вызовом coppers и другими
      * wideandgaps вызывается для готовых блоков, не вижу смысла отрабатывать ситуацию когда блока нет
      */
 }
Esempio n. 2
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;
 }
Esempio n. 3
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;
 }
Esempio n. 4
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);
 }