diff --git a/wms/contract/api/getContractData.php b/wms/contract/api/getContractData.php index 37138c7a..f1c1a3fc 100644 --- a/wms/contract/api/getContractData.php +++ b/wms/contract/api/getContractData.php @@ -46,9 +46,11 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont 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"; + $sql_str = "SELECT a.*,b.lm_tel,b.uscc,b.manager 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 = 'YS' "; $stmt = $conn->prepare($sql_str); - $stmt->bindParam(':vol_no', $contractno); + $stmt->bindParam(':contractno', $contractno); $stmt->execute(); $contract = $stmt->fetch(PDO::FETCH_ASSOC); $contractResponse = json_encode($contract); diff --git a/wms/contract/api/postContractData.php b/wms/contract/api/postContractData.php index f2aa2fc1..29038b9f 100644 --- a/wms/contract/api/postContractData.php +++ b/wms/contract/api/postContractData.php @@ -412,7 +412,7 @@ function T8insert($data, $facilityno, $depId) $stmt = $conn->prepare($sql); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->execute(); - $result = $stmt->fetchAll(PDO::FETCH_ASSOC); + $result = $stmt->fetch(PDO::FETCH_ASSOC); $date = date('Y-m-dH-s-i'); $date_1 = date('Y-m-d'); $createTime = str_replace("-", '', $date); diff --git a/wms/contract/api/postNewContractData.php b/wms/contract/api/postNewContractData.php index 001fe1f5..0ee6964e 100644 --- a/wms/contract/api/postNewContractData.php +++ b/wms/contract/api/postNewContractData.php @@ -1,139 +1,254 @@ - 0) { - header("HTTP/1.1 422 Unprocessable Entity"); - echo json_encode($fail_arr); - exit(); - } - - - $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 + 日期時間 - 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(); - }else{ - throw new PDOException('檔案上傳失敗:' . $msg); - } - $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{ - $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, qc_official_type) VALUES (:contract_no, :customer, :manager, :vat, :case_name, :linkman, :lm_tel, :address, :salesman, :salesman_name, :files_id, :created_at, :created_by, :qc)"; - $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 -> bindParam(":qc",$qc); - $stmt -> execute(); - - - $result = $conn->commit(); - if($result){ - header("HTTP/1.1 201 Created"); - } - - }catch(PDOException $e){ - $conn->rollback(); - header("HTTP/1.1 500 Internal Server Error"); - die('Error!:'.$e->getMessage()); - } - } \ No newline at end of file + 0) { + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + + + $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 + 日期時間 + 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(); + } else { + throw new PDOException('檔案上傳失敗:' . $msg); + } + $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 { + $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, qc_official_type) VALUES (:contract_no, :customer, :manager, :vat, :case_name, :linkman, :lm_tel, :address, :salesman, :salesman_name, :files_id, :created_at, :created_by, :qc)"; + $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->bindParam(":qc", $qc); + $stmt->execute(); + + + $result = $conn->commit(); + if ($result) { + header("HTTP/1.1 201 Created"); + } + } catch (PDOException $e) { + $conn->rollback(); + header("HTTP/1.1 500 Internal Server Error"); + die('Error!:' . $e->getMessage()); + } +} + +function T8Insert($data) +{ + require_once("../connt8.php"); + + $contractno = $data['contractno']; + $partyA = $data['customer']; + $phone = $data['lm_tel']; + $vat = $data['vat']; + $partyAaddress = $data['address']; + $user_id = $data['user_id']; + $salesman = $data['salesman']; + $createAt = date("Y-m-dH-i-s"); + $createTime = str_replace('-', '', $createAt); + + + $connT8->beginTransaction(); + + $sql = "SELECT * FROM comCustomer WHERE BizPartnerId = :BizPartnerId"; + $stmt = $conn->prepare($sql); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->execute(); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + // 新增客戶 table + if (empty($result)) { + // 若 客戶資料為空,新增一筆到 comCustomer + // 新增客戶資料 + $sql = "INSERT INTO comBusinessPartner + (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,EMail,CreatorId,CreateTime,BizPartnerTypeId) + VALUES(:BizPartnerId,:BizPartnerName,1,'TW',:WorkTelNo,99999999,:TaxNo,:EnterpriseName,:ContactAddress,:EMail,:CreatorId,:CreateTime,'10')"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->bindParam(':BizPartnerName', $partyA); //客戶名稱 + $stmt->bindParam(':WorkTelNo', $phone); + $stmt->bindParam(':TaxNo', $vat); + // $stmt->bindParam(':EnterpriseName', $customer); //企業名稱 + $stmt->bindParam(':ContactAddress', $partyAaddress); + $stmt->bindParam(':EMail', $email); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + + $stmt->execute(); + + $sql = "INSERT INTO comCustomer + (OrgId,BizPartnerTypeId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId) + VALUES('1000','10','TWD',:BizPartnerId,:PersonId,:CreatorId,1,:InvoiceAddress,:CreateTime,'35')"; + $stmt = $connT8->prepare($sql); + + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->bindParam(':PersonId', $salesman); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':InvoiceAddress', $address); + $stmt->bindParam(':CreateTime', $createTime); + + $stmt->execute(); + } else { + // // 若客戶資料不為空,更新該客戶資訊。 + $sql = "UPDATE comCustomer SET + PersonId=:PersonId, + InvoiceAddress=:InvoiceAddress, + LastOperatorId=:LastOperatorId, + LastOperateTime=:LastOperateTime + WHERE BizPartnerId=:BizPartnerId + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':PersonId', $salesman); + $stmt->bindParam(':InvoiceAddress', $address); + $stmt->bindParam(':LastOperatorId', $user_id); + $stmt->bindParam(':LastOperateTime', $createTime); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->execute(); + + + $sql = "UPDATE comBusinessPartner SET + BizPartnerName=:BizPartnerName, + WorkTelNo=:WorkTelNo, + TaxNo=:TaxNo, + EnterpriseName=:EnterpriseName, + ContactAddress=:ContactAddress, + EMail=:EMail, + LastOperatorId=:LastOperatorId, + LastOperateTime=:LastOperateTime + WHERE BizPartnerId = :BizPartnerId + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':BizPartnerName', $partyA); + $stmt->bindParam(':WorkTelNo', $phone); + $stmt->bindParam(':TaxNo', $vat); + $stmt->bindParam(':EnterpriseName', $customer); + $stmt->bindParam(':ContactAddress', $partyAaddress); + $stmt->bindParam(':EMail', $email); + $stmt->bindParam(':LastOperatorId', $user_id); + $stmt->bindParam(':LastOperateTime', $createTime); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->execute(); + } + + $sql = "SELECT * FROM comProject WHERE ProjectId = :ProjectId"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':ProjectId', $contractno); + $stmt->execute(); + $resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); + if (empty($resultProject)) { + //新增於 comProject。合約 table + $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed) + VALUES(:ProjectId,:ProjectName,'C0',:CreateTime,:CreatorId,1)"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':ProjectId', $contractno); + $stmt->bindParam(':ProjectName', $customer); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->execute(); + } +} diff --git a/wms/contract/js/alpine.js b/wms/contract/js/alpine.js index 41a8dd67..9dc76b6c 100644 --- a/wms/contract/js/alpine.js +++ b/wms/contract/js/alpine.js @@ -810,7 +810,7 @@ const contractNewInput = () => { return { init() { }, data: { - contractno: '', + contractno: 'M23090149', customer: '', manager: '', vat: '', @@ -847,6 +847,9 @@ const contractNewInput = () => { }, getContractDate() { axios.get('./api/getContractData.php?contracttype=m&contractno=' + this.data.contractno).then(res => { + console.log(res); + + if (!res.data) { this.step = 2 this.isLoading = false @@ -854,14 +857,14 @@ const contractNewInput = () => { } if (!this.customize) { console.log(res.data); - this.data.customer = res.data.customer + this.data.customer = res.data.company this.data.manager = 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.salesman + this.data.salesman = res.data.person this.data.qc = res.data.qc } this.step = 2 diff --git a/wms/contract_b-index.php b/wms/contract_b-index.php new file mode 100644 index 00000000..8b3066ca --- /dev/null +++ b/wms/contract_b-index.php @@ -0,0 +1,309 @@ +"; +// echo $sql; +// echo ""; +// exit; + +$data = $conn->query($sql); +if ($data) : +?> + + + + + +
+
+ + + + + + + + + + + + + +
+

保養合約管理

+
合約號 + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
營業人員/契約人員部門合約號單據號客戶名稱單據日期最後收款日追蹤狀態金額明細
+ "; + echo $row['PersonName']; + ?> + + + + + + + + + + + + + + diff($date2); + $months = $interval->m; + $months += $interval->y * 12; + if ($date1 <= $date2) { + echo "合約已過期"; + } else if ($months <= 2) { + echo "合約快到期"; + } else { + echo "合約未到期"; + } + ?> + + + + +
+
+ +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); + +include "footer.php"; +?> \ No newline at end of file diff --git a/wms/crm/crmm03-edit.php b/wms/crm/crmm03-edit.php index 0c151755..3f64a37e 100644 --- a/wms/crm/crmm03-edit.php +++ b/wms/crm/crmm03-edit.php @@ -348,7 +348,7 @@ function get_sequnece_no($seq_name = '', $p_yyyymm = '') -
+ +
diff --git a/wms/crm/crmm04-edit.php b/wms/crm/crmm04-edit.php index 13e20ab7..98f2ff96 100644 --- a/wms/crm/crmm04-edit.php +++ b/wms/crm/crmm04-edit.php @@ -98,7 +98,7 @@ $hope_project_elevator_spec_columm = [ //'weight' => ['label' => "載重(KG)", "tag" => 'number', 'attr' => ['name' => 'weight[]', 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], 'stop' => ['label' => "停數", "tag" => 'number', 'attr' => ['name' => 'stop[]', 'min=0', 'class' => 'form-control form-control-sm']], 'open' => ['label' => "開門方式", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'open[]', 'class' => 'form-control form-control-sm'], 'options' => $open_kind_opt], - 'speed' => ['label' => "速度(m/min)", "tag" => 'select', 'attr' => ['name' => 'speed[]', 'class' => 'form-control form-control-sm'],'options' => $speed_opt], + 'speed' => ['label' => "速度(m/min)", "tag" => 'select', 'attr' => ['name' => 'speed[]', 'class' => 'form-control form-control-sm'], 'options' => $speed_opt], 'spec_num' => ['label' => "數量", "tag" => 'digits', 'attr' => ['name' => 'spec_num[]', 'min=0', 'class' => 'form-control form-control-sm']], 'spec_price' => ['label' => "單價", "tag" => 'number', 'attr' => ['name' => 'spec_price[]', 'min=0', 'class' => 'form-control form-control-sm']], @@ -204,14 +204,14 @@ function base_url($url) "indent | alignleft center alignright justify | undo redo | " }); - $('#cmecTbody').on('click', 'input[name^=spec_num]', function(){ - $(this).unbind().keyup(function(){ + $('#cmecTbody').on('click', 'input[name^=spec_num]', function() { + $(this).unbind().keyup(function() { $(this).val($(this).val().replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",")); sumNum(); }); }); - $('#is_renovation').change(function(){ + $('#is_renovation').change(function() { console.log($(this).val()); }); @@ -220,8 +220,8 @@ function base_url($url) }); sumNum = function() { var numAll = 0; - $("input[name^=spec_num]").each(function(){ - numAll += Number($(this).val().replace(/[,]+/g,"")); + $("input[name^=spec_num]").each(function() { + numAll += Number($(this).val().replace(/[,]+/g, "")); }); $('#num').val(numAll); } @@ -295,7 +295,7 @@ function base_url($url) } selectHpeoRow = function(obj) { - var id = $(obj).parent().parent().find('td:nth-child(1)>div').text(); + var id = $(obj).parent().parent().find('td:nth-child(1)>div').text(); var spec = $(obj).parent().parent().find('td:nth-child(2)>div').text(); var memo = $(obj).parent().parent().find('td:nth-child(3)>div').text(); var optional = $(obj).parent().parent().find('td:nth-child(4)>div').text(); @@ -307,13 +307,13 @@ function base_url($url) //').last() var tr = $('#hpeoTbody tr').last(); $(tr).children('td').each(function(i) { - $(this).find("input[name^='id']").val(id.trim()); + $(this).find("input[name^='id']").val(id.trim()); $(this).find("input[name^='spec']").val(spec.trim()); $(this).find("input[name^='memo']").val(memo.trim()); $(this).find("input[name^='optional']").val(optional.trim()); $(this).find("input[name^='unit']").val(unit.trim()); $(this).find("input[name^='price']").val(price.trim()); - + }); } @@ -333,7 +333,7 @@ function base_url($url)
-

有望客戶()訂正

+

有望客戶()訂正

@@ -381,7 +381,7 @@ function base_url($url)
-
+ +