Browse Source

新梯價審簽核傳送通知,notice 新增url 欄位

main
10994015 1 year ago
parent
commit
82451115ec
  1. 226
      wms/mkt/api/postNewElevatorPricereview.php
  2. 57
      wms/mkt/api/postPricereviewSign.php
  3. 29
      wms/mkt/api/postSystemNotice.php
  4. 10
      wms/mkt/assets/js/pricereviewAlpine.js
  5. 1
      wms/mkt/pricereviewCheck.php
  6. 2
      wms/mkt/pricereviewCreate.php
  7. 6
      wms/notice-edit.php
  8. 8
      wms/notice-index.php

226
wms/mkt/api/postNewElevatorPricereview.php

@ -27,7 +27,7 @@ $creater = $_POST['user_id'];
$create_at = date("Y-m-d H:i:s"); $create_at = date("Y-m-d H:i:s");
$attatch1_src = null; $attatch1_src = null;
$attatch2_src = null; $attatch2_src = null;
$token = $_POST['token'];
$elevators = json_decode($_POST['elevators'], true); $elevators = json_decode($_POST['elevators'], true);
$options = json_decode($_POST['options'], true); $options = json_decode($_POST['options'], true);
@ -132,9 +132,10 @@ if(!empty($attatch2)){
} }
// -----處理檔案上傳 END----- // -----處理檔案上傳 END-----
$conn->beginTransaction();
if($main){ try{
try{ $conn->beginTransaction();
if($main){
$mid = $main["id"]; $mid = $main["id"];
$sql_str = "UPDATE pricereview_main SET price_lowest=:price_lowest, price_total=:price_total, price_rate=:price_rate, special_fee=:special_fee, predeal_date=:predeal_date, facilitok_date=:facilitok_date, penalty=:penalty, deposit_rate=:deposit_rate, keep_rate=:keep_rate, warranty_rate=:warranty_rate, memo=:memo,status=:status, attatch1=:attatch1, attatch2=:attatch2 WHERE id = :id "; $sql_str = "UPDATE pricereview_main SET price_lowest=:price_lowest, price_total=:price_total, price_rate=:price_rate, special_fee=:special_fee, predeal_date=:predeal_date, facilitok_date=:facilitok_date, penalty=:penalty, deposit_rate=:deposit_rate, keep_rate=:keep_rate, warranty_rate=:warranty_rate, memo=:memo,status=:status, attatch1=:attatch1, attatch2=:attatch2 WHERE id = :id ";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -153,24 +154,24 @@ if($main){
$stmt->bindParam(':status', $status); $stmt->bindParam(':status', $status);
$stmt->bindParam(':attatch1', $attatch1_src); $stmt->bindParam(':attatch1', $attatch1_src);
$stmt->bindParam(':attatch2', $attatch2_src); $stmt->bindParam(':attatch2', $attatch2_src);
$stmt->execute(); $stmt->execute();
//整機單價 //整機單價
$sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'A'"; $sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'A'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->execute(); $stmt->execute();
$items = $stmt->fetchAll(PDO::FETCH_ASSOC); $items = $stmt->fetchAll(PDO::FETCH_ASSOC);
$oldElevators = array_filter($items, fn($el)=> $el['item_group'] == "A"); $oldElevators = array_filter($items, fn($el)=> $el['item_group'] == "A");
$oldItemsNo = (array)array_column($oldElevators, 'item_no'); $oldItemsNo = (array)array_column($oldElevators, 'item_no');
$newItemsNo = (array)array_column($elevators, 'id'); $newItemsNo = (array)array_column($elevators, 'id');
$onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete) $onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete)
$onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert) $onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert)
$inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update) $inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update)
foreach($onlyInOldIds as $oldidx){ foreach($onlyInOldIds as $oldidx){
$sql_str = "DELETE FROM pricereview_item WHERE mid = :mid AND item_no = :item_no AND item_group='A'"; $sql_str = "DELETE FROM pricereview_item WHERE mid = :mid AND item_no = :item_no AND item_group='A'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -188,7 +189,7 @@ if($main){
$item_group = "A"; $item_group = "A";
// $item_spec = $elevator['specifications'] . "-" . $elevator['person'] . "*" . $elevator['stop'] . "-" . $elevator['open_converted'] . $elevator['speed']; // $item_spec = $elevator['specifications'] . "-" . $elevator['person'] . "*" . $elevator['stop'] . "-" . $elevator['open_converted'] . $elevator['speed'];
$item_spec = getSpec($elevator['specifications'], $elevator['person'], $elevator['stop'], $elevator['open_converted'], $elevator['speed']); $item_spec = getSpec($elevator['specifications'], $elevator['person'], $elevator['stop'], $elevator['open_converted'], $elevator['speed']);
$item_weight = $elevator['weight']; $item_weight = $elevator['weight'];
$item_op = $elevator['open_converted']; $item_op = $elevator['open_converted'];
@ -227,7 +228,7 @@ if($main){
$item_price_bp = (int)$elevator['price'] * (int)$elevator['spec_num']; $item_price_bp = (int)$elevator['price'] * (int)$elevator['spec_num'];
$item_price_ct = $elevator['spec_price']; $item_price_ct = $elevator['spec_price'];
$note = $elevator['specifications'] . ',' . $elevator['person'] . ',' . $elevator['stop'] . ',' . $elevator['speed']; $note = $elevator['specifications'] . ',' . $elevator['person'] . ',' . $elevator['stop'] . ',' . $elevator['speed'];
$sql_str = "UPDATE pricereview_item SET price_id=:price_id, item_spec=:item_spec, item_weight=:item_weight, item_op=:item_op, item_unit_price=:item_unit_price, item_qty=:item_qty, item_price_bp=:item_price_bp, item_price_ct=:item_price_ct, note=:note WHERE item_no = :item_no AND mid = :mid AND item_group='A' "; $sql_str = "UPDATE pricereview_item SET price_id=:price_id, item_spec=:item_spec, item_weight=:item_weight, item_op=:item_op, item_unit_price=:item_unit_price, item_qty=:item_qty, item_price_bp=:item_price_bp, item_price_ct=:item_price_ct, note=:note WHERE item_no = :item_no AND mid = :mid AND item_group='A' ";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':item_no', $bothidx); $stmt->bindParam(':item_no', $bothidx);
@ -243,7 +244,7 @@ if($main){
$stmt->bindParam(':note', $note); $stmt->bindParam(':note', $note);
$stmt->execute(); $stmt->execute();
} }
//Option加價 //Option加價
$sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'B'"; $sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'B'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -256,7 +257,7 @@ if($main){
$onlyInOptionOldIds = array_values(array_diff($oldOptionsNo, $newOptioinNo)); $onlyInOptionOldIds = array_values(array_diff($oldOptionsNo, $newOptioinNo));
$onlyInOptionNewIds = array_values(array_diff($newOptioinNo, $oldOptionsNo)); $onlyInOptionNewIds = array_values(array_diff($newOptioinNo, $oldOptionsNo));
$inBothOptionIds = array_values(array_intersect($oldOptionsNo, $newOptioinNo)); $inBothOptionIds = array_values(array_intersect($oldOptionsNo, $newOptioinNo));
foreach($onlyInOptionOldIds as $oldoptionidx){ foreach($onlyInOptionOldIds as $oldoptionidx){
$sql_str = "DELETE FROM pricereview_item WHERE mid = :mid AND item_no = :item_no AND item_group='B'"; $sql_str = "DELETE FROM pricereview_item WHERE mid = :mid AND item_no = :item_no AND item_group='B'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -291,10 +292,10 @@ if($main){
$stmt->bindParam(':item_price_bp', $item_price_bp); $stmt->bindParam(':item_price_bp', $item_price_bp);
$stmt->execute(); $stmt->execute();
} }
foreach($inBothOptionIds as $bothoptionidx){ foreach($inBothOptionIds as $bothoptionidx){
$option = array_values(array_filter($options, fn($el)=> $el['key'] == $bothoptionidx))[0]; $option = array_values(array_filter($options, fn($el)=> $el['key'] == $bothoptionidx))[0];
$price_id = $option['id']; $price_id = $option['id'];
$item_no = $option['key']; $item_no = $option['key'];
$item_group = "B"; $item_group = "B";
@ -305,7 +306,7 @@ if($main){
$item_price_bp = $option['price'] * $option['qty']; $item_price_bp = $option['price'] * $option['qty'];
$sql_str = "UPDATE pricereview_item SET price_id = :price_id, item_spec=:item_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, option_relate_spec=:option_relate_spec WHERE mid = :mid AND item_no = :item_no AND item_group='B'"; $sql_str = "UPDATE pricereview_item SET price_id = :price_id, item_spec=:item_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, option_relate_spec=:option_relate_spec WHERE mid = :mid AND item_no = :item_no AND item_group='B'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->bindParam(':price_id', $price_id); $stmt->bindParam(':price_id', $price_id);
@ -317,7 +318,7 @@ if($main){
$stmt->bindParam(':item_price_bp', $item_price_bp); $stmt->bindParam(':item_price_bp', $item_price_bp);
$stmt->execute(); $stmt->execute();
} }
//除外項目 //除外項目
$sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'E'"; $sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'E'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -354,7 +355,7 @@ if($main){
$item_qty = $option['num']; $item_qty = $option['num'];
$item_price_bp = $option['price'] * $option['num']; $item_price_bp = $option['price'] * $option['num'];
$note = $option['pr_no']; $note = $option['pr_no'];
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->bindParam(':item_no', $item_no); $stmt->bindParam(':item_no', $item_no);
@ -367,10 +368,10 @@ if($main){
$stmt->bindParam(':note', $note); $stmt->bindParam(':note', $note);
$stmt->execute(); $stmt->execute();
} }
foreach($inBothOtherOptionIds as $bothotheroptionidx){ foreach($inBothOtherOptionIds as $bothotheroptionidx){
$option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0]; $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0];
$item_no = $option['id']; $item_no = $option['id'];
$item_group = "E"; $item_group = "E";
$item_spec = $option['name']; $item_spec = $option['name'];
@ -381,7 +382,7 @@ if($main){
$note = $option['pr_no']; $note = $option['pr_no'];
$sql_str = "UPDATE pricereview_item SET item_spec=:item_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, option_relate_spec=:option_relate_spec, note=:note WHERE mid = :mid AND item_no = :item_no AND item_group='E'"; $sql_str = "UPDATE pricereview_item SET item_spec=:item_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, option_relate_spec=:option_relate_spec, note=:note WHERE mid = :mid AND item_no = :item_no AND item_group='E'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->bindParam(':item_no', $item_no); $stmt->bindParam(':item_no', $item_no);
@ -393,7 +394,7 @@ if($main){
$stmt->bindParam(':note', $note); $stmt->bindParam(':note', $note);
$stmt->execute(); $stmt->execute();
} }
//拆梯價格 //拆梯價格
$sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'C'"; $sql_str = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'C'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -430,7 +431,7 @@ if($main){
$item_price_bp = (int)$option['price'] * (int)$option['qty']; $item_price_bp = (int)$option['price'] * (int)$option['qty'];
$note = $option['floor']; $note = $option['floor'];
$price_id = $option['demolish_id']; $price_id = $option['demolish_id'];
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->bindParam(':item_no', $item_no); $stmt->bindParam(':item_no', $item_no);
@ -446,7 +447,7 @@ if($main){
} }
foreach($inBothDemolishOptionIds as $bothdemolishoptionidx){ foreach($inBothDemolishOptionIds as $bothdemolishoptionidx){
$option = array_values(array_filter($demolishOptions, fn($el)=> $el['id'] == $bothdemolishoptionidx))[0]; $option = array_values(array_filter($demolishOptions, fn($el)=> $el['id'] == $bothdemolishoptionidx))[0];
$item_no = $option['id']; $item_no = $option['id'];
$item_group = "C"; $item_group = "C";
$item_spec = $option['person']; $item_spec = $option['person'];
@ -458,7 +459,7 @@ if($main){
$price_id = $option['demolish_id']; $price_id = $option['demolish_id'];
$sql_str = "UPDATE pricereview_item SET item_spec=:item_spec, price_id=:price_id, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, option_relate_spec=:option_relate_spec, note=:note WHERE mid = :mid AND item_no = :item_no AND item_group='C'"; $sql_str = "UPDATE pricereview_item SET item_spec=:item_spec, price_id=:price_id, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, option_relate_spec=:option_relate_spec, note=:note WHERE mid = :mid AND item_no = :item_no AND item_group='C'";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->bindParam(':item_no', $item_no); $stmt->bindParam(':item_no', $item_no);
@ -471,7 +472,7 @@ if($main){
$stmt->bindParam(':price_id', $price_id); $stmt->bindParam(':price_id', $price_id);
$stmt->execute(); $stmt->execute();
} }
$sql_str = "UPDATE pricereview_pay SET pay_scale = :pay_scale, pay_amount = :pay_amount, pay_period = :pay_period WHERE mid = :mid AND pay_kind = :pay_kind"; $sql_str = "UPDATE pricereview_pay SET pay_scale = :pay_scale, pay_amount = :pay_amount, pay_period = :pay_period WHERE mid = :mid AND pay_kind = :pay_kind";
foreach($paymentRatio as $key=>$pay){ foreach($paymentRatio as $key=>$pay){
$pay_kind = $key +1; $pay_kind = $key +1;
@ -486,48 +487,7 @@ if($main){
$stmt->bindParam(':pay_period', $pay_period); $stmt->bindParam(':pay_period', $pay_period);
$stmt->execute(); $stmt->execute();
} }
}else{
if($status == 'YS'){
$sql_str = "SELECT * FROM account WHERE accountid = :accountid";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':accountid', $creater);
$stmt->execute();
$account = $stmt->fetch(PDO::FETCH_ASSOC);
$manager = $account['manager'];
$sign1 = "$manager,,"; //區處長
$sign2 = NULL; // 業務承辦人
$sign3 = "M0060,,"; //業務部協理
//是否呈核至總經理(M0006)
if($price_rate < 80 || $special_fee > 0){
$sign4 = "M0006,,";
$sign_total = 4;
}else{
$sign4 = NULL;
$sign_total = 3;
}
$sql_str = "INSERT INTO pricereview_sign (mid, sign1, sign2, sign3, sign4, sign_total)
VALUES (:mid, :sign1, :sign2, :sign3, :sign4, :sign_total)";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid);
$stmt->bindParam(':sign1', $sign1);
$stmt->bindParam(':sign2', $sign2);
$stmt->bindParam(':sign3', $sign3);
$stmt->bindParam(':sign4', $sign4);
$stmt->bindParam(':sign_total', $sign_total);
$stmt->execute();
}
$conn->commit();
echo "success";
}catch (PDOException $e) {
$conn->rollback();
echo $e->getMessage();
die('Error!:' . $e->getMessage());
}
}else{
try{
$sql_str = "INSERT INTO pricereview_main (contractno, ekind, person, company, case_name, address, compete, price_lowest, price_total, price_rate, special_fee, predeal_date, facilitok_date, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, attatch1, attatch2, creater, create_at) $sql_str = "INSERT INTO pricereview_main (contractno, ekind, person, company, case_name, address, compete, price_lowest, price_total, price_rate, special_fee, predeal_date, facilitok_date, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, attatch1, attatch2, creater, create_at)
VALUES (:contractno, :ekind, :person, :company, :case_name, :address, :compete, :price_lowest, :price_total, :price_rate, :special_fee, :predeal_date, :facilitok_date, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :attatch1, :attatch2, :creater, :create_at)"; VALUES (:contractno, :ekind, :person, :company, :case_name, :address, :compete, :price_lowest, :price_total, :price_rate, :special_fee, :predeal_date, :facilitok_date, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :attatch1, :attatch2, :creater, :create_at)";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -711,67 +671,76 @@ if($main){
$stmt->bindParam(':pay_period', $pay_period); $stmt->bindParam(':pay_period', $pay_period);
$stmt->execute(); $stmt->execute();
} }
}
if($status == 'YS'){
$sql_str = "SELECT * FROM account WHERE accountid = :accountid";
if($status == 'YS'){ $stmt = $conn->prepare($sql_str);
$sql_str = "SELECT * FROM account WHERE accountid = :accountid"; $stmt->bindParam(':accountid', $creater);
$stmt = $conn->prepare($sql_str); $stmt->execute();
$stmt->bindParam(':accountid', $creater); $account = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->execute(); $manager = $account['manager'];
$account = $stmt->fetch(PDO::FETCH_ASSOC); if($manager == "M0029" && $ekind == "新梯"){
$manager = $account['manager']; $manager = "M0137";
if($manager == "M0029" && $ekind == "新梯"){ }
$manager = "M0137"; $sign1 = "$manager,,"; //區處長
} $sign2 =$ekind == '汰改'? "M0012,," : NULL; // 業務承辦人
$sign1 = "$manager,,"; //區處長 $sign3 = $ekind == '汰改' ? "M0008,," : "M0060,,"; //業務部協理
$sign2 =$ekind == '汰改'? "M0012,," : NULL; // 業務承辦人 $signArr = [
$sign3 = $ekind == '汰改' ? "M0008,," : "M0060,,"; //業務部協理 $manager,
$sign2,
//是否呈核至總經理(M0006) $sign3,
if($price_rate < 80 || $special_fee > 0){ ];
$sign4 = "M0006,,"; $sign_total = count(array_filter($signArr, fn($item)=> $item != NULL));
$sign_total = 4; //是否呈核至總經理(M0006)
}else{ if($price_rate < 80 || $special_fee > 0){
$sign4 = NULL; $sign4 = "M0006,,";
$sign_total = 3; $sign_total += 1;
} }else{
if($ekind == "N"){ $sign4 = NULL;
$sign_total = $sign_total - 1; }
} $sql_str = "INSERT INTO pricereview_sign (mid, sign1, sign2, sign3, sign4, sign_total)
$sql_str = "INSERT INTO pricereview_sign (mid, sign1, sign2, sign3, sign4, sign_total) VALUES (:mid, :sign1, :sign2, :sign3, :sign4, :sign_total)";
VALUES (:mid, :sign1, :sign2, :sign3, :sign4, :sign_total)"; $stmt = $conn->prepare($sql_str);
$stmt = $conn->prepare($sql_str); $stmt->bindParam(':mid', $mid);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':sign1', $sign1);
$stmt->bindParam(':sign1', $sign1); $stmt->bindParam(':sign2', $sign2);
$stmt->bindParam(':sign2', $sign2); $stmt->bindParam(':sign3', $sign3);
$stmt->bindParam(':sign3', $sign3); $stmt->bindParam(':sign4', $sign4);
$stmt->bindParam(':sign4', $sign4); $stmt->bindParam(':sign_total', $sign_total);
$stmt->bindParam(':sign_total', $sign_total); $stmt->execute();
$stmt->execute();
//發送通知 //發送系統通知
include_once "./postSystemNotice.php";
include_once "./postSystemNotice.php"; $sql_str = "SELECT * FROM pricereview_main WHERE id = :id ORDER BY id DESC LIMIT 1";
$kind = 1; $stmt = $conn->prepare($sql_str);
$related_id = null; $stmt->bindParam(':id', $mid);
$title = "新梯價審審核通知"; $stmt->execute();
$content = ""; $contract = $stmt->fetch(PDO::FETCH_ASSOC);
$havaread = 1; $kind = 1;
$permission = "system"; $related_id = $mid;
$create_at = date("Y-m-d H:i:s"); $title = $ekind . "價審待簽通知(".$contract['contractno']."," .$contract['company']. ")";
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permission, $creater, $create_at); $content = "待簽核";
} $content = "合約號:".$contract['contractno'] . "<br>";
echo "success"; $content .= "客戶名稱:" . $contract['company'] . "<br>";
$conn->commit(); $content .= "案件名稱:" . $contract['case_name'] . "<br>";
$content .= "時間" . date("Y-m-d H:i:s");
}catch (PDOException $e) { // $content .= "<a href='./mkt/pricreviewCheck.php?id=".$mid.">前往查看</a>";
$conn->rollback(); $havaread = null;
echo $e->getMessage(); $permissions = [$manager];
die('Error!:' . $e->getMessage()); $creater = "system";
} $create_at = date("Y-m-d H:i:s");
$url = "mkt/pricereviewCheck.php?id=" . $mid;
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permissions, $creater, $create_at, $url);
}
echo "success";
$conn->commit();
}
catch (PDOException $e) {
$conn->rollback();
echo $e->getMessage();
die('Error!:' . $e->getMessage());
} }
@ -798,4 +767,5 @@ function getSpec($spec, $person, $stop, $open, $speed){
} }
return $model; return $model;
} }

57
wms/mkt/api/postPricereviewSign.php

@ -8,6 +8,7 @@ $mid = $_POST['mid'];
$result = $_POST['result']; $result = $_POST['result'];
$reviewcomment = $_POST['reviewcomment']; $reviewcomment = $_POST['reviewcomment'];
$sign_id = $_POST['currentSignId']; $sign_id = $_POST['currentSignId'];
$token = $_POST['token'];
$signOff = ''; $signOff = '';
if($result == 'YY' ){ if($result == 'YY' ){
$signOff = 'YY'; $signOff = 'YY';
@ -17,7 +18,6 @@ if($result == 'YY' ){
$signOff = 'Y'; $signOff = 'Y';
} }
try{ try{
$user_id = $_POST['user_id']; $user_id = $_POST['user_id'];
$sign_result = $user_id . "," . $signOff . "," . date("Y-m-d H:i:s"); $sign_result = $user_id . "," . $signOff . "," . date("Y-m-d H:i:s");
@ -36,6 +36,61 @@ try{
$stmt->bindParam(':id', $mid); $stmt->bindParam(':id', $mid);
$stmt->execute(); $stmt->execute();
include_once "./postSystemNotice.php";
$sql_str = "SELECT * FROM pricereview_main WHERE id = :id ORDER BY id DESC LIMIT 1";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':id', $mid);
$stmt->execute();
$contract = $stmt->fetch(PDO::FETCH_ASSOC);
$ekind = $contract['ekind'];
$sql_str = "SELECT * FROM pricereview_sign WHERE mid = :mid AND id = :sign_id";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $mid);
$stmt->bindParam(':sign_id', $sign_id);
$stmt->execute();
$currentsign = $stmt->fetch(PDO::FETCH_ASSOC);
$permissions = [];
$content = "";
if($signOff == "YY"){
if($currentsign['sign1']!=NULL){ $permissions[] = explode(",", $currentsign['sign1'])[0] ; }
if($currentsign['sign2']!=NULL){ $permissions[] = explode(",", $currentsign['sign2'])[0] ; }
if($currentsign['sign3']!=NULL){ $permissions[] = explode(",", $currentsign['sign3'])[0] ; }
if($currentsign['sign4']!=NULL){ $permissions[] = explode(",", $currentsign['sign4'])[0] ; }
$permissions[] = $contract['person'];
$title = $ekind . "價審結案通知(".$contract['contractno']."," .$contract['company']. ")";
$content = "狀態:結案同意<br>";
}elseif($signOff == "Y"){
if($sign == 1 || $sign == 2 || $sign == 3){
$signer = $currentsign['sign'.($sign+1)];
if($signer == NULL){
$signer = $currentsign['sign'.($sign+2)];
}
$permissions[] = explode(",", $signer)[0];
$title = $ekind . "價審待簽通知(".$contract['contractno']."," .$contract['company']. ")";
$content = "狀態:待簽核<br>";
}
}elseif($signOff == "N"){
$signer = $contract['person'];
$permissions[] = $signer;
$title = $ekind . "價審退回通知(".$contract['contractno']."," .$contract['company']. ")";
$content = "狀態:退回<br>";
}
$kind = 1;
$related_id = $mid;
$content .= "合約號:".$contract['contractno'] . "<br>";
$content .= "客戶名稱:" . $contract['company'] . "<br>";
$content .= "案件名稱:" . $contract['case_name'] . "<br>";
$content .= "時間" . date("Y-m-d H:i:s");
// $content .= "<a href='./mkt/pricreviewCheck.php?id=".$mid.">前往查看</a>";
$havaread = null;
$creater = "system";
$create_at = date("Y-m-d H:i:s");
$url = "mkt/pricereviewCheck.php?id=" . $mid;
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permissions, $creater, $create_at, $url);
echo 1; echo 1;
}catch(PDOException $e){ }catch(PDOException $e){
echo $e->getMessage(); echo $e->getMessage();

29
wms/mkt/api/postSystemNotice.php

@ -1,17 +1,20 @@
<?php <?php
require_once("../conn.php"); require_once("../conn.php");
function sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permission, $creater, $create_at){ function sendSystemNotice($kind, $related_id, $title, $content, $haveread, $permissions, $creater, $create_at, $url){
global $conn; global $conn;
$sql_str = "INSERT INTO notice (kind, related_id, title, content, haveread, permission, creater, create_at) $sql_str = "INSERT INTO notice (kind, related_id, title, content, haveread, permission, url, creater, create_at)
VALUES (:kind, :related_id, :title, :content, :haveread, :permission, :creater, :create_at)"; VALUES (:kind, :related_id, :title, :content, :haveread, :permission, :url,:creater, :create_at)";
$stmt = $conn->prepare($sql_str); foreach($permissions as $permission){
$stmt->bindParam(':kind', $kind); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':related_id', $related_id); $stmt->bindParam(':kind', $kind);
$stmt->bindParam(':title', $title); $stmt->bindParam(':related_id', $related_id);
$stmt->bindParam(':content', $content); $stmt->bindParam(':title', $title);
$stmt->bindParam(':haveread', $haveread); $stmt->bindParam(':content', $content);
$stmt->bindParam(':permission', $permission); $stmt->bindParam(':haveread', $haveread);
$stmt->bindParam(':creater', $creater); $stmt->bindParam(':permission', $permission);
$stmt->bindParam(':create_at', $create_at); $stmt->bindParam(':url', $url);
$stmt->execute(); $stmt->bindParam(':creater', $creater);
$stmt->bindParam(':create_at', $create_at);
$stmt->execute();
}
} }

10
wms/mkt/assets/js/pricereviewAlpine.js

@ -782,6 +782,7 @@ const pricereviewCreate = ()=>{
if(this.elevators[i].price =='') this.error.push("整機單價:公司發布價無此規格"); if(this.elevators[i].price =='') this.error.push("整機單價:公司發布價無此規格");
if(this.elevators[i].spec_price <= 0) this.error.push("整機單價:售價需大於0"); if(this.elevators[i].spec_price <= 0) this.error.push("整機單價:售價需大於0");
if(this.elevators[i].spec_num <= 0) this.error.push("整機單價:電梯數量需大於0"); if(this.elevators[i].spec_num <= 0) this.error.push("整機單價:電梯數量需大於0");
if(this.elevators[i].weight =='') this.error.push("整機單價:電梯載重需大於0");
} }
for(let i=0;i<this.selectedOptions.length;i++){ for(let i=0;i<this.selectedOptions.length;i++){
@ -810,7 +811,6 @@ const pricereviewCreate = ()=>{
}) })
alert(errortext) alert(errortext)
console.log(this.error); console.log(this.error);
} }
return this.error.length > 0 ? false : true return this.error.length > 0 ? false : true
@ -841,7 +841,7 @@ const pricereviewCreate = ()=>{
form.append('attatch1', this.attatch1); form.append('attatch1', this.attatch1);
form.append('attatch2', this.attatch2); form.append('attatch2', this.attatch2);
form.append('user_id', user_id); form.append('user_id', user_id);
form.append('token', token);
form.append('elevators', JSON.stringify(this.elevators)); form.append('elevators', JSON.stringify(this.elevators));
form.append('options', JSON.stringify(this.selectedOptions)); form.append('options', JSON.stringify(this.selectedOptions));
@ -856,10 +856,10 @@ const pricereviewCreate = ()=>{
if(res.data == "success"){ if(res.data == "success"){
alert("送審成功!"); alert("送審成功!");
if(this.is_renovation == 'Y'){ if(this.is_renovation == 'Y'){
window.location.href = './pricereview_renovate-index.php?' + token_link; window.location.href = './pricereview_renovate-index.php?' + token;
return; return;
} }
window.location.href = './pricereview-index.php?' + token_link; window.location.href = './pricereview-index.php?' + token;
} }
}).catch(err=>{ }).catch(err=>{
console.error(err); console.error(err);
@ -1161,6 +1161,7 @@ const pricereviewCheck = ()=>{
form.append('user_id', this.user_id); form.append('user_id', this.user_id);
form.append('reviewcomment', this.reviewcomment); form.append('reviewcomment', this.reviewcomment);
form.append('currentSignId', currentSignId); form.append('currentSignId', currentSignId);
form.append('token', token);
axios.post('./api/postPricereviewSign.php', form).then(res=>{ axios.post('./api/postPricereviewSign.php', form).then(res=>{
console.log(res.data); console.log(res.data);
if(res.data == 1){ if(res.data == 1){
@ -1169,7 +1170,6 @@ const pricereviewCheck = ()=>{
} }
}) })
}, },
async getUsername(user_id){ async getUsername(user_id){
if(user_id == '') return '---' if(user_id == '') return '---'
const res = await axios.get('./api/getUsername.php', {params: {user_id: user_id}}) const res = await axios.get('./api/getUsername.php', {params: {user_id: user_id}})

1
wms/mkt/pricereviewCheck.php

@ -988,4 +988,5 @@ function getSignerName($signer){
const sign4 = '<?php echo ($sign) ? explode(',', $sign['sign4'])[0] : "---" ?>'; const sign4 = '<?php echo ($sign) ? explode(',', $sign['sign4'])[0] : "---" ?>';
const currentSignId = '<?php echo $currentSignId; ?>'; const currentSignId = '<?php echo $currentSignId; ?>';
const token = '<?php echo $para = "function_name=pricereview&" . $token_link;; ?>';
</script> </script>

2
wms/mkt/pricereviewCreate.php

@ -292,6 +292,7 @@ if($main){
foreach ($hope_elevators as $key => $elevator) { foreach ($hope_elevators as $key => $elevator) {
$hope_elevators[$key]['id'] = $key+1; $hope_elevators[$key]['id'] = $key+1;
$hope_elevators[$key]['weight'] = '';
$spec = $elevator['specifications']; $spec = $elevator['specifications'];
if($spec == 'M1' || $spec == 'M1+M4(1:1)' || $spec == 'M1+M4(2:1)'){ if($spec == 'M1' || $spec == 'M1+M4(1:1)' || $spec == 'M1+M4(2:1)'){
//稍後再處理 //稍後再處理
@ -1470,6 +1471,7 @@ function convertDateTimeFormat($dateTimeStr) {
const pre_order_date = '<?php echo convertDateTimeFormat($hope_customer['pre_order_date']); ?>'; const pre_order_date = '<?php echo convertDateTimeFormat($hope_customer['pre_order_date']); ?>';
const is_renovation = '<?php echo $hope_customer['is_renovation']; ?>'; const is_renovation = '<?php echo $hope_customer['is_renovation']; ?>';
const token_link = '<?php echo $token_link; ?>'; const token_link = '<?php echo $token_link; ?>';
const token = '<?php echo $para = "function_name=pricereview&" . $token_link;; ?>';
const selectedOptions = [...<?php echo json_encode($selectedOptions); ?>]; const selectedOptions = [...<?php echo json_encode($selectedOptions); ?>];
const optionKey = <?php echo $optionKey+1 ?>; const optionKey = <?php echo $optionKey+1 ?>;
const otherOptions = [...<?php echo json_encode($otherOptions); ?>]; const otherOptions = [...<?php echo json_encode($otherOptions); ?>];

6
wms/notice-edit.php

@ -33,13 +33,17 @@ foreach ($data as $data) :
<form class="form-inline" method="post" action="#"> <form class="form-inline" method="post" action="#">
<div> <div>
<label for="title">標題</label> <label for="title">標題</label>
<input type="text" name="title" id="title" size="30" maxlength="25" value="<?php echo $data['title']; ?>" required> <input type="text" name="title" disabled id="title" size="30" maxlength="25" value="<?php echo $data['title']; ?>" required>
</div> </div>
<div class="nextline"></div> <div class="nextline"></div>
<div> <div>
<label for="content">內容</label><br> <label for="content">內容</label><br>
<div> <div>
<?php echo nl2br(str_replace("{token_link}", $token_link, $data['content'])); ?> <?php echo nl2br(str_replace("{token_link}", $token_link, $data['content'])); ?>
<?php if(!empty($data['url'])): ?>
<br />
<a href="./<?php echo $data['url'] ?>&<?php echo $token_link; ?>">前往查看</a>
<?php endif; ?>
</div> </div>
<!-- <textarea class="form-control2" name="content" id="content" rows="8" cols="100" required><?php echo $data['content']; ?></textarea> --> <!-- <textarea class="form-control2" name="content" id="content" rows="8" cols="100" required><?php echo $data['content']; ?></textarea> -->
</div> </div>

8
wms/notice-index.php

@ -90,7 +90,13 @@ if ($data) :
<td><?php if ($data['kind'] == '1') echo "系統"; <td><?php if ($data['kind'] == '1') echo "系統";
else echo "會議"; ?></td> else echo "會議"; ?></td>
<td><?php echo $data['title']; ?></td> <td><?php echo $data['title']; ?></td>
<td><?php echo $data['content']; ?></td> <td>
<?php echo $data['content']; ?>
<?php if(!empty($data['url'])): ?>
<br />
<a href="./<?php echo $data['url'] ?>&<?php echo $token_link; ?>">前往查看</a>
<?php endif; ?>
</td>
<td> <td>
<?php <?php
if ($data['haveread'] == '1') if ($data['haveread'] == '1')

Loading…
Cancel
Save