Browse Source

新梯/汰改價審簽核重洗

main
10994015 1 year ago
parent
commit
6f7a1f1e62
  1. 2
      wms/mkt/api/postFlow.php
  2. 1
      wms/mkt/api/postNewElevatorPricereview.php
  3. 101
      wms/mkt/api/resaveFlow.php
  4. 4
      wms/mkt/pricereviewCheck.php
  5. 49
      wms/sign/conn.php
  6. 57
      wms/sign/list.php

2
wms/mkt/api/postFlow.php

@ -53,4 +53,6 @@ function createFlow($mid, $current_assigner, $flow_code, $ekind, $form_key=null)
$stmt->bindParam(':create_date', $created_at); $stmt->bindParam(':create_date', $created_at);
$stmt->execute(); $stmt->execute();
return $form_key;
} }

1
wms/mkt/api/postNewElevatorPricereview.php

@ -713,7 +713,6 @@ try{
//發送待簽通知 //發送待簽通知
include_once "./postFlow.php"; include_once "./postFlow.php";
$createFlow = createFlow($mid, $manager, "A", $ekind, $form_key); $createFlow = createFlow($mid, $manager, "A", $ekind, $form_key);
echo $createFlow;
//發送系統通知 //發送系統通知
include_once "./postSystemNotice.php"; include_once "./postSystemNotice.php";
$sql_str = "SELECT * FROM pricereview_main WHERE id = :id ORDER BY id DESC LIMIT 1"; $sql_str = "SELECT * FROM pricereview_main WHERE id = :id ORDER BY id DESC LIMIT 1";

101
wms/mkt/api/resaveFlow.php

@ -0,0 +1,101 @@
<?php
if(isset($_GET['id']) && $_GET['id'] == 998){
require_once('../conn.php');
include_once('./postFlow.php');
$sql_str = "SELECT pricereview_sign.*, pricereview_main.ekind AS ekind FROM pricereview_sign LEFT JOIN pricereview_main ON pricereview_sign.mid = pricereview_main.id WHERE pricereview_main.status = 'YS' ";
$sql_str = "SELECT
prs.*,
prm.ekind
FROM
(SELECT
MAX(id) AS max_id,
mid
FROM
pricereview_sign
GROUP BY
mid) AS max_prs
JOIN
pricereview_sign prs ON prs.id = max_prs.max_id
LEFT JOIN
pricereview_main prm ON prs.mid = prm.id
WHERE
prm.status = 'YS'";
$stmt = $conn->prepare($sql_str);
$stmt->execute();
$signs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$total = 0;
foreach($signs as $sign){
$total++;
echo $total . "<br>";
$currentSigner = "";
$form_key = null;
if(!empty($sign['sign1'])){
$sign1 = explode(",", $sign['sign1'])[1]; // M0033,,
if($sign1 == ""){
$currentSigner = explode(",", $sign['sign1'])[0];
$form_key = createFlow($sign['mid'], $currentSigner, "A", $sign['ekind'], $form_key );
continue;
}else{
if(!empty($sign['sign2'])){
$sign2 = explode(",", $sign['sign2'])[1];
if($sign2 == "" && $sign1 == "Y"){
$currentSigner = explode(",", $sign['sign1'])[0];
$form_key = createFlow($sign['mid'], $currentSigner, "A", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign2'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
continue;
}
$sign3 = explode(",", $sign['sign3'])[1];
if($sign3 == "" && $sign2 == "Y"){
$currentSigner = explode(",", $sign['sign1'])[0];
$form_key = createFlow($sign['mid'], $currentSigner, "A", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign2'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign3'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
continue;
}
if(!empty($sign['sign4'])){
$sign4 = explode(",", $sign['sign4'])[1];
if($sign4 == "" && $sign3 == "Y"){
$currentSigner = explode(",", $sign['sign1'])[0];
$form_key = createFlow($sign['mid'], $currentSigner, "A", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign2'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign3'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign4'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
continue;
}
}
}else{
$sign3 = explode(",", $sign['sign3'])[1];
if($sign3 == "" && $sign1 == "Y"){
$currentSigner = explode(",", $sign['sign1'])[0];
$form_key = createFlow($sign['mid'], $currentSigner, "A", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign3'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
continue;
}
if(!empty($sign['sign4'])){
$sign4 = explode(",", $sign['sign4'])[1];
if($sign4 == "" && $sign3 == "Y"){
$currentSigner = explode(",", $sign['sign1'])[0];
$form_key = createFlow($sign['mid'], $currentSigner, "A", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign3'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
$currentSigner = explode(",", $sign['sign4'])[0];
createFlow($sign['mid'], $currentSigner, "B", $sign['ekind'], $form_key );
continue;
}
}
}
}
}
}
}

4
wms/mkt/pricereviewCheck.php

@ -325,8 +325,8 @@ function getSignerName($signer){
<input x-show="!isNotfoundMi" type="text" class="form-control" x-model="Math.round(Number(elevator.optionsTotalPrice) + Number(elevator.otherOptionsTotalPrice) + Number(elevator.maintainOptionsTotalPrice) + Number(elevator.totalMi * elevator.item_qty)).toLocaleString() " disabled /> <input x-show="!isNotfoundMi" type="text" class="form-control" x-model="Math.round(Number(elevator.optionsTotalPrice) + Number(elevator.otherOptionsTotalPrice) + Number(elevator.maintainOptionsTotalPrice) + Number(elevator.totalMi * elevator.item_qty)).toLocaleString() " disabled />
</td> </td>
<td><input type="text" class="form-control" x-model="(Number(elevator.item_price_ct)*Number(elevator.item_qty)).toLocaleString()" disabled /></td> <td><input type="text" class="form-control" x-model="(Number(elevator.item_price_ct)*Number(elevator.item_qty)).toLocaleString()" disabled /></td>
<td><input type="text" class="form-control" x-model="(elevator.item_price_ct - Math.round(Number(elevator.optionsTotalPrice) + Number(elevator.otherOptionsTotalPrice) + Number(elevator.maintainOptionsTotalPrice) + Number(elevator.totalMi * elevator.item_qty))).toLocaleString()" disabled /></td> <td><input type="text" class="form-control" x-model="(Number(elevator.item_price_ct)*Number(elevator.item_qty) - Math.round(Number(elevator.optionsTotalPrice) + Number(elevator.otherOptionsTotalPrice) + Number(elevator.maintainOptionsTotalPrice) + Number(elevator.totalMi * elevator.item_qty))).toLocaleString()" disabled /></td>
<td><input type="text" class="form-control" x-model="Math.round((elevator.item_price_ct - Math.round(Number(elevator.optionsTotalPrice) + Number(elevator.otherOptionsTotalPrice) + Number(elevator.maintainOptionsTotalPrice) + Number(elevator.totalMi * elevator.item_qty))) / elevator.item_price_ct *1000) /10 + '%'" disabled /></td> <td><input type="text" class="form-control" x-model="Math.round((Number(elevator.item_price_ct)*Number(elevator.item_qty) - Math.round(Number(elevator.optionsTotalPrice) + Number(elevator.otherOptionsTotalPrice) + Number(elevator.maintainOptionsTotalPrice) + Number(elevator.totalMi * elevator.item_qty))) / (Number(elevator.item_price_ct)*Number(elevator.item_qty)) *1000) /10 + '%'" disabled /></td>
<?php endif; ?> <?php endif; ?>
</tr> </tr>
<?php if($permissions): ?> <?php if($permissions): ?>

49
wms/sign/conn.php

@ -0,0 +1,49 @@
<?php
$envFile = __DIR__ . '/.env'; // .env 文件的路径
if (file_exists($envFile)) {
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ($lines !== false) {
foreach ($lines as $line) {
list($key, $value) = explode('=', $line, 2);
$key = trim($key);
$value = trim($value);
// 设置环境变量
putenv("$key=$value");
}
}
}
$db_hostname = getenv('DB_HOST'); //資料庫主機名稱
$db_username = getenv('DB_USERNAME'); //登入資料庫的管理者的帳號
$db_password = getenv('DB_PASSWORD'); //登入密碼
$db_name = getenv('DB_DATABASE'); //使用的資料庫
$db_charset = 'utf8'; //設定字元編碼
$db_hostname = 'localhost'; //資料庫主機名稱
$db_username = 'root'; //登入資料庫的管理者的帳號
$db_password = ''; //登入密碼
$db_name = 'appwms'; //使用的資料庫
$db_charset = 'utf8'; //設定字元編碼
//建立PDO的指定工作
$dsn = "mysql:host=$db_hostname;dbname=$db_name;charset=$db_charset";
try{
//使用PDO連接到MySQL資料庫,建立PDO物件
$conn = new PDO($dsn, $db_username, $db_password);
//當錯誤發生時會將錯誤資訊放到一個類物件裡(PDOException)
//PDO異常處理,PDO::ATTR_ERRMODE,有以下三種值的設定
//PDO::ERRMODE_SILENT: 預設模式,不主動報錯,需要以$conn->errorInfo()的形式獲取錯誤資訊
//PDO::ERRMODE_WARNING: 引發 E_WARNING 錯誤,主動報錯
//PDO::ERRMODE_EXCEPTION: 主動抛出 exceptions 異常,需要以try{}cath(){}輸出錯誤資訊。
//設定主動以警告的形式報錯
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//如果連接錯誤,將抛出一個PDOException異常對象
}
catch ( PDOException $e ){
//如果連結資料庫失敗則顯示錯誤訊並停止本頁的工作
die("ERROR!!!: ". $e->getMessage());
}
//$conn = null; //關閉資料庫的連線

57
wms/sign/list.php

@ -9,7 +9,7 @@
// 載入db.php來連結資料庫 // 載入db.php來連結資料庫
require_once "../database.php"; require_once "../database.php";
require_once "../header.php"; require_once "../header.php";
require_once("../mkt/conn.php");
function getWipwholestatusDataByFormkey($link, $form_key, $flow_id) function getWipwholestatusDataByFormkey($link, $form_key, $flow_id)
{ {
@ -84,6 +84,42 @@ $sql_get = "SELECT d.form_id,c.form_key, a.system_id,b.flow_id ,a.system_name,c
AND c.form_key=d.form_key AND c.form_key=d.form_key
and b.flow_id NOT IN ('wws04') and b.flow_id NOT IN ('wws04')
$where_system_id $where_system_id
$where_flow_id
";
$sql_get = "SELECT
d.form_id,
c.form_key,
a.system_id,
b.flow_id,
a.system_name,
c.current_assigner,
CONCAT(c.current_assigner, '-', f_return_name(c.current_assigner)) AS current_assigner_name,
flow_name,
c.update_date,
c.create_date,
b.path,
d.flow_code
FROM
system_main a
JOIN
flow_main b ON a.system_id = b.system_id
JOIN
flow d ON b.flow_id = d.flow_id
JOIN
(SELECT
form_key,
MAX(seq) AS max_seq
FROM
subflow
GROUP BY
form_key) AS sf ON d.form_key = sf.form_key
JOIN
subflow c ON c.form_key = sf.form_key AND c.seq = sf.max_seq
WHERE
c.current_assigner = '$user_id'
AND b.flow_id NOT IN ('wws04')
$where_system_id
$where_flow_id $where_flow_id
"; ";
// echo '<pre>'; // echo '<pre>';
@ -107,6 +143,16 @@ $flow_name_opt = array_map(function ($item) {
}, $res_get); }, $res_get);
$flow_name_opt = (array_unique($flow_name_opt, SORT_REGULAR)); $flow_name_opt = (array_unique($flow_name_opt, SORT_REGULAR));
function getPricereviewDataByFormkey($form_key){
global $conn;
$sql_str = "SELECT pricereview_main.contractno, pricereview_main.company FROM flow LEFT JOIN pricereview_main ON flow.form_id = pricereview_main.id WHERE flow.form_key = :form_key ORDER BY pricereview_main.id DESC LIMIT 1";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':form_key', $form_key);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
}
?> ?>
<style> <style>
table { table {
@ -232,7 +278,14 @@ $flow_name_opt = (array_unique($flow_name_opt, SORT_REGULAR));
作番大日程-合約號:<?= $contractno ?> 作番號:<?= $facilityno ?> 作番大日程-合約號:<?= $contractno ?> 作番號:<?= $facilityno ?>
</a> </a>
<?php <?php
} else { } elseif($data['flow_name'] == '新梯價審流程' || $data['flow_name'] == '汰改價審流程'){
?>
<a target="_blank" href="<?= $data['path'] . "?fromsign=1&form_key=" . $data['form_key'] . "&token=$token" ?>">
<?= $data['form_key'] . "(" . getPricereviewDataByFormkey($data['form_key'])['contractno'] ."," . getPricereviewDataByFormkey($data['form_key'])['company'] .")"; ?>
</a>
<?php
}
else {
?> ?>
<a target="_blank" href="<?= $data['path'] . "?fromsign=1&form_key=" . $data['form_key'] . "&token=$token" ?>"> <a target="_blank" href="<?= $data['path'] . "?fromsign=1&form_key=" . $data['form_key'] . "&token=$token" ?>">
<?= $data['form_key']; ?> <?= $data['form_key']; ?>

Loading…
Cancel
Save