public function getRasschet($rec) { extract($rec); $filelink = fileserver::createdironserver($filename); $excel = file_get_contents($this->getDir() . "/" . $template); if (fileserver::savefile($filelink . ".txt", $rec)) { // сохранить if (fileserver::savefile($filelink, $excel)) { Output::assign('rlink', fileserver::sharefilelink($filelink)); $out = $this->fetch('rlink.tpl'); $res[filename] = $filename; $res[result] = true; } else { $out = "Не удалось записать файл xls"; $res[result] = false; } } else { $out = "Не удалось создать файл txt"; $res[result] = false; } $res[out] = $out; return $res; }
public function getTZ($id) { $rec = array(); $sql = "SELECT * FROM lanch WHERE id='{$id}'"; $res = sql::fetchOne($sql); if (empty($res)) { return false; } $rec[id] = $res[tz_id]; $sql = "SELECT * FROM tz WHERE id='{$res[tz_id]}'"; $res = sql::fetchOne($sql); if (empty($res)) { return false; } $sql = "SELECT * FROM filelinks WHERE id='{$res[file_link_id]}'"; $res = sql::fetchOne($sql); if (empty($res)) { return false; } $rec[link] = fileserver::sharefilelink($res[file_link]); return $rec; }
public function getRecord($id) { $sql = "SELECT *,tz.id AS tzid, blocks.sizex AS bsizex,\r\n blocks.sizey AS bsizey,\r\n blocks.id AS bid\r\n FROM posintz JOIN (tz,filelinks)\r\n ON (tz.id=posintz.tz_id\r\n AND tz.file_link_id=filelinks.id )\r\n LEFT JOIN (blocks,customers) ON (blocks.id=block_id AND blocks.customer_id=customers.id)\r\n WHERE posintz.id='{$id}'"; $rs = sql::fetchOne($sql); //$rec[block][filelink] = Auth::getInstance()->getRights("nzap","edit")?fileserver::sharefilelink($rs["file_link"]):""; $rec[block][filelink] = fileserver::sharefilelink($rs["file_link"]); $rec[block][zpath] = "z:\\Заказчики\\{$rs['customer']}\\{$rs['blockname']}"; $rec[block][blockname] = $rs[blockname]; $rec[block][boardinorder] = $rs[numbers]; $rec[block][blocksizex] = ceil($rs[bsizex]); $rec[block][blocksizey] = ceil($rs[bsizey]); $rec[block][phtemplates] = $rs["template_make"] == '0' ? $rs["template_check"] : $rs["template_make"]; // файлы для заказа $files = $this->getFilesForId('orders', $rs[order_id]); $rec[block][orderfiles] = $files[link]; // $sql = "SELECT *,\r\n SUM(zadel.number) AS zadelnum,\r\n boards.sizex AS psizex,\r\n boards.sizey AS psizey,\r\n boards.id AS bid\r\n FROM blockpos\r\n JOIN (customers,blocks,boards)\r\n ON (customers.id=boards.customer_id\r\n AND blocks.id=block_id\r\n AND boards.id=board_id)\r\n LEFT JOIN (zadel) ON (zadel.board_id = boards.id)\r\n WHERE block_id='{$rs["bid"]}' GROUP BY boards.id ORDER BY blockpos.id"; $res = sql::fetchAll($sql); $nz = 0; // максимальное количество заготовок по количеству плат в блоке $nl = 0; // максимальное количество слоев на плате в блоке, хотя бред $cl = 0; // класс платы, наибольший по позициям $piz = 0; // число плат на заготовке (сумма по блоку) if (count($res) > 1) { // боольше одной платы в блоке, не получится использовать задел $rec[zadel] = 0; $i = 0; foreach ($res as $rs1) { $i++; $board[name] = $rs1["board_name"]; $board[sizex] = $rs1["psizex"]; $board[sizey] = $rs1["psizey"]; $board[numberinblock] = $rs1["nib"]; $board[numberinblockx] = $rs1["nx"]; $board[numberinblocky] = $rs1["ny"]; $board[layers] = $rs1["layers"]; $board[mask] = $rs1["mask"]; $board[mark] = $rs1["mark"]; $sql = "SELECT numpl{$i} FROM posintz WHERE tz_id='{$rs["tzid"]}'\r\n AND block_id='{$rs1["bid"]}'"; $rs2 = sql::fetchOne($sql); $nz = max($nz, ceil($rs2["numbers"] / $rs1["nib"])); $nl = max($nl, $rs1["layers"]); $cl = max($cl, $rs1["class"]); $piz += $rs1["nib"]; $customer = $rs1["customer"]; $rec[boards][] = $board; } } else { // тольько одна позиция в блоке, съэкономим на обработке массива for each $rs1 = $res[0]; $board[name] = $rs1["board_name"]; $board[sizex] = $rs1["psizex"]; $board[sizey] = $rs1["psizey"]; $board[numberinblock] = $rs1["nib"]; $board[numberinblockx] = $rs1["nx"]; $board[numberinblocky] = $rs1["ny"]; $board[layers] = $rs1["layers"]; $board[mask] = $rs1["mask"]; $board[mark] = $rs1["mark"]; $sql = "SELECT numbers FROM posintz WHERE tz_id='{$rs["tzid"]}'\r\n AND block_id='{$rs1["bid"]}'"; $rs2 = sql::fetchOne($sql); $nz = ceil($rs2["numbers"] / $rs1["nib"]); $nl = $rs1["layers"]; $cl = $rs1["class"]; $piz = $rs1["nib"]; $customer = $rs1["customer"]; $rec[boards][] = $board; $rec[zadel] = $rs1["zadelnum"]; } //if (Auth::getInstance()->getRights("nzap","edit")) { if ($nl > 2) { // многослойку радара партии по одной if ($rs["customer_id"] == '8') { // радар $zip = 1; } else { $zip = 5; } // если первичный запуск - мастерплата if ($rs["first"] == '1' || $rs["template_make"] > 0) { $sql = "SELECT * FROM masterplate WHERE posid='{$id}'"; $mp = sql::fetchOne($sql); if (empty($mp)) { $rec[mp] = array(mplink => true); } } $dpp = false; } else { // одно-двухстороняя $zip = 25; $dpp = true; // если больше пяти заготовок - мастерплата, // хотя обойдутся без соповодительного листа } if (0 == $nz) { $nz = $rs[numbl]; } $rec[parties] = ceil($nz / $zip); for ($i = 1; $i <= $rec[parties]; $i++) { $party = false; $sql = "SELECT lanch.id as lid,file_link FROM lanch\r\n JOIN filelinks ON (file_link_id=filelinks.id)\r\n WHERE tz_id='{$rs["tz_id"]}'\r\n AND pos_in_tz='{$rs["posintz"]}' AND part='{$i}'"; $rs3 = sql::fetchOne($sql); if (!empty($rs3)) { $party[sllink] = fileserver::sharefilelink($rs3["file_link"]); $party[slid] = $rs3[lid]; } else { $party[party] = $i; $party[type] = $dpp ? "dpp" : "mpp"; } $rec[party][] = $party; } //} $rec["edit"] = $id; return $rec; }
public function getFilesForId($table, $id) { $out[link] = ''; $sql = "SELECT * FROM files WHERE `table`='{$table}' AND rec_id='{$id}'"; $files = sql::fetchAll($sql); foreach ($files as $val) { $sql = "SELECT * FROM filelinks WHERE id='{$val[fileid]}'"; $file = sql::fetchOne($sql); $out[file][] = $file; if (!strstr($file[file_link], $_SERVER['DOCUMENT_ROOT'])) { $filelink = fileserver::sharefilelink($file[file_link]); $file = basename($filelink); $out[link] .= "<a class='filelink' href='{$filelink}'>{$file}</a><br>"; } else { $filelink = str_ireplace($_SERVER['DOCUMENT_ROOT'], '', $file[file_link]); $file = basename($filelink); $out[link] .= "<a target=_blank href='http://{$_SERVER["HTTP_HOST"]}{$filelink}'>{$file}</a><br>"; } } return $out; }
public function showmplink($rec) { $filename = "z:\\Заказчики\\{$rec[customer]}\\{$rec[blockname]}\\Мастерплаты\\МП-{$rec[date]}-{$rec[mp_id]}.xls"; $filename = fileserver::createdironserver($filename); $excel = file_get_contents($this->getDir() . "/mp.xls"); if (fileserver::savefile($filename, $excel)) { $mp["_date_"] = date("d.m.Y"); $mp["_number_"] = sprintf("%08d\n", $rec[mp_id]); if (fileserver::savefile($filename . ".txt", $mp)) { Output::assign('mplink', fileserver::sharefilelink($filename)); Output::assign('mpid', $rec[mp_id]); $out = $this->fetch('mplink.tpl'); } else { $out = "Не удалось создать файл txt"; } } else { $out = "Не удалось создать файл xls" . print_r($rec, true); } return $out; }