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.
337 lines
17 KiB
337 lines
17 KiB
<?php
|
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|
//print_r($_POST);exit;
|
|
foreach ($_POST as $k => $v) {
|
|
$$k = htmlspecialchars(stripslashes(trim($v)));
|
|
}
|
|
|
|
// 同客戶同電梯不能重覆價審
|
|
/*
|
|
$warr = [];
|
|
$fp_id_str = "";
|
|
$fp_id_arr = explode(",", $fp_id_all);
|
|
foreach ($fp_id_arr as $val) {
|
|
if ($val && $val>0) $fp_id_str .= $val.",";
|
|
}
|
|
$fp_id_str = rtrim($fp_id_str, ",");
|
|
$db_query = "select i.item_spec from pricereview_main m, pricereview_item i ";
|
|
$db_query .= "where m.id = i.mid and contractno = '$contractno' and fp_id in ($fp_id_str) and last_check_result <> 'N'";
|
|
$res = mysqli_query($link, $db_query);
|
|
while ($row = mysqli_fetch_row($res)) {
|
|
$warr[] = $row[0];
|
|
}
|
|
$warning = implode("、", $warr);
|
|
if ($warning) {
|
|
echo "<script>alert(\"電梯重覆價審:\\n".$warning."\");";
|
|
echo "location.href=history.go(-1);</script>";
|
|
}
|
|
*/
|
|
|
|
$price_total = str_replace(",", "", $price_total);
|
|
$price_lowest = str_replace(",", "", $price_lowest);
|
|
$pay_amount = str_replace(",", "", $pay_amount);
|
|
$pay_all_amount = str_replace(",", "", $pay_all_amount);
|
|
$special_fee = str_replace(",", "", $special_fee);
|
|
if (empty($deposit_rate)) $deposit_rate = 0;
|
|
if (empty($keep_rate)) $keep_rate = 0;
|
|
if (empty($warranty_rate)) $warranty_rate = 0;
|
|
if (empty($special_fee)) $special_fee = 0;
|
|
$status = ($pmstatus == "tosign") ? "YS" : "Y1"; // YS:提交 Y1:保存
|
|
$st_str = ($status == "YS") ? "提交" : "保存";
|
|
$create_at = date("Y-m-d H:i:s");
|
|
$tds = date("Y-m-d");
|
|
|
|
// 客戶資料
|
|
$sql = "select vol_no, salesman, customer, address from hope_elevator_customer where vol_no = '$vol_no'";
|
|
$res = mysqli_query($link, $sql);
|
|
$row = mysqli_fetch_row($res);
|
|
list($contractno, $person, $company, $address) = $row;
|
|
mysqli_free_result($res);
|
|
|
|
// 同一卷號只限一筆價審
|
|
$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;
|
|
}
|
|
|
|
// 上傳報價單
|
|
$target_dir = "pricereview-uploads/";
|
|
if ($_FILES["attatch1"]["error"] == 0) {
|
|
$file_name = $_FILES["attatch1"]["name"];
|
|
$temp_file_name = $_FILES["attatch1"]["tmp_name"];
|
|
$file_size = $_FILES["attatch1"]["size"];
|
|
$img_file_type = pathinfo($file_name, PATHINFO_EXTENSION);
|
|
$target_file1 = $target_dir.$vol_no."-price-".$tds.".".$img_file_type;
|
|
$upload_ok = 1;
|
|
foreach (glob($target_dir.$vol_no."-price-*") as $todelfile) {
|
|
unlink($todelfile);
|
|
}
|
|
$upload_res_1 = move_uploaded_file($temp_file_name, $target_file1);
|
|
} else $target_file1 = "";
|
|
|
|
// 上傳附表一
|
|
if ($_FILES["attatch2"]["error"] == 0) {
|
|
$file_name = $_FILES["attatch2"]["name"];
|
|
$temp_file_name = $_FILES["attatch2"]["tmp_name"];
|
|
$file_size = $_FILES["attatch2"]["size"];
|
|
$img_file_type = pathinfo($file_name, PATHINFO_EXTENSION);
|
|
$target_file2 = $target_dir.$vol_no."-appendix-".$tds.".".$img_file_type;
|
|
$upload_ok = 1;
|
|
foreach (glob($target_dir.$vol_no."-appendix-*") as $todelfile) {
|
|
unlink($todelfile);
|
|
}
|
|
$upload_res_2 = move_uploaded_file($temp_file_name, $target_file2);
|
|
} else $target_file2 = "";
|
|
|
|
if (($target_file1 && !$upload_res_1) || ($target_file2 && !$upload_res_2)) {
|
|
echo "<script type ='text/JavaScript'>";
|
|
echo "alert('檔案上傳失敗,資料請重建。');";
|
|
echo "history.go(-1);";
|
|
echo "</script>";
|
|
exit;
|
|
}
|
|
|
|
// 價格審查單-主文 pricereview_main
|
|
$db_query = "insert into pricereview_main(contractno, ekind, person, company, case_name, address, price_lowest, ";
|
|
$db_query .= "price_total, price_rate, special_fee, predeal_date, facilitok_date, penalty, deposit_rate, keep_rate, ";
|
|
$db_query .= "warranty_rate, memo, status, attatch1, attatch2, creater, create_at) values (";
|
|
$db_query .= "'$contractno', '新梯', '$person', '$company', '$case_name', '$address', '$price_lowest', ";
|
|
$db_query .= "'$price_total', '$price_rate', '$special_fee', '$predeal_date', '$facilitok_date', '$penalty', '$deposit_rate', '$keep_rate', ";
|
|
$db_query .= "'$warranty_rate', '$memo', '$status', '$target_file1', '$target_file2', '$user_id', '$create_at')";
|
|
$result = mysqli_query($link, $db_query);
|
|
$affected = mysqli_affected_rows($link);
|
|
if ($mid = mysqli_insert_id($link)) {
|
|
// 價格審查單-明細項目 pricereview_item:電梯
|
|
$fp_id_arr = explode(",", $fp_id_all);
|
|
$fp_kind_arr = explode(",", $fp_kind_all);
|
|
$fp_seat_arr = explode(",", $fp_seat_all);
|
|
$fp_numberofstop_arr = explode(",", $fp_numberofstop_all);
|
|
$fp_speed_arr = explode(",", $fp_speed_all);
|
|
$item_weight_arr = explode(",", $item_weight_all);
|
|
$item_op_arr = explode(",", $item_op_all);
|
|
$item_spec_arr = explode(",", $item_spec_all);
|
|
$item_group_arr = explode(",", $item_group_all);
|
|
$item_unit_price_arr = explode(",", $item_unit_price_all);
|
|
$item_qty_arr = explode(",", $item_qty_all);
|
|
$item_qty_ori_arr = explode(",", $item_qty_ori_all);
|
|
$item_price_bp_arr = explode(",", $item_price_bp_all);
|
|
$item_price_ct_arr = explode(",", rtrim($item_price_ct_all, ","));
|
|
$item_price_arr = explode(",", $item_price_all);
|
|
$gross_profit_arr = explode(",", $gross_profit_all);
|
|
$item_price_arr = $gross_profit_arr = []; // 先reset, 等審核才產出
|
|
|
|
// 如果售價變動或電梯數量異動,售價則平均分攤到每台
|
|
/*
|
|
$avg_fg = 0;
|
|
foreach ($item_price_bp_arr as $k => $v) {
|
|
if ($v && !isset($item_price_ct_arr[$k])) {
|
|
$avg_fg = 1;
|
|
break;
|
|
}
|
|
}
|
|
foreach ($item_qty_ori_arr as $k => $v) {
|
|
if ($v != $item_qty_arr[$k]) {
|
|
$avg_fg = 1;
|
|
break;
|
|
}
|
|
}
|
|
if ($price_total_ori != $price_total) $avg_fg = 1;
|
|
if ($avg_fg) {
|
|
$item_price_ct2_arr = [];
|
|
$price_total_item = 0;
|
|
foreach ($item_qty_arr as $k => $v) {
|
|
$price = floor(($price_total/array_sum($item_qty_arr))*$v);
|
|
$item_price_ct2_arr[] = $price;
|
|
if ($k < count($item_qty_arr)-1) $price_total_item += $price;
|
|
}
|
|
$item_price_ct2_arr[count($item_qty_arr)-1] = $price_total - $price_total_item;
|
|
$item_price_ct_arr = $item_price_ct2_arr;
|
|
}
|
|
*/
|
|
|
|
$item_no = 1;
|
|
for ($i=0; $i<count($item_spec_arr); $i++) {
|
|
$spec = trim($item_spec_arr[$i]);
|
|
if (empty($spec)) continue;
|
|
if (!$fp_id_arr[$i]) $fp_id_arr[$i] = 0;
|
|
$item_unit_price_arr[$i] = str_replace(",", "", $item_unit_price_arr[$i]);
|
|
$item_qty_arr[$i] = str_replace(",", "", $item_qty_arr[$i]);
|
|
$item_price_bp_arr[$i] = str_replace(",", "", $item_price_bp_arr[$i]);
|
|
$item_price_ct_arr[$i] = str_replace(",", "", $item_price_ct_arr[$i]);
|
|
//$item_price_arr[$i] = str_replace(",", "", $item_price_arr[$i]);
|
|
if (empty($item_price_arr[$i])) $item_price_arr[$i] = 0;
|
|
//$gross_profit_arr[$i] = str_replace(",", "", $gross_profit_arr[$i]);
|
|
if (empty($gross_profit_arr[$i])) $gross_profit_arr[$i] = 0;
|
|
$gross_profit_rate = number_format(($gross_profit_arr[$i]/$item_price_bp_arr[$i])*100, 1);
|
|
$note = $fp_kind_arr[$i].",".$fp_seat_arr[$i].",".$fp_numberofstop_arr[$i].",".$fp_speed_arr[$i];
|
|
$db_query = "insert into pricereview_item (mid, price_id, item_no, item_spec, item_weight, item_op, item_group, item_unit_price, item_qty, item_price_bp, item_price_ct, item_price, gross_profit, gross_profit_rate, note) values (";
|
|
$db_query .= "'$mid', '$fp_id_arr[$i]', '$item_no', '$item_spec_arr[$i]', '$item_weight_arr[$i]', '$item_op_arr[$i]', 'A', '$item_unit_price_arr[$i]', '$item_qty_arr[$i]', '$item_price_bp_arr[$i]', '$item_price_ct_arr[$i]', '$item_price_arr[$i]', '$gross_profit_arr[$i]', '$gross_profit_rate', '$note')";
|
|
$result = mysqli_query($link, $db_query);
|
|
$item_no++;
|
|
}
|
|
|
|
// 價格審查單-明細項目 pricereview_item:Option加價
|
|
$db_query = "delete from pricereview_item where mid = '$mid' and item_group = 'B'";
|
|
mysqli_query($link, $db_query);
|
|
$op_id_arr = explode(",", $op_id_all);
|
|
$option_seat_all = str_replace("點選", "", $option_seat_all);
|
|
$option_seat_arr = explode(",", str_replace("@@", "", $option_seat_all));
|
|
$option_unit_price_arr = explode(",", $option_unit_price_all);
|
|
$option_qty_arr = explode(",", $option_qty_all);
|
|
$option_price_bp_arr = explode(",", $option_price_bp_all);
|
|
$option_memo_arr = explode("@@,", rtrim($option_memo_all, "@@"));
|
|
$option_relate_facil_arr = explode(",", htmlspecialchars_decode($option_relate_facil_all));
|
|
$item_no = 1;
|
|
for ($i=0; $i<count($option_seat_arr); $i++) {
|
|
$spec = trim($option_seat_arr[$i]);
|
|
if (empty($spec)) continue;
|
|
$option_unit_price_arr[$i] = str_replace(",", "", $option_unit_price_arr[$i]);
|
|
$option_qty_arr[$i] = str_replace(",", "", $option_qty_arr[$i]);
|
|
$option_price_bp_arr[$i] = str_replace(",", "", $option_price_bp_arr[$i]);
|
|
$option_relate_spec = "";
|
|
$tmp_arr = explode("<br>", $option_relate_facil_arr[$i]);
|
|
foreach ($tmp_arr as $val) {
|
|
$option_relate_spec .= substr($val, 0, strpos($val, ".")).",";
|
|
}
|
|
$option_relate_spec = rtrim($option_relate_spec, ",");
|
|
/*
|
|
$intersect_str = "";
|
|
$intersect_arr = array_intersect($option_relate_facil_arr, $item_spec_arr);
|
|
$intersect_str = implode(",", $intersect_arr);
|
|
*/
|
|
|
|
$db_query = "insert into pricereview_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo) values (";
|
|
$db_query .= "'$mid', '$op_id_arr[$i]', '$item_no', 'B', '$spec', '$option_relate_spec', '$option_unit_price_arr[$i]', '$option_qty_arr[$i]', '$option_price_bp_arr[$i]', '$option_memo_arr[$i]')";
|
|
$result = mysqli_query($link, $db_query);
|
|
$item_no++;
|
|
}
|
|
|
|
// 價審明細:保養費用
|
|
$db_query = "delete from pricereview_item where mid = '$mid' and item_group = 'D'";
|
|
mysqli_query($link, $db_query);
|
|
$mn_id_arr = explode(",", $mn_id_all);
|
|
$mn_kind_arr = explode(",", $mn_kind_all);
|
|
$mn_seat_arr = explode(",", $mn_seat_all);
|
|
$mn_numberofstop_arr = explode(",", $mn_numberofstop_all);
|
|
$mn_speed_arr = explode(",", $mn_speed_all);
|
|
$mn_unit_price_arr = explode(",", $mn_unit_price_all);
|
|
$mn_qty_arr = explode(",", $mn_qty_all);
|
|
$mn_price_bp_arr = explode(",", $mn_price_bp_all);
|
|
$mn_memo_arr = explode("@@,", rtrim($mn_memo_all, "@@"));
|
|
$mn_relate_facil_arr = explode(",", htmlspecialchars_decode($mn_relate_facil_all));
|
|
$item_no = 1;
|
|
for ($i=0; $i<count($mn_seat_arr); $i++) {
|
|
if (empty($mn_kind_arr[$i])) continue;
|
|
$mn_unit_price_arr[$i] = str_replace(",", "", $mn_unit_price_arr[$i]);
|
|
$mn_qty_arr[$i] = str_replace(",", "", $mn_qty_arr[$i]);
|
|
$mn_price_bp_arr[$i] = str_replace(",", "", $mn_price_bp_arr[$i]);
|
|
$note = $mn_seat_arr[$i].",".$mn_numberofstop_arr[$i].",".$mn_speed_arr[$i];
|
|
$option_relate_spec = "";
|
|
$tmp_arr = explode("<br>", $mn_relate_facil_arr[$i]);
|
|
foreach ($tmp_arr as $val) {
|
|
$option_relate_spec .= substr($val, 0, strpos($val, ".")).",";
|
|
}
|
|
$option_relate_spec = rtrim($option_relate_spec, ",");
|
|
$db_query = "insert into pricereview_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, note, memo) values (";
|
|
$db_query .= "'$mid', '$mn_id_arr[$i]', '$item_no', 'D', '$mn_kind_arr[$i]', '$option_relate_spec', '$mn_unit_price_arr[$i]', '$mn_qty_arr[$i]', '$mn_price_bp_arr[$i]', '$note', '$mn_memo_arr[$i]')";
|
|
$result = mysqli_query($link, $db_query);
|
|
$item_no++;
|
|
}
|
|
|
|
// 價審明細:除外費用
|
|
$db_query = "delete from pricereview_item where mid = '$mid' and item_group = 'E'";
|
|
mysqli_query($link, $db_query);
|
|
$except_note_arr = explode(",", $except_note_all);
|
|
$except_spec_arr = explode(",", $except_spec_all);
|
|
$except_unit_price_arr = explode(",", $except_unit_price_all);
|
|
$except_qty_arr = explode(",", $except_qty_all);
|
|
$except_price_bp_arr = explode(",", $except_price_bp_all);
|
|
$item_no = 1;
|
|
for ($i=0; $i<count($except_spec_arr); $i++) {
|
|
$spec = trim($except_spec_arr[$i]);
|
|
if (empty($spec)) continue;
|
|
$except_unit_price_arr[$i] = str_replace(",", "", $except_unit_price_arr[$i]);
|
|
$except_qty_arr[$i] = str_replace(",", "", $except_qty_arr[$i]);
|
|
$except_price_bp_arr[$i] = str_replace(",", "", $except_price_bp_arr[$i]);
|
|
$db_query = "insert into pricereview_item (mid, item_no, item_group, item_spec, item_unit_price, item_qty, item_price_bp, note) values (";
|
|
$db_query .= "'$mid', '$item_no', 'E', '$spec', '$except_unit_price_arr[$i]', '$except_qty_arr[$i]', '$except_price_bp_arr[$i]', '$except_note_arr[$i]')";
|
|
$result = mysqli_query($link, $db_query);
|
|
$item_no++;
|
|
}
|
|
|
|
// 款別資訊
|
|
$pay_kind_arr = explode(",", $pay_kind_all);
|
|
$pay_scale_arr = explode(",", $pay_scale_all);
|
|
$pay_amount_arr = explode(",", $pay_amount_all);
|
|
$pay_period_arr = explode(",", $pay_period_all);
|
|
for ($i=0; $i<7; $i++) {
|
|
$pay_scale_arr[$i] = (empty($pay_scale_arr[$i])) ? 0 : $pay_scale_arr[$i];
|
|
$pay_amount_arr[$i] = (empty($pay_amount_arr[$i])) ? 0 : $pay_amount_arr[$i];
|
|
$sql = "insert into pricereview_pay (mid, pay_kind, pay_scale, pay_amount, pay_period, pay_note) values ";
|
|
$sql .= "('$mid', '$pay_kind_arr[$i]', '$pay_scale_arr[$i]', '$pay_amount_arr[$i]', '$pay_period_arr[$i]', '$pay_note')";
|
|
mysqli_query($link, $sql);
|
|
}
|
|
|
|
// 價審簽核流程
|
|
// <75%以下呈至總經理審核. ($price_rate)
|
|
// 上級主管 > 伃廷 > MAX > 總經理
|
|
if ($status == "YS") {
|
|
$manager_arr = pricereview_class($price_rate, $user_id);
|
|
if ($manager_arr) {
|
|
$sign1 = $sign2 = $sign3 = $sign4 = "";
|
|
foreach ($manager_arr as $k => $v) {
|
|
if ($k == 1) $sign1 = $v;
|
|
elseif ($k == 2) $sign2 = $v;
|
|
elseif ($k == 3) $sign3 = $v;
|
|
else $sign4 = $v;
|
|
}
|
|
$sql = "insert into pricereview_sign (mid, sign1, sign2, sign3, sign4, sign_total) values ('$mid', '$sign1', '$sign2', '$sign3', '$sign4', '".count($manager_arr)."')";
|
|
mysqli_query($link, $sql);
|
|
// 寫入待簽表
|
|
if (strlen($sign1) == 7) $next_signer = str_replace(",", "", $sign1);
|
|
elseif (strlen($sign2) >= 7) {
|
|
$sign2_arr = explode("<##>", $sign2);
|
|
foreach ($sign2_arr as $v) {
|
|
$next_signer[] = substr($v, 0, 5);
|
|
}
|
|
}
|
|
do_assign("prm01", $mid, $contractno, $next_signer);
|
|
|
|
// 寄信給下位簽核人
|
|
$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('".$st_str."成功');";
|
|
echo "location.href='pricereview-index.php?function_name=pricereview&".$token_link."';";
|
|
echo "</script>";
|
|
} else {
|
|
echo "<script type = 'text/JavaScript'>";
|
|
echo "alert('".$st_str."失敗,請重新操作');";
|
|
echo "location.href='pricereview-index.php?function_name=pricereview&".$token_link."';";
|
|
echo "</script>";
|
|
}
|
|
}
|
|
?>
|