public function __construct() { parent::__construct(); $this->db = "`{$_SERVER['storagebase']}`."; $this->sklad = storages::$storages[$_SESSION[Auth::$lss][storagetype]][sklad]; $this->maintable = "{$this->db}sk_{$this->sklad}_spr"; }
public function getData($all = false, $order = '', $find = '', $idstr = '') { $ret = parent::getData($all, $order, $find, $idstr); $sql = "SELECT * \n FROM moneyfororder " . (!empty($find) ? "WHERE (`customer` LIKE '%{$find}%' OR `order` LIKE '%{$find}%' ) " : "") . "GROUP BY `customer`, `order`,`mater`,`trud` " . (!empty($order) ? "ORDER BY {$order} " : "ORDER BY customer DESC ") . ($all ? "LIMIT 500" : "LIMIT 20"); $ret = sql::fetchAll($sql); return $ret; }
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; }
public function getRecord($edit) { $rec = parent::getRecord($edit); $sql = "SELECT * FROM blockpos JOIN boards ON boards.id=blockpos.board_id WHERE block_id={$rec[block_id]}"; $rec[boards] = sql::fetchAll($sql); foreach ($rec[boards] as &$value) { $value[filelinks] = $this->getFilesForId('boards', $value[board_id]); } return $rec; }
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; }
public function getRecord($edit) { // поставщики список для выбора $supply["0"] = "Новый"; $sql = "SELECT * FROM {$this->db}sk_{$this->sklad}_postav"; $res = sql::fetchAll($sql); foreach ($res as $rs) { $supply[$rs["id"]] = $rs["supply"]; } $sql = "SELECT *,sk_{$this->sklad}_dvizh.id,sk_{$this->sklad}_postav.id AS supply_id\n FROM {$this->db}sk_{$this->sklad}_dvizh\n JOIN ({$this->db}sk_{$this->sklad}_postav,{$this->db}coments,{$this->db}sk_{$this->sklad}_spr)\n ON (sk_{$this->sklad}_postav.id=sk_{$this->sklad}_dvizh.post_id\n AND coments.id=sk_{$this->sklad}_dvizh.comment_id\n AND {$this->db}sk_{$this->sklad}_spr.id={$this->db}sk_{$this->sklad}_dvizh.spr_id)\n WHERE sk_{$this->sklad}_dvizh.id='{$edit}'"; $rec = sqltable_model::getRecord($sql); $rec[supply] = $supply; return $rec; }
public function getData($all = false, $order = '', $find = '', $idstr = '') { $ret = parent::getData($all, $order, $find, $idstr); extract($_SESSION[Auth::$lss]); if (!empty($customer_id)) { if (empty($order_id)) { $sql = "SELECT *,IF(instr(file_link,'МПП')>0, 'МПП', IF(instr(file_link,'Блок')>0,'ДПП(Блок)','ДПП')) AS type,\n tz.id as tzid,tz.id\n FROM `tz`\n JOIN (orders, customers, users,filelinks)\n ON ( tz.order_id = orders.id AND orders.customer_id = customers.id\n AND tz.user_id = users.id AND filelinks.id=tz.file_link_id)\n WHERE customer_id='{$customer_id}'" . (!empty($find) ? "WHERE (number LIKE '%{$find}%')" : "") . (!empty($order) ? " ORDER BY {$order} " : " ORDER BY tz.id DESC ") . ($all ? "LIMIT 50" : "LIMIT 20"); } else { $orderid = $order_id; $sql = "SELECT *,IF(instr(file_link,'МПП')>0, 'МПП', IF(instr(file_link,'Блок')>0,'ДПП(Блок)','ДПП')) AS type,\n tz.id as tzid,tz.id FROM `tz`\n JOIN (orders, customers, users,filelinks)\n ON ( tz.order_id = orders.id AND orders.customer_id = customers.id\n AND tz.user_id = users.id AND filelinks.id=tz.file_link_id) " . (!empty($find) ? "WHERE (number LIKE '%{$find}%') AND order_id='{$orderid}' " : " WHERE order_id='{$orderid}' ") . (!empty($order) ? " ORDER BY {$order} " : " ORDER BY tz.id DESC ") . ($all ? "" : "LIMIT 20"); } } else { $sql = "SELECT *,IF(instr(file_link,'МПП')>0, 'МПП', IF(instr(file_link,'Блок')>0,'ДПП(Блок)','ДПП')) AS type,\n tz.id as tzid,tz.id\n FROM `tz`\n JOIN (orders, customers, users,filelinks)\n ON ( tz.order_id = orders.id AND orders.customer_id = customers.id\n AND tz.user_id = users.id AND filelinks.id=tz.file_link_id) " . (!empty($find) ? "WHERE (number LIKE '%{$find}%' OR tz.id LIKE '%{$find}%')" : "") . (!empty($order) ? " ORDER BY {$order} " : " ORDER BY tz.id DESC ") . ($all ? "LIMIT 50" : "LIMIT 20"); } $ret = sql::fetchAll($sql); if ($all) { $_SESSION[Auth::$lss][tz_id] = ''; } return $ret; }
public function getData($all = false, $order = '', $find = '', $idstr = '') { $ret = parent::getData($all, $order, $find, $idstr); $order = strstr($order, 'files') ? '' : $order; // не удается отсортировать по файлам extract($_SESSION[Auth::$lss]); if (empty($customer_id)) { $sql = "SELECT *, orders.id AS oid,\n orders.id\n FROM orders\n JOIN customers\n ON customers.id=customer_id " . (!empty($find) ? "WHERE (number LIKE '%{$find}%' OR orderdate LIKE '%{$find}%' ) " : "") . (!empty($order) ? "ORDER BY {$order} " : "ORDER BY orders.orderdate DESC ") . ($all ? "LIMIT 50" : "LIMIT 20"); } else { // sql $sql = "SELECT *, orders.id AS oid, orders.id\n FROM orders\n JOIN customers ON customers.id=customer_id " . (!empty($find) ? "WHERE (number LIKE '%{$find}%' OR orderdate LIKE '%{$find}%' ) AND customer_id='{$customer_id}' " : "WHERE customer_id='{$customer_id}' ") . (!empty($order) ? "ORDER BY {$order} " : "ORDER BY orders.orderdate DESC ") . ($all ? "LIMIT 50" : "LIMIT 20"); } $ret = sql::fetchAll($sql); foreach ($ret as &$value) { $files = $this->getFilesForId('orders', $value[id]); $value[files] = $files[link]; } if ($all) { $_SESSION[Auth::$lss][order_id] = ''; $_SESSION[Auth::$lss][tz_id] = ''; } return $ret; }
public function __construct() { parent::__construct(); $this->maintable = 'todo'; }
public function __construct() { parent::__construct(); $this->maintable = 'masterplate'; }
public function __construct() { parent::__construct(); $this->maintable = 'operations'; }
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; }
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; }
public function __construct() { parent::__construct(); $this->maintable = 'phototemplates'; }
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); }
/** * Добавляет к блоку данные о проводниках и зазорах */ 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 вызывается для готовых блоков, не вижу смысла отрабатывать ситуацию когда блока нет */ }
public function setRecord($data) { $data["comment_id"] = $this->getCommentId($data["comment"]); return parent::setRecord($data); }
public function __construct() { parent::__construct(); $this->maintable = 'conductors'; }
public function setRecord($data) { extract($data); $data["fio"] = "{$f} {$i} {$o}"; return parent::setRecord($data); }
public function __construct() { parent::__construct(); $this->maintable = 'users__settings_types'; }
public function __construct() { parent::__construct(); $this->maintable = 'customers'; }