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