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.
 
 
 
 
 
 

356 lines
18 KiB

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach ($_POST as $k => $v) {
$$k = htmlspecialchars(stripslashes(trim($v)));
}
// $except_relate_facil_arr = explode(",", htmlspecialchars_decode($Exclusions_all));
// echo '<pre>';
// print_r($except_relate_facil_arr);
// echo '</pre>';
// exit;
// 同客戶同電梯不能重覆價審
/*
$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));
echo '<pre>';
print_r($option_relate_facil_arr);
echo '</pre>';
// exit;
$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);
// 除外費用對應電梯
$except_relate_facil_arr = explode(",", htmlspecialchars_decode($Exclusions_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]);
$option_relate_spec = "";
$tmp_arr = explode("<br>", $except_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, item_no, item_group, option_relate_spec,item_spec, item_unit_price, item_qty, item_price_bp, note) values (";
$db_query .= "'$mid', '$item_no', 'E','$option_relate_spec' , '$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);
}
// 價審簽核流程
// 小於80%呈至總經理審核. ($price_rate)
// 上級主管 > 伃廷 > MAX > 總經理
if ($status == "YS") {
$ret = [];
$manager_arr = pricereview_class($price_rate, $user_id, $ret, $special_fee);
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];
}
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>";
}
}