From a56cbd8387996a5db8339d2bd65ce30c5c2fc87b Mon Sep 17 00:00:00 2001 From: 10994015 Date: Mon, 6 Nov 2023 17:51:19 +0800 Subject: [PATCH 1/8] 1106 --- wms/contract/api/getComboNo.php | 29 ++++ ...createFacilityNo.php => getFacilityNo.php} | 0 wms/contract/api/postContractData.php | 139 ++++++++++-------- wms/contract/contract-input.php | 14 +- 4 files changed, 117 insertions(+), 65 deletions(-) create mode 100644 wms/contract/api/getComboNo.php rename wms/contract/api/{createFacilityNo.php => getFacilityNo.php} (100%) diff --git a/wms/contract/api/getComboNo.php b/wms/contract/api/getComboNo.php new file mode 100644 index 00000000..5c0bb380 --- /dev/null +++ b/wms/contract/api/getComboNo.php @@ -0,0 +1,29 @@ +'BW002', + 'month'=>'EM002', + 'quarter'=>'EQ002', + 'half'=>'HY002', + 'year'=>'EY002' + ]; + public $bwarr = [ + 'week','month','week','month','week','quarter', + 'week','month','week','month','week','half', + 'week','month','week','month','week','quarter', + 'week','month','week','month','week','year' + ]; + public $emarr = [ + 'month','month','quarter','month','month','half', + 'month','month','quarter','month','month','year' + ]; + public $combo; + public $startdate; + public $enddate; + public function __construct($combo, $startdate, $enddate){ + } + public function getComboNo(){ + + } +} \ No newline at end of file diff --git a/wms/contract/api/createFacilityNo.php b/wms/contract/api/getFacilityNo.php similarity index 100% rename from wms/contract/api/createFacilityNo.php rename to wms/contract/api/getFacilityNo.php diff --git a/wms/contract/api/postContractData.php b/wms/contract/api/postContractData.php index a499cecd..fa67c1be 100644 --- a/wms/contract/api/postContractData.php +++ b/wms/contract/api/postContractData.php @@ -1,45 +1,46 @@ prepare($sql_str); @@ -118,10 +117,9 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { $stmt->bindParam(':accountid',$mworker); $stmt->execute(); $worker = $stmt->fetch(PDO::FETCH_ASSOC); - + + $facilityno = $createFacilityNo->makeBFacilityNo("T", $dailyNecessities[$spec], (int)$num); $define = "B"; - $facilityno = $createFacilityNo->makeTFacilityNo("T", $dailyNecessities[$spec], $num)[0]; - echo $facilityno; $customerid = $vat; $opentype = $opendoor; $repairtype = "A"; @@ -129,35 +127,52 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { $maintainance = "E"; $repairerid = $mworker; $repairername = $worker['name']; - $creater = $user_id; - $create_at = date("Y-m-d H:i:s"); - $sql_str = "INSERT INTO facility (contractno, define, facilityno, latitude, longitude, customerid, weight, numberofpassenger, numberofstop, numberoffloor, opentype, speed, repairtype, maintainance, facility_kind, address, repairerid, repairername, creater, create_at, area, takecertificatedate, licensedate) - VALUES (:contractno, :define, :facilityno, :latitude, :longitude, :customerid, :weight, :numberofpassenger, :numberofstop, :numberoffloor, :opentype, :speed, :repairtype, :maintainance, :facility_kind, :address, :repairerid, :repairername, :creater, :create_at, :area, :takecertificatedate, :licensedate)"; + + foreach($facilityno as $fno){ + + $sql_str = "INSERT INTO facility (contractno, define, facilityno, latitude, longitude, customerid, weight, numberofpassenger, numberofstop, numberoffloor, opentype, speed, repairtype, maintainance, facility_kind, address, repairerid, repairername, creater, create_at, area, takecertificatedate, licensedate) + VALUES (:contractno, :define, :facilityno, :latitude, :longitude, :customerid, :weight, :numberofpassenger, :numberofstop, :numberoffloor, :opentype, :speed, :repairtype, :maintainance, :facility_kind, :address, :repairerid, :repairername, :creater, :create_at, :area, :takecertificatedate, :licensedate)"; + $stmt = $conn -> prepare($sql_str); + $stmt -> bindParam(':contractno' ,$contractno); + $stmt -> bindParam(':define' ,$define); + $stmt -> bindParam(':facilityno' ,$fno); + $stmt -> bindParam(':latitude' ,$latitude); + $stmt -> bindParam(':longitude' ,$longitude); + $stmt -> bindParam(':customerid' ,$customerid); + $stmt -> bindParam(':weight' ,$weight); + $stmt -> bindParam(':numberofpassenger' ,$numberofpassenger); + $stmt -> bindParam(':numberofstop' ,$numberofstop); + $stmt -> bindParam(':numberoffloor' ,$numberoffloor); + $stmt -> bindParam(':opentype' ,$opentype); + $stmt -> bindParam(':speed' ,$speed); + $stmt -> bindParam(':repairtype' ,$repairtype); + $stmt -> bindParam(':maintainance' ,$maintainance); + $stmt -> bindParam(':facility_kind' ,$facility_kind); + $stmt -> bindParam(':address' ,$address); + $stmt -> bindParam(':repairerid' ,$repairerid); + $stmt -> bindParam(':repairername' ,$repairername); + $stmt -> bindParam(':creater' ,$creater); + $stmt -> bindParam(':create_at' ,$create_at); + $stmt -> bindParam(':area' ,$area); + $stmt -> bindParam(':takecertificatedate' ,$takecertificatedate); + $stmt -> bindParam(':licensedate' ,$licensedate); + + $result = $stmt -> execute(); + } + + //create schedule table + $comboMo = new CreateComboNo(); + + $sql_str = 'INSERT INTO schedule (contractno, facilityno, combono, repairerid, repairername, duedate, creater, create_at) VALUES (:contractno, :facilityno, :combono, :repairerid, :repairername, :duedate, :creater, :create_at)'; $stmt = $conn -> prepare($sql_str); $stmt -> bindParam(':contractno' ,$contractno); - $stmt -> bindParam(':define' ,$define); $stmt -> bindParam(':facilityno' ,$facilityno); - $stmt -> bindParam(':latitude' ,$latitude); - $stmt -> bindParam(':longitude' ,$longitude); - $stmt -> bindParam(':customerid' ,$customerid); - $stmt -> bindParam(':weight' ,$weight); - $stmt -> bindParam(':numberofpassenger' ,$numberofpassenger); - $stmt -> bindParam(':numberofstop' ,$numberofstop); - $stmt -> bindParam(':numberoffloor' ,$numberoffloor); - $stmt -> bindParam(':opentype' ,$opentype); - $stmt -> bindParam(':speed' ,$speed); - $stmt -> bindParam(':repairtype' ,$repairtype); - $stmt -> bindParam(':maintainance' ,$maintainance); - $stmt -> bindParam(':facility_kind' ,$facility_kind); - $stmt -> bindParam(':address' ,$address); + $stmt -> bindParam(':combono' ,$combono); $stmt -> bindParam(':repairerid' ,$repairerid); $stmt -> bindParam(':repairername' ,$repairername); + $stmt -> bindParam(':duedate' ,$duedate); $stmt -> bindParam(':creater' ,$creater); $stmt -> bindParam(':create_at' ,$create_at); - $stmt -> bindParam(':area' ,$area); - $stmt -> bindParam(':takecertificatedate' ,$takecertificatedate); - $stmt -> bindParam(':licensedate' ,$licensedate); - $result = $stmt -> execute(); header('Content-Type: application/json'); diff --git a/wms/contract/contract-input.php b/wms/contract/contract-input.php index e098a317..40945478 100644 --- a/wms/contract/contract-input.php +++ b/wms/contract/contract-input.php @@ -1,6 +1,7 @@ prepare($sql_str); @@ -13,6 +14,10 @@ $stmt = $conn->prepare($sql_str); $stmt->bindParam(':accounttype',$accounttype); $stmt->execute(); $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); + +$createFacilityNo = new CreateFacilityNo(); +$facilityno = $createFacilityNo->makeTFacilityNo("T", 'X', 5); +print_r($facilityno); ?> @@ -30,7 +35,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); }, cities:[], data:{ - contractno:'', + contractno:'Q23080026', total_price:'', //合約總價 vat:'', //統一編號 mtype:'A', //維修型態 @@ -61,6 +66,8 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); takecertificatedate:'', //交車日、竣檢日 licensedate:'', //許可證有效日期 num:'', //電梯數量 + latitude:'', //緯度 + longitude:'', //經度 }, customize:false, step:1, @@ -198,6 +205,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); form.append('longitude', this.data.longitude); form.append('user_id', ''); form.append('user_name', ''); + form.append('num', this.data.num); // 如果有附件檔案,可以逐一加入 for (var i = 0; i < this.data.files.length; i++) { @@ -336,8 +344,8 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); From dcb74c084f4ce72041ebc470bce7dbcf61200885 Mon Sep 17 00:00:00 2001 From: 10994015 Date: Tue, 7 Nov 2023 08:36:25 +0800 Subject: [PATCH 2/8] createFacilityNo.php => getFacilityNo.php --- wms/contract/contract-input.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wms/contract/contract-input.php b/wms/contract/contract-input.php index 40945478..e9b49d7b 100644 --- a/wms/contract/contract-input.php +++ b/wms/contract/contract-input.php @@ -1,7 +1,7 @@ prepare($sql_str); From cb974a7c19ceb03a25e862277fc67748189c2d31 Mon Sep 17 00:00:00 2001 From: 10994015 Date: Wed, 8 Nov 2023 20:00:59 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E5=90=88=E7=B4=84=E5=85=A5=E7=AB=8Bwms=20?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wms/contract/api/getComboNo.php | 38 ++- wms/contract/api/getFacilityNo.php | 2 +- wms/contract/api/postContractData.php | 254 ++++++++++++++++-- wms/contract/contract-input.php | 62 ++++- ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes .../c202311081438445230g52301697165865064.jpg | Bin 0 -> 310506 bytes .../c202311081438448320u83201697599065970.jpg | Bin 0 -> 717911 bytes .../c202311081444122858a28581697599065970.jpg | Bin 0 -> 717911 bytes ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes .../c202311081444126049x60491697165865064.jpg | Bin 0 -> 310506 bytes ...260238d952-c57d-4306-98fc-2a0a92278382.jpg | Bin 0 -> 37349 bytes .../c202311081444484116d41161697599065970.jpg | Bin 0 -> 717911 bytes .../c202311081444489890p98901697165865064.jpg | Bin 0 -> 310506 bytes wms/contract/styles/style.css | 21 ++ wms/contract/styles/style.css.map | 2 +- wms/contract/styles/style.scss | 24 ++ 20 files changed, 366 insertions(+), 37 deletions(-) create mode 100644 wms/contract/images/contracts/c202311081429488338k8338202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081434191255r1255202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081434539019c9019202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081435583265z3265202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081438444055k4055202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081438445230g52301697165865064.jpg create mode 100644 wms/contract/images/contracts/c202311081438448320u83201697599065970.jpg create mode 100644 wms/contract/images/contracts/c202311081444122858a28581697599065970.jpg create mode 100644 wms/contract/images/contracts/c202311081444124981q4981202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081444126049x60491697165865064.jpg create mode 100644 wms/contract/images/contracts/c202311081444483652o3652202204260238d952-c57d-4306-98fc-2a0a92278382.jpg create mode 100644 wms/contract/images/contracts/c202311081444484116d41161697599065970.jpg create mode 100644 wms/contract/images/contracts/c202311081444489890p98901697165865064.jpg diff --git a/wms/contract/api/getComboNo.php b/wms/contract/api/getComboNo.php index 5c0bb380..5c81120d 100644 --- a/wms/contract/api/getComboNo.php +++ b/wms/contract/api/getComboNo.php @@ -1,29 +1,53 @@ 'BW002', 'month'=>'EM002', 'quarter'=>'EQ002', 'half'=>'HY002', 'year'=>'EY002' ]; - public $bwarr = [ + private $bwarr = [ 'week','month','week','month','week','quarter', 'week','month','week','month','week','half', 'week','month','week','month','week','quarter', 'week','month','week','month','week','year' ]; - public $emarr = [ + private $emarr = [ 'month','month','quarter','month','month','half', 'month','month','quarter','month','month','year' ]; - public $combo; - public $startdate; - public $enddate; + private $combo; + private $startdate; + private $enddate; public function __construct($combo, $startdate, $enddate){ + $this->combo = $combo; + $this->startdate = $startdate; + $this->enddate = $enddate; } public function getComboNo(){ - + $comboarr = (array) $this->combo === 'bw' ? $this->bwarr : $this->emarr; + + $startdate = new DateTime($this->startdate); + $enddate = new DateTime($this->enddate); + + $interval = date_diff($startdate, $enddate); + + $months = $interval->y * 12 + $interval->m +1; + $months = $this->combo === 'bw' ? $months*2 : $months; + + $newarr = []; + $idx = 0; + $scheduleDate = $startdate; + for ($i = 0; $i < $months; $i++){ + $newarr[] = [$this->comboarr[$comboarr[$idx]], $scheduleDate->format("Y-m-d")]; + $idx ++; + $scheduleDate = $startdate->modify("+1 month"); + if($idx >= count($comboarr)){ + $idx = 0; + } + } + return json_encode($newarr); } } \ No newline at end of file diff --git a/wms/contract/api/getFacilityNo.php b/wms/contract/api/getFacilityNo.php index 3c92c600..af4ce122 100644 --- a/wms/contract/api/getFacilityNo.php +++ b/wms/contract/api/getFacilityNo.php @@ -486,7 +486,7 @@ class CreateFacilityNo * @param int $seq_name : 幾個案場 0-99 * @return array $new_facilityno : 作番號 */ - function makeBFacilityNo($sale_type, $make_type, $num) + function makeBFacilityNo($sale_type, $make_type, $num=1) { $new_facility_no = $this->getNextFacilityNo("B", $sale_type, $make_type, $num); if ($this->checkFacilityRepeatStatus($new_facility_no) == false) { diff --git a/wms/contract/api/postContractData.php b/wms/contract/api/postContractData.php index fa67c1be..37238bc6 100644 --- a/wms/contract/api/postContractData.php +++ b/wms/contract/api/postContractData.php @@ -5,7 +5,7 @@ include_once("./getComboNo.php"); ini_set ( 'date.timezone' , 'Asia/Taipei' ); if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { try{ - + $created_at = date('Y-m-d H:i:s'); $contractno = !empty($_POST['contractno'])? $_POST['contractno'] : null; $total_price = !empty($_POST['total_price']) ? $_POST['total_price'] : null; $vat = !empty($_POST['vat']) ? $_POST['vat'] : null; @@ -39,9 +39,48 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { $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; - + + // validate + $fail_arr = []; + if($contractno === '') return $fail_arr[] = '合約號為必填'; + + if($total_price == '') $fail_arr[] = '合約總價為必填'; + if($vat == '') $fail_arr[] = '統一編號為必填'; + if($mtype == '') $fail_arr[] = '維修型態為必填'; + if($opendoor == '') $fail_arr[] = '開門方式為必填'; + if($phone == '') $fail_arr[] = '客戶電話為必填'; + if($email == '') $fail_arr[] = 'Email為必填'; + if($mworker == '') $fail_arr[] = '保養員為必填'; + if($mcycle == '') $fail_arr[] = '保養頻率為必填'; + if($salesman == '') $fail_arr[] = '營業員為必填'; + if($contract_begin_date == '') $fail_arr[] = '合約開始時間為必填'; + if($contract_end_date == '') $fail_arr[] = '合約結束時間為必填'; + if($address == '') $fail_arr[] = '地址為必填'; + if($area == '') $fail_arr[] = '區域為必填'; + if($customer == '') $fail_arr[] = '客戶為必填'; + if($partyA == '') $fail_arr[] = '甲方為必填'; + if($partyAaddress == '') $fail_arr[] = '甲方地址為必填'; + if($partyAphone == '') $fail_arr[] = '甲方電話為必填'; + if($partyAemail == '') $fail_arr[] = '甲方Email為必填'; + if($spec == '') $fail_arr[] = '規格為必填'; + if($weight == '') $fail_arr[] = '重量為必填'; + if($numberofpassenger == '') $fail_arr[] = '乘客人數為必填'; + if($numberofstop == '') $fail_arr[] = '停留站數為必填'; + if($numberoffloor == '') $fail_arr[] = '停留樓層為必填'; + if($speed == '') $fail_arr[] = '速度為必填'; + if($takecertificatedate == '') $fail_arr[] = '取標日期為必填'; + if($maintainance == '') $fail_arr[] = '保養為必填'; + if($licensedate == '') $fail_arr[] = '營業員為必填'; + if($latitude == '') $fail_arr[] = '緯度為必填'; + if($longitude == '') $fail_arr[] = '經度為必填'; + if($num == '') $fail_arr[] = '數量為必填'; + if(count($fail_arr) > 0) { + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + //create account table $accounttype = "A"; $accountid = $vat; @@ -51,6 +90,8 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { $repairerid = $mworker; $creater = $user_id; $create_at = date('Y-m-d H:i:s'); + + $conn->beginTransaction(); $sql_str = "INSERT INTO account (accounttype, accountid, pwd, name, tel, address, email, repairerid, creater, create_at) VALUES (:accounttype, :accountid, :pwd, :name, :tel, :address, :email, :repairerid, :creater, :create_at)"; $stmt = $conn -> prepare($sql_str); @@ -155,30 +196,209 @@ if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { $stmt -> bindParam(':create_at' ,$create_at); $stmt -> bindParam(':area' ,$area); $stmt -> bindParam(':takecertificatedate' ,$takecertificatedate); - $stmt -> bindParam(':licensedate' ,$licensedate); + $stmt -> bindParam(':licensedate' ,$licensedateeeee); $result = $stmt -> execute(); } //create schedule table - $comboMo = new CreateComboNo(); + $comboNo = new CreateComboNo($mcycle, $contract_begin_date, $contract_end_date); + $comboArr = json_decode($comboNo->getComboNo(), true); + foreach($facilityno as $no){ + foreach($comboArr as $combo){ + $sql_str = 'INSERT INTO schedule (contractno, facilityno, combono, repairerid, repairername, duedate, creater, create_at) VALUES (:contractno, :facilityno, :combono, :repairerid, :repairername, :duedate, :creater, :create_at)'; + $stmt = $conn -> prepare($sql_str); + $stmt -> bindParam(':contractno' ,$contractno); + $stmt -> bindParam(':facilityno' ,$no); + $stmt -> bindParam(':combono' ,$combo[0]); + $stmt -> bindParam(':repairerid' ,$repairerid); + $stmt -> bindParam(':repairername' ,$repairername); + $stmt -> bindParam(':duedate' ,$combo[1]); + $stmt -> bindParam(':creater' ,$creater); + $stmt -> bindParam(':create_at' ,$create_at); + $result = $stmt -> execute(); + } + } - $sql_str = 'INSERT INTO schedule (contractno, facilityno, combono, repairerid, repairername, duedate, creater, create_at) VALUES (:contractno, :facilityno, :combono, :repairerid, :repairername, :duedate, :creater, :create_at)'; - $stmt = $conn -> prepare($sql_str); - $stmt -> bindParam(':contractno' ,$contractno); - $stmt -> bindParam(':facilityno' ,$facilityno); - $stmt -> bindParam(':combono' ,$combono); - $stmt -> bindParam(':repairerid' ,$repairerid); - $stmt -> bindParam(':repairername' ,$repairername); - $stmt -> bindParam(':duedate' ,$duedate); - $stmt -> bindParam(':creater' ,$creater); - $stmt -> bindParam(':create_at' ,$create_at); - $result = $stmt -> execute(); + // create contract_b_signed_back table + $contract_type = $mtype; + $company = $customer; + $customer_no = $vat; + $salesperson = $salesman; + $customer_phone = $phone; + $customer_email = $email; + $repairman = $mworker; + $cycle = $mcycle; + $contact_person = $partyA; + $contact_address = $partyAaddress; + $contact_phone = $partyAphone; + $contract_email = $partyAemail; + $elevators_number = $num; + $bonus = 1000; + $max_bonus = 2000; + $englisharr = range('a', 'z'); + $file = $_FILES['files']; + $file_name = $file['name']; + $file_type = $file['type']; + $tmp_name = $file['tmp_name']; + $file_size = $file['size']; + $error = $file['error']; + $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 + } + echo json_encode($newfiles); + $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 = 'c' . $datetime; + 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']; + $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' ,$user_id); + $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); + } + + } + $sql_str = "INSERT INTO contract_b_signed_back (contract_no, contract_type, company, customer_no, salesperson, contract_start_date, contract_end_date, total_price, opendoor, customer_phone, customer_email, repairman, cycle, contact_person, contact_address, contact_phone, contact_email, takecertificatedate, license_date, elevators_number, spec, weight, speed, numberofpassenger, numberofstop, numberoffloor, latitude, longitude, area, address, files_id, bonus, max_bonus, created_at, created_by) + VALUES (:contract_no, :contract_type, :company, :customer_no, :salesperson, :contract_start_date, :contract_end_date, :total_price, :opendoor, :customer_phone, :customer_email, :repairman, :cycle, :contact_person, :contact_address, :contact_phone, :contact_email, :takecertificatedate, :license_date, :elevators_number, :spec, :weight, :speed, :numberofpassenger, :numberofstop, :numberoffloor, :latitude, :longitude, :area, :address, :files_id, :bonus, :max_bonus, :created_at, :created_by)"; + $stmt = $conn -> prepare($sql_str); + $stmt -> bindParam(":contract_no",$contractno); + $stmt -> bindParam(":contract_type",$contract_type); + $stmt -> bindParam(":company",$company); + $stmt -> bindParam(":customer_no",$customer_no); + $stmt -> bindParam(":salesperson",$salesperson); + $stmt -> bindParam(":contract_start_date",$contract_begin_date); + $stmt -> bindParam(":contract_end_date",$contract_end_date); + $stmt -> bindParam(":total_price",$total_price); + $stmt -> bindParam(":opendoor",$opendoor); + $stmt -> bindParam(":customer_phone",$customer_phone); + $stmt -> bindParam(":customer_email",$customer_email); + $stmt -> bindParam(":repairman",$repairman); + $stmt -> bindParam(":cycle",$cycle); + $stmt -> bindParam(":contact_person",$contact_person); + $stmt -> bindParam(":contact_address",$contact_address); + $stmt -> bindParam(":contact_phone",$contact_phone); + $stmt -> bindParam(":contact_email",$contact_email); + $stmt -> bindParam(":takecertificatedate",$takecertificatedate); + $stmt -> bindParam(":license_date",$license_date); + $stmt -> bindParam(":elevators_number",$elevators_number); + $stmt -> bindParam(":spec",$spec); + $stmt -> bindParam(":weight",$weight); + $stmt -> bindParam(":speed",$speed); + $stmt -> bindParam(":numberofpassenger",$numberofpassenger); + $stmt -> bindParam(":numberofstop",$numberofstop); + $stmt -> bindParam(":numberoffloor",$numberoffloor); + $stmt -> bindParam(":latitude",$latitude); + $stmt -> bindParam(":longitude",$longitude); + $stmt -> bindParam(":area",$area); + $stmt -> bindParam(":address",$address); + $stmt -> bindParam(":files_id",$files_id); + $stmt -> bindParam(":bonus",$bonus); + $stmt -> bindParam(":max_bonus",$max_bonus); + $stmt -> bindParam(":created_at", $created_at); + $stmt -> bindParam(":created_by",$user_id); + + $stmt -> execute(); + header('Content-Type: application/json'); $jsonData = json_encode($files); + $conn->commit(); }catch(PDOException $e){ + $r = $conn->rollback(); + echo $r; die('Error!:'.$e->getMessage()); } -} \ No newline at end of file +} + +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); + } + }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的結果 + }// function end \ No newline at end of file diff --git a/wms/contract/contract-input.php b/wms/contract/contract-input.php index e9b49d7b..295542bc 100644 --- a/wms/contract/contract-input.php +++ b/wms/contract/contract-input.php @@ -17,7 +17,6 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); $createFacilityNo = new CreateFacilityNo(); $facilityno = $createFacilityNo->makeTFacilityNo("T", 'X', 5); -print_r($facilityno); ?> @@ -72,8 +71,9 @@ print_r($facilityno); customize:false, step:1, isLoading:false, - + fail_arr:[], nextStepFn(){ + if(this.data.contractno == '') return alert('請輸入合約號'); this.isLoading = true axios.get('./api/getContractData.php?contractno=' + this.data.contractno).then(res=>{ console.log(res) @@ -114,6 +114,7 @@ print_r($facilityno); }, nextStepKeyupFn(e){ if(e.keyCode !== 13) return + if(this.contractno == '') return alert('請輸入合約號'); this.isLoading = true axios.get('./api/getContractData.php?contractno=' + this.data.contractno).then(res=>{ console.log(res) @@ -171,7 +172,6 @@ print_r($facilityno); }, save(){ this.isLoading = true - console.log(this.data.files[0] instanceof File); const form = new FormData(); form.append('contractno', this.data.contractno); form.append('total_price', this.data.total_price); @@ -215,15 +215,26 @@ print_r($facilityno); console.log(res); this.isLoading = false }).catch(error=>{ - console.log(error); + let code = error.response.status; + if(code == 422){ + this.fail_arr = error.response.data + this.errorFn(); + } + this.isLoading = false }) }, + errorFn(){ + let msg = '' + for(let i = 0; i < this.fail_arr.length; i++){ + msg += this.fail_arr[i] + '、' + } + alert(msg) + }, uploadFiles(e){ this.data.files = e.target.files } }"> -
@@ -267,6 +278,7 @@ print_r($facilityno); 立約人 +

未填寫

營業員 @@ -276,26 +288,30 @@ print_r($facilityno); +

未填寫

合約開始時間 +

未填寫

合約終止時間 +

未填寫

合約總價 - +

未填寫

統一編號/身分證 +

未填寫

維修型態 @@ -303,6 +319,7 @@ print_r($facilityno); +

未填寫

開門方式 @@ -320,16 +337,19 @@ print_r($facilityno); +

未填寫

客戶電話 +

未填寫

Email +

未填寫

保養員 @@ -339,6 +359,7 @@ print_r($facilityno); +

未填寫

保養頻率 @@ -347,24 +368,29 @@ print_r($facilityno); +

未填寫

業務聯繫人 +

未填寫

業務聯繫人地址 +

未填寫

業務聯繫人電話 +

未填寫

業務聯繫人Email +

未填寫

@@ -375,22 +401,24 @@ print_r($facilityno); - - +

未填寫

竣檢日 +

未填寫

許可證有效時間 +

未填寫

電梯數量 +

未填寫

@@ -406,38 +434,46 @@ print_r($facilityno); +

未填寫

載重 +

未填寫

速度 +

未填寫

人乘 +

未填寫

樓停 +

未填寫

樓層 +

未填寫

緯度 +

未填寫

經度 +

未填寫

@@ -449,21 +485,25 @@ print_r($facilityno); +

未填寫

詳細地址 +

未填寫

附件 +

未填寫

- - - -