Browse Source

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

main
10994015 1 year ago
parent
commit
82451115ec
  1. 102
      wms/mkt/api/postNewElevatorPricereview.php
  2. 57
      wms/mkt/api/postPricereviewSign.php
  3. 9
      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

102
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);
@ -486,48 +487,7 @@ 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";
$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{ }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,9 +671,7 @@ if($main){
$stmt->bindParam(':pay_period', $pay_period); $stmt->bindParam(':pay_period', $pay_period);
$stmt->execute(); $stmt->execute();
} }
}
if($status == 'YS'){ if($status == 'YS'){
$sql_str = "SELECT * FROM account WHERE accountid = :accountid"; $sql_str = "SELECT * FROM account WHERE accountid = :accountid";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
@ -727,17 +685,18 @@ if($main){
$sign1 = "$manager,,"; //區處長 $sign1 = "$manager,,"; //區處長
$sign2 =$ekind == '汰改'? "M0012,," : NULL; // 業務承辦人 $sign2 =$ekind == '汰改'? "M0012,," : NULL; // 業務承辦人
$sign3 = $ekind == '汰改' ? "M0008,," : "M0060,,"; //業務部協理 $sign3 = $ekind == '汰改' ? "M0008,," : "M0060,,"; //業務部協理
$signArr = [
$manager,
$sign2,
$sign3,
];
$sign_total = count(array_filter($signArr, fn($item)=> $item != NULL));
//是否呈核至總經理(M0006) //是否呈核至總經理(M0006)
if($price_rate < 80 || $special_fee > 0){ if($price_rate < 80 || $special_fee > 0){
$sign4 = "M0006,,"; $sign4 = "M0006,,";
$sign_total = 4; $sign_total += 1;
}else{ }else{
$sign4 = NULL; $sign4 = NULL;
$sign_total = 3;
}
if($ekind == "N"){
$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)";
@ -751,27 +710,37 @@ if($main){
$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";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':id', $mid);
$stmt->execute();
$contract = $stmt->fetch(PDO::FETCH_ASSOC);
$kind = 1; $kind = 1;
$related_id = null; $related_id = $mid;
$title = "新梯價審審核通知"; $title = $ekind . "價審待簽通知(".$contract['contractno']."," .$contract['company']. ")";
$content = ""; $content = "待簽核";
$havaread = 1; $content = "合約號:".$contract['contractno'] . "<br>";
$permission = "system"; $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;
$permissions = [$manager];
$creater = "system";
$create_at = date("Y-m-d H:i:s"); $create_at = date("Y-m-d H:i:s");
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permission, $creater, $create_at); $url = "mkt/pricereviewCheck.php?id=" . $mid;
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permissions, $creater, $create_at, $url);
} }
echo "success"; echo "success";
$conn->commit(); $conn->commit();
}
}catch (PDOException $e) { catch (PDOException $e) {
$conn->rollback(); $conn->rollback();
echo $e->getMessage(); echo $e->getMessage();
die('Error!:' . $e->getMessage()); die('Error!:' . $e->getMessage());
}
} }
@ -799,3 +768,4 @@ 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();

9
wms/mkt/api/postSystemNotice.php

@ -1,9 +1,10 @@
<?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)";
foreach($permissions as $permission){
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':kind', $kind); $stmt->bindParam(':kind', $kind);
$stmt->bindParam(':related_id', $related_id); $stmt->bindParam(':related_id', $related_id);
@ -11,7 +12,9 @@ function sendSystemNotice($kind, $related_id, $title, $content, $havaread, $perm
$stmt->bindParam(':content', $content); $stmt->bindParam(':content', $content);
$stmt->bindParam(':haveread', $haveread); $stmt->bindParam(':haveread', $haveread);
$stmt->bindParam(':permission', $permission); $stmt->bindParam(':permission', $permission);
$stmt->bindParam(':url', $url);
$stmt->bindParam(':creater', $creater); $stmt->bindParam(':creater', $creater);
$stmt->bindParam(':create_at', $create_at); $stmt->bindParam(':create_at', $create_at);
$stmt->execute(); $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