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.
257 lines
12 KiB
257 lines
12 KiB
<?php
|
|
include("../header.php");
|
|
require_once("./conn.php");
|
|
$id = $_GET['contractid'];
|
|
$sql_str = "SELECT * FROM contract_m_signed_back WHERE id = :id ORDER BY id DESC";
|
|
$stmt = $conn->prepare($sql_str);
|
|
$stmt->bindParam(':id', $id);
|
|
$stmt->execute();
|
|
$contract= $stmt->fetch(PDO::FETCH_ASSOC);
|
|
$files_id = $contract['files_id'];
|
|
$sql_str = "SELECT * FROM contract_back_files WHERE files_id = :files_id ";
|
|
$stmt = $conn->prepare($sql_str);
|
|
$stmt->bindParam(':files_id', $files_id);
|
|
$stmt->execute();
|
|
$files= $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
$files = json_encode($files);
|
|
$accounttype = "M";
|
|
$sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype";
|
|
$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['accountid'] .'-'. $person['name'],
|
|
'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 defer src="./js/alpinejs/cdn.min.js"></script>
|
|
<script src="./js/axios/axios.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.umd.js"></script>
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css"
|
|
/>
|
|
<div class="contract-management" x-data='{
|
|
isLoading:false,
|
|
data:{
|
|
id:<?php echo $id; ?>,
|
|
contractno:"<?php echo $contract["contract_no"]; ?>",
|
|
customer:"<?php echo $contract["customer"]; ?>",
|
|
manager:"<?php echo $contract["manager"]; ?>",
|
|
vat:"<?php echo $contract["vat"]; ?>",
|
|
case_name:"<?php echo $contract["case_name"]; ?>",
|
|
linkman:"<?php echo $contract["linkman"]; ?>",
|
|
lm_tel:"<?php echo $contract["lm_tel"]; ?>",
|
|
address:"<?php echo $contract["address"]; ?>",
|
|
salesman:"<?php echo $contract["salesman"]; ?>",
|
|
files:<?php echo $files; ?>,
|
|
newfiles:[],
|
|
deletefiles:[],
|
|
qc:"<?php echo $contract["qc_official_type"]; ?>",
|
|
files_id: "<?php echo $contract["files_id"]; ?>",
|
|
},
|
|
fail_arr:[],
|
|
deleteFileFn(id){
|
|
if(!confirm("確定要刪除嗎?")) return
|
|
this.data.files = this.data.files.filter(file=> id != file.id)
|
|
this.data.deletefiles.push(id)
|
|
console.log(this.data.deletefiles);
|
|
},
|
|
save(){
|
|
this.isLoading = true
|
|
const form = new FormData();
|
|
form.append("id", this.data.id);
|
|
form.append("contractno", this.data.contractno);
|
|
form.append("customer", this.data.customer);
|
|
form.append("manager", this.data.manager);
|
|
form.append("vat", this.data.vat);
|
|
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);user_id
|
|
form.append("salesman", this.data.salesman);
|
|
form.append("qc", this.data.qc);
|
|
form.append("deletefiles", this.data.deletefiles);
|
|
form.append("files_id", this.data.files_id);
|
|
form.append("user_id", "<?php echo $user_id; ?>");
|
|
form.append("", "<?php echo $user_id; ?>");
|
|
|
|
for (var i = 0; i < this.data.newfiles.length; i++) {
|
|
form.append("files[]", this.data.newfiles[i]);
|
|
}
|
|
|
|
axios.post("./api/putContractData.php", form).then(res=>{
|
|
console.log(res.data)
|
|
if(res.status === 200){
|
|
alert("更新成功");
|
|
window.location.reload();
|
|
}
|
|
this.isLoading = false
|
|
}).catch(error=>{
|
|
let code = error.response.status;
|
|
if(code == 422){
|
|
this.fail_arr = error.response.data
|
|
this.errorFn()
|
|
}
|
|
if(code == 500){
|
|
alert("更新失敗!可能為以下錯誤:\n" + error.response.data)
|
|
}
|
|
this.isLoading = false
|
|
})
|
|
|
|
},
|
|
uploadFiles(e){
|
|
this.data.newfiles = e.target.files
|
|
},
|
|
errorFn(){
|
|
let msg = ""
|
|
for(let i = 0; i < this.fail_arr.length; i++){
|
|
msg += this.fail_arr[i] + "、"
|
|
}
|
|
alert(msg)
|
|
},
|
|
}'>
|
|
<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-bordered 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>
|
|
|
|
<tbody style="font-weight: bolder;margin-bottom: 20px" >
|
|
<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_close" class="btn btn-default" onclick="window.history.back();">返回</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" 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 class="form-control disabled_select" type="text" name="uscc" x-model="data.manager" >
|
|
<p class="alerttext" x-show="data.manager==''"><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="uscc" 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">
|
|
<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>
|
|
<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 class="form-control disabled_select" type="text" name="uscc" 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="uscc" 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">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" name="uscc" 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 colspan=3>
|
|
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.address" >
|
|
<p class="alerttext" x-show="data.address==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
|
|
</td>
|
|
<td style="vertical-align: middle">附件上傳</td>
|
|
<td colspan=3>
|
|
<input type="file" name="file[]" multiple draggable="true" @change="uploadFiles($event)" />
|
|
<p class="alerttext" x-show="data.lm_tel==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="vertical-align: middle">附件</td>
|
|
<td colspan=7>
|
|
<div class="images">
|
|
<template x-for="file in data.files" :key="file.id">
|
|
<div class="image">
|
|
<a :href="'./images/contracts/' + file.file_name" data-fancybox="gallery" :data-src="'./images/contracts/' + file.file_name" data-caption="">
|
|
<img :src="'./images/contracts/' + file.file_name" />
|
|
</a>
|
|
<i class="fas fa-times" @click="deleteFileFn(file.id)"></i>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>]
|
|
<button @click="save()" :disabled="isLoading" type="button" class="btn btn-primary btn-lg pull-right savebtn">
|
|
<template x-if="!isLoading">
|
|
<span>更新</span>
|
|
</template>
|
|
<template x-if="isLoading">
|
|
<div class="loader"></div>
|
|
</template>
|
|
</button>
|
|
<button type="button" class="btn btn-primary btn-lg pull-right savebtn" @click="window.location.href='./contract-newelevator-management.php?<?php echo $token_link; ?>'">回列表</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script src="semantic/dist/semantic.min.js" ></script>
|
|
|
|
<script>
|
|
const user_id = '<?php echo $user_id; ?>';
|
|
const user_name = '<?php echo $user_name; ?>';
|
|
$('#table_index').DataTable(
|
|
{
|
|
"order": [
|
|
[0, "desc"],
|
|
]
|
|
}
|
|
);
|
|
Fancybox.bind('[data-fancybox="gallery"]', {
|
|
|
|
});
|
|
|
|
</script>
|