Browse Source

1.新增APP生產進度及安裝進度與作番大日程日期關聯

2.待簽新增判定 flow_code = 'Z' 不顯示
3.大日程地址顯示優先抓取 real_address 再抓取 address
4.新增個欄位維護人 modal
5.修正 在裝中統計表 總計 bug
6.展廳 分布圖 新增補丁code 超過兩個月沒保養的會帶入假資料
gary
gary_chen\gary_chen 1 year ago
parent
commit
9461fa3b77
  1. 146
      app/app-wipinstallation-log.php
  2. 103
      app/app-wipproduction-log.php
  3. 253
      phb/map/tw.html
  4. 56
      wms/css/view/wipwhole-index.php
  5. 56
      wms/css/view/wipwhole-renovate-index.php
  6. 89
      wms/frame/api_getdata.php
  7. 2
      wms/wipwhole-index-table-html.php
  8. 64
      wms/wipwhole-index.php
  9. 2
      wms/wipwhole-renovate-index-table-html.php
  10. 88
      wms/wipwhole-renovate-index.php
  11. 9
      wms/wipwhole-wipinstallstatus-index.php
  12. 32
      wms/wipwholeinstall-index-table-html.php
  13. 17
      wms/wipwholeinstall-renovate-index-table-html.php

146
app/app-wipinstallation-log.php

@ -24,6 +24,150 @@ if ($user_id == 'A000000001') {
$sql = "SELECT * FROM wipinstallation where (facilityno = '$facilityno') order by id desc"; # sql語法存在變數中
} else {
$sql = "
SELECT
'0' AS id,
facilityno,
SUBSTR(real_contract_arrival_date,1,10) AS issue_time,
'分配安裝人員' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND real_contract_arrival_date != ''
AND real_contract_arrival_date IS NOT NULL
UNION
SELECT
'1' AS id,
facilityno,
SUBSTR(real_arrival_date,1,10) AS issue_time,
'已出貨' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND real_arrival_date != ''
AND real_arrival_date IS NOT NULL
UNION
SELECT
'2' AS id,
facilityno,
SUBSTR(estimate_install_start_date,1,10) AS issue_time,
'預計安裝日期' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND estimate_install_start_date != ''
AND estimate_install_start_date IS NOT NULL
UNION
SELECT
'3' AS id,
facilityno,
SUBSTR(install_start_date,1,10) AS issue_time,
'已開工' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND install_start_date != ''
AND install_start_date IS NOT NULL
UNION
SELECT
'4' AS id,
facilityno,
SUBSTR(estimate_tryrun_start_date,1,10) AS issue_time,
'預計試車日期' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND estimate_tryrun_start_date != ''
AND estimate_tryrun_start_date IS NOT NULL
UNION
SELECT
'5' AS id,
facilityno,
SUBSTR(tryrun_start_date,1,10) AS issue_time,
'開始試車' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND tryrun_start_date != ''
AND tryrun_start_date IS NOT NULL
UNION
SELECT
'6' AS id,
facilityno,
SUBSTR(end_qc_date,1,10) AS issue_time,
'完成QC' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND end_qc_date != ''
AND end_qc_date IS NOT NULL
UNION
SELECT
'7' AS id,
facilityno,
SUBSTR(official_check_date,1,10) AS issue_time,
'完成官檢' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND official_check_date != ''
AND official_check_date IS NOT NULL
UNION
SELECT
'8' AS id,
facilityno,
SUBSTR(delivery_date,1,10) AS issue_time,
'完成移交' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
AND delivery_date != ''
AND delivery_date IS NOT NULL
/*
SELECT
'0' AS id,
facilityno,
@ -107,6 +251,8 @@ if ($user_id == 'A000000001') {
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
*/
ORDER BY id DESC
";
}

103
app/app-wipproduction-log.php

@ -27,6 +27,101 @@ if ($user_id == 'A000000001') {
SELECT
'0' AS id,
facilityno,
'' AS issue_time,
'生產中' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE facilityno = '$facilityno'
UNION
SELECT
'1' AS id,
facilityno,
SUBSTR(estimated_shipping_date,1,10) AS issue_time,
'生產完成' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE facilityno = '$facilityno'
AND estimated_shipping_date != ''
AND estimated_shipping_date IS NOT NULL
UNION
SELECT
'2' AS id,
facilityno,
SUBSTR(estimated_shipping_schedule_date,1,10) AS issue_time,
'預計攬收' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE facilityno = '$facilityno'
AND estimated_shipping_schedule_date != ''
AND estimated_shipping_schedule_date IS NOT NULL
UNION
SELECT
'3' AS id,
facilityno,
SUBSTR(actual_tofactory_date,1,10) AS issue_time,
'攬收成功(桃園)' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE facilityno = '$facilityno'
AND actual_tofactory_date != ''
AND actual_tofactory_date IS NOT NULL
UNION
SELECT
'4' AS id,
facilityno,
SUBSTR(real_contract_arrival_date,1,10) AS issue_time,
'預計出貨日' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE facilityno = '$facilityno'
AND real_contract_arrival_date != ''
AND real_contract_arrival_date IS NOT NULL
UNION
SELECT
'5' AS id,
facilityno,
SUBSTR(real_arrival_date,1,10) AS issue_time,
'出貨' AS 'process',
'bg-success' AS 'light_color',
'' AS memo,
creater,
create_at
FROM wipwholestatus
WHERE facilityno = '$facilityno'
AND real_arrival_date != ''
AND real_arrival_date IS NOT NULL
/*
UNION
SELECT
'1' AS id,
facilityno,
SUBSTR(prattford_order_date,1,10) AS issue_time,
CASE prattford_order_date_verify
WHEN 0 THEN '生產完成'
@ -47,7 +142,7 @@ if ($user_id == 'A000000001') {
WHERE (facilityno = '$facilityno')
UNION
SELECT
'1' AS id,
'2' AS id,
facilityno,
SUBSTR(goods_type_date,1,10) AS issue_time,
CASE goods_type
@ -71,7 +166,7 @@ if ($user_id == 'A000000001') {
WHERE (facilityno = '$facilityno')
UNION
SELECT
'2' AS id,
'3' AS id,
facilityno,
SUBSTR(actual_tofactory_date,1,10) AS issue_time,
CASE arrival_date_verify
@ -97,7 +192,7 @@ if ($user_id == 'A000000001') {
WHERE (facilityno = '$facilityno')
UNION
SELECT
'3' AS id,
'4' AS id,
facilityno,
SUBSTR(real_arrival_date,1,10) AS issue_time,
IF(real_arrival_date IS NOT NULL || real_arrival_date != '','已出貨','未出貨') AS 'process',
@ -107,6 +202,8 @@ if ($user_id == 'A000000001') {
create_at
FROM wipwholestatus
WHERE (facilityno = '$facilityno')
*/
ORDER BY id DESC
";
}

253
phb/map/tw.html

@ -1,28 +1,29 @@
<html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>電梯地圖</title>
<link rel="stylesheet" href="map.css"/>
<link rel="stylesheet" href="style.css"/>
<link rel="stylesheet" href="map.css" />
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="jsgrid.css">
<link rel="stylesheet" href="jsgrid-theme.css">
</head>
<body>
<div id="map" style="height: 100%"></div>
<!-- Jquery -->
<script src="js/lib/jquery-3.4.1.min.js"></script>
<!-- Bootstrap-->
<script src="js/lib/popper.min.js"></script>
<script src="js/lib/bootstrap.min.js"></script>
<script src="../da/chart.js/Chart.js"></script>
<script src="js/jsgrid.js"></script>
<script>
<div id="map" style="height: 100%"></div>
<!-- Jquery -->
<script src="js/lib/jquery-3.4.1.min.js"></script>
<!-- Bootstrap-->
<script src="js/lib/popper.min.js"></script>
<script src="js/lib/bootstrap.min.js"></script>
<script src="../da/chart.js/Chart.js"></script>
<script src="js/jsgrid.js"></script>
<script>
// This example displays a marker at the center of Australia.
// When the user clicks the marker, an info window opens.
const urll = location.href;
@ -30,7 +31,7 @@
function initMap() {
var pointURL = wurl + 'phb/map/point.php';
// var pointURL = wurl + 'phbbackup/map/point.php';
var points=[];
var points = [];
var currentInfoWindow = null;
$.ajax({
type: "GET",
@ -39,25 +40,25 @@
var result = eval("(" + msg + ")");
if (result.length > 0) {
for (i = 0; i < result.length; i++) {
var obj={};
var longitude= Number(result[i]['longitude']);
var obj = {};
var longitude = Number(result[i]['longitude']);
var latitude = Number(result[i]['latitude']);
var custormname=result[i]['name'];
obj['lat']=latitude;
obj['lng']=longitude;
var custormname = result[i]['name'];
obj['lat'] = latitude;
obj['lng'] = longitude;
var icon = {
url: 'icon/lift.png',
//scaledSize: new google.maps.Size(52, 50), // scaled size
scaledSize: new google.maps.Size(32.4, 31.2), // scaled size
origin: new google.maps.Point(0,0), // origin
origin: new google.maps.Point(0, 0), // origin
anchor: new google.maps.Point(0, 0) // anchor
};
const marker = new google.maps.Marker({
position: obj,
map,
title:custormname,
icon:icon
title: custormname,
icon: icon
});
const contentString =
@ -67,21 +68,21 @@
'<div id="choosecontent" style="height: 430px;width: 500px">' +
'</div>' +
'</div>'+
'</div>' +
"</div>" +
"</div>";
const infowindow = new google.maps.InfoWindow({
content: contentString
});
clickMarker(marker,latitude,infowindow);
clickMarker(marker, latitude, infowindow);
}
}
}
})
function clickMarker(marker,latitude,infowindow){
function clickMarker(marker, latitude, infowindow) {
marker.addListener("click", (e) => {
if (currentInfoWindow != null) {
currentInfoWindow.close();
@ -92,15 +93,15 @@
shouldFocus: false,
});
currentInfoWindow = infowindow;
var chooselat=e.latLng.lat();
var accountURL = wurl + 'phb/map/account.php?latitude='+chooselat;
var chooselat = e.latLng.lat();
var accountURL = wurl + 'phb/map/account.php?latitude=' + chooselat;
$.ajax({
type: "GET",
url: accountURL,
success: function (msg) {
var result = eval("(" + msg + ")");
console.log(result);
var htmltai='';
var htmltai = '';
if (result.length > 0) {
for (i = 0; i < result.length; i++) {
var name = result[i]['name'];
@ -108,13 +109,13 @@
var address = result[i]['address'];
var repairername = result[i]['repairername'];
var repairertel = result[i]['repairertel'];
var customerid=result[i]['customerid'];
var customerid = result[i]['customerid'];
htmltai +=
'<div class="card card-primary card-outline mt-05">' +
'<div class="card-body box-profile">' +
'<h2 class="profile-username text-center">'+name+'</h2>' +
'<p class="lead text-center"><a href="tel:' + tel + '">' + tel+ '</a></p>' +
'<h2 class="profile-username text-center">' + name + '</h2>' +
'<p class="lead text-center"><a href="tel:' + tel + '">' + tel + '</a></p>' +
'<p class="lead text-center">' + address + '</p>' +
'<ul class="list-group list-group-unbordered mb-3 lead">' +
'<li class="list-group-item">' +
@ -124,7 +125,7 @@
'<b>保養員聯繫電話</b> <a class="float-right" href="tel:' + repairertel + '" >' + repairertel + '</a> ' +
'</li>' +
'</ul>' +
'<p class="lead text-center"><a href="#" onclick=jibnen("'+customerid+'","'+chooselat+'")>查看電梯</a></p>'
'<p class="lead text-center"><a href="#" onclick=jibnen("' + customerid + '","' + chooselat + '")>查看電梯</a></p>'
'</div>' +
'</div>';
}
@ -138,46 +139,46 @@
//const uluru = { lat:24.9966186 , lng: 121.1594333 };
//const uluru = { lat:23.974003045820343 , lng: 120.97981583669126 };
const uluru = { lat:23.633310942708295, lng: 120.77153763992857 };
const uluru = { lat: 23.633310942708295, lng: 120.77153763992857 };
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 8,
center: uluru,
// disableDefaultUI: true,
});
const eledata2=document.createElement("div");
eledata2.className='gm-style-mtc';
eledata2.style.cssText="float: left; position: relative;";
const eledata2 = document.createElement("div");
eledata2.className = 'gm-style-mtc';
eledata2.style.cssText = "float: left; position: relative;";
eledata2.innerHTML = "新竹以南、台南以北建置中。";
eledata2.style.cssText="background: none padding-box rgb(255, 255, 255);border: 0px; margin-left: 10px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 24px;width:200px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 15px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
eledata2.style.cssText = "background: none padding-box rgb(255, 255, 255);border: 0px; margin-left: 10px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 24px;width:200px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 15px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
const eledata=document.createElement("div");
eledata.className='gm-style-mtc';
eledata.style.cssText="float: left; position: relative;";
const eledata = document.createElement("div");
eledata.className = 'gm-style-mtc';
eledata.style.cssText = "float: left; position: relative;";
const fenbutu = document.createElement("button");
fenbutu.textContent = "分佈圖";
fenbutu.style.cssText="background: none padding-box rgb(255, 255, 255);border: 0px; margin-left: 10px;text-transform: none; -webkit-appearance: none; position: relative; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
fenbutu.style.cssText = "background: none padding-box rgb(255, 255, 255);border: 0px; margin-left: 10px;text-transform: none; -webkit-appearance: none; position: relative; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
eledata.appendChild(fenbutu);
const eledata1=document.createElement("div");
eledata1.className='gm-style-mtc xia';
eledata1.style.cssText="width:100px;margin-left: 10px;margin-top: 5px; display:none";
const eledata1 = document.createElement("div");
eledata1.className = 'gm-style-mtc xia';
eledata1.style.cssText = "width:100px;margin-left: 10px;margin-top: 5px; display:none";
eledata.appendChild(eledata1);
const dainti = document.createElement("button");
dainti.textContent = "電梯";
dainti.style.cssText="background: none padding-box rgb(255, 255, 255); border: 0px; margin-top: 2px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
dainti.style.cssText = "background: none padding-box rgb(255, 255, 255); border: 0px; margin-top: 2px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
const baoyangyuan = document.createElement("button");
baoyangyuan.textContent = "保養員";
baoyangyuan.style.cssText="background: none padding-box rgb(255, 255, 255);border: 0px;margin-top: 2px; text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
baoyangyuan.style.cssText = "background: none padding-box rgb(255, 255, 255);border: 0px;margin-top: 2px; text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
const gongchang = document.createElement("button");
gongchang.textContent = "工廠";
gongchang.style.cssText="background: none padding-box rgb(255, 255, 255); border: 0px; margin-top: 2px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
gongchang.style.cssText = "background: none padding-box rgb(255, 255, 255); border: 0px; margin-top: 2px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
const gongdi = document.createElement("button");
gongdi.textContent = "工地";
gongdi.style.cssText="background: none padding-box rgb(255, 255, 255); border: 0px; margin-top: 2px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
gongdi.style.cssText = "background: none padding-box rgb(255, 255, 255); border: 0px; margin-top: 2px;text-transform: none; -webkit-appearance: none; position: relative; cursor: pointer; user-select: none; direction: ltr; overflow: hidden; text-align: center; height: 40px;width:70px; vertical-align: middle; color: rgb(0, 0, 0); font-family: Roboto, Arial, sans-serif; font-size: 18px; border-bottom-left-radius: 2px; border-top-left-radius: 2px; -webkit-background-clip: padding-box; box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px; min-width: 36px; font-weight: 500;";
eledata1.appendChild(dainti);
@ -194,32 +195,32 @@
eledata1.style.display = "none";
})
dainti.addEventListener('click', () => {
window.location.href="tw.html";
window.location.href = "tw.html";
});
baoyangyuan.addEventListener('click', () => {
window.location.href="person.html";
window.location.href = "person.html";
});
gongchang.addEventListener('click', () => {
window.location.href="factory.html";
window.location.href = "factory.html";
});
gongdi.addEventListener('click', () => {
window.location.href="worksite.html";
window.location.href = "worksite.html";
});
}
window.initMap = initMap;
function kehu(chooselng){
function kehu(chooselng) {
var accountURL = wurl + 'phb/map/account.php?latitude='+chooselng;
var accountURL = wurl + 'phb/map/account.php?latitude=' + chooselng;
$.ajax({
type: "GET",
url: accountURL,
success: function (msg) {
var result = eval("(" + msg + ")");
console.log(result);
var htmltai='';
var htmltai = '';
if (result.length > 0) {
for (i = 0; i < result.length; i++) {
var name = result[i]['name'];
@ -227,14 +228,14 @@
var address = result[i]['address'];
var repairername = result[i]['repairername'];
var repairertel = result[i]['repairertel'];
var customerid=result[i]['customerid'];
var customerid = result[i]['customerid'];
htmltai +=
'<div class="card card-primary card-outline mt-05">' +
'<div class="card-body box-profile">' +
'<h3 class="profile-username text-center">'+name+'</h3>' +
'<p class="text-muted text-center"><a href="tel:' + tel + '">' + tel+ '</a</p>' +
'<p class="text-muted text-center">' + address + '&nbsp;&nbsp;<a href="#" onclick=jibnen("'+customerid+'","'+chooselng+'")>查看作番</a></p>' +
'<h3 class="profile-username text-center">' + name + '</h3>' +
'<p class="text-muted text-center"><a href="tel:' + tel + '">' + tel + '</a</p>' +
'<p class="text-muted text-center">' + address + '&nbsp;&nbsp;<a href="#" onclick=jibnen("' + customerid + '","' + chooselng + '")>查看作番</a></p>' +
'<ul class="list-group list-group-unbordered mb-3">' +
'<li class="list-group-item">' +
'<b>保養員</b> <a class="float-right">' + repairername + '</a>' +
@ -254,24 +255,24 @@
})
}
function jibnen(customerid,chooselng){
var facilityURL = wurl + 'phb/map/facility.php?customerid='+customerid;
function jibnen(customerid, chooselng) {
var facilityURL = wurl + 'phb/map/facility.php?customerid=' + customerid;
$.ajax({
type: "GET",
url: facilityURL,
success: function (msg) {
var result = eval("(" + msg + ")");
console.log(result);
var htmlfacility='';
var htmlfacility = '';
htmlfacility = '<div class="card card-primary card-outline">' +
' <div class="appHeader bg-primary text-light">' +
' <div class="left">' +
' <a href="#" onclick=kehu("'+chooselng+'") class="headerButton">' +
' <a href="#" onclick=kehu("' + chooselng + '") class="headerButton">' +
' <ion-icon name="chevron-back-outline"></ion-icon>' +
' </a>' +
' </div>' +
' <div class="pageTitle">電梯</div>' +
' </div>'+
' </div>' +
'<div class="card-body box-profile" id="facility">' +
'</div>' +
@ -279,12 +280,12 @@
if (result[0].length > 0) {
var htmlds='';
var htmlds = '';
// next month
const date = new Date();
const ndate = new Date(date.setMonth(date.getMonth()+1));
const ndate = new Date(date.setMonth(date.getMonth() + 1));
let nextDay = String(ndate.getDate()).padStart(2, '0');
let nextMonth = String(ndate.getMonth()+1).padStart(2,"0");
let nextMonth = String(ndate.getMonth() + 1).padStart(2, "0");
let nextYear = ndate.getFullYear();
//let nextDate = `${nextYear}-${nextMonth}-${nextDay}`;
let nextDate = `${nextYear}-${nextMonth}-15`;
@ -295,64 +296,68 @@
var speed = result[0][i]['speed'];
var numberoffloor = result[0][i]['numberoffloor'];
var numberofstop = (result[0][i]['numberofstop'] == 1) ? "2" : result[0][i]['numberofstop']; // 預設2停
var actualdate = (result[1][facilityno]) ? result[1][facilityno]['actualdate'] : "預計 "+nextDate;
var actualdate = (result[1][facilityno]) ? result[1][facilityno]['actualdate'] : "預計 " + nextDate;
var sid = (result[1][facilityno]) ? result[1][facilityno]['id'] : "0";
var schedule_detail = "";
// 補丁 actualdate = 展示太久沒更新保養日期做假資料
actualdate = fakeActualdate(actualdate);
if (sid > 0) {
schedule_detail += '<li class="list-group-item"><b>保養明細</b> ';
schedule_detail += '<a href="/app/app-maintenance-uploadsuccess-survey.php?id_schedule='+sid+'&view=Y" class="float-right" target="_self">連結</a>';
schedule_detail += '<a href="/app/app-maintenance-uploadsuccess-survey.php?id_schedule=' + sid + '&view=Y&actualdate=' + actualdate + '" class="float-right" target="_self">連結</a>';
schedule_detail += '</li>';
}
var ckmore = "";
if (sid > 0) {
ckmore = '<a href="/app/app-maintenance-uploadsuccess-photo-review_v2.php?id_schedule='+sid+'" target="_self" title="瀏覽保養照片"><img src="icon/camera.png" width="25" style="vertical-align:middle;"></a>';
ckmore = '<a href="/app/app-maintenance-uploadsuccess-photo-review_v2.php?id_schedule=' + sid + '" target="_self" title="瀏覽保養照片"><img src="icon/camera.png" width="25" style="vertical-align:middle;"></a>';
}
var baditems = (result[1][facilityno]) ? result[1][facilityno]['baditems'] : "";
var sresult = "";
if (baditems) {
if (result[1][facilityno]['item_detail']) {
sresult += '<br><a class="float-left" style="margin-top:6px;">'+baditems+'<br>'+result[1][facilityno]['item_detail']+'</a>';
sresult += '<br><a class="float-left" style="margin-top:6px;">' + baditems + '<br>' + result[1][facilityno]['item_detail'] + '</a>';
} else {
sresult += '<a class="float-right">'+baditems+'</a>';
sresult += '<a class="float-right">' + baditems + '</a>';
}
} else {
sresult += '<a class="float-right">新梯待保養</a>';
}
var fault_message = '';
if (result[2][facilityno]) {
for (j=0; j<result[2][facilityno].length; j++) {
fault_message += result[2][facilityno][j]+'<br>';
for (j = 0; j < result[2][facilityno].length; j++) {
fault_message += result[2][facilityno][j] + '<br>';
}
} else fault_message = '狀態正常';
htmlds +=
'<ul class="list-group list-group-unbordered mb-3 lead">' +
'<li class="list-group-item list-group-item-secondary">' +
'<b>電梯ID</b> <a class="float-right">'+facilityno+'</a>' +
'<b>電梯ID</b> <a class="float-right">' + facilityno + '</a>' +
'</li>' +
'<li class="list-group-item">' +
'<b>速度</b> <a class="float-right">'+speed+'m/min</a>' +
'<b>速度</b> <a class="float-right">' + speed + 'm/min</a>' +
'</li>' +
'<li class="list-group-item">' +
'<b>樓層</b> <a class="float-right">'+numberoffloor+'樓</a>' +
'<b>樓層</b> <a class="float-right">' + numberoffloor + '樓</a>' +
'</li>' +
'<li class="list-group-item">' +
'<b>樓停</b> <a class="float-right">'+numberofstop+'停</a>' +
'<b>樓停</b> <a class="float-right">' + numberofstop + '停</a>' +
'</li>' +
'<li class="list-group-item">' +
'<b>地址</b> <a class="float-right">'+address+'</a>' +
'<b>地址</b> <a class="float-right">' + address + '</a>' +
'</li>' +
'<li class="list-group-item">' +
'<b>最近一次保養日期</b> <a class="float-right">'+actualdate+'</a>' +
'<b>最近一次保養日期</b> <a class="float-right">' + actualdate + '</a>' +
'</li>' +
schedule_detail +
'<li class="list-group-item">' +
'<b>保養結果</b> '+ckmore+ sresult +
'<b>保養結果</b> ' + ckmore + sresult +
'</li>' +
'<li class="list-group-item">' +
'<b>故障訊息</b> <a class="float-right">'+fault_message+'</a>' +
'<b>故障訊息</b> <a class="float-right">' + fault_message + '</a>' +
//'<br><a class="float-right">' + item_detail + '</a>' +
'</li>' +
'</ul>' ;
'</ul>';
/*
'<li class="list-group-item">' +
'<a href="#" onclick=jishi("'+facilityno+'","'+customerid+'") class="btn btn-primary width40"><b>及時狀態</b></a>'+
@ -370,10 +375,10 @@
}
// 及時狀態
function jishi(facilityno,customerid){
function jishi(facilityno, customerid) {
var htmlds="";
var facilitystatusURL = wurl + 'phb/map/facility_status.php?facilityno='+facilityno;
var htmlds = "";
var facilitystatusURL = wurl + 'phb/map/facility_status.php?facilityno=' + facilityno;
$.ajax({
type: "GET",
url: facilitystatusURL,
@ -385,12 +390,12 @@
htmlds = '<div>' +
' <div class="appHeader bg-primary text-light">' +
' <div class="left">' +
' <a href="#" onclick=jibnen("'+customerid+'") class="headerButton">' +
' <a href="#" onclick=jibnen("' + customerid + '") class="headerButton">' +
' <ion-icon name="chevron-back-outline"></ion-icon>' +
' </a>' +
' </div>' +
' <div class="pageTitle">及時狀態</div>' +
' </div>'+
' </div>' +
'<div class="chart">' +
'<canvas id="lineChart" height="200"></canvas>' +
'</div></div>';
@ -400,14 +405,14 @@
//折线图
var lineChartCanvas = $('#lineChart')
let linedata = {
"labels":result['labels'],
"labels": result['labels'],
"datasets": [{
"label": "走行時間",
"data":result['walking_hours'] ,
"data": result['walking_hours'],
"fill": false,
"borderColor": "rgb(75, 192, 192)",
"lineTension": 0.1
},{
}, {
"label": "走行次數",
"data": result['walking_times'],
"fill": false,
@ -453,7 +458,7 @@
var meta = chartInstance.controller.getDatasetMeta(i);
meta.data.forEach(function (bar, index) {
var data = dataset.data[index];
ctx.fillText(data, bar._model.x, bar._model.y-5);
ctx.fillText(data, bar._model.x, bar._model.y - 5);
});
});
}
@ -473,10 +478,10 @@
}
// 故障內容
function guzhang(facilityno,customerid){
function guzhang(facilityno, customerid) {
var htmlds='';
var facilitybreakdownURL = wurl + 'phb/map/facility_breakdown.php?facilityno='+facilityno;
var htmlds = '';
var facilitybreakdownURL = wurl + 'phb/map/facility_breakdown.php?facilityno=' + facilityno;
$.ajax({
type: "GET",
url: facilitybreakdownURL,
@ -487,16 +492,16 @@
htmlds = '<div>' +
' <div class="appHeader bg-primary text-light">' +
' <div class="left">' +
' <a href="#" onclick=jibnen("'+customerid+'") class="headerButton">' +
' <a href="#" onclick=jibnen("' + customerid + '") class="headerButton">' +
' <ion-icon name="chevron-back-outline"></ion-icon>' +
' </a>' +
' </div>' +
' <div class="pageTitle">故障內容</div>' +
' </div>'+
' </div>' +
'<div class="chart">' +
'<canvas id="guzhangchart" height="100" ></canvas>' +
'</div></div>';
htmlds+='<div style="width: 100%;height:200px;overflow: scroll">' +
htmlds += '<div style="width: 100%;height:200px;overflow: scroll">' +
'<div id="jsGrid1" style="height: 300px;font-size: 12px"></div>' +
'</div>'
$('#choosecontent').empty().append(htmlds);
@ -551,7 +556,7 @@
var meta = chartInstance.controller.getDatasetMeta(i);
meta.data.forEach(function (bar, index) {
var data = dataset.data[index];
ctx.fillText(data, bar._model.x, bar._model.y-5);
ctx.fillText(data, bar._model.x, bar._model.y - 5);
});
});
}
@ -572,12 +577,12 @@
paging: false,
data: result['tables'],
fields: [
{ name: "id",title:"項次", type: "text", },
{ name: "facilityno",title:"電梯編號", type: "text", },
{ name: "identifying_code",title:"識別碼", type: "text", },
{ name: "breakdown_code",title:"故障代碼", type: "text", },
{ name: "breakdown_content",title:"故障内容", type: "text", },
{ name: "breakdown_date",title:"故障时间", type: "text", },
{ name: "id", title: "項次", type: "text", },
{ name: "facilityno", title: "電梯編號", type: "text", },
{ name: "identifying_code", title: "識別碼", type: "text", },
{ name: "breakdown_code", title: "故障代碼", type: "text", },
{ name: "breakdown_content", title: "故障内容", type: "text", },
{ name: "breakdown_date", title: "故障时间", type: "text", },
]
});
@ -589,8 +594,44 @@
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDCJp-JIcYIyeR_QNpREvsepApvVytZWOs&callback=initMap" async defer></script>
// 補丁 actualdate = 展示太久沒更新保養日期做假資料
function fakeActualdate(actualdate) {
if (actualdate.substring(0, 2) == '預計') {
return actualdate;
}
const today = new Date();
const currentYear = today.getFullYear();
const currentMonth = today.getMonth() - 1;
let datetimeArr = actualdate.split(' ');
let dateArr = datetimeArr[0].split('-');
let timeArr = datetimeArr[1].split(':');
let year = parseInt(dateArr[0]);
let month = parseInt(dateArr[1]);
let day = parseInt(dateArr[2]);
let hour = parseInt(timeArr[0]);
let minute = parseInt(timeArr[1]);
let second = parseInt(timeArr[2]);
if (day > 30) {
day = day - 1;
}
// return "2020-01-01 00:00:00";
if (year <= currentYear && month <= currentMonth) {
return year + '-' + (currentMonth + 1) + '-' + day + ' ' + hour + ':' + minute + ':' + second;
} else {
return actualdate;
}
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDCJp-JIcYIyeR_QNpREvsepApvVytZWOs&callback=initMap"
async defer></script>
</body>
</html>

56
wms/css/view/wipwhole-index.php

@ -126,51 +126,61 @@
/* 旋转动画 */
}
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
padding-top: 100px; /* Location of the box */
/* The Modal (background) */
.modal {
display: none;
/* Hidden by default */
position: fixed;
/* Stay in place */
z-index: 1;
/* Sit on top */
padding-top: 100px;
/* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
width: 100%;
/* Full width */
height: 100%;
/* Full height */
overflow: auto;
/* Enable scroll if needed */
}
}
.modal .back{
.modal .back {
position: absolute;
top: 0;
left:0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
/* Modal Content */
.modal-content {
background-color: rgba(0, 0, 0, 0.4);
/* Black w/ opacity */
}
/* Modal Content */
.modal-content {
z-index: 9;
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}
}
/* The Close Button */
.close {
/* The Close Button */
.close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
}
.close:hover,
.close:focus {
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
}
@keyframes spin {

56
wms/css/view/wipwhole-renovate-index.php

@ -126,6 +126,62 @@
/* 旋转动画 */
}
/* The Modal (background) */
.modal {
display: none;
/* Hidden by default */
position: fixed;
/* Stay in place */
z-index: 1;
/* Sit on top */
padding-top: 100px;
/* Location of the box */
left: 0;
top: 0;
width: 100%;
/* Full width */
height: 100%;
/* Full height */
overflow: auto;
/* Enable scroll if needed */
}
.modal .back {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.4);
/* Black w/ opacity */
}
/* Modal Content */
.modal-content {
z-index: 9;
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}
/* The Close Button */
.close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
@media screen and (max-width: 600px) {
table {

89
wms/frame/api_getdata.php

@ -1,4 +1,5 @@
<?php
/**
* 提供首頁資料
* @url /frame/api_getdata.php
@ -20,12 +21,13 @@
*
*/
$json = array("st"=>"ok","err"=>"","errCode"=>"");
$json = array("st" => "ok", "err" => "", "errCode" => "");
/**
* 表單列表
*/
function get_forms() {
function get_forms()
{
global $link;
$i = 1;
@ -45,7 +47,8 @@ function get_forms() {
/**
* 公告欄列表
*/
function get_board() {
function get_board()
{
global $link;
$i = 1;
@ -70,14 +73,15 @@ function get_board() {
/**
* 系統通知列表
*/
function get_notice($token) {
function get_notice($token)
{
global $link;
if (!$token) throw new \Exception("token empty", 802);
list($user_id) = explode(".", $token);
$i = 1;
$data = [];
$sql = "select id, kind, related_id, title from notice ";
$sql .= "where (permission like '%".$user_id."%' or permission = 'ALL' or creater = '$user_id') ";
$sql .= "where (permission like '%" . $user_id . "%' or permission = 'ALL' or creater = '$user_id') ";
$sql .= "and haveread != '1' ";
$sql .= "order by create_at desc limit 0, 6";
$res = mysqli_query($link, $sql);
@ -95,24 +99,64 @@ function get_notice($token) {
/**
* 待我簽核
*/
function get_pending($token) {
function get_pending($token)
{
global $link;
if (!$token) throw new \Exception("token empty", 802);
list($user_id) = explode(".", $token);
$i = 1;
$data = [];
$sql = "
SELECT
t.system_id,
t.system_name,
t.flow_id,
t.flow_name,
COUNT(*)
FROM (
SELECT s.form_key,
m.system_id,
y.system_name,
m.flow_id,
m.flow_name,
m.path
FROM subflow s,
flow f,
flow_main m,
system_main y
WHERE EXISTS (
SELECT form_key,
MAX(seq)
FROM subflow
GROUP BY form_key
HAVING SUBSTRING(s.form_key, 1, 10) = form_key
AND s.seq = max(seq)
)
AND SUBSTRING(s.form_key, 1, 10) = f.form_key
AND f.flow_id = m.flow_id
AND f.system_id = y.system_id
AND s.current_assigner = '$user_id'
AND f.flow_code != 'Z'
) t
GROUP BY t.system_id,
t.flow_id,
t.system_name,
t.flow_name
LIMIT 0, 6
";
// $sql = "select t.system_id, t.system_name, t.flow_id, t.flow_name, count(*) from (";
// $sql .= "select s.form_key, m.system_id, y.system_name, m.flow_id, m.flow_name, m.path from subflow s, flow f, flow_main m, system_main y ";
// $sql .= "where ";
// $sql .= "EXISTS (
// select form_key, max(seq) from subflow
// group by form_key
// having SUBSTRING(s.form_key,1,10) = form_key and s.seq = max(seq)
// ) ";
// $sql .= "and SUBSTRING(s.form_key,1,10) = f.form_key and f.flow_id = m.flow_id and f.system_id = y.system_id and s.current_assigner = '$user_id'";
// $sql .= ") t group by t.system_id, t.flow_id, t.system_name, t.flow_name ";
// $sql .= "limit 0, 6";
$sql = "select t.system_id, t.system_name, t.flow_id, t.flow_name, count(*) from (";
$sql .= "select s.form_key, m.system_id, y.system_name, m.flow_id, m.flow_name, m.path from subflow s, flow f, flow_main m, system_main y ";
$sql .= "where ";
$sql .= "EXISTS (
select form_key, max(seq) from subflow
group by form_key
having SUBSTRING(s.form_key,1,10) = form_key and s.seq = max(seq)
) ";
$sql .= "and SUBSTRING(s.form_key,1,10) = f.form_key and f.flow_id = m.flow_id and f.system_id = y.system_id and s.current_assigner = '$user_id'";
$sql .= ") t group by t.system_id, t.flow_id, t.system_name, t.flow_name ";
$sql .= "limit 0, 6";
$res = mysqli_query($link, $sql);
while ($row = mysqli_fetch_row($res)) {
$data[$i]["sid"] = $row[0];
@ -139,7 +183,7 @@ function get_pending($token) {
return $data;
}
try{
try {
if (empty($_REQUEST)) throw new \Exception("post empty", 801);
if (empty($_REQUEST["p"])) throw new \Exception("post p empty", 801);
@ -161,13 +205,10 @@ try{
default:
echo "error";
}
}catch(\Exception $ex){
} catch (\Exception $ex) {
$json["st"] = "err";
$json["err"] = $ex->getMessage();
$json["errCode"] = (!empty($ex->getCode()))?$ex->getCode():701;
$json["errCode"] = (!empty($ex->getCode())) ? $ex->getCode() : 701;
}
echo json_encode($json,JSON_UNESCAPED_UNICODE);
?>
echo json_encode($json, JSON_UNESCAPED_UNICODE);

2
wms/wipwhole-index-table-html.php

@ -139,7 +139,7 @@ if (in_array($user_id, ['M0175', 'M0079'])) {
<td><?php echo $data['facilityno']; ?></td>
<td><?php echo $data['custom']; ?></td>
<td><?php echo $Specification; ?></td>
<td><?php echo $data['address']; ?></td>
<td><?php echo empty($data['real_address']) ? $data['address'] : $data['real_address']; ?></td>
<?php
foreach ($site_survey_status as $key => $val) {
if ((string)$data['site_survey_contact_verify'] == (string)$key) {

64
wms/wipwhole-index.php

@ -234,11 +234,8 @@ $dataZ = mysqli_query($link, $sql);
</div>
<div class="col-md-3 col-12 text-right" id="myBtn">
<button class="btn btn-primary " type="button">欄位維護權限</button>
</div>
</div>
</div>
</nav>
@ -247,7 +244,66 @@ $dataZ = mysqli_query($link, $sql);
<div class="modal-content">
<button type="button" class="close" id="myCloseBtn">X</button>
<div class='col-12' style='text-align:center'>
<h3>欄位維護權限</h3>
<hr>
<div class='row'>
<div class='col-12'>
<table class="table table-bordered" style="width:50%; margin:0 auto;">
<tr>
<th style="text-align:right;">欄位</th>
<th style="text-align:left;">維護單位</th>
</tr>
<tr>
<td style="text-align:right;">合約號</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">電梯編號</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">客戶姓名</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">規格</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">地址</td>
<td style="text-align:left;">業務部(營業人員 or 工勘人員透過申請單)</td>
</tr>
<tr>
<td style="text-align:right;">工勘狀態</td>
<td style="text-align:left;">工勘人員</td>
</tr>
<tr>
<td style="text-align:right;">合約交期(到工地)</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">下單日(普來特富)</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">預計到廠日(觀音廠)</td>
<td style="text-align:left;">生管部門</td>
</tr>
<tr>
<td style="text-align:right;">實際到廠日(觀音廠)</td>
<td style="text-align:left;">生管部門</td>
</tr>
<tr>
<td style="text-align:right;">預計出貨日(到工地)</td>
<td style="text-align:left;">業務部(營業人員 or 工勘人員透過申請單)</td>
</tr>
<tr>
<td style="text-align:right;">實際出貨日(到工地)</td>
<td style="text-align:left;">生管部門</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>

2
wms/wipwhole-renovate-index-table-html.php

@ -146,7 +146,7 @@ if (in_array($user_id, ['M0175', 'M0079'])) {
<td><?php echo $data['facilityno']; ?></td>
<td><?php echo $data['custom']; ?></td>
<td><?php echo $Specification; ?></td>
<td><?php echo $data['address']; ?></td>
<td><?php echo empty($data['real_address']) ? $data['address'] : $data['real_address']; ?></td>
<?php
foreach ($site_survey_status as $key => $val) {
if ((string)$data['site_survey_contact_verify'] == (string)$key) {

88
wms/wipwhole-renovate-index.php

@ -209,6 +209,7 @@ $dataZ = mysqli_query($link, $sql);
</div>
<nav class="navbar navbar-tabs" style="margin:0;margin-top:5px;">
<div class="container-fluid">
<div class="col-md-9 col-12">
<ul class="nav nav-pills">
<li class="active">
<a href="#" onclick="showAllTable()">全部資料</a>
@ -230,7 +231,79 @@ $dataZ = mysqli_query($link, $sql);
</li>
</ul>
</div>
<div class="col-md-3 col-12 text-right" id="myBtn">
<button class="btn btn-primary " type="button">欄位維護權限</button>
</div>
</div>
</nav>
<div id="myModal" class="modal">
<div class="back"></div>
<div class="modal-content">
<button type="button" class="close" id="myCloseBtn">X</button>
<div class='col-12' style='text-align:center'>
<h3>欄位維護權限</h3>
<hr>
<div class='row'>
<div class='col-12'>
<table class="table table-bordered" style="width:50%; margin:0 auto;">
<tr>
<th style="text-align:right;">欄位</th>
<th style="text-align:left;">維護單位</th>
</tr>
<tr>
<td style="text-align:right;">合約號</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">電梯編號</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">客戶姓名</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">規格</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">地址</td>
<td style="text-align:left;">業務部(營業人員 or 工勘人員透過申請單)</td>
</tr>
<tr>
<td style="text-align:right;">工勘狀態</td>
<td style="text-align:left;">工勘人員</td>
</tr>
<tr>
<td style="text-align:right;">合約交期(到工地)</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">下單日(普來特富)</td>
<td style="text-align:left;">業務部</td>
</tr>
<tr>
<td style="text-align:right;">預計到廠日(觀音廠)</td>
<td style="text-align:left;">生管部門</td>
</tr>
<tr>
<td style="text-align:right;">實際到廠日(觀音廠)</td>
<td style="text-align:left;">生管部門</td>
</tr>
<tr>
<td style="text-align:right;">預計出貨日(到工地)</td>
<td style="text-align:left;">業務部(營業人員 or 工勘人員透過申請單)</td>
</tr>
<tr>
<td style="text-align:right;">實際出貨日(到工地)</td>
<td style="text-align:left;">生管部門</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<?php
$dataArr = array(
"All" => $data,
@ -513,6 +586,21 @@ mysqli_close($link);
$("#del_form").submit();
}
</script>
<script>
var modal = document.getElementById("myModal");
$("#myBtn").click(function() {
$("#myModal").show();
});
$("#myCloseBtn").click(function(e) {
console.log(e.target);
$("#myModal").hide();
// modal.style.display = "none"
});
$(".back").click(function(e) {
$("#myModal").hide();
// modal.style.display = "none"
});
</script>
<form id='del_form' method='post'>
<input type='hidden' id='del_seq' name='del_seq' value='' />
<input type='hidden' id='form_name' name='form_name' value='del_form' />

9
wms/wipwhole-wipinstallstatus-index.php

@ -504,6 +504,9 @@ if ((int)$radsY . $radsM > (int)$radeY . $radeM) {
<tr>
<td>M1</td>
<?php
$a_count = 0;
$b_count = 0;
$c_count = 0;
for ($radsYi = $radsY; $radsYi <= $radeY; $radsYi++) {
$start_month = 1;
$end_month = 12;
@ -559,6 +562,9 @@ if ((int)$radsY . $radsM > (int)$radeY . $radeM) {
<tr>
<td>MA</td>
<?php
$a_count = 0;
$b_count = 0;
$c_count = 0;
for ($radsYi = $radsY; $radsYi <= $radeY; $radsYi++) {
$start_month = 1;
$end_month = 12;
@ -614,6 +620,9 @@ if ((int)$radsY . $radsM > (int)$radeY . $radeM) {
<tr>
<td>合計</td>
<?php
$a_count = 0;
$b_count = 0;
$c_count = 0;
for ($radsYi = $radsY; $radsYi <= $radeY; $radsYi++) {
$start_month = 1;
$end_month = 12;

32
wms/wipwholeinstall-index-table-html.php

@ -6,7 +6,8 @@
<th style="vertical-align: middle;text-align:center;width:250px;">合約地址</th>
<th style="vertical-align: middle;text-align:center;width:250px;">地工地址</th>
<th style="vertical-align: middle;text-align:center;width:140px;">警示</th>
<th style="vertical-align: middle;text-align:center;width:140px;">預計出貨日</th>
<th style="text-align:center;width:100px;">實際到廠日(觀音廠)</th>
<th style="text-align:center;width:100px;">預計出貨日(到工地)</th>
<th style="vertical-align: middle;text-align:center;width:140px;">發包廠商(工勘)</th>
<th style="vertical-align: middle;text-align:center;width:140px;">發包日期(工勘)</th>
<th style="vertical-align: middle;text-align:center;width:140px;">預計開工日(工勘)</th>
@ -56,7 +57,18 @@
<td><?php echo $data['address']; ?></td>
<td><?php echo $data['real_address']; ?></td>
<td style="text-align:left;"><span class="text-danger"><?php echo warningMessage($data); ?></span></td>
<td><?php echo substr($data['real_contract_arrival_date'], 0, 10); ?></td>
<td>
<?php
if (!empty($data['actual_tofactory_date']))
echo date("Y/m/d", strtotime($data['actual_tofactory_date']));
?>
</td>
<td>
<?php
if (!empty($data['real_contract_arrival_date']))
echo date("Y/m/d", strtotime(substr($data['real_contract_arrival_date'], 0, 10)));
?>
</td>
<?php
// foreach ($site_survey_status as $key => $val) {
// if ((string)$data['site_survey_contact_verify'] == (string)$key) {
@ -88,9 +100,9 @@
echo "<br/>" . date("Y/m/d", strtotime($data['tryrun_outsourcer_date']));
} else {
if (!empty($data['install_outsourcer_date']))
echo date("Y/m/d", strtotime($data['install_outsourcer_date'])). "<br/> ";
echo date("Y/m/d", strtotime($data['install_outsourcer_date'])) . "<br/> ";
if (!empty($data['tryrun_outsourcer_date']))
echo " <br/>" .date("Y/m/d", strtotime($data['tryrun_outsourcer_date']));
echo " <br/>" . date("Y/m/d", strtotime($data['tryrun_outsourcer_date']));
}
?>
</td>
@ -114,9 +126,9 @@
echo "<br/>" . date("Y/m/d", strtotime($data['tryrun_start_date']));
} else {
if (!empty($data['install_start_date']))
echo date("Y/m/d", strtotime($data['install_start_date'])). "<br/> ";
echo date("Y/m/d", strtotime($data['install_start_date'])) . "<br/> ";
if (!empty($data['tryrun_start_date']))
echo " <br/>" .date("Y/m/d", strtotime($data['tryrun_start_date']));
echo " <br/>" . date("Y/m/d", strtotime($data['tryrun_start_date']));
}
?>
</td>
@ -127,9 +139,9 @@
echo "<br/>" . date("Y/m/d", strtotime($data['estimate_tryrun_end_date']));
} else {
if (!empty($data['estimate_install_end_date']))
echo date("Y/m/d", strtotime($data['estimate_install_end_date'])). "<br/> ";
echo date("Y/m/d", strtotime($data['estimate_install_end_date'])) . "<br/> ";
if (!empty($data['estimate_tryrun_end_date']))
echo " <br/>" .date("Y/m/d", strtotime($data['estimate_tryrun_end_date']));
echo " <br/>" . date("Y/m/d", strtotime($data['estimate_tryrun_end_date']));
}
?>
</td>
@ -140,9 +152,9 @@
echo "<br/>" . date("Y/m/d", strtotime($data['tryrun_end_date']));
} else {
if (!empty($data['install_end_date']))
echo date("Y/m/d", strtotime($data['install_end_date'])). "<br/> ";
echo date("Y/m/d", strtotime($data['install_end_date'])) . "<br/> ";
if (!empty($data['tryrun_end_date']))
echo " <br/>" .date("Y/m/d", strtotime($data['tryrun_end_date']));
echo " <br/>" . date("Y/m/d", strtotime($data['tryrun_end_date']));
}
?>
</td>

17
wms/wipwholeinstall-renovate-index-table-html.php

@ -7,7 +7,8 @@
<th style="vertical-align: middle;text-align:center;width:250px;">合約地址</th>
<th style="vertical-align: middle;text-align:center;width:250px;">地工地址</th>
<th style="vertical-align: middle;text-align:center;width:250px;">警示</th>
<th style="vertical-align: middle;text-align:center;width:140px;">預計出貨日</th>
<th style="text-align:center;width:100px;">實際到廠日(觀音廠)</th>
<th style="text-align:center;width:100px;">預計出貨日(到工地)</th>
<th style="vertical-align: middle;text-align:center;width:140px;">發包廠商(工勘)</th>
<th style="vertical-align: middle;text-align:center;width:140px;">發包日期(工勘)</th>
<th style="vertical-align: middle;text-align:center;width:140px;">預計開工日(工勘)</th>
@ -39,7 +40,18 @@
<td><?php echo $data['address']; ?></td>
<td><?php echo $data['real_address']; ?></td>
<td style="text-align:left;"><span class="text-danger"><?php echo warningMessage($data); ?></span></td>
<td><?php echo substr($data['real_contract_arrival_date'], 0, 10); ?></td>
<td>
<?php
if (!empty($data['actual_tofactory_date']))
echo date("Y/m/d", strtotime($data['actual_tofactory_date']));
?>
</td>
<td>
<?php
if (!empty($data['real_contract_arrival_date']))
echo date("Y/m/d", strtotime(substr($data['real_contract_arrival_date'], 0, 10)));
?>
</td>
<?php
// foreach ($site_survey_status as $key => $val) {
// if ((string)$data['site_survey_contact_verify'] == (string)$key) {
@ -181,7 +193,6 @@
</tbody>
</table>
<script>
const subContentDiv = document.createElement("div");
subContentDiv.style.position = "relative";
subContentDiv.style.top = 0;

Loading…
Cancel
Save