Browse Source

汰改

main
Cheng 1 year ago
parent
commit
ad43c71534
  1. 176
      wms/contract/api/getContractData.php
  2. 2
      wms/contract/api/getFacilityNo.php
  3. 5
      wms/contract/api/newElevatorT8.php
  4. 4
      wms/contract/api/postRenovateContractData.php
  5. 374
      wms/contract/contract-renovate-input.php
  6. 182
      wms/contract/js/alpine.js

176
wms/contract/api/getContractData.php

@ -49,7 +49,9 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont
$contractno = $_GET['contractno']; $contractno = $_GET['contractno'];
$sql_str = "SELECT a.*,b.lm_tel,b.uscc,b.manager,b.linkman 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 != 'YN' "; 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();
@ -73,11 +75,11 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont
$elevators_results = $stmt->fetchAll(PDO::FETCH_ASSOC); $elevators_results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$elevators_detail_arr = []; $elevators_detail_arr = [];
$contract_elevator_qty = 0; $contract_elevator_qty = 0;
$sql = "SELECT * FROM pricereview_pay WHERE mid = :mid"; $sql = "SELECT * FROM pricereview_pay WHERE mid = :mid";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
$stmt->bindParam(':mid', $mid); $stmt->bindParam(':mid', $mid);
$stmt->execute(); $stmt->execute();
$pay_amount = $stmt->fetchAll(PDO::FETCH_ASSOC); $pay_amount = $stmt->fetchAll(PDO::FETCH_ASSOC);
$pay_arr = [ $pay_arr = [
'equipment_total' => 0, //設備款 'equipment_total' => 0, //設備款
@ -121,6 +123,7 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont
// print_r($pay_arr); // print_r($pay_arr);
// echo "</pre>"; // echo "</pre>";
// 計算電梯數
foreach ($elevators_results as $keys) { foreach ($elevators_results as $keys) {
$contract_elevator_qty += $keys['item_qty']; $contract_elevator_qty += $keys['item_qty'];
} }
@ -206,32 +209,173 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont
} }
} }
// 汰改
if (isset($_GET['contract_no']) && $_GET['contract_no'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 't') { if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 't') {
$contract_no = $_GET['contract_no'];
try { try {
$sql = "SELECT * FROM pricereview_main AS a $contractno = $_GET['contractno'];
WHERE a.kind='汰改' AND a.contract_no = :contract_no AND a.status='YY' $sql = "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
WHERE a.contractno = :contractno
-- AND a.status != 'YN'
";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
$stmt->bindParam(':contract_no', $contract_no); $stmt->bindParam(':contractno', $contractno);
$stmt->execute(); $stmt->execute();
$contract = $stmt->fetch(PDO::FETCH_ASSOC); $contract = $stmt->fetch(PDO::FETCH_ASSOC);
$id = $contract['id']; $id = $contract['id'];
// 查詢 manager and departno
$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'];
$sql = "SELECT * FROM pricerview_pay WHERE mid =: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();
$elevators_results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$elevators_detail_arr = [];
$contract_elevator_qty = 0;
// 合約付款項目
$sql = "SELECT * FROM pricereview_pay WHERE mid =:id";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
$stmt->bindParam(':id', $id); $stmt->bindParam(':id', $id);
$stmt->execute(); $stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC); $pay_amount = $stmt->fetchAll(PDO::FETCH_ASSOC);
$pay_kind = []; // $pay_kind[] = $result;
foreach ($result as $result) { // $contract['pay_kind'] = $pay_kind;
$pay_kind[] = $result; $pay_arr = [
'equipment_total' => 0, //設備款
'install_total' => 0, //安裝款
'elevotor_pay_detail' => []
];
// echo "<pre>";
// print_r($pay_amount);
// echo "</pre>";
$elevotor_pay_detail = [];
foreach ($pay_amount as $i => $pay) {
if ($pay['pay_kind'] <= 4) {
// 設備款總價
$pay_arr['equipment_total'] += $pay['pay_amount'];
if ($pay['pay_scale'] > 0) {
$elevotor_pay_detail = [
'pay_kind' => $pay['pay_kind'],
'pay_scale' => $pay['pay_scale'],
'pay_period' => $pay['pay_period'],
'pay_amount' => $pay['pay_amount']
];
// $elevotor_pay_detail['pay_scale'] = $pay['pay_scale'];
// $pay_arr['elevotor_pay_detail']['kind'] = $pay['pay_kind'];
// $pay_arr['elevotor_pay_detail']['pay_scale'] = $pay['pay_scale'];
// $pay_arr['elevotor_pay_detail']['pay_period'] = $pay['pay_period'];
// $pay_arr['elevotor_pay_detail']['amount'] = $pay['pay_amount'];
array_push($pay_arr['elevotor_pay_detail'], $elevotor_pay_detail);
}
} else {
$pay_arr['install_total'] += $pay['pay_amount'];
if ($pay['pay_scale'] > 0) {
$a = $pay['pay_kind'];
$elevotor_pay_detail = [
'pay_kind' => "$a",
'pay_scale' => $pay['pay_scale'],
'pay_period' => $pay['pay_period'],
'pay_amount' => $pay['pay_amount']
];
array_push($pay_arr['elevotor_pay_detail'], $elevotor_pay_detail);
}
}
} }
$contract['pay_kind'] = $pay_kind;
echo $contract; // 計算電梯數
foreach ($elevators_results as $keys) {
$contract_elevator_qty += $keys['item_qty'];
}
foreach ($elevators_results as $keys => $result) {
$item_no = $result['item_no']; //電梯項次
// 電梯 OPTION
$sql = "SELECT * FROM pricereview_item WHERE mid =:mid AND item_group ='B' AND option_relate_spec = :item_no";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':mid', $mid);
$stmt->bindParam(':item_no', $item_no);
$stmt->execute();
$option_results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$option_arr[] = $option_results;
// echo "<pre>";
// print_r($option_arr);
// echo "</pre>";
if (!empty($option_results)) {
$result['option_price'] = 0;
// 電梯 OPTION 價格分別加到各台電梯
foreach ($option_results as $key => $option) {
if ($option['item_qty'] == $result['item_qty']) {
$result['option_price'] += intval($option['item_unit_price']);
} else if ($option['item_qty'] / $result['item_qty'] != 1) {
$item_qty = intval($option['item_qty']) / intval($result['item_qty']); // 總option數量 / 總電梯台數
$result['option_price'] += intval($option['item_unit_price']) * $item_qty;
} else {
$result['option_price'] += $option['item_unit_price'] * intval($option['item_qty']);
}
}
}
// 電梯 拆梯 價格分配到每台電梯
$sql = "SELECT * FROM pricereview_item WHERE mid =:mid AND item_group ='D' AND option_relate_spec = :item_no";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':mid', $mid);
$stmt->bindParam(':item_no', $item_no);
$stmt->execute();
$dismantle_arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!empty($dismantle_arr)) {
$result['dismantle_price'] = 0;
// 電梯 OPTION 價格分別加到各台電梯
foreach ($dismantle_arr as $key => $dismantle) {
if ($dismantle['item_qty'] == $result['item_qty']) {
$result['dismantle_price'] += intval($dismantle['item_unit_price']);
} else if ($dismantle['item_qty'] / $result['item_qty'] != 1) {
$item_qty = intval($dismantle['item_qty']) / intval($result['item_qty']); // 總option數量 / 總電梯台數
$result['dismantle_price'] += intval($dismantle['item_unit_price']) * $item_qty;
} else {
$result['dismantle_price'] += $dismantle['item_unit_price'] * intval($dismantle['item_qty']);
}
}
}
$note = explode(',', $result['note']);
$result['spec'] = $note[0]; //型號
$result['person'] = $note[1]; // 人承
$result['floor'] = $note[2]; // 樓層
$result['speed'] = $note[3]; // 速度
$count_qty = $result['item_qty'];
for ($i = 0; $i < $count_qty; $i++) {
$result['elevator_price'] = round($result['item_price_ct'] / $result['item_qty']); //合約單台電提價格
$result['commission_fee'] = round($contract['special_fee']) / $contract_elevator_qty;
$result['item_no'] = $i + 1;
$result['item_qty'] = 1;
array_push($elevators_detail_arr, $result);
}
}
$count = COUNT($elevators_detail_arr);
$contract['elevators'] = $elevators_results;
$contract['elevators_detail_arr'] = $elevators_detail_arr;
$contract['pay_arr'] = $pay_arr;
$contract['nums'] = $count;
// echo "<pre>";
// print_r($contract);
// echo "</pre>";
header('Content-Type: application/json'); header('Content-Type: application/json');
echo json_encode($contract);
} catch (PDOException $e) { } catch (PDOException $e) {
die("ERROR!!!: " . $e->getMessage()); die("ERROR!!!: " . $e->getMessage());
} }

2
wms/contract/api/getFacilityNo.php

@ -404,7 +404,6 @@ class CreateFacilityNo
$pdo = $this->connectionDB(); $pdo = $this->connectionDB();
$pdo->exec('SET CHARACTER SET utf8mb4'); $pdo->exec('SET CHARACTER SET utf8mb4');
$connT8 = $this->connectionDB(); $connT8 = $this->connectionDB();
// $connT8->exec('SET CHARACTER SET utf8mb4');
$sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?'); $sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?');
$sth->bindValue(1, $facility_no); $sth->bindValue(1, $facility_no);
@ -438,7 +437,6 @@ class CreateFacilityNo
$pdo = $this->connectionDB(); $pdo = $this->connectionDB();
$pdo->exec('SET CHARACTER SET utf8mb4'); $pdo->exec('SET CHARACTER SET utf8mb4');
$connT8 = $this->connectionT8DB(); $connT8 = $this->connectionT8DB();
// $connT8->exec('SET CHARACTER SET utf8mb4');
$status = true; $status = true;
foreach ($facility_no as $row) { foreach ($facility_no as $row) {
$sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?'); $sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?');

5
wms/contract/api/newElevatorT8.php

@ -355,10 +355,11 @@ function T8Insert($data, $facilityno, $connT8)
} }
if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) { if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) {
$Error_msg = $result['ErrorMsg']; $Error_msg = $result['ErrorMsg'];
echo "<script>alert('$Error_msg')</script>"; // echo "<script>alert('$Error_msg')</script>";
exit(); // exit();
// echo $result['ErrorMsg']; // echo $result['ErrorMsg'];
// echo "</script>"; // echo "</script>";
echo $Error_msg;
} }
} else { } else {
echo '資料已新增過,請洽資訊人員'; echo '資料已新增過,請洽資訊人員';

4
wms/contract/api/postRenovateContractData.php

@ -0,0 +1,4 @@
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";

374
wms/contract/contract-renovate-input.php

@ -1,24 +1,31 @@
<?php <?php
include('../header.php'); include('../header.php');
require_once('./conn.php'); require_once('./conn.php');
$sql = "SELECT * FROM employee WHERE depart_no IN ('320','311','312','313','314','315','511','512','513','514','515') "; $accounttype = "M";
$stmt = $conn->prepare($sql); $sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype ORDER BY accountid";
// $stmt->bindParam(':depart_no', $depart_no); $stmt = $conn->prepare($sql_str);
$stmt->bindParam(":accounttype", $accounttype);
$stmt->execute(); $stmt->execute();
$contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC); $persons = $stmt->fetchAll(PDO::FETCH_ASSOC);
// echo '<pre>'; $persons = array_map(function ($person) {
// print_r($contractSalesman); return [
// echo '</pre>'; 'view' => $person['name'] . '-' . $person['accountid'],
'value' => $person['accountid'],
'name' => $person['name']
];
}, $persons);
?> ?>
<link rel="stylesheet" href="./styles/style.css"> <link rel="stylesheet" href="./styles/style.css">
<link rel="stylesheet" href="./semantic/dist/semantic.min.css"> <link rel="stylesheet" href="./semantic/dist/semantic.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="./js/alpine.js"></script> <script src="./js/alpine.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script defer src="./js/alpinejs/cdn.min.js"></script> <script defer src="./js/alpinejs/cdn.min.js"></script>
<script src="./js/axios/axios.min.js"></script> <script src="./js/axios/axios.min.js"></script>
<script src="./js/jquery/jquery-3.1.1.min.js"></script> <script src="./js/jquery/jquery-3.1.1.min.js"></script>
<script src="./semantic/dist/semantic.min.js"></script> <!-- <script src="./semantic/dist/semantic.min.js"></script> -->
<div class="renovate_input" x-data="renovateInput"> <div class="renovate_input" x-data="renovateInput">
<div class="form" method="post" id="form" enctype="multipart/form-data"> <div class="form" method="post" id="form" enctype="multipart/form-data">
@ -43,8 +50,9 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
</tr> </tr>
</tbody> </tbody>
</template> </template>
<template x-if="step==1">
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==1"> <template x-if="step==2">
<tbody style="font-weight:bolder; margin:botton 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>
@ -55,168 +63,379 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align:middle">立約人</td> <td style="vertical-align: middle">客戶名稱</td>
<td>
<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>
</td>
<td style="vertical-align:middle">電梯數量</td>
<td>
<input type="text" class="form-control disabled_select" name="num" x-model="data.nums" disabled>
</td>
<td style="vertical-align: middle">統一編號/身分證</td>
<td>
<input class="form-control disabled_select" type="text" name="" x-model="data.vat">
<p class="alerttext" x-show="data.vat==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td>
<td style="vertical-align: middle">營業員</td>
<td style="vertical-align: middle">
<div class="ui form">
<select class="salesman" id="salesman" x-model="data.salesman">
<option value="">請選擇營業員</option>
<?php foreach ($persons as $person) : ?>
<option value="<?php echo $person['value']; ?>"><?php echo $person['view']; ?></option>
<?php endforeach ?>
</select>
</div>
<p class="alerttext" x-show="data.salesman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td>
</tr>
<tr>
<td style="vertical-align: middle">負責人</td>
<td>
<input type="text" class="form-control disabled_select" name="" x-model="data.main_linkman">
<p class="alerttext" x-show="data.main_linkman==''"><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" name="" x-model="data.linkman">
<p class="alerttext" x-show="data.linkman==''"><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" name="" x-model="data.lm_tel">
<p class="alerttext" x-show="data.lm_tel==''"><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" name="" x-model="data.case_name">
<p class="alerttext" x-show="data.case_name==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td>
</tr>
<tr>
<td style="vertical-align: middle">合約簽訂日期</td>
<td> <td>
<input type="text" x-model="data.customer"> <input class="form-control disabled_select" type="date" name="" x-model="data.signing_date">
<p class="alerttext" x-show="data.signing_date==''"><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 x-show="data.salesman" type="text" x-model="data.salesman" name="promiser"> --> <select name="contract_type" id="contract_type" x-model="data.contract_type">
<select x-model="data.salesman" class="ui fluid search dropdown" name="salesman"> <option value="">請選擇</option>
<option value="">------</option> <option value="1">戰略客戶</option>
<?php foreach ($contractSalesman as $salesman) : ?> <option value="2">一般客戶</option>
<option value="<?= $salesman['employee_no'] ?>"><?= $salesman['employee_no'] ?>--<?= $salesman['name'] ?></option>
<?php endforeach; ?>
</select> </select>
</td> </td>
<td style="vertical-align:middle">地址</td> <td style="vertical-align: middle">附件上傳</td>
<td colspan="3">
<input type="file" name="file[]" multiple draggable="true" @change="uploadFiles($event)" />
</td>
</tr>
<tr>
<td style="vertical-align: middle">區域</td>
<td> <td>
<input type="text" x-model="data.address"> <select id="area_no" name="area_no" x-model="data.area_no">
<option value="">請選擇</option>
<option value="N">北區</option>
<option value="Y">宜蘭</option>
<option value="T">桃園</option>
<option value="C">中區</option>
<option value="K">南區</option>
</select>
</td> </td>
<td></td>
</tr> </tr>
<!-- 客戶款別分別如何分期 --> </tbody>
</template>
<!-- 客戶款別分別如何分期 -->
<template x-if="step==4">
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==4">
<div> <div>
<tr> <tr>
<td colspan='8' style="vertical-align:middle ">款別分期</td> <td colspan='8' style="vertical-align:middle ">款別分期</td>
</tr>
</tr>
<tr> <tr>
<td colspan='1'>付款辦法</td> <!-- <td colspan='1'>付款辦法</td> -->
<td colspan='1'>款別</td> <td colspan='1'>款別</td>
<td colspan='1'>比例%</td> <td colspan='1'>比例%</td>
<td colspan='2'>金額</td> <td colspan='1'>金額</td>
<td colspan='1'>繳款方式(月)</td> <td colspan='1'>繳款方式(月)</td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td rowspan="3">材料</td> <!-- <td rowspan="3">材料</td> -->
<td>1、訂金</td> <td>1、訂金</td>
<td> <td>
<input type="text"> <input type="text" x-model='data.scale[0]' disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text"> <input type="text" x-model="data.amount[0]" disabled>
</td> </td>
<td> <td>
<select x-model=data.paykind[0] @change="totalFn()"> <!-- <select x-model=data.paykind[0] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> --> <option x-text="pay" :disabled="data.amount[0] == 0"></option>
<option x-text="pay"></option> </template> -->
</template> <input type="text" x-model="data.paykind[0]" :disabled="data.amount[0] == 0" @input="totalFn()">
</select> </select>
</td> </td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td>2、二次款</td> <td>2、二次款</td>
<td> <td>
<input type="text"> <input type="text" x-model='data.scale[1]' disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text"> <input type="text" x-model="data.amount[1]" disabled>
</td> </td>
<td> <td>
<select x-model=data.paykind[1] @change="totalFn()"> <!-- <select x-model=data.paykind[1] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> --> <option x-text="pay" :disabled="data.amount[1] == 0"></option>
<option x-text="pay"></option>
</template> </template>
</select> </select> -->
<input type="text" x-model="data.paykind[1]" :disabled="data.amount[1] == 0" @input="totalFn()">
</td> </td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td>3、貨到工地款</td> <td>3、貨到工地款</td>
<td> <td>
<input type="text"> <input type="text" x-model='data.scale[2]' disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text"> <input type="text" x-model="data.amount[2]" disabled>
</td> </td>
<td> <td>
<select x-model=data.paykind[2] @change="totalFn()"> <!-- <select x-model=data.paykind[2] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> --> <option x-text="pay" :disabled="data.amount[2] == 0"></option>
<option x-text="pay"></option>
</template> </template>
</select> </select> -->
<input type="text" x-model="data.paykind[2]" :disabled="data.amount[2] == 0" @input="totalFn()">
</td> </td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td rowspan="3">安裝</td> <!-- <td rowspan="3">安裝</td> -->
<td>5、安裝完畢款</td> <td>5、安裝完畢款</td>
<td> <td>
<input type="text"> <input type="text" x-model='data.scale[4]' disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text"> <input type="text" x-model="data.amount[4]" disabled>
</td> </td>
<td> <td>
<select x-model=data.paykind[4] @change="totalFn()"> <!-- <select x-model=data.paykind[4] @change="totalFn()" :disabled="data.amount[4] == 0">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option> <option x-text="pay"></option>
</template> </template>
</select> </select> -->
<input type="text" x-model="data.paykind[4]" :disabled="data.amount[4] == 0" @input="totalFn()">
</td> </td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td>6、驗收款</td> <td>6、驗收款</td>
<td> <td>
<input type="text"> <input type="text" x-model="data.scale[5]" disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text"> <input type="text" x-model="data.amount[5]" disabled>
</td> </td>
<td> <td>
<select x-model=data.paykind[5] @change="totalFn()"> <!-- <select x-model=data.paykind[5] @change="totalFn()" :disabled="data.amount[5] == 0">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option> <option x-text="pay"></option>
</template> </template>
</select> </select> -->
<input type="text" x-model="data.paykind[5]" :disabled="data.amount[5] == 0" @input="totalFn()">
</td> </td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td>7、其他</td> <td>7、其他</td>
<td> <td>
<input type="text"> <input type="text" x-model='data.scale[6]' disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text"> <input type="text" x-model="data.amount[6]" disabled>
</td> </td>
<td> <td>
<select x-model=data.paykind[6] @change="totalFn()"> <!-- <select x-model=data.paykind[6] @change=" totalFn()" :disabled="data.amount[6] == 0">
<template x-for="pay in data.payarr" :key="pay"> <template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option :value="pay" x-text="pay"></option> <option :value="pay" x-text="pay"></option>
</template> </template>
</select> </select> -->
<input type="text" x-model="data.paykind[6]" :disabled="data.amount[6] == 0" x-on:input="console.log(data.paykind[6])">
</td> </td>
<td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td colspan="2">合計</td> <td colspan="1">合計</td>
<td> <td>
<input type="text" disabled> <input type="text" x-model="data.total_scale" disabled>
</td> </td>
<td colspan="2"> <td colspan="1">
<input type="text" disabled> <input type="text" x-model="data.total_amount" disabled>
</td> </td>
<td> <td>
<input type="text" x-model="data.total" disabled> <input type="text" x-model="data.total_month" disabled>
</td> </td>
<td colspan="4"></td>
</tr> </tr>
</div> </div>
</tbody> </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.speed" 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="elevator.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 style="vertical-align: middle">汰改種類</td>
<td style="vertical-align: middle">
<!-- <select multiple x-model="elevator.selectedOptions">
<template x-for="option in data.options">
<option x-text="option" :value="option"></option>
</template>
</select>
<p>選擇的選項: <span x-text="elevator.selectedOptions.join(', ')"></span></p> -->
<select x-model="elevator.selectedItems" :id="'renovate_type'+idx" name="renovate_type[]" x-on:change="cons()">
<option value="M1">M1</option>
<option value="M2">M2</option>
<option value="M3">M3</option>
<option value="M4">M4</option>
<option value="MA">MA</option>
</select>
</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>
</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==4" @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>
@ -225,7 +444,7 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
</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<=3" @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>
@ -245,3 +464,8 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
</div> </div>
</div> </div>
</div> </div>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script type="text/javascript">
const user_id = '<?= $user_id ?>';
</script>

182
wms/contract/js/alpine.js

@ -808,7 +808,11 @@ const contractDownload = () => {
const contractNewInput = () => { const contractNewInput = () => {
return { return {
init() { }, init() {
// nextTick(() => {
// $('#renovate_type').select2();
// });
},
data: { data: {
contractno: 'M24020076', contractno: 'M24020076',
customer: '', customer: '',
@ -828,7 +832,7 @@ const contractNewInput = () => {
pay_arr: [], //電梯付款種類 pay_arr: [], //電梯付款種類
nums: 0, //電梯數量 nums: 0, //電梯數量
area_no: 'T', area_no: 'T',
contract_arrival_date: '' contract_arrival_date: '',
}, },
fail_arr: [], fail_arr: [],
step: 1, step: 1,
@ -1039,7 +1043,8 @@ const contractInput = () => {
contract_type: 'new', contract_type: 'new',
signing_date: '', signing_date: '',
token: token, token: token,
maintance_manager: '' maintance_manager: '',
// bonus_verson: 2.1, // bonus_verson: 2.1,
// manager: '', // manager: '',
// regular_contract_manger_id: '', // regular_contract_manger_id: '',
@ -1609,14 +1614,41 @@ const contractNewApply = () => {
const renovateInput = () => { const renovateInput = () => {
return { return {
// init() {
// this.initSelect2();
// },
// initSelect2() {
// console.log(123);
// $('#renovate_type').select2();
// },
data: { data: {
contract_no: '', contract_no: 'T24030025',
customer: '', customer: '',
salesman: '', salesman: '',
main_linkman: '', //負責人
linkman: '',
lm_tel: '',
vat: '',
case_name: '',
address: '', address: '',
paykind: [0, 0, 0, 0, 0, 0, 0], area_no: '',
manager: '',
price_total: '', //合約總價
files: [],
contract_type: '1',
signing_date: '',
elevators: [], //電梯總類
elevators_detail_arr: [], // 電梯台數 Array
payarr: ['', 1, 2, 6, 12], payarr: ['', 1, 2, 6, 12],
total: 0, paykind: [0, 0, 0, 0, 0, 0, 0], //電梯付款種類的分期方式
scale: [0, 0, 0, 0, 0, 0, 0],
amount: [0, 0, 0, 0, 0, 0, 0],
pay_arr: [], // 電梯付款種類
total_month: 0,
total_scale: 0,
total_amount: 0,
// disable: false
// options: ['Option 1', 'Option 2', 'Option 3']
// paykindTotal: this.total(), // paykindTotal: this.total(),
}, },
step: 1, step: 1,
@ -1627,22 +1659,116 @@ const renovateInput = () => {
this.isLoading = true; this.isLoading = true;
this.getContractData(); this.getContractData();
} else if (this.step == 2) { } else if (this.step == 2) {
console.log('1111'); if (this.data.nums <= 0) return alert('請填寫電梯數量!')
this.getElevatorsData();
} else if (this.step == 3) {
this.totalFn();
this.checkDisableStatus();
this.step = 4;
} }
// this.step = 3; // this.step = 3;
}, },
getContractData() {
axios.get('./api/getContractData.php?contracttype=t&contractno=' + this.data.contract_no).then(res => {
console.log(res.data);
if (!res.data) {
this.step = 2;
this.isLoading = false;
return;
}
this.data.pay_arr = res.data.pay_arr;
for (let i = 0; i < this.data.pay_arr['elevotor_pay_detail'].length; i++) {
let kind = this.data.pay_arr['elevotor_pay_detail'][i].pay_kind - 1;
let amount = this.data.pay_arr['elevotor_pay_detail'][i].pay_amount;
let scale = this.data.pay_arr['elevotor_pay_detail'][i].pay_scale;
console.log(kind);
this.data.amount[kind] = amount;
this.data.scale[kind] = scale;
}
this.data.customer = res.data.company
this.data.main_linkman = res.data.manager
this.data.vat = res.data.uscc
this.data.case_name = res.data.case_name
this.data.linkman = res.data.linkman
this.data.lm_tel = res.data.lm_tel
this.data.address = res.data.address
this.data.salesman = res.data.person
// 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.data.contract_arrival_date = res.data.facilitok_date;
this.step = 2;
this.isLoading = false;
}).catch(err => {
console.log(err);
this.isLoading = false;
})
},
getElevatorsData() {
if (this.step == 2) {
for (let i = 0; i < this.data.nums; i++) {
// this.initSelect2(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 = 'QO'; // QC和官檢
this.data.elevators_detail_arr[i].contract_arrival_date = this.data.contract_arrival_date; //合約交期(到工地)
this.data.elevators_detail_arr[i].selectedItems = '';
// this.data.elevators_detail_arr[i].area_no = ''; //區域
}
this.step = 3;
this.isLoading = false;
} else if (this.step == 3) {
console.log(this.data.elevators_detail_arr);
// this.step = 4;
// this.isLoading = false;
}
},
cons() {
console.log(this.data.elevators_detail_arr);
},
// 計算總共分期月數 // 計算總共分期月數
totalFn() { totalFn() {
let total = 0 let total_month = 0
for (let i = 0; i < this.data.paykind.length; i++) { for (let i = 0; i < this.data.paykind.length; i++) {
if (this.data.paykind[i] != '0') { if (this.data.paykind[i] != '0') {
total += Number(this.data.paykind[i]); total_month += Number(this.data.paykind[i]);
}
}
this.data.total_month = total_month;
let total_scale = 0
for (let i = 0; i < this.data.scale.length; i++) {
if (this.data.scale[i] != '0') {
total_scale += Number(this.data.scale[i]);
}
}
let total_amount = 0
for (let i = 0; i < this.data.scale.length; i++) {
if (this.data.scale[i] != '0') {
total_amount += Number(this.data.amount[i]);
} }
} }
// console.log(123); // console.log(123);
this.data.total = total; this.data.total_month = total_month;
this.data.total_scale = total_scale;
this.data.total_amount = total_amount;
},
checkDisableStatus() {
for (let i = 0; i < this.data.amount.length; i++) {
if (this.data.amount[i] == 0) {
this.data.disable = true;
}
}
}, },
// initSelect2(idx) {
// this.data.elevators_detail_arr[idx].selectedItems = $('#renovate_type' + idx).select2().val();
// },
nextStepKeyupFn(e) { nextStepKeyupFn(e) {
if (e.keyCode != 13) return if (e.keyCode != 13) return
if (this.step == 1) { if (this.step == 1) {
@ -1654,20 +1780,32 @@ const renovateInput = () => {
this.step -= 1; this.step -= 1;
console.log(this.step); console.log(this.step);
}, },
getContractData() {
axios.get('../api/getContractData.php?contracttype=t&contract_no=' + this.data.contract_no, (res) => {
console.log(res.data);
})
},
save() { save() {
console.log(this.data);
const form = new FormData();
form.append('contractno', this.data.contract_no);
form.append('customer', this.data.customer);
form.append('manager', this.data.main_linkman);
form.append('vat', this.data.vat);
form.append('area_no', this.data.area_no);
form.append('case_name', this.data.case_name);
form.append('linkman', this.data.linkman);
form.append('lm_tel', this.data.lm_tel);
form.append('address', this.data.address);
form.append('salesman', this.data.salesman);
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('pay_arr', JSON.stringify(this.data.pay_arr));
form.append('scale', JSON.stringify(this.data.scale));
form.append('contracttype', 'm');
form.append('user_id', user_id);
axios.post('./api/postRenovateContractData.php', form).then(res => {
}, })
getContractData() {
this.step = 2;
this.isLoading = false;
console.log(this.step);
} }
} }
} }
Loading…
Cancel
Save