diff --git a/wms/contract/api/getContractData.php b/wms/contract/api/getContractData.php
index 7e6107fc..df52d1dd 100644
--- a/wms/contract/api/getContractData.php
+++ b/wms/contract/api/getContractData.php
@@ -1,6 +1,6 @@
getMessage());
}
+}
+
+if(isset($_GET['contractno']) && $_GET['contractno']!='' && isset($_GET['contracttype']) && $_GET['contracttype']=='m'){
+ try{
+ $contractno = $_GET['contractno'];
+ $sql_str = "SELECT * FROM hope_elevator_customer WHERE vol_no = :vol_no ORDER BY created_at DESC";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':vol_no', $contractno);
+ $stmt->execute();
+ $contract= $stmt->fetch(PDO::FETCH_ASSOC);
+ $contractResponse = json_encode($contract);
+
+ // 設定回應標頭為 JSON
+ header('Content-Type: application/json');
+
+ // 將 JSON 回應返回給客戶端
+ echo $contractResponse;
+ }catch (PDOException $e ){
+ die("ERROR!!!: ". $e->getMessage());
+ }
}
\ No newline at end of file
diff --git a/wms/contract/api/postContractData.php b/wms/contract/api/postContractData.php
index 49641b8e..68c47af3 100644
--- a/wms/contract/api/postContractData.php
+++ b/wms/contract/api/postContractData.php
@@ -3,7 +3,8 @@ require_once("../conn.php");
include_once("./getFacilityNo.php");
include_once("./getComboNo.php");
ini_set ( 'date.timezone' , 'Asia/Taipei' );
-if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
+//保養簽回
+if(isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['contracttype']) && $_POST['contracttype'] == 'b') {
try{
$created_at = date('Y-m-d H:i:s');
$contractno = !empty($_POST['contractno'])? $_POST['contractno'] : null;
@@ -27,17 +28,6 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
$partyAemail = !empty($_POST['partyAemail']) ? $_POST['partyAemail'] : null;
$user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : null;
$user_name = !empty($_POST['user_name']) ? $_POST['user_name'] : null;
- $spec = !empty($_POST['spec']) ? $_POST['spec'] : null;
- $weight = !empty($_POST['weight']) ? $_POST['weight'] : null;
- $numberofpassenger = !empty($_POST['numberofpassenger']) ? $_POST['numberofpassenger'] : null;
- $numberofstop = !empty($_POST['numberofstop']) ? $_POST['numberofstop'] : null;
- $numberoffloor = !empty($_POST['numberoffloor']) ? $_POST['numberoffloor'] : null;
- $speed = !empty($_POST['speed']) ? $_POST['speed'] : null;
- $takecertificatedate = !empty($_POST['takecertificatedate']) ? $_POST['takecertificatedate'] : null;
- $maintainance = !empty($_POST['maintainance']) ? $_POST['maintainance'] : null;
- $licensedate = !empty($_POST['licensedate']) ? $_POST['licensedate'] : null;
- $latitude = !empty($_POST['latitude']) ? $_POST['latitude'] : null;
- $longitude = !empty($_POST['longitude']) ? $_POST['longitude'] : null;
$num = !empty($_POST['num']) ? $_POST['num'] : null;
$files = !empty($_FILES['files']) ? $_FILES['files'] : null;
$elevators = !empty($_POST['elevators']) ? json_decode($_POST['elevators'], true) : [];
@@ -66,7 +56,7 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
if(count($fail_arr) > 0) {
header("HTTP/1.1 422 Unprocessable Entity");
echo json_encode($fail_arr);
- exit();
+ exit();
}
//create account table
@@ -143,11 +133,12 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
];
$facility_arr = [];
foreach($elevators as $elevator){
- $facility_arr[] = $elevator['spec'];
+ $facility_arr[] = $dailyNecessities[$elevator['spec']];
}
- echo $dailyNecessities[$elevator['spec']];
+ echo json_encode($facility_arr);
$facilityno = $createFacilityNo->makeBFacilityNo("T", $facility_arr, (int)$num);
-
+ echo json_encode($facilityno);
+ echo '-------';
$sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':accountid',$mworker);
@@ -155,7 +146,7 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
$worker = $stmt->fetch(PDO::FETCH_ASSOC);
$customerid = $vat;
$define = "B";
- $repairtype = "A";
+ $repairtype = $mtype;
$repairerid = $mworker;
$repairername = $worker['name'];
foreach($elevators as $idx=>$elevator){
@@ -175,7 +166,7 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
$stmt -> bindParam(':opentype' ,$elevator['opendoor']);
$stmt -> bindParam(':speed' ,$elevator['speed']);
$stmt -> bindParam(':repairtype' ,$repairtype);
- $stmt -> bindParam(':maintainance' ,$maintainance);
+ $stmt -> bindParam(':maintainance' ,$elevator['maintainance']);
$stmt -> bindParam(':facility_kind' ,$elevator['spec']);
$stmt -> bindParam(':address' ,$address);
$stmt -> bindParam(':repairerid' ,$repairerid);
@@ -184,7 +175,7 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
$stmt -> bindParam(':create_at' ,$create_at);
$stmt -> bindParam(':area' ,$area);
$stmt -> bindParam(':takecertificatedate' ,$elevator['takecertificatedate']);
- $stmt -> bindParam(':licensedate' ,$elevator['licensedateeeee']);
+ $stmt -> bindParam(':licensedate' ,$elevator['useful_date']);
$result = $stmt -> execute();
}
@@ -250,11 +241,11 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
if (!file_exists($path)) { mkdir($path); }
$msg_result = ''; //負責接收所有檔案檢測後的回傳訊息
$datetime = (string)date('YmdHis');
- $files_id = 'c' . $datetime;
+ $files_id = 'b' . $datetime; // 保養=>b + 日期時間
foreach( $newfiles as $key => $file ){
$randNum = rand(1000,9999);
$randEnglish = $englisharr[rand(0,25)];
- $file_name = 'c' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum.$file['name'];
+ $file_name = 'b' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum.$file['name'];
$msg = upload_chk( $file,$path, $max_size, $allow_ext, $file_name );
if($msg==1){
$msg = '檔案傳送成功!';
@@ -322,62 +313,174 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") {
}
}
-function upload_chk( $file, $path, $max_size, $allow_ext, $file_name ){
- $source_file_name = $file['name']; //上傳檔案的原來檔案名稱
- $file_type = $file['type']; //上傳檔案的類型(副檔名)
- $tmp_name = $file['tmp_name']; //上傳到暫存空間的路徑/檔名
- $file_size = $file['size']; //上傳檔案的檔案大小(容量)
- $error = $file['error']; //上傳工作傳回的錯誤訊息編號
- $msg = ''; //負責記錄回傳的訊息
-
- //1.判斷錯誤編號只有為0時表示沒有錯誤發生,才表示上傳成功 =================
- if( $error == 0 ){
-
- //取得檔案延伸的副檔名, 以下函數可以取得檔案延伸的副檔名
- //pathinfo(上傳檔案的原來檔案名稱, PATHINFO_EXTENSION)
- $ext = pathinfo($source_file_name, PATHINFO_EXTENSION);
- $ext = strtolower($ext); //將延伸的副檔名轉小寫
-
- //2.判斷上傳檔案的大小 ====================================
- if( $file_size > $max_size ){
- //當目前檔案容量超過容量限制時, 以下準備顯示的資訊
- if( $max_size >= 4096*4096 ){
- $max_size /= (4096*4096);
- $max_size .= 'M';
- }elseif( $max_size >= 4096 ){
- $max_size /= 4096;
- $max_size .= 'K';
- }
- $msg ='上傳檔案過大,請選擇容量小於 '.$max_size.' 的檔案';
-
- //3.判斷檔案類型 ===========================================
- //in_array($ext, $allow_ext) 判斷 $ext變數的值 是否在 $allow_ext 這個陣列變數中
- }elseif( !in_array( $ext, $allow_ext ) ){
- $allow_str = ''; //準備將允許檔案類型的陣列內容, 組合成字串
- foreach( $allow_ext as $key=>$value ){
- //if的縮寫語法:條件?成立執行的工作:不成立執行的工作;
- $key==0? $allow_str.= $value : $allow_str.=', '.$value;
- }
- $msg = '檔案類型不符合,請選擇 '.$allow_str.' 檔案';
-
- //4.以上條件都沒問題的話, 則進行最後else中的工作===============
- }else{
- //搬移檔案 move_uploaded_file(要搬移的檔案, 目的地位置及目的檔案名稱), 成功傳回true(1)
- $msg = @move_uploaded_file($tmp_name, $path.$file_name);
+if(isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['contracttype']) && $_POST['contracttype'] == 'm') {
+ try{
+ $created_at = date('Y-m-d H:i:s');
+ $created_by = $_POST["user_id"];
+ $contractno = $_POST["contractno"];
+ $customer = $_POST["customer"];
+ $manager = $_POST["manager"];
+ $vat = $_POST["vat"];
+ $case_name = $_POST["case_name"];
+ $linkman = $_POST["linkman"];
+ $lm_tel = $_POST["lm_tel"];
+ $address = $_POST["address"];
+ $salesman = $_POST["salesman"];
+ $contracttype = $_POST["contracttype"];
+ $files = !empty($_FILES['files']) ? $_FILES['files'] : null;
+ $files_id = null;
+
+ $conn->beginTransaction();
+
+ $sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid ORDER BY create_at DESC";
+ $stmt = $conn -> prepare($sql_str);
+ $stmt -> bindParam(":accountid",$salesman);
+ $stmt -> execute();
+ $saleman = $stmt->fetch(PDO::FETCH_ASSOC);
+ $salesman_name = $saleman['name'];
+ if(!empty($files)){
+ $englisharr = range('a', 'z');
+ $files = $_FILES['files'];
+ $newfiles = [];
+ foreach( $files as $file ){
+ $i = 0; //新陣列的索引編號
+ foreach( $file as $key => $val ){
+ $newfiles[$i]['name'] = $files['name'][$key];
+ $newfiles[$i]['type'] = $files['type'][$key];
+ $newfiles[$i]['tmp_name'] = $files['tmp_name'][$key];
+ $newfiles[$i]['error'] = $files['error'][$key];
+ $newfiles[$i]['size'] = $files['size'][$key];
+ $i++;
+ } //foreach 第2層 end
+ }
+ $max_size = 4096*4096; //設定允許上傳檔案容量的最大值(1M)
+ $allow_ext = array('jpeg', 'jpg', 'png','JPG','JPEG','PNG','GIF'); //設定允許上傳檔案的類型
+ $path = '../images/contracts/';
+ if (!file_exists($path)) { mkdir($path); }
+ $msg_result = ''; //負責接收所有檔案檢測後的回傳訊息
+ $datetime = (string)date('YmdHis');
+ $files_id = 'm' . $datetime; // 保養=>b + 日期時間
+ echo json_encode($newfiles);
+ foreach( $newfiles as $key => $file ){
+ $randNum = rand(1000,9999);
+ $randEnglish = $englisharr[rand(0,25)];
+ $file_name = 'm' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum.$file['name'];
+ $msg = upload_chk( $file,$path, $max_size, $allow_ext, $file_name );
+ if($msg==1){
+ $msg = '檔案傳送成功!';
+ $sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)";
+ $stmt = $conn -> prepare($sql_str);
+ $stmt -> bindParam(':files_id' ,$files_id);
+ $stmt -> bindParam(':file_name' ,$file_name);
+ $stmt -> bindParam(':file_mime' ,$file['type']);
+ $stmt -> bindParam(':file_size' ,$file['size']);
+ $stmt -> bindParam(':created_at' ,$created_at);
+ $stmt -> bindParam(':created_by' ,$created_by);
+ $stmt ->execute();
+ }
+ $msg_result .= '第' . ($key+1) . '個上傳檔案的結果:' . $msg . '
';
+ $src_name = $path.$file['name'];
+ if( file_exists($src_name) ){
+ //副檔名
+ $extname = pathinfo($src_name, PATHINFO_EXTENSION);
+ //主檔名
+ $basename = basename($src_name, '.'.$extname);
+ }
+
}
}else{
- //這裡表示上傳有錯誤, 匹配錯誤編號顯示對應的訊息 ======================================
- switch ($error) {
- case 1: $msg = '上傳檔案超過 upload_max_filesize 容量最大值'; break;
- case 2: $msg = '上傳檔案超過 post_max_size 總容量最大值'; break;
- case 3: $msg = '檔案只有部份被上傳'; break;
- case 4: $msg = '沒有檔案被上傳'; break;
- case 6: $msg = '找不到主機端暫存檔案的目錄位置'; break;
- case 7: $msg = '檔案寫入失敗'; break;
- case 8: $msg = '上傳檔案被PHP程式中斷,表示主機端系統錯誤'; break;
+ $files = null;
+ }
+
+
+ $sql_str = "INSERT INTO contract_m_signed_back (contract_no, customer, manager, vat, case_name, linkman, lm_tel, address, salesman, salesman_name, files_id, created_at, created_by) VALUES (:contract_no, :customer, :manager, :vat, :case_name, :linkman, :lm_tel, :address, :salesman, :salesman_name, :files_id, :created_at, :created_by)";
+ $stmt = $conn -> prepare($sql_str);
+ $stmt -> bindParam(":contract_no",$contractno);
+ $stmt -> bindParam(":customer",$customer);
+ $stmt -> bindParam(":manager",$manager);
+ $stmt -> bindParam(":vat",$vat);
+ $stmt -> bindParam(":case_name",$case_name);
+ $stmt -> bindParam(":linkman",$linkman);
+ $stmt -> bindParam(":lm_tel",$lm_tel);
+ $stmt -> bindParam(":address",$address);
+ $stmt -> bindParam(":salesman",$salesman);
+ $stmt -> bindParam(":salesman_name",$salesman_name);
+ $stmt -> bindParam(":files_id",$files_id);
+ $stmt -> bindParam(":created_at",$created_at);
+ $stmt -> bindParam(":created_by",$created_by);
+ $stmt -> execute();
+
+
+ $result = $conn->commit();
+ if($result){
+ header("HTTP/1.1 201 Created");
+ }
+
+ }catch(PDOException $e){
+ $conn->rollback();
+ echo $e->getMessage();
+ die('Error!:'.$e->getMessage());
+ }
+}
+
+
+function upload_chk( $file, $path, $max_size, $allow_ext, $file_name ){
+
+ $source_file_name = $file['name']; //上傳檔案的原來檔案名稱
+ $file_type = $file['type']; //上傳檔案的類型(副檔名)
+ $tmp_name = $file['tmp_name']; //上傳到暫存空間的路徑/檔名
+ $file_size = $file['size']; //上傳檔案的檔案大小(容量)
+ $error = $file['error']; //上傳工作傳回的錯誤訊息編號
+ $msg = ''; //負責記錄回傳的訊息
+
+ //1.判斷錯誤編號只有為0時表示沒有錯誤發生,才表示上傳成功 =================
+ if( $error == 0 ){
+
+ //取得檔案延伸的副檔名, 以下函數可以取得檔案延伸的副檔名
+ //pathinfo(上傳檔案的原來檔案名稱, PATHINFO_EXTENSION)
+ $ext = pathinfo($source_file_name, PATHINFO_EXTENSION);
+ $ext = strtolower($ext); //將延伸的副檔名轉小寫
+
+ //2.判斷上傳檔案的大小 ====================================
+ if( $file_size > $max_size ){
+ //當目前檔案容量超過容量限制時, 以下準備顯示的資訊
+ if( $max_size >= 4096*4096 ){
+ $max_size /= (4096*4096);
+ $max_size .= 'M';
+ }elseif( $max_size >= 4096 ){
+ $max_size /= 4096;
+ $max_size .= 'K';
+ }
+ $msg ='上傳檔案過大,請選擇容量小於 '.$max_size.' 的檔案';
+
+ //3.判斷檔案類型 ===========================================
+ //in_array($ext, $allow_ext) 判斷 $ext變數的值 是否在 $allow_ext 這個陣列變數中
+ }elseif( !in_array( $ext, $allow_ext ) ){
+ $allow_str = ''; //準備將允許檔案類型的陣列內容, 組合成字串
+ foreach( $allow_ext as $key=>$value ){
+ //if的縮寫語法:條件?成立執行的工作:不成立執行的工作;
+ $key==0? $allow_str.= $value : $allow_str.=', '.$value;
}
- } //if( $error == 0 ){ ..... end
-
- return $msg; //回傳$msg的結果
- }
\ No newline at end of file
+ $msg = '檔案類型不符合,請選擇 '.$allow_str.' 檔案';
+
+ //4.以上條件都沒問題的話, 則進行最後else中的工作===============
+ }else{
+ //搬移檔案 move_uploaded_file(要搬移的檔案, 目的地位置及目的檔案名稱), 成功傳回true(1)
+ $msg = @move_uploaded_file($tmp_name, $path.$file_name);
+ }
+ }else{
+ //這裡表示上傳有錯誤, 匹配錯誤編號顯示對應的訊息 ======================================
+ switch ($error) {
+ case 1: $msg = '上傳檔案超過 upload_max_filesize 容量最大值'; break;
+ case 2: $msg = '上傳檔案超過 post_max_size 總容量最大值'; break;
+ case 3: $msg = '檔案只有部份被上傳'; break;
+ case 4: $msg = '沒有檔案被上傳'; break;
+ case 6: $msg = '找不到主機端暫存檔案的目錄位置'; break;
+ case 7: $msg = '檔案寫入失敗'; break;
+ case 8: $msg = '上傳檔案被PHP程式中斷,表示主機端系統錯誤'; break;
+ }
+ } //if( $error == 0 ){ ..... end
+
+ return $msg; //回傳$msg的結果
+}
\ No newline at end of file
diff --git a/wms/contract/contract-input.php b/wms/contract/contract-input.php
index 12c6699d..81a107b4 100644
--- a/wms/contract/contract-input.php
+++ b/wms/contract/contract-input.php
@@ -17,9 +17,8 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
-
-
-
+
+
未填寫
未填寫
未填寫
+未填寫
未填寫
+未填寫
未填寫
+ +未填寫
未填寫
+未填寫
未填寫
+未填寫
未填寫
+未填寫
未填寫
+ +未填寫
+ 合約入力(新梯)+ |
+ ||||||||
合約號 | ++ + | ++ + | + +||||||
+ 業務確認項+ |
+ + + + | +|||||||
客戶名稱 | +
+
+ 未填寫 + |
+ 負責人 | +
+
+ 未填寫 + |
+ 統一編號/身分證 | +
+
+ 未填寫 + |
+ 營業員工號 | +
+
+ 未填寫 + |
+ |
聯繫人 | +
+
+ 未填寫 + |
+ 聯繫人電話 | +
+
+ 未填寫 + |
+ 案件名稱 | +
+
+ 未填寫 + |
+ |||
地址 | +
+
+ 未填寫 + |
+ 附件上傳 | +
+
+ 未填寫 + |
+