Browse Source

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

main
10994015 1 year ago
parent
commit
82451115ec
  1. 178
      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

178
wms/mkt/api/postNewElevatorPricereview.php

@ -27,7 +27,7 @@ $creater = $_POST['user_id'];
$create_at = date("Y-m-d H:i:s");
$attatch1_src = null;
$attatch2_src = null;
$token = $_POST['token'];
$elevators = json_decode($_POST['elevators'], true);
$options = json_decode($_POST['options'], true);
@ -132,9 +132,10 @@ if(!empty($attatch2)){
}
// -----處理檔案上傳 END-----
$conn->beginTransaction();
if($main){
try{
try{
$conn->beginTransaction();
if($main){
$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 ";
$stmt = $conn->prepare($sql_str);
@ -486,48 +487,7 @@ if($main){
$stmt->bindParam(':pay_period', $pay_period);
$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{
$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{
}else{
$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)";
$stmt = $conn->prepare($sql_str);
@ -711,67 +671,76 @@ if($main){
$stmt->bindParam(':pay_period', $pay_period);
$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'];
if($manager == "M0029" && $ekind == "新梯"){
$manager = "M0137";
}
$sign1 = "$manager,,"; //區處長
$sign2 =$ekind == '汰改'? "M0012,," : NULL; // 業務承辦人
$sign3 = $ekind == '汰改' ? "M0008,," : "M0060,,"; //業務部協理
$signArr = [
$manager,
$sign2,
$sign3,
];
$sign_total = count(array_filter($signArr, fn($item)=> $item != NULL));
//是否呈核至總經理(M0006)
if($price_rate < 80 || $special_fee > 0){
$sign4 = "M0006,,";
$sign_total += 1;
}else{
$sign4 = NULL;
}
$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();
//發送系統通知
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;
$related_id = $mid;
$title = $ekind . "價審待簽通知(".$contract['contractno']."," .$contract['company']. ")";
$content = "待簽核";
$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;
$permissions = [$manager];
$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);
}
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'];
if($manager == "M0029" && $ekind == "新梯"){
$manager = "M0137";
}
$sign1 = "$manager,,"; //區處長
$sign2 =$ekind == '汰改'? "M0012,," : NULL; // 業務承辦人
$sign3 = $ekind == '汰改' ? "M0008,," : "M0060,,"; //業務部協理
//是否呈核至總經理(M0006)
if($price_rate < 80 || $special_fee > 0){
$sign4 = "M0006,,";
$sign_total = 4;
}else{
$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)
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();
//發送通知
include_once "./postSystemNotice.php";
$kind = 1;
$related_id = null;
$title = "新梯價審審核通知";
$content = "";
$havaread = 1;
$permission = "system";
$create_at = date("Y-m-d H:i:s");
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permission, $creater, $create_at);
}
echo "success";
$conn->commit();
}catch (PDOException $e) {
$conn->rollback();
echo $e->getMessage();
die('Error!:' . $e->getMessage());
}
echo "success";
$conn->commit();
}
catch (PDOException $e) {
$conn->rollback();
echo $e->getMessage();
die('Error!:' . $e->getMessage());
}
@ -799,3 +768,4 @@ function getSpec($spec, $person, $stop, $open, $speed){
return $model;
}

57
wms/mkt/api/postPricereviewSign.php

@ -8,6 +8,7 @@ $mid = $_POST['mid'];
$result = $_POST['result'];
$reviewcomment = $_POST['reviewcomment'];
$sign_id = $_POST['currentSignId'];
$token = $_POST['token'];
$signOff = '';
if($result == 'YY' ){
$signOff = 'YY';
@ -17,7 +18,6 @@ if($result == 'YY' ){
$signOff = 'Y';
}
try{
$user_id = $_POST['user_id'];
$sign_result = $user_id . "," . $signOff . "," . date("Y-m-d H:i:s");
@ -36,6 +36,61 @@ try{
$stmt->bindParam(':id', $mid);
$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;
}catch(PDOException $e){
echo $e->getMessage();

29
wms/mkt/api/postSystemNotice.php

@ -1,17 +1,20 @@
<?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;
$sql_str = "INSERT INTO notice (kind, related_id, title, content, haveread, permission, creater, create_at)
VALUES (:kind, :related_id, :title, :content, :haveread, :permission, :creater, :create_at)";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':kind', $kind);
$stmt->bindParam(':related_id', $related_id);
$stmt->bindParam(':title', $title);
$stmt->bindParam(':content', $content);
$stmt->bindParam(':haveread', $haveread);
$stmt->bindParam(':permission', $permission);
$stmt->bindParam(':creater', $creater);
$stmt->bindParam(':create_at', $create_at);
$stmt->execute();
$sql_str = "INSERT INTO notice (kind, related_id, title, content, haveread, permission, url, 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->bindParam(':kind', $kind);
$stmt->bindParam(':related_id', $related_id);
$stmt->bindParam(':title', $title);
$stmt->bindParam(':content', $content);
$stmt->bindParam(':haveread', $haveread);
$stmt->bindParam(':permission', $permission);
$stmt->bindParam(':url', $url);
$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].spec_price <= 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++){
@ -810,7 +811,6 @@ const pricereviewCreate = ()=>{
})
alert(errortext)
console.log(this.error);
}
return this.error.length > 0 ? false : true
@ -841,7 +841,7 @@ const pricereviewCreate = ()=>{
form.append('attatch1', this.attatch1);
form.append('attatch2', this.attatch2);
form.append('user_id', user_id);
form.append('token', token);
form.append('elevators', JSON.stringify(this.elevators));
form.append('options', JSON.stringify(this.selectedOptions));
@ -856,10 +856,10 @@ const pricereviewCreate = ()=>{
if(res.data == "success"){
alert("送審成功!");
if(this.is_renovation == 'Y'){
window.location.href = './pricereview_renovate-index.php?' + token_link;
window.location.href = './pricereview_renovate-index.php?' + token;
return;
}
window.location.href = './pricereview-index.php?' + token_link;
window.location.href = './pricereview-index.php?' + token;
}
}).catch(err=>{
console.error(err);
@ -1161,6 +1161,7 @@ const pricereviewCheck = ()=>{
form.append('user_id', this.user_id);
form.append('reviewcomment', this.reviewcomment);
form.append('currentSignId', currentSignId);
form.append('token', token);
axios.post('./api/postPricereviewSign.php', form).then(res=>{
console.log(res.data);
if(res.data == 1){
@ -1169,7 +1170,6 @@ const pricereviewCheck = ()=>{
}
})
},
async getUsername(user_id){
if(user_id == '') return '---'
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 currentSignId = '<?php echo $currentSignId; ?>';
const token = '<?php echo $para = "function_name=pricereview&" . $token_link;; ?>';
</script>

2
wms/mkt/pricereviewCreate.php

@ -292,6 +292,7 @@ if($main){
foreach ($hope_elevators as $key => $elevator) {
$hope_elevators[$key]['id'] = $key+1;
$hope_elevators[$key]['weight'] = '';
$spec = $elevator['specifications'];
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 is_renovation = '<?php echo $hope_customer['is_renovation']; ?>';
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 optionKey = <?php echo $optionKey+1 ?>;
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="#">
<div>
<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 class="nextline"></div>
<div>
<label for="content">內容</label><br>
<div>
<?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>
<!-- <textarea class="form-control2" name="content" id="content" rows="8" cols="100" required><?php echo $data['content']; ?></textarea> -->
</div>

8
wms/notice-index.php

@ -90,7 +90,13 @@ if ($data) :
<td><?php if ($data['kind'] == '1') echo "系統";
else echo "會議"; ?></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>
<?php
if ($data['haveread'] == '1')

Loading…
Cancel
Save