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 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 вызывается для готовых блоков, не вижу смысла отрабатывать ситуацию когда блока нет */ }