You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
471 lines
28 KiB
471 lines
28 KiB
<?php
|
|
include('../header.php');
|
|
require_once('./conn.php');
|
|
$accounttype = "M";
|
|
$sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype ORDER BY accountid";
|
|
$stmt = $conn->prepare($sql_str);
|
|
$stmt->bindParam(":accounttype", $accounttype);
|
|
$stmt->execute();
|
|
$persons = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
$persons = array_map(function ($person) {
|
|
return [
|
|
'view' => $person['name'] . '-' . $person['accountid'],
|
|
'value' => $person['accountid'],
|
|
'name' => $person['name']
|
|
];
|
|
}, $persons);
|
|
?>
|
|
|
|
<link rel="stylesheet" href="./styles/style.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" />
|
|
<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 src="./js/axios/axios.min.js"></script>
|
|
<script src="./js/jquery/jquery-3.1.1.min.js"></script>
|
|
<!-- <script src="./semantic/dist/semantic.min.js"></script> -->
|
|
|
|
<div class="renovate_input" x-data="renovateInput">
|
|
<div class="form" method="post" id="form" enctype="multipart/form-data">
|
|
<input type="hidden" name="form_name" value="main_form">
|
|
<div>
|
|
<table class="table table-borderd query-table table-striped table-bordered display compact" style="width:99%; margin-left:.5%">
|
|
<thead>
|
|
<tr>
|
|
<td colspan="8">
|
|
<h3 style="text-align:center">汰改合約入力</h3>
|
|
</td>
|
|
</tr>
|
|
</thead>
|
|
<template x-if="step==1">
|
|
<tbody style="font-weight:bolder; margin:botton 20px">
|
|
<tr>
|
|
<td style="vertical-align:middle;">合約號</td>
|
|
<td colspan="6">
|
|
<input type="text" class="form-control" @keyup="nextStepKeyupFn($event)" name="contract_no" x-model="data.contract_no">
|
|
</td>
|
|
<td colspan="1" style="vertical-align:middle"></td>
|
|
</tr>
|
|
</tbody>
|
|
</template>
|
|
|
|
<template x-if="step==2">
|
|
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==2">
|
|
<tr>
|
|
<td colspan="7" style="vertical-align:middle;border-right:0px;">
|
|
<h4>業務確認項</h4>
|
|
</td>
|
|
<td class="text-right" style="border-left:0px">
|
|
<button type="button" id="btn_back" class="btn btn-default" onclick="location.reload()">返回</button>
|
|
<button type="button" id="btn_close" class="btn btn-default" onclick="window.close()">關閉</button>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<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>
|
|
<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 style="vertical-align: middle">客戶類型</td>
|
|
<td>
|
|
<select name="contract_type" id="contract_type" x-model="data.contract_type">
|
|
<option value="">請選擇</option>
|
|
<option value="1">戰略客戶</option>
|
|
<option value="2">一般客戶</option>
|
|
</select>
|
|
</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>
|
|
<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>
|
|
</tr>
|
|
</tbody>
|
|
</template>
|
|
<!-- 客戶款別分別如何分期 -->
|
|
|
|
<template x-if="step==4">
|
|
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==4">
|
|
<div>
|
|
<tr>
|
|
<td colspan='8' style="vertical-align:middle ">款別分期</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<!-- <td colspan='1'>付款辦法</td> -->
|
|
<td colspan='1'>款別</td>
|
|
<td colspan='1'>比例%</td>
|
|
<td colspan='1'>金額</td>
|
|
<td colspan='1'>繳款方式(月)</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<!-- <td rowspan="3">材料</td> -->
|
|
<td>1、訂金</td>
|
|
<td>
|
|
<input type="text" x-model='data.scale[0]' disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.amount[0]" disabled>
|
|
</td>
|
|
<td>
|
|
<!-- <select x-model=data.paykind[0] @change="totalFn()">
|
|
<template x-for="pay in data.payarr" :key="pay">
|
|
<option x-text="pay" :disabled="data.amount[0] == 0"></option>
|
|
</template> -->
|
|
<input type="text" x-model="data.paykind[0]" :disabled="data.amount[0] == 0" @input="totalFn()">
|
|
</select>
|
|
</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>2、二次款</td>
|
|
<td>
|
|
<input type="text" x-model='data.scale[1]' disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.amount[1]" disabled>
|
|
</td>
|
|
<td>
|
|
<!-- <select x-model=data.paykind[1] @change="totalFn()">
|
|
<template x-for="pay in data.payarr" :key="pay">
|
|
<option x-text="pay" :disabled="data.amount[1] == 0"></option>
|
|
</template>
|
|
</select> -->
|
|
<input type="text" x-model="data.paykind[1]" :disabled="data.amount[1] == 0" @input="totalFn()">
|
|
|
|
</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>3、貨到工地款</td>
|
|
<td>
|
|
<input type="text" x-model='data.scale[2]' disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.amount[2]" disabled>
|
|
</td>
|
|
<td>
|
|
<!-- <select x-model=data.paykind[2] @change="totalFn()">
|
|
<template x-for="pay in data.payarr" :key="pay">
|
|
<option x-text="pay" :disabled="data.amount[2] == 0"></option>
|
|
</template>
|
|
</select> -->
|
|
<input type="text" x-model="data.paykind[2]" :disabled="data.amount[2] == 0" @input="totalFn()">
|
|
|
|
</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<!-- <td rowspan="3">安裝</td> -->
|
|
<td>5、安裝完畢款</td>
|
|
<td>
|
|
<input type="text" x-model='data.scale[4]' disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.amount[4]" disabled>
|
|
</td>
|
|
<td>
|
|
<!-- <select x-model=data.paykind[4] @change="totalFn()" :disabled="data.amount[4] == 0">
|
|
<template x-for="pay in data.payarr" :key="pay">
|
|
<option x-text="pay"></option>
|
|
</template>
|
|
</select> -->
|
|
<input type="text" x-model="data.paykind[4]" :disabled="data.amount[4] == 0" @input="totalFn()">
|
|
</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>6、驗收款</td>
|
|
<td>
|
|
<input type="text" x-model="data.scale[5]" disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.amount[5]" disabled>
|
|
</td>
|
|
<td>
|
|
<!-- <select x-model=data.paykind[5] @change="totalFn()" :disabled="data.amount[5] == 0">
|
|
<template x-for="pay in data.payarr" :key="pay">
|
|
<option x-text="pay"></option>
|
|
</template>
|
|
</select> -->
|
|
<input type="text" x-model="data.paykind[5]" :disabled="data.amount[5] == 0" @input="totalFn()">
|
|
|
|
</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td>7、其他</td>
|
|
<td>
|
|
<input type="text" x-model='data.scale[6]' disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.amount[6]" disabled>
|
|
</td>
|
|
<td>
|
|
<!-- <select x-model=data.paykind[6] @change=" totalFn()" :disabled="data.amount[6] == 0">
|
|
<template x-for="pay in data.payarr" :key="pay">
|
|
<option :value="pay" x-text="pay"></option>
|
|
</template>
|
|
</select> -->
|
|
<input type="text" x-model="data.paykind[6]" :disabled="data.amount[6] == 0" x-on:input="console.log(data.paykind[6])">
|
|
</td>
|
|
<td colspan="4"></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="1">合計</td>
|
|
<td>
|
|
<input type="text" x-model="data.total_scale" disabled>
|
|
</td>
|
|
<td colspan="1">
|
|
<input type="text" x-model="data.total_amount" disabled>
|
|
</td>
|
|
<td>
|
|
<input type="text" x-model="data.total_month" disabled>
|
|
</td>
|
|
<td colspan="4"></td>
|
|
</tr>
|
|
|
|
</div>
|
|
</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>
|
|
</table>
|
|
|
|
<button x-show="step==4" @click="save()" type="button" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
|
|
<template x-if="!isLoading">
|
|
<span>存檔</span>
|
|
</template>
|
|
<template x-if="isLoading">
|
|
<span class="loader"></span>
|
|
</template>
|
|
</button>
|
|
|
|
<button x-show="step<=3" @click="nextStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
|
|
<template x-if="!isLoading">
|
|
<span>下一步</span>
|
|
</template>
|
|
<template x-if="isLoading">
|
|
<span class="loader"></span>
|
|
</template>
|
|
</button>
|
|
|
|
<button x-show="step>1" @click="preStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
|
|
<template x-if="!isLoading">
|
|
<span>上一步</span>
|
|
</template>
|
|
<template x-if="isLoading">
|
|
<span class="loaders"></span>
|
|
</template>
|
|
</button>
|
|
</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>
|