Browse Source

新梯合約簽回

gary
Cheng 1 year ago
parent
commit
d084346a37
  1. 218
      wms/bonus/elevator_new/elevator_new_deal_bonus.php
  2. 190
      wms/contract-repair/contract-renovate-input.php
  3. 43
      wms/contract/api/getContractData.php
  4. 74
      wms/contract/api/postNewContractData.php
  5. 43
      wms/contract/api/testT8API.php
  6. 337
      wms/contract/contract-newelevator-input.php
  7. 45
      wms/contract/js/alpine.js

218
wms/bonus/elevator_new/elevator_new_deal_bonus.php

@ -0,0 +1,218 @@
<?php
function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $sales_id, $region_manger_id)
{
$bonus_array = [];
if ($ver == "2.0") {
$discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。
#合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
switch ($contract_type) {
case "strategy_customer":
#契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.007;
#地區經理提成獎金($region_manager_bonus)
$region_manager_bonus = 400;
break;
case "general_customer":
switch ($elevator_type) {
#客梯(passenger)、貨梯(cargo)
case ($elevator_type == "passenger" or $elevator_type == "cargo"):
switch ($discount) {
case ($discount >= 1.0):
$sales_bonus = $elevator_knockdown_price * 0.02;
break;
case ($discount >= 0.9 and $discount < 1.0):
$sales_bonus = $elevator_knockdown_price * 0.018;
break;
case ($discount >= 0.75 and $discount < 0.9):
$sales_bonus = $elevator_knockdown_price * 0.015;
break;
case ($discount < 0.75):
$sales_bonus = $elevator_knockdown_price * 0.008;
break;
};
break;
#小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive)
case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"):
switch ($discount) {
case ($discount >= 1.0):
$sales_bonus = $elevator_knockdown_price * 0.02;
break;
case ($discount >= 0.9 and $discount < 1.0):
$sales_bonus = $elevator_knockdown_price * 0.018;
break;
case ($discount >= 0.72 and $discount < 0.9):
$sales_bonus = $elevator_knockdown_price * 0.015;
break;
case ($discount < 0.72):
$sales_bonus = $elevator_knockdown_price * 0.008;
break;
};
break;
};
#區域經理提成獎金($region_manager_bonus)
$region_manager_bonus = 600;
break;
};
#營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20%
array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.2), #金額
"payment_schedul_due" => "deposit", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定
]);
#營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%
array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-出貨款段", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.5), #金額
"payment_schedul_due" => "shipping", #訂金已收款20%
"payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定
]);
#營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%
array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.3), #金額
"payment_schedul_due" => "acceptance", #訂金已收款20%
"payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定
]);
#區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50%
array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deposit", #訂金已收款100%
"payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定
]);
#區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100%
"payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定
]);
$result_array = [
"ver" => $ver, #獎金版本
"result_status" => "success", #計算結果
"bonus_array" => $bonus_array #獎金水庫
];
} else {
array_push($bonus_array, [
"bonus_type" => "error", #獎金名稱
"bonus_receiver" => "error", #發放人員
"bonus_amount" => 0, #金額
"payment_schedul_due" => "9999-1-1", #預計發放時間
"payment_schedul_regulation" => "error" #發放規定
]);
$result_array = [
"ver" => $ver, #獎金版本
"result_status" => "error", #計算結果
"bonus_array" => $bonus_array #獎金水庫
];
};
return $result_array;
};
function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_knockdown_price, $sales_id, $region_manger_id)
{
$bonus_array = [];
if ($ver == "1.0") {
#合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
switch ($contract_type) {
case "strategy_customer":
#契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.007;
#地區經理經理獎金($region_manager_bonus)
$region_manager_bonus = 400;
break;
case "general_customer":
#契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.015;
#區域經理獎金($region_manager_bonus)
$region_manager_bonus = 600;
break;
};
#營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20%
array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.2), #金額
"payment_schedul_due" => "deposit", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定
]);
#營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%
array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-出貨款段", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.5), #金額
"payment_schedul_due" => "shipping", #訂金已收款20%
"payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定
]);
#營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%
array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.3), #金額
"payment_schedul_due" => "acceptance", #訂金已收款20%
"payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定
]);
#區域經理獎金水庫-----訂金已收款100%,發放總獎金50%
array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deposit", #訂金已收款100%
"payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定
]);
#區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100%
"payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定
]);
$result_array = [
"ver" => $ver, #獎金版本
"result_status" => "success", #計算結果
"bonus_array" => $bonus_array #獎金水庫
];
} else {
array_push($bonus_array, [
"bonus_type" => "error", #獎金名稱
"bonus_receiver" => "error", #發放人員
"bonus_amount" => 0, #金額
"payment_schedul_due" => "9999-1-1", #預計發放時間
"payment_schedul_regulation" => "error" #發放規定
]);
$result_array = [
"ver" => $ver, #獎金版本
"result_status" => "error", #計算結果
"bonus_array" => $bonus_array #獎金水庫
];
};
return $result_array;
};

190
wms/contract-repair/contract-renovate-input.php

@ -92,7 +92,7 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
<tr> <tr>
<td rowspan="4">材料</td> <td rowspan="3">材料</td>
<td>1、訂金</td> <td>1、訂金</td>
<td> <td>
<input type="text"> <input type="text">
@ -143,8 +143,11 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
</select> </select>
</td> </td>
</tr> </tr>
<!-- <tr>
<td>4、其他</td>
<tr>
<td rowspan="3">安裝</td>
<td>5、安裝完畢款</td>
<td> <td>
<input type="text"> <input type="text">
</td> </td>
@ -152,112 +155,93 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
<input type="text"> <input type="text">
</td> </td>
<td> <td>
<select x-model=data.paykind[3] @change="totalFn()"> <select x-model=data.paykind[4] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> --> <!-- <option value=""></option> -->
<option x-text="pay"></option> <option x-text="pay"></option>
</template> </template>
</select> </select>
</td> </td>
</tr> --> </tr>
<tr>
<tr> <td>6、驗收款</td>
<td rowspan="3">安裝</td> <td>
<td>5、安裝完畢款</td> <input type="text">
<td> </td>
<input type="text"> <td colspan="2">
</td> <input type="text">
<td colspan="2"> </td>
<input type="text"> <td>
</td> <select x-model=data.paykind[5] @change="totalFn()">
<td> <template x-for="pay in data.payarr" :key="pay">
<select x-model=data.paykind[4] @change="totalFn()"> <!-- <option value=""></option> -->
<template x-for="pay in data.payarr" :key="pay"> <option x-text="pay"></option>
<!-- <option value=""></option> --> </template>
<option x-text="pay"></option> </select>
</template> </td>
</select> </tr>
</td> <tr>
</tr> <td>7、其他</td>
<tr> <td>
<td>6、驗收款</td> <input type="text">
<td> </td>
<input type="text"> <td colspan="2">
</td> <input type="text">
<td colspan="2"> </td>
<input type="text"> <td>
</td> <select x-model=data.paykind[6] @change="totalFn()">
<td> <template x-for="pay in data.payarr" :key="pay">
<select x-model=data.paykind[5] @change="totalFn()"> <!-- <option value=""></option> -->
<template x-for="pay in data.payarr" :key="pay"> <option :value="pay" x-text="pay"></option>
<!-- <option value=""></option> --> </template>
<option x-text="pay"></option> </select>
</template> </td>
</select> </tr>
</td>
</tr>
<tr>
<td>7、其他</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[6] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option :value="pay" x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr> <tr>
<td colspan="2">合計</td> <td colspan="2">合計</td>
<td> <td>
<input type="text" disabled> <input type="text" disabled>
</td> </td>
<td colspan="2"> <td colspan="2">
<input type="text" disabled> <input type="text" disabled>
</td> </td>
<td> <td>
<input type="text" x-model="data.total" disabled> <input type="text" x-model="data.total" disabled>
</td> </td>
</tr> </tr>
</div> </div>
</tbody> </tbody>
</template> </template>
</table> </table>
<button x-show="step==3" @click="save()" type="button" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading"> <button x-show="step==3" @click="save()" type="button" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span>存檔</span> <span>存檔</span>
</template> </template>
<template x-if="isLoading"> <template x-if="isLoading">
<span class="loader"></span> <span class="loader"></span>
</template> </template>
</button> </button>
<button x-show="step<2" @click="nextStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading"> <button x-show="step<2" @click="nextStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span>下一步</span> <span>下一步</span>
</template> </template>
<template x-if="isLoading"> <template x-if="isLoading">
<span class="loader"></span> <span class="loader"></span>
</template> </template>
</button> </button>
<button x-show="step>1" @click="preStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading"> <button x-show="step>1" @click="preStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span>上一步</span> <span>上一步</span>
</template> </template>
<template x-if="isLoading"> <template x-if="isLoading">
<span class="loaders"></span> <span class="loaders"></span>
</template> </template>
</button> </button>
</div>
</div> </div>
</div>
</div> </div>

43
wms/contract/api/getContractData.php

@ -46,15 +46,52 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont
if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 'm') { if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 'm') {
try { try {
$contractno = $_GET['contractno']; $contractno = $_GET['contractno'];
$sql_str = "SELECT a.*,b.lm_tel,b.uscc,b.manager FROM pricereview_main AS a $sql_str = "SELECT a.*,b.lm_tel,b.uscc,b.manager,b.linkman FROM pricereview_main AS a
LEFT JOIN hope_elevator_customer AS b ON a.contractno = b.vol_no LEFT JOIN hope_elevator_customer AS b ON a.contractno = b.vol_no
WHERE a.contractno = :contractno AND a.status = 'YS' "; WHERE a.contractno = :contractno AND a.status != 'YN' ";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':contractno', $contractno); $stmt->bindParam(':contractno', $contractno);
$stmt->execute(); $stmt->execute();
$contract = $stmt->fetch(PDO::FETCH_ASSOC); $contract = $stmt->fetch(PDO::FETCH_ASSOC);
$contractResponse = json_encode($contract);
$salesman = $contract['person'];
$sql = "SELECT * FROM account WHERE accountid = :accountid ";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':accountid', $salesman);
$stmt->execute();
$account_detail = $stmt->fetch(PDO::FETCH_ASSOC);
$contract['manager'] = $account_detail['manager'];
$contract['salesman_departno'] = $account_detail['department_id'];
$mid = $contract['id'];
$sql = "SELECT * FROM pricereview_item WHERE mid = :mid AND item_group = 'A' ";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':mid', $mid);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$elevators_detail_arr = [];
foreach ($results as $keys => $result) {
$note = explode(',', $result['note']);
$result['spec'] = $note[0]; //型號
$result['person'] = $note[1]; // 人承
$result['floor'] = $note[2]; // 樓層
$result['speed'] = $note[3]; // 速度
for ($i = 0; $i < $result['item_qty']; $i++) {
$result['item_no'] = $i + 1;
array_push($elevators_detail_arr, $result);
}
}
$count = COUNT($elevators_detail_arr);
$contract['elevators'] = $results;
$contract['elevators_detail_arr'] = $elevators_detail_arr;
$contract['nums'] = $count;
// echo '<pre>';
// print_r($contract);
// echo '</pre>';
// exit;
$contractResponse = json_encode($contract);
// 設定回應標頭為 JSON // 設定回應標頭為 JSON
header('Content-Type: application/json'); header('Content-Type: application/json');

74
wms/contract/api/postNewContractData.php

@ -24,6 +24,14 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
$salesman = $_POST["salesman"]; $salesman = $_POST["salesman"];
$qc = $_POST["qc"]; $qc = $_POST["qc"];
$contracttype = $_POST["contracttype"]; $contracttype = $_POST["contracttype"];
$elevators_nums = $_POST['nums'];
$elevators = json_decode($_POST['elevators'], true);
$elevators_detail_arr = json_decode($_POST['elevators_detail_arr'], true);
BounsCount($_POST, $conn);
// echo '<pre>';
// print_r($elevators);
// echo '</pre>';
// exit;
$files = !empty($_FILES['files']) ? $_FILES['files'] : null; $files = !empty($_FILES['files']) ? $_FILES['files'] : null;
$files_id = null; $files_id = null;
@ -43,8 +51,27 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
echo json_encode($fail_arr); echo json_encode($fail_arr);
exit(); exit();
} }
//create facility table
$createFacilityNo = new CreateFacilityNo();
$dailyNecessities = [
'MAE100' => 'X',
'MAM200' => 'W',
'MAH100' => 'H',
'MAQ100' => 'Z',
'MAF100' => 'F',
'MAZ100' => 'B',
];
$arr = [];
// 建立作番號
foreach ($elevators_detail_arr as $elevator) {
// $spec = explode('-', $elevator['item_spec']);
$arr[] = $dailyNecessities[$elevator['spec']];
}
$facilityno = $createFacilityNo->makeMFacilityNo('M', $arr, intval($elevators_nums));
echo '<pre>';
print_r($facilityno);
echo '</pre>';
exit();
$conn->beginTransaction(); $conn->beginTransaction();
$sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid ORDER BY create_at DESC"; $sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid ORDER BY create_at DESC";
@ -151,6 +178,7 @@ function T8Insert($data)
$user_id = $data['user_id']; $user_id = $data['user_id'];
$salesman = $data['salesman']; $salesman = $data['salesman'];
$createAt = date("Y-m-dH-i-s"); $createAt = date("Y-m-dH-i-s");
$elevators[] = $data['elevators'];
$createTime = str_replace('-', '', $createAt); $createTime = str_replace('-', '', $createAt);
@ -252,3 +280,45 @@ function T8Insert($data)
$stmt->execute(); $stmt->execute();
} }
} }
function BounsCount($data, $conn)
{
// echo '<pre>';
// print_r($data);
// echo '</pre>';
// exit;
require_once("../../bonus/elevator_new/elevator_new_deal_bonus.php");
$signing_date = $data['signing_date'];
$bonus_v1_0_date = '2024-01-02';
$bonus_v2_0_date = '2024-01-03';
$contractType = [
'1' => 'strategy_customer',
'2' => 'general_customer'
];
$contract_type = $data['contract_type'];
$type = $contractType[$contract_type]; //戰略客戶 or 一般客戶
$elevator_knockdown_price = $data['price_total']; //受價總額
$salesman = $data['salesman'];
$manager = $data['manager'];
$result_bonus = [];
if ($signing_date <= $bonus_v1_0_date) {
$ver = '1.0';
$result_bonus = elevator_new_deal_bonus_v1_0($ver, $type, $elevator_knockdown_price, $salesman, $manager);
} else if ($signing_date >= $bonus_v2_0_date) {
$ver = '2.0';
}
echo '<pre>';
print_r($result_bonus);
echo '</pre>';
exit();
try {
} catch (PDOException $e) {
header("HTTP/1.1 500 Internal Server Error");
die('Error!:' . $e->getMessage());
}
}

43
wms/contract/api/testT8API.php

@ -1,13 +1,36 @@
<?php <?php
$date = "113-01-01"; ?>
$click = explode("-", $date);
$click[0] = intval($click[0]) + 1911;
$ADdate = implode('-', $click); <head>
echo '<pre>'; <title>地址轉經緯度</title>
print_r($date); <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
echo '</pre>'; </head>
echo '<pre>'; <body>
print_r($ADdate); <h1>輸入地址以獲取經緯度</h1>
echo '</pre>'; <form id="addressForm" method="post">
<input type="text" id="addressInput" name="address" placeholder="輸入地址">
<button type="submit">查詢</button>
</form>
<div id="map"></div>
<script>
// 使用AJAX提交表單
$(document).ready(function() {
$("#addressForm").submit(function(event) {
event.preventDefault();
var address = $("#addressInput").val();
$.ajax({
url: "get_lat_lng.php",
type: "POST",
data: {
address: address
},
success: function(data) {
$("#map").html(data);
}
});
});
});
</script>
</body>

337
wms/contract/contract-newelevator-input.php

@ -1,17 +1,17 @@
<?php <?php
include_once("../header.php"); include_once("../header.php");
require_once("./conn.php"); require_once("./conn.php");
$accounttype = "M"; $accounttype = "M";
$sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype"; $sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype ORDER BY accountid";
$stmt = $conn->prepare($sql_str); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(":accounttype", $accounttype); $stmt->bindParam(":accounttype", $accounttype);
$stmt -> execute(); $stmt->execute();
$persons = $stmt->fetchAll(PDO::FETCH_ASSOC); $persons = $stmt->fetchAll(PDO::FETCH_ASSOC);
$persons = array_map(function($person){ $persons = array_map(function ($person) {
return [ return [
'view'=>$person['accountid'] .'-'. $person['name'], 'view' => $person['name'] . '-' . $person['accountid'],
'value'=>$person['accountid'], 'value' => $person['accountid'],
'name'=>$person['name'] 'name' => $person['name']
]; ];
}, $persons); }, $persons);
?> ?>
@ -21,7 +21,7 @@ $persons = array_map(function($person){
<script src="./js/axios/axios.min.js"></script> <script src="./js/axios/axios.min.js"></script>
<div class="contract-input-component" x-data="contractNewInput"> <div class="contract-input-component" x-data="contractNewInput">
<div class="form" method="post" id="form" enctype="multipart/form-data" > <div class="form" method="post" id="form" enctype="multipart/form-data">
<input type="hidden" name='form_name' value="main_form" /> <input type="hidden" name='form_name' value="main_form" />
<div> <div>
<table class="table table-bordered query-table table-striped table-bordered display compact" style="width:99%;margin-left:.5%"> <table class="table table-bordered query-table table-striped table-bordered display compact" style="width:99%;margin-left:.5%">
@ -31,106 +31,233 @@ $persons = array_map(function($person){
<h3 style='text-align:center'>合約入力(新梯)</h3> <h3 style='text-align:center'>合約入力(新梯)</h3>
</td> </td>
</tr> </tr>
</thead> </thead>
<template x-if="step==1"> <template x-if="step==1">
<tbody style="font-weight: bolder;margin-bottom: 20px" x-show="step==1"> <tbody style="font-weight: bolder;margin-bottom: 20px" x-show="step==1">
<tr> <tr>
<td style="vertical-align: middle">合約號</td> <td style="vertical-align: middle">合約號</td>
<td colspan=5> <td colspan=5>
<input class="form-control" @keyup="nextStepKeyupFn($event)" type="text" name="contractno" x-model="data.contractno" > <input class="form-control" @keyup="nextStepKeyupFn($event)" type="text" name="contractno" x-model="data.contractno">
</td> </td>
<td colspan="2" style="vertical-align: middle"> <td colspan="2" style="vertical-align: middle">
<label for="customize"> <label for="customize">
<input type="checkbox" x-model="customize" id="customize" />自定義欄位 <input type="checkbox" x-model="customize" id="customize" />自定義欄位
</label> </label>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</template> </template>
<template x-if="step==2"> <template x-if="step==2">
<tbody style="font-weight: bolder;margin-bottom: 20px" x-show="step==2"> <tbody style="font-weight: bolder;margin-bottom: 20px" x-show="step==2">
<tr> <tr>
<td colspan="7" style='vertical-align: middle;border-right:0px;'> <td colspan="7" style='vertical-align: middle;border-right:0px;'>
<h4>業務確認項</h4> <h4>業務確認項</h4>
</td> </td>
<td class="text-right" style='border-left:0px;'> <td class="text-right" style='border-left:0px;'>
<button type="button" id="btn_close" class="btn btn-default" onclick="window.history.back();">返回</button> <button type="button" id="btn_close" class="btn btn-default" onclick="window.history.back();">返回</button>
<button type="button" id="btn_close" class="btn btn-default" onclick="window.close();">關閉分頁</button> <button type="button" id="btn_close" class="btn btn-default" onclick="window.close();">關閉分頁</button>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: middle">客戶名稱</td> <td style="vertical-align: middle">客戶名稱</td>
<td> <td>
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.customer" > <input class="form-control disabled_select" type="text" name="" x-model="data.customer">
<p class="alerttext" x-show="data.customer==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> <p class="alerttext" x-show="data.customer==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td> </td>
<td style="vertical-align: middle">負責人</td> <td style="vertical-align: middle">負責人</td>
<td> <td>
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.manager" > <select class="manager" id="manager" x-model="data.manager">
<p class="alerttext" x-show="data.manager==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> <option value="">請選擇營業員</option>
</td> <?php foreach ($persons as $person) : ?>
<td style="vertical-align: middle">統一編號/身分證</td> <option value="<?php echo $person['value']; ?>"><?php echo $person['view']; ?></option>
<td> <?php endforeach ?>
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.vat" > </select>
<p class="alerttext" x-show="data.vat==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> <p class="alerttext" x-show="data.manager==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td> </td>
<td style="vertical-align: middle">營業員</td> <td style="vertical-align: middle">統一編號/身分證</td>
<td style="vertical-align: middle"> <td>
<div class="ui form"> <input class="form-control disabled_select" type="text" name="" x-model="data.vat">
<select class="salesman" id="salesman" x-model="data.salesman"> <p class="alerttext" x-show="data.vat==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
<option value="">請選擇營業員</option> </td>
<?php foreach($persons as $person): ?> <td style="vertical-align: middle">營業員</td>
<option value="<?php echo $person['value']; ?>"><?php echo $person['view']; ?></option> <td style="vertical-align: middle">
<?php endforeach ?> <div class="ui form">
</select> <select class="salesman" id="salesman" x-model="data.salesman">
</div> <option value="">請選擇營業員</option>
<p class="alerttext" x-show="data.salesman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> <?php foreach ($persons as $person) : ?>
</td> <option value="<?php echo $person['value']; ?>"><?php echo $person['view']; ?></option>
</tr> <?php endforeach ?>
<tr> </select>
<td style="vertical-align: middle">聯繫人</td> </div>
<td> <p class="alerttext" x-show="data.salesman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.linkman" > </td>
<p class="alerttext" x-show="data.linkman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> </tr>
</td> <tr>\
<td style="vertical-align: middle">聯繫人電話</td> <td style="vertical-align:middle">電梯數量</td>
<td> <td>
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.lm_tel" > <input type="text" class="form-control disabled_select" name="num" x-model="data.nums" disabled>
<p class="alerttext" x-show="data.lm_tel==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> </td>
</td> <td style="vertical-align: middle">聯繫人</td>
<td style="vertical-align: middle">QC和官檢</td> <td>
<td> <input class="form-control disabled_select" type="text" name="" x-model="data.linkman">
<select class="" id="qc" x-model="data.qc"> <p class="alerttext" x-show="data.linkman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
<option value="">請選擇QC或官檢</option> </td>
<option value="Q">只需QC</option> <td style="vertical-align: middle">聯繫人電話</td>
<option value="O">只需官檢</option> <td>
<option value="QO">QC和官檢</option> <input class="form-control disabled_select" type="text" name="" x-model="data.lm_tel">
</select> <p class="alerttext" x-show="data.lm_tel==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
<p class="alerttext" x-show="data.qc==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> </td>
</td> <td style="vertical-align: middle">案件名稱</td>
<td style="vertical-align: middle">案件名稱</td> <td>
<td > <input class="form-control disabled_select" type="text" name="" x-model="data.case_name">
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.case_name" > <p class="alerttext" x-show="data.case_name==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
<p class="alerttext" x-show="data.case_name==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> </td>
</td> </tr>
</tr> <tr>
<tr> <td style="vertical-align: middle">合約簽訂日期</td>
<td style="vertical-align: middle">地址</td> <td>
<td colspan=3> <input class="form-control disabled_select" type="date" name="" x-model="data.signing_date">
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.address" > <p class="alerttext" x-show="data.signing_date==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
<p class="alerttext" x-show="data.address==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> </td>
</td> <td style="vertical-align: middle">客戶類型</td>
<td>
<td style="vertical-align: middle">附件上傳</td> <select name="contract_type" id="contract_type" x-model="data.contract_type">
<td colspan="3"> <option value="">請選擇</option>
<input type="file" name="file[]" multiple draggable="true" @change="uploadFiles($event)" /> <option value="1">戰略客戶</option>
</td> <option value="2">一般客戶</option>
</tr> </select>
</tbody> </td>
<td style="vertical-align: middle">附件上傳</td>
<td colspan="3">
<input type="file" name="file[]" multiple draggable="true" @change="uploadFiles($event)" />
</td>
</tr>
<tr>
</tr>
</tbody>
</template>
<template x-if="step == 3">
<template x-for="(elevator, idx) in data.elevators_detail_arr" :key="idx">
<tbody style="font-weight: bolder;margin-bottom: 20px" x-show="step==3">
<tr>
<td colspan=8>
<p x-text="'電梯' + Number(idx+1)"></p>
</td>
</tr>
<tr>
<td style="vertical-align: middle">電梯型號</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.spec" disabled>
</td>
<td style="vertical-align: middle">開門方式</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.item_op" disabled>
</td>
<td style="vertical-align: middle">電梯載重</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.item_weight" disabled>
</td>
<td style="vertical-align: middle">電梯人乘</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.person" disabled>
</td>
</tr>
<tr>
<td style="vertical-align: middle">電梯速度</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.person" disabled>
</td>
<td style="vertical-align: middle">電梯樓停</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.floor" disabled>
</td>
<td style="vertical-align: middle">電梯樓層</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.floor">
</td>
<td style="vertical-align: middle">合約交期(到工地)</td>
<td>
<input class="form-control disabled_select" type="date" x-model="elevator.contract_arrival_date">
</td>
</tr>
<tr>
<td style="vertical-align: middle">QC和官檢</td>
<td>
<select class="" id="qc" x-model="data.qc">
<option value="">請選擇QC或官檢</option>
<option value="Q">只需QC</option>
<option value="O">只需官檢</option>
<option value="QO">QC和官檢</option>
</select>
<p class="alerttext" x-show="data.qc==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td>
<td style="vertical-align: middle">工地負責人</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.manage">
</td>
<td style="vertical-align: middle">工務部門負責人</td>
<td style="vertical-align: middle">
<select class="form-control " id="warehouseid" name="warehouseid" x-model="elevator.warehouseid">
<option value="">未選擇</option>
<optgroup label="北區">
<option value="M0041">張潘榮(桃竹以北)</option>
<option value="M0150">羅盛騰(桃竹)</option>
<option value="M0040">吳宗紘</option>
</optgroup>
<optgroup label="中區">
<option value="M0198">廖堉勝</option>
<option value="M0158">劉子睿(新梯)</option>
<option value="M0161">鄭永典(汰改)</option>
<option value="M0159">孫仲凱</option>
<option value="M0202">徐錦潤</option>
<option value="M0113">林瑋隆</option>
</optgroup>
<optgroup label="南區">
<option value="M0078">許益連</option>
<option value="M0102">鄭存邑(高屏、台東)</option>
<option value="M0187">田祖豪(台南、嘉義)</option>
<option value="M0077">鍾玉龍</option>
</optgroup>
<optgroup label="宜蘭">
<option value="M0087">高培軒</option>
</optgroup>
</select>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td style="vertical-align: middle">現場地址</td>
<td colspan="3">
<input class="form-control disabled_select" type="text" x-model="data.address">
</td>
<td style="vertical-align: middle">經度</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.latitude">
</td>
<td style="vertical-align: middle">緯度</td>
<td>
<input class="form-control disabled_select" type="text" x-model="elevator.longitude">
</td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</template>
</template>
<template x-if="step == 4">
<template>
</template>
</template> </template>
</table> </table>
<button x-show="step==2" x-on:click="save()" :disabled="isLoading" type="button" class="btn btn-primary btn-lg pull-right savebtn"> <button x-show="step==3" x-on:click="save()" :disabled="isLoading" type="button" class="btn btn-primary btn-lg pull-right savebtn">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span>存檔</span> <span>存檔</span>
</template> </template>
@ -138,7 +265,7 @@ $persons = array_map(function($person){
<div class="loader"></div> <div class="loader"></div>
</template> </template>
</button> </button>
<button x-show="step<=1" x-on:click="nextStepFn()" type="button" class="btn btn-primary btn-lg pull-right savebtn" :disabled="isLoading"> <button x-show="step<=3" x-on:click="nextStepFn()" type="button" class="btn btn-primary btn-lg pull-right savebtn" :disabled="isLoading">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span>下一步</span> <span>下一步</span>
</template> </template>
@ -162,4 +289,4 @@ $persons = array_map(function($person){
<script> <script>
const user_id = '<?php echo $user_id; ?>'; const user_id = '<?php echo $user_id; ?>';
const user_name = '<?php echo $user_name; ?>'; const user_name = '<?php echo $user_name; ?>';
</script> </script>

45
wms/contract/js/alpine.js

@ -810,7 +810,7 @@ const contractNewInput = () => {
return { return {
init() { }, init() { },
data: { data: {
contractno: 'M23090149', contractno: 'M23110004',
customer: '', customer: '',
manager: '', manager: '',
vat: '', vat: '',
@ -821,7 +821,13 @@ const contractNewInput = () => {
salesman: '', salesman: '',
qc: '', qc: '',
qc: '', qc: '',
price_total: '', //合約總價
files: [], files: [],
contract_type: '1',
signing_date: '', //合約簽訂日期
elevators: [], // 電梯種類 Array
elevators_detail_arr: [], // 電梯台數 Array
nums: '', //電梯數量
}, },
step: 1, step: 1,
isLoading: false, isLoading: false,
@ -831,6 +837,10 @@ const contractNewInput = () => {
this.isLoading = true this.isLoading = true
if (this.step == 1) { if (this.step == 1) {
this.getContractDate(); this.getContractDate();
} else if (this.step == 2) {
this.getElevatorsData();
} else if (this.step == 3) {
this.getElevatorsData();
} }
}, },
nextStepKeyupFn(e) { nextStepKeyupFn(e) {
@ -843,6 +853,27 @@ const contractNewInput = () => {
preStepFn() { preStepFn() {
if (this.step == 2) { if (this.step == 2) {
this.step = 1 this.step = 1
} else if (this.step == 3) {
this.step = 2
}
},
getElevatorsData() {
if (this.step == 2) {
for (let i = 0; i < this.data.nums; i++) {
// console.log(this.data.elevators_detail_arr[i]);
this.data.elevators_detail_arr[i].warehouseid = ''; // 公務部門負責人
this.data.elevators_detail_arr[i].latitude = ''; // 經度
this.data.elevators_detail_arr[i].longitude = ''; // 緯度
this.data.elevators_detail_arr[i].manage = ''; // 工地負責人
this.data.elevators_detail_arr[i].qc = ''; // QC和官檢
this.data.elevators_detail_arr[i].contract_arrival_date = ''; //合約交期(到工地)
}
this.step = 3;
this.isLoading = false;
} else if (this.step == 3) {
console.log(this.data.elevators_detail_arr);
this.step = 4;
this.isLoading = false;
} }
}, },
getContractDate() { getContractDate() {
@ -865,7 +896,11 @@ const contractNewInput = () => {
this.data.lm_tel = res.data.lm_tel this.data.lm_tel = res.data.lm_tel
this.data.address = res.data.address this.data.address = res.data.address
this.data.salesman = res.data.person this.data.salesman = res.data.person
this.data.qc = res.data.qc this.data.qc = res.data.qc;
this.data.price_total = res.data.price_total;
this.data.elevators = res.data.elevators;
this.data.elevators_detail_arr = res.data.elevators_detail_arr;
this.data.nums = res.data.nums;
} }
this.step = 2 this.step = 2
this.isLoading = false this.isLoading = false
@ -887,6 +922,12 @@ const contractNewInput = () => {
form.append('address', this.data.address); form.append('address', this.data.address);
form.append('salesman', this.data.salesman); form.append('salesman', this.data.salesman);
form.append('qc', this.data.qc); form.append('qc', this.data.qc);
form.append('signing_date', this.data.signing_date);
form.append('nums', this.data.nums);
form.append('price_total', this.data.price_total);
form.append('contract_type', this.data.contract_type);
form.append('elevators_detail_arr', JSON.stringify(this.data.elevators_detail_arr));
form.append('elevators', JSON.stringify(this.data.elevators));
form.append('contracttype', 'm'); form.append('contracttype', 'm');
form.append('user_id', user_id); form.append('user_id', user_id);
for (var i = 0; i < this.data.files.length; i++) { for (var i = 0; i < this.data.files.length; i++) {

Loading…
Cancel
Save