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

<?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>";
}
}
?>