$v) {
$$k = htmlspecialchars(stripslashes(trim($v)));
}
$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");
// 同一卷號只限一筆價審
$db_query = "select contractno from pricereview_main where id = '$id'";
$result = mysqli_query($link, $db_query);
if ($row = mysqli_fetch_row($result)) {
$contractno = $row[0];
$sql = "select count(*) from pricereview_main where contractno = '$contractno' and status in ('YS', 'YY')";
$res = mysqli_query($link, $sql);
$row_c = mysqli_fetch_row($res);
if ($row_c[0] > 0) {
echo "";
exit;
}
} else {
echo "";
exit;
}
// 上傳報價單
$sql_atta = "";
$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.$contractno."-price-".$tds.".".$img_file_type;
$upload_ok = 1;
foreach (glob($target_dir.$contractno."-price-*") as $todelfile) {
unlink($todelfile);
}
$upload_res_1 = move_uploaded_file($temp_file_name, $target_file1);
$sql_atta .= "attatch1 = '$target_file1', ";
} else {
$target_file1 = "";
if ($file_price_del == 1) {
foreach (glob($target_dir.$contractno."-price-*") as $todelfile) {
unlink($todelfile);
}
$sql_atta = "attatch1 = NULL, ";
}
}
// 上傳附表一
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.$contractno."-appendix-".$tds.".".$img_file_type;
$upload_ok = 1;
foreach (glob($target_dir.$contractno."-appendix-*") as $todelfile) {
unlink($todelfile);
}
$upload_res_2 = move_uploaded_file($temp_file_name, $target_file2);
$sql_atta .= "attatch2 = '$target_file2', ";
} else {
$target_file2 = "";
if ($file_appendix_del == 1) {
foreach (glob($target_dir.$contractno."-appendix-*") as $todelfile) {
unlink($todelfile);
}
$sql_atta = "attatch2 = NULL, ";
}
}
if (($target_file1 && !$upload_res_1) || ($target_file2 && !$upload_res_2)) {
echo "";
exit;
}
// 價格審查單-主文 pricereview_main
$db_query = "update pricereview_main set price_lowest = '$price_lowest', price_total = '$price_total', price_rate = '$price_rate', special_fee = '$special_fee', predeal_date = '$predeal_date', ";
$db_query .= "facilitok_date = '$facilitok_date', penalty = '$penalty', deposit_rate = '$deposit_rate', keep_rate = '$keep_rate', warranty_rate = '$warranty_rate', ";
$db_query .= $sql_atta;
$db_query .= "memo = '$memo', status = '$status', creater = '$user_id', create_at = '$create_at' ";
$db_query .= "where id = '$id'";
$result = mysqli_query($link, $db_query);
$affected = mysqli_affected_rows($link);
if ($affected > 0) {
// 價格審查單-明細項目 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);
$fp_item_arr = explode(",", $fp_item_all); // 留下的電梯ID
$fp_act_arr = explode(",", $fp_act_all); // U:update I:insert
$fp_del_arr = explode(",", $fp_del); // 刪除的電梯ID
$item_weight_arr = explode(",", $item_weight_all);
$item_op_arr = explode(",", $item_op_all);
$item_spec_arr = explode(",", $item_spec_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, 等審核才產出
// 非全汰改=REN
$renovate_flag = "";
if (preg_match("/M1/", $fp_kind_all)) $renovate_flag = "REN";
// 如果售價變動或電梯數量異動,售價則平均分攤到每台
/*
$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;
}
*/
$to_ins_arr = []; // 準備要新增的項目
if (count($fp_item_arr) > 0) {
foreach ($fp_item_arr as $k => $iid) {
if (empty($iid) && $fp_act_arr[$k] == "I") {
$to_ins_arr[] = $k;
} else {
$fp_kind_arr[$k] = (isset($fp_kind_arr[$k])) ? $fp_kind_arr[$k] : "";
$fp_seat_arr[$k] = (isset($fp_seat_arr[$k])) ? $fp_seat_arr[$k] : "";
$fp_numberofstop_arr[$k] = (isset($fp_numberofstop_arr[$k])) ? $fp_numberofstop_arr[$k] : "";
$fp_speed_arr[$k] = (isset($fp_speed_arr[$k])) ? $fp_speed_arr[$k] : "";
$note = $fp_kind_arr[$k].",".$fp_seat_arr[$k].",".$fp_numberofstop_arr[$k].",".$fp_speed_arr[$k];
$db_query = "update pricereview_item set item_unit_price = '$item_unit_price_arr[$k]', item_qty = '$item_qty_arr[$k]', ";
$db_query .= "item_price_bp = '$item_price_bp_arr[$k]', item_price_ct = '$item_price_ct_arr[$k]', note = '$note', ";
$db_query .= "item_spec = '$item_spec_arr[$k]', item_weight = '$item_weight_arr[$k]', item_op = '$item_op_arr[$k]' ";
$db_query .= "where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
}
if (count($fp_del_arr) > 0) {
foreach ($fp_del_arr as $k => $iid) {
if (empty($iid)) continue;
$db_query = "delete from pricereview_item where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
if (count($to_ins_arr) > 0) {
$db_query = "select max(item_no) from pricereview_item where mid = '$id' and item_group = 'A'";
$result = mysqli_query($link, $db_query);
$row = mysqli_fetch_row($result);
$nextno = $row[0] + 1;
foreach ($to_ins_arr as $v) {
if (!$fp_id_arr[$v]) $fp_id_arr[$v] = 0;
$note = $fp_kind_arr[$v].",".$fp_seat_arr[$v].",".$fp_numberofstop_arr[$v].",".$fp_speed_arr[$v];
$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, ";
$db_query .= "item_price_ct, item_price, gross_profit, gross_profit_rate, note) values (";
$db_query .= "'$id', '$fp_id_arr[$v]', '$nextno', '$item_spec_arr[$v]', '$item_weight_arr[$v]', '$item_op_arr[$v]', 'A', '$item_unit_price_arr[$v]', '$item_qty_arr[$v]', '$item_price_bp_arr[$v]', ";
$db_query .= "'$item_price_ct_arr[$v]', '0', '0', '0', '$note')";
$result = mysqli_query($link, $db_query);
$nextno++;
}
}
// 價格審查單-明細項目 pricereview_item:Option加價
$op_id_arr = explode(",", $op_id_all);
$op_item_arr = explode(",", $op_item_all); // 留下的OPTION ID
$op_act_arr = explode(",", $op_act_all); // U:update I:insert
$op_del_arr = explode(",", $op_del); // 刪除的OPTION ID
$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));
$to_ins_arr = []; // 準備要新增的項目
if (count($op_item_arr) > 0) {
foreach ($op_item_arr as $k => $iid) {
if (empty($iid) && $op_act_arr[$k] == "I") {
$to_ins_arr[] = $k;
} else {
$option_relate_spec = "";
$tmp_arr = explode("
", $option_relate_facil_arr[$k]);
foreach ($tmp_arr as $val) {
$option_relate_spec .= substr($val, 0, strpos($val, ".")).",";
}
$option_relate_spec = rtrim($option_relate_spec, ",");
$db_query = "update pricereview_item set item_unit_price = '$option_unit_price_arr[$k]', item_qty = '$option_qty_arr[$k]', ";
$db_query .= "item_price_bp = '$option_price_bp_arr[$k]', memo = '$option_memo_arr[$k]', option_relate_spec = '$option_relate_spec' ";
$db_query .= "where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
}
if (count($op_del_arr) > 0) {
foreach ($op_del_arr as $k => $iid) {
if (empty($iid)) continue;
$db_query = "delete from pricereview_item where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
if (count($to_ins_arr) > 0) {
$db_query = "select max(item_no) from pricereview_item where mid = '$id' and item_group = 'B'";
$result = mysqli_query($link, $db_query);
$row = mysqli_fetch_row($result);
$nextno = $row[0] + 1;
foreach ($to_ins_arr as $v) {
if (!$op_id_arr[$v]) $op_id_arr[$v] = 0;
$spec = trim($option_seat_arr[$v]);
$option_relate_spec = "";
$tmp_arr = explode("
", $option_relate_facil_arr[$k]);
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_spec, item_group, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo) values (";
$db_query .= "'$id', '$op_id_arr[$v]', '$nextno', '$spec', 'B', '$option_relate_spec', '$option_unit_price_arr[$v]', '$option_qty_arr[$v]', '$option_price_bp_arr[$v]', '$option_memo_arr[$v]')";
$result = mysqli_query($link, $db_query);
$nextno++;
}
}
// 價審明細:保養費用
$mn_id_arr = explode(",", $mn_id_all);
$mn_item_arr = explode(",", $mn_item_all); // 留下的保固 ID
$mn_act_arr = explode(",", $mn_act_all); // U:update I:insert
$mn_del_arr = explode(",", $mn_del); // 刪除的保固 ID
$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));
$to_ins_arr = []; // 準備要新增的項目
if (count($mn_item_arr) > 0) {
foreach ($mn_item_arr as $k => $iid) {
if (empty($iid) && $mn_act_arr[$k] == "I") {
$to_ins_arr[] = $k;
} else {
$mn_seat_arr[$k] = (isset($mn_seat_arr[$k])) ? $mn_seat_arr[$k] : "";
$mn_numberofstop_arr[$k] = (isset($mn_numberofstop_arr[$k])) ? $mn_numberofstop_arr[$k] : "";
$mn_speed_arr[$k] = (isset($mn_speed_arr[$k])) ? $mn_speed_arr[$k] : "";
$note = $mn_seat_arr[$k].",".$mn_numberofstop_arr[$k].",".$mn_speed_arr[$k];
$option_relate_spec = "";
$tmp_arr = explode("
", $mn_relate_facil_arr[$k]);
foreach ($tmp_arr as $val) {
$option_relate_spec .= substr($val, 0, strpos($val, ".")).",";
}
$option_relate_spec = rtrim($option_relate_spec, ",");
$db_query = "update pricereview_item set item_unit_price = '$mn_unit_price_arr[$k]', item_qty = '$mn_qty_arr[$k]', ";
$db_query .= "item_price_bp = '$mn_price_bp_arr[$k]', note = '$note', memo = '$mn_memo_arr[$k]', ";
$db_query .= "option_relate_spec = '$option_relate_spec' ";
$db_query .= "where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
}
if (count($mn_del_arr) > 0) {
foreach ($mn_del_arr as $k => $iid) {
if (empty($iid)) continue;
$db_query = "delete from pricereview_item where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
if (count($to_ins_arr) > 0) {
$db_query = "select max(item_no) from pricereview_item where mid = '$id' and item_group = 'D'";
$result = mysqli_query($link, $db_query);
$row = mysqli_fetch_row($result);
$nextno = $row[0] + 1;
foreach ($to_ins_arr as $v) {
if (!$mn_id_arr[$v]) $mn_id_arr[$v] = 0;
$note = $mn_seat_arr[$v].",".$mn_numberofstop_arr[$v].",".$mn_speed_arr[$v];
$option_relate_spec = "";
$tmp_arr = explode("
", $mn_relate_facil_arr[$v]);
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_spec, option_relate_spec, item_group, item_unit_price, item_qty, item_price_bp, note, memo) values (";
$db_query .= "'$id', '$mn_id_arr[$v]', '$nextno', '$mn_kind_arr[$v]', '$option_relate_spec', 'D', '$mn_unit_price_arr[$v]', '$mn_qty_arr[$v]', '$mn_price_bp_arr[$v]', '$note', '$mn_memo_arr[$v]')";
$result = mysqli_query($link, $db_query);
$nextno++;
}
}
// 價審明細:除外費用
$except_item_arr = explode(",", $except_item_all); // 留下的除外 ID
$except_act_arr = explode(",", $except_act_all); // U:update I:insert
$except_del_arr = explode(",", $except_del); // 刪除的除外 ID
$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);
$to_ins_arr = []; // 準備要新增的項目
if (count($except_item_arr) > 0) {
foreach ($except_item_arr as $k => $iid) {
if (empty($iid) && $except_act_arr[$k] == "I") {
$to_ins_arr[] = $k;
} else {
$db_query = "update pricereview_item set item_unit_price = '$except_unit_price_arr[$k]', item_qty = '$except_qty_arr[$k]', ";
$db_query .= "item_price_bp = '$except_price_bp_arr[$k]', note = '$except_note_arr[$k]' ";
$db_query .= "where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
}
if (count($except_del_arr) > 0) {
foreach ($except_del_arr as $k => $iid) {
if (empty($iid)) continue;
$db_query = "delete from pricereview_item where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
if (count($to_ins_arr) > 0) {
$db_query = "select max(item_no) from pricereview_item where mid = '$id' and item_group = 'E'";
$result = mysqli_query($link, $db_query);
$row = mysqli_fetch_row($result);
$nextno = $row[0] + 1;
foreach ($to_ins_arr as $v) {
$spec = trim($except_spec_arr[$v]);
$db_query = "insert into pricereview_item (mid, item_no, item_spec, item_group, item_unit_price, item_qty, item_price_bp, note) values (";
$db_query .= "'$id', '$nextno', '$spec', 'E', '$except_unit_price_arr[$v]', '$except_qty_arr[$v]', '$except_price_bp_arr[$v]', '$except_note_arr[$v]')";
$result = mysqli_query($link, $db_query);
$nextno++;
}
}
// 價審明細:拆梯費用
$dem_id_arr = explode(",", $dem_id_all);
$dem_item_arr = explode(",", $dem_item_all); // 留下的保固 ID
$dem_act_arr = explode(",", $dem_act_all); // U:update I:insert
$dem_del_arr = explode(",", $dem_del); // 刪除的保固 ID
$dem_seat_arr = explode(",", $dem_seat_all);
$dem_floor_arr = explode(",", $dem_floor_all);
$dem_unit_price_arr = explode(",", $dem_unit_price_all);
$dem_qty_arr = explode(",", $dem_qty_all);
$dem_price_bp_arr = explode(",", $dem_price_bp_all);
$to_ins_arr = []; // 準備要新增的項目
if (count($dem_item_arr) > 0) {
foreach ($dem_item_arr as $k => $iid) {
if (empty($iid) && $dem_act_arr[$k] == "I") {
$to_ins_arr[] = $k;
} else {
$dem_seat_arr[$k] = (isset($dem_seat_arr[$k])) ? $dem_seat_arr[$k] : "";
$note = $dem_floor_arr[$k];
$db_query = "update pricereview_item set item_unit_price = '$dem_unit_price_arr[$k]', item_qty = '$dem_qty_arr[$k]', ";
$db_query .= "item_price_bp = '$dem_price_bp_arr[$k]', note = '$note' ";
$db_query .= "where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
}
if (count($dem_del_arr) > 0) {
foreach ($dem_del_arr as $k => $iid) {
if (empty($iid)) continue;
$db_query = "delete from pricereview_item where id = '$iid'";
$result = mysqli_query($link, $db_query);
}
}
if (count($to_ins_arr) > 0) {
$db_query = "select max(item_no) from pricereview_item where mid = '$id' and item_group = 'C'";
$result = mysqli_query($link, $db_query);
$row = mysqli_fetch_row($result);
$nextno = $row[0] + 1;
foreach ($to_ins_arr as $v) {
if (!$dem_id_arr[$v]) $dem_id_arr[$v] = 0;
$note = $dem_floor_arr[$v];
$db_query = "insert into pricereview_item (mid, price_id, item_no, item_spec, item_group, item_unit_price, item_qty, item_price_bp, note) values (";
$db_query .= "'$id', '$dem_id_arr[$v]', '$nextno', '$dem_seat_arr[$v]', 'C', '$dem_unit_price_arr[$v]', '$dem_qty_arr[$v]', '$dem_price_bp_arr[$v]', '$note')";
$result = mysqli_query($link, $db_query);
$nextno++;
}
}
// 款別資訊
$pay_id_arr = explode(",", $pay_id_all);
$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++) {
$sql = "update pricereview_pay set pay_kind = '$pay_kind_arr[$i]', pay_scale = '$pay_scale_arr[$i]', pay_amount = '$pay_amount_arr[$i]', ";
$sql .= "pay_period = '$pay_period_arr[$i]', pay_note = '$pay_note' ";
$sql .= "where id = '$pay_id_arr[$i]'";
mysqli_query($link, $sql);
}
// 價審簽核流程
// <75%以下呈至總經理審核. ($price_rate)
// 上級主管 > 伃廷 > MAX > 總經理
if ($status == "YS") {
$manager_arr = pricereview_renovate_class($price_rate, $user_id, $renovate_flag);
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 ('$id', '$sign1', '$sign2', '$sign3', '$sign4', '".count($manager_arr)."')";
mysqli_query($link, $sql);
// 寫入待簽表
if (strlen($sign1) == 7) $next_signer = str_replace(",", "", $sign1);
elseif (strlen($sign2) == 7) $next_signer = str_replace(",", "", $sign2);
do_assign("prm02", $id, $contractno, $next_signer);
// 寄信給下位簽核人
$mail_list = [];
$ret = accountid2email($next_signer);
if (!empty($ret)) {
$mail_list[0] = [$next_signer, $ret[$next_signer]];
include dirname(__DIR__)."/class/Cmail.php";
$sendmail = new Cmail;
$title = "【汰改價審通知】卷號:".$contractno;
$content = "
您有待簽核案件,請至客戶管理 > 價格審查_汰改,點擊「待簽核」進行作業,謝謝!
"; $sendmail->sendx($title, $content, $mail_list); } } } } mysqli_close($link); if ($affected > 0) { echo ""; } else { echo ""; } } ?>