You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
185 lines
7.1 KiB
185 lines
7.1 KiB
<?php
|
|
include "../header.php";
|
|
//require_once 'vendor/autoload.php';
|
|
require_once '../../common/composer/vendor/autoload.php';
|
|
|
|
// use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as xls;
|
|
//use PhpOffice\PhpSpreadsheet\Reader\Xls;
|
|
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
|
|
// use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;
|
|
|
|
$id = $_GET["id"];
|
|
$accountname_arr = accountid2name();
|
|
$data = [];
|
|
$db_query = "select * from pricereview_repair_main where id = '$id'";
|
|
$data = mysqli_query($link, $db_query);
|
|
|
|
foreach($data as $data) :
|
|
// 公司站點
|
|
$sql = "select content from code where field_name = 'masada_addr' and code_name = '".$data["masada_addr"]."'";
|
|
$res = mysqli_query($link, $sql);
|
|
if ($row = mysqli_fetch_row($res)) {
|
|
$data["maddr"] = $row[0];
|
|
}
|
|
mysqli_free_result($res);
|
|
|
|
// 保養人員
|
|
$repairer_arr = [];
|
|
$sql = "select name from account where accounttype = 'B' and accountid = '".$data["repairerid"]."'";
|
|
$res = mysqli_query($link, $sql);
|
|
if ($row = mysqli_fetch_row($res)) {
|
|
$data["repair"] = $row[0];
|
|
}
|
|
mysqli_free_result($res);
|
|
|
|
// 價審明細
|
|
$item_arr = [];
|
|
$sql = "select * from pricereview_repair_item where rid = '$id' order by item_no";
|
|
$res = mysqli_query($link, $sql);
|
|
while ($row = mysqli_fetch_assoc($res)) {
|
|
$item_arr[$row["item_no"]]["title"] = $row["title"];
|
|
$item_arr[$row["item_no"]]["item_unit_price"] = $row["item_unit_price"];
|
|
$item_arr[$row["item_no"]]["item_qty"] = $row["item_qty"];
|
|
$item_arr[$row["item_no"]]["item_price_bp"] = $row["item_price_bp"];
|
|
$item_arr[$row["item_no"]]["memo"] = $row["memo"];
|
|
}
|
|
mysqli_free_result($res);
|
|
|
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
|
$spreadsheet = $reader->load("repair-sample.xlsx");
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$sheet->getProtection()->setSheet(true);
|
|
$sheet->getStyle('A5:J10')->getFont()->setSize(14);
|
|
$sheet->setCellValue('C5', $data["maddr"]);
|
|
$sheet->setCellValue('C6', $data["company"]);
|
|
$sheet->setCellValue('J6', $data["invoice"]);
|
|
$sheet->setCellValue('C7', $data["facilityno"]);
|
|
$sheet->setCellValue('C8', $data["address"]);
|
|
$sheet->setCellValue('J8', $data["taxid"]);
|
|
$sheet->setCellValue('C10', substr($data["sign_date"], 0, 10));
|
|
$sheet->setCellValue('J10', $data["repair_no"]);
|
|
$st = 12;
|
|
foreach ($item_arr as $k => $v) {
|
|
//$sheet->setCellValue('A'.$st, $k);
|
|
$sheet->setCellValue('B'.$st, $v["title"]);
|
|
$sheet->setCellValue('H'.$st, $v["item_qty"]);
|
|
$sheet->setCellValue('I'.$st, $v["item_unit_price"]);
|
|
$sheet->setCellValue('J'.$st, $v["item_price_bp"]);
|
|
$sheet->setCellValue('M'.$st, $v["memo"]);
|
|
$st++;
|
|
}
|
|
$sheet->setCellValue('J18', $data["sales_tax"]);
|
|
$sheet->setCellValue('J19', $data["total_price"]);
|
|
$sheet->setCellValue('A20', "合計:新台幣 ".numberToChinese($data["total_price"])." 整(含稅)");
|
|
$sheet->setCellValue('B23', $data["memo"]);
|
|
$sheet->setCellValue('M36', $data["repair"]);
|
|
//$sheet->setCellValue('I35', mb_substr($accountname_arr[$data["checker"]],0,1).mb_substr($accountname_arr[$data["checker"]],1));
|
|
|
|
$writer = new Xls($spreadsheet);
|
|
$file_path = 'WriteOffRepair.xlsx';
|
|
$writer->save('WriteOffRepair.xlsx');
|
|
echo $file_path;
|
|
endforeach;
|
|
|
|
function numberToChinese($num) {
|
|
$chineseNumbers = ['零', '壹', '貮', '參', '肆', '伍', '陸', '㭍', '捌', '玖','拾'];
|
|
$units = [' 元', ' 拾 ', ' 佰 ', ' 仟 ', ' 萬 ', ' 拾 '];
|
|
|
|
$num = str_pad($num, 6, "0", STR_PAD_LEFT);
|
|
if ($num <= 10) {
|
|
return $chineseNumbers[$num];
|
|
} elseif ($num < 20) {
|
|
return $units[1] . $chineseNumbers[$num % 10];
|
|
} elseif ($num < 100) {
|
|
return $chineseNumbers[intval($num / 10)] . $units[1] . ($num % 10 > 0 ? $chineseNumbers[$num % 10] : '');
|
|
} else {
|
|
$result = '';
|
|
$strNum = strval($num);
|
|
$length = strlen($strNum);
|
|
for ($i = 0; $i < $length; $i++) {
|
|
$currentDigit = intval($strNum[$i]);
|
|
$result .= $chineseNumbers[$currentDigit] . $units[$length - $i - 1];
|
|
/*
|
|
if ($currentDigit > 0) {
|
|
$result .= $chineseNumbers[$currentDigit] . $units[$length - $i - 1];
|
|
} else {
|
|
$result .= $chineseNumbers[$currentDigit];
|
|
}
|
|
*/
|
|
}
|
|
return $result;
|
|
}
|
|
}
|
|
|
|
exit;
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|
//print_r($_POST);exit;
|
|
foreach ($_POST as $k => $v) {
|
|
$$k = htmlspecialchars(stripslashes(trim($v)));
|
|
}
|
|
|
|
if ($assign_status == "F6") $pstatus = "B1";
|
|
elseif ($assign_status == "Y1") $pstatus = "X";
|
|
$tds = date("Y-m-d H:i:s");
|
|
|
|
/*
|
|
// 檢查報價單編號
|
|
$sql = "select count(*) from pricereview_main where contractno = '$contractno' and status in ('Y1', 'YS', 'YY')";
|
|
$res = mysqli_query($link, $sql);
|
|
$row = mysqli_fetch_row($res);
|
|
if ($row[0] > 0) {
|
|
echo "<script>";
|
|
echo "alert('請勿重覆價審!');";
|
|
echo "history.go(-1);";
|
|
echo "</script>";
|
|
exit;
|
|
}
|
|
*/
|
|
|
|
// 更新狀態
|
|
$db_query = "update pricereview_repair_main set pstatus = '$pstatus', check_date = '$tds' ";
|
|
$db_query .= "where id = '$id'";
|
|
$result = mysqli_query($link, $db_query);
|
|
$affected = mysqli_affected_rows($link);
|
|
if ($affected > 0) {
|
|
// 更新待簽表
|
|
$sql = "update subflow set current_assigner = '00000', update_date = '$tds' where form_key = '$form_key'";
|
|
mysqli_query($link, $sql);
|
|
$sql = "update flow set flow_code = 'Z' where system_id = 'prm' and flow_id = 'prm03' and form_id = '$id' and form_key = '$form_key'";
|
|
mysqli_query($link, $sql);
|
|
|
|
/*
|
|
// 寄信給下位簽核人
|
|
$mail_list = [];
|
|
$ret = accountid2email($next_signer);
|
|
if (!empty($ret)) {
|
|
foreach ($ret as $uid => $uemail) {
|
|
$mail_list[] = [$uid, $uemail];
|
|
}
|
|
$mail_list[] = ['M0044', 'jrbin@masada.com.tw'];
|
|
include dirname(__DIR__)."/class/Cmail.php";
|
|
$sendmail = new Cmail;
|
|
$title = "【新梯價審通知】卷號:".$contractno;
|
|
$content = "<p>您有待簽核案件,請至<a href=\"http://oa.masada.com.tw\">客戶管理 > 價格審查_新梯</a>,點擊「待簽核」進行作業,謝謝!</p>";
|
|
$sendmail->sendx($title, $content, $mail_list);
|
|
}
|
|
*/
|
|
}
|
|
|
|
mysqli_close($link);
|
|
if ($affected > 0) {
|
|
echo "<script type = 'text/JavaScript'>";
|
|
echo "alert('簽核完成');";
|
|
echo "location.href='pricereview_repair-index.php?function_name=pricereview_repair&".$token_link."';";
|
|
echo "</script>";
|
|
} else {
|
|
echo "<script type = 'text/JavaScript'>";
|
|
echo "alert('簽核失敗,請重新操作');";
|
|
echo "location.href='pricereview_repair-index.php?function_name=pricereview_repair&".$token_link."';";
|
|
echo "</script>";
|
|
}
|
|
}
|
|
?>
|