コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: lanch_zap_model.class.php プロジェクト: GGF/baza4
 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;
 }
コード例 #3
0
ファイル: lanch_nzap_model.class.php プロジェクト: GGF/baza4
 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;
 }
コード例 #4
0
ファイル: sqltable_model.class.php プロジェクト: GGF/baza4
 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;
 }
コード例 #5
0
ファイル: lanch_nzap_view.class.php プロジェクト: GGF/baza4
 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;
 }