From b4b5778f162efeb59331df263e4dbf3af7215da4 Mon Sep 17 00:00:00 2001 From: "gary_chen\\gary_chen" Date: Mon, 18 Dec 2023 19:08:50 +0800 Subject: [PATCH 1/5] =?UTF-8?q?1.=E4=BF=AE=E6=AD=A3=E5=AE=89=E8=A3=9D?= =?UTF-8?q?=E5=A4=A7=E6=97=A5=E7=A8=8B=20edit=20=E6=8C=89=E9=88=95=202.?= =?UTF-8?q?=E5=87=BA=E8=B2=A8=E6=97=A5=E8=AA=BF=E6=95=B4=E5=96=AE=20?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E6=96=B0=E5=A2=9E=E7=B8=A3=E5=B8=82=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E5=BC=8F=E9=81=B8=E5=96=AE=203.=E5=87=BA=E8=B2=A8?= =?UTF-8?q?=E5=9C=B0=E5=8D=80=E9=A0=90=E5=AE=9A=E6=98=8E=E7=B4=B0=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=A8=E9=83=A8=E4=BD=9C=E7=95=AA=20?= =?UTF-8?q?=E7=9A=84=E8=A1=A8=204.index=20=E7=8B=80=E6=85=8B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=87=9F=E6=A5=AD=E7=B6=93=E7=90=86=E7=A2=BA=E8=AA=8D?= =?UTF-8?q?=E4=B8=AD=20=E7=9A=84=E9=81=B8=E9=A0=85=205.=E5=A4=A7=E6=97=A5?= =?UTF-8?q?=E7=A8=8B=E6=96=B0=E5=A2=9E=20=E6=9E=97=E9=9D=9C=E9=9B=AF=20?= =?UTF-8?q?=E6=AA=A2=E8=A6=96=E6=AC=8A=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + wms/estimated_shipping_date_report.php | 309 +++++++++++++----- wms/wipwhole-change-contractdate-function.php | 20 ++ wms/wipwhole-change-contractdate-submit.php | 3 +- wms/wipwhole-change-contractdate.php | 10 +- wms/wipwhole-index-function.php | 11 +- wms/wipwhole-index.php | 20 +- wms/wipwhole-rec-invoice-edit.php | 44 +-- wms/wipwhole-renovate-index-function.php | 25 +- wms/wipwhole-renovate-index.php | 24 +- wms/wipwhole-renovate-rec-invoice-edit.php | 48 +-- wms/wipwholeinstall-index-function.php | 2 +- ...ipwholeinstall-renovate-index-function.php | 2 +- 13 files changed, 371 insertions(+), 148 deletions(-) diff --git a/.gitignore b/.gitignore index 3faa3b7a..31786233 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ wms/mkt/WriteOffRepair.xlsx wms/contract/images/contracts wms/test.php app/account_log/ +wms/gary2.php diff --git a/wms/estimated_shipping_date_report.php b/wms/estimated_shipping_date_report.php index a428e639..606b06b7 100644 --- a/wms/estimated_shipping_date_report.php +++ b/wms/estimated_shipping_date_report.php @@ -148,6 +148,27 @@ while ($row = $result->fetch_assoc()) { $data2[] = $row; } +$sql = " + SELECT + new_order.facility_kind, + COUNT(new_order.facility_kind) AS facility_count + FROM( + SELECT + w.facility_kind + FROM wipwholestatus AS w + WHERE 1=1 + AND status = '1' + AND contract_type = 'A' + ) AS new_order + WHERE 1 = 1 + GROUP BY new_order.facility_kind +"; +$result = mysqli_query($link, $sql); +$data4 = []; +while ($row = $result->fetch_assoc()) { + $data4[] = $row; +} + function findFacilityTypeAllCount($data2) { $count = 0; @@ -187,6 +208,20 @@ while ($row = $result->fetch_assoc()) { $data3[] = $row; } +$sql = " + SELECT + w.renovate_type + FROM wipwholestatus AS w + WHERE 1=1 + AND status = '1' + AND contract_type = 'B' +"; +$result = mysqli_query($link, $sql); +$data5 = []; +while ($row = $result->fetch_assoc()) { + $data5[] = $row; +} + // 分開計算 // $M1 = 0; @@ -222,6 +257,16 @@ foreach ($data3 as $row) { $m_type_arr[implode("+", json_decode($row['renovate_type']))]++; } +$M_count2 = count($data5); +$m_type_arr2 = []; +$m_type_arr2[''] = 0; +foreach ($data5 as $row) { + $m_type_arr2[implode("+", json_decode($row['renovate_type']))] = 0; +} +foreach ($data5 as $row) { + $m_type_arr2[implode("+", json_decode($row['renovate_type']))]++; +} + //數字轉英文(0=>A、1=>B、26=>AA...以此類推) function num2alpha($n) @@ -240,7 +285,7 @@ function alpha2num($a) $n = $n * 26 + ord($a[$i]) - 0x40; return $n - 1; } -if($_SERVER["REQUEST_METHOD"] == 'POST'){ +if ($_SERVER["REQUEST_METHOD"] == 'POST') { if ($_POST['excel_output'] == 'excel_output') { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); @@ -1183,96 +1228,186 @@ if($_SERVER["REQUEST_METHOD"] == 'POST'){ -

-
- - - - - - - - - - " . $row['facility_kind'] . ""; - } - ?> - - - - - " . getFacilityNamebyType($row['facility_kind']) . ""; - } - ?> - - - - - " . $row['facility_count'] . ""; - } - ?> - - - - - " . (round($row['facility_count'] / findFacilityTypeAllCount($data2), 4) * 100) . "%" . ""; - } - ?> - - - -
受定規格分析
代碼
機種合計
數量
百分比
-
+
+
+ + + + + + + + + + " . $row['facility_kind'] . ""; + } + ?> + + + + + " . getFacilityNamebyType($row['facility_kind']) . ""; + } + ?> + + + + + " . $row['facility_count'] . ""; + } + ?> + + + + + " . (round($row['facility_count'] / findFacilityTypeAllCount($data2), 4) * 100) . "%" . ""; + } + ?> + + + +
受定規格分析(時間區間)
代碼
機種合計
數量
百分比
+
+ +
+ + + + + + + + + + $val) { + $title_tmp = empty($key) ? '未分類' : $key; + echo ""; + } + ?> + + + + + $val) { + echo ""; + } + ?> + + + + + $val) { + echo ""; + } + ?> + + + +
舊改受訂規格分析(時間區間)
類型" . $title_tmp . "合計
數量" . $val . "
百分比" . round($val / $M_count, 4) * 100 . "%" . "100%
+
+


+
+
+ + + + + + + + + + " . $row['facility_kind'] . ""; + } + ?> + + + + + " . getFacilityNamebyType($row['facility_kind']) . ""; + } + ?> + + + + + " . $row['facility_count'] . ""; + } + ?> + + + + + " . (round($row['facility_count'] / findFacilityTypeAllCount($data4), 4) * 100) . "%" . ""; + } + ?> + + + +
受定規格分析(全部)
代碼
機種合計
數量
百分比
+
-
- - - - - - - - - - $val) { - $title_tmp = empty($key) ? '未分類' : $key; - echo ""; - } - ?> - - - - - $val) { - echo ""; - } - ?> - - - - - $val) { - echo ""; - } - ?> - - - -
舊改受訂規格分析
類型" . $title_tmp . "合計
數量" . $val . "
百分比" . round($val / $M_count, 4) * 100 . "%" . "100%
+
+ + + + + + + + + + $val) { + $title_tmp = empty($key) ? '未分類' : $key; + echo ""; + } + ?> + + + + + $val) { + echo ""; + } + ?> + + + + + $val) { + echo ""; + } + ?> + + + +
舊改受訂規格分析(全部)
類型" . $title_tmp . "合計
數量" . $val . "
百分比" . round($val / $M_count2, 4) * 100 . "%" . "100%
+
\ No newline at end of file diff --git a/wms/account-receivable-excel.php b/wms/account-receivable-excel.php index 31d7ee95..5fe16fc4 100644 --- a/wms/account-receivable-excel.php +++ b/wms/account-receivable-excel.php @@ -65,14 +65,14 @@ $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $colomnHeader = [ '合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭', - '簽約款', '簽約款目前應收', '簽約最小催收次數', '簽約最大應收次數', - '二次款', '二次款目前應收', '二次最小催收次數', '二次最大應收次數', - '貨抵工地款', '貨抵工地款目前應收', '貨抵工地最小催收次數', '貨抵工地最大應收次數', - '安裝款', '安裝款目前應收', '安裝最小催收次數', '安裝最大應收次數', - '試車款', '試車款目前應收', '試車最小催收次數', '試車最大應收次數', - '官檢款', '官檢款目前應收', '官檢最小催收次數', '官檢最大應收次數', - '交車款', '交車款目前應收', '交車最小催收次數', '交車最大應收次數', - '尾款', '尾款目前應收', '尾款最小催收次數', '尾款最大應收次數', + '簽約款', '簽約款目前應收', '簽約最大催收次數', '簽約最小應收次數', + '二次款', '二次款目前應收', '二次最大催收次數', '二次最小應收次數', + '貨抵工地款', '貨抵工地款目前應收', '貨抵工地最小催收次數', '貨抵工地最小應收次數', + '安裝款', '安裝款目前應收', '安裝最大催收次數', '安裝最小應收次數', + '試車款', '試車款目前應收', '試車最大催收次數', '試車最小應收次數', + '官檢款', '官檢款目前應收', '官檢最大催收次數', '官檢最小應收次數', + '交車款', '交車款目前應收', '交車最大催收次數', '交車最小應收次數', + '尾款', '尾款目前應收', '尾款最大催收次數', '尾款最小應收次數', '合約總金額', '目前應收', '已開發票金額', '已收金額', '作番狀態' ]; // $colomnHeader = [ diff --git a/wms/account-receivable-index-ing.php b/wms/account-receivable-index-ing.php index 5b73317a..4e6ef821 100644 --- a/wms/account-receivable-index-ing.php +++ b/wms/account-receivable-index-ing.php @@ -108,7 +108,7 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['facilities'] = ""; $arrayData[$BillNo]['total_facility_num'] = $arrayData[$BillNo]['delivery_num'] = $arrayData[$BillNo]['check_num'] = $arrayData[$BillNo]['tryrun_num'] = $arrayData[$BillNo]['install_num'] = $arrayData[$BillNo]['arrive_num'] = $arrayData[$BillNo]['second_num'] = $arrayData[$BillNo]['receivable_budget'] = 0; } - if (stristr($PayStage, '二次款') || stristr($PayStage, '出貨前') || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60')) { + if (stristr($PayStage, '二次款') || stristr($PayStage, '出貨前') || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60') || stristr($PayStage, '寶佳出貨後10天')) { $arrayData[$BillNo]['second'][0] = $PayStage; $arrayData[$BillNo]['second'][1] = $PayAmount; $arrayData[$BillNo]['second'][2] = $PlanPayDate; @@ -133,7 +133,7 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['second'][2] = strval($secondtime); } } - } elseif ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金') || stristr($PayStage, '工地動工')) { + } elseif ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金') || stristr($PayStage, '工地動工') || stristr($PayStage, '寶佳出貨前30天')) { $arrayData[$BillNo]['sign'][0] = $PayStage; $arrayData[$BillNo]['sign'][1] = $PayAmount; $arrayData[$BillNo]['sign'][2] = $PlanPayDate; @@ -179,8 +179,9 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['total_budget'] += $PayAmount; } } - //取作番大日程作番與時程 +// real_contract_arrival_date 預計出貨日 +// real_arrival_date 實際出貨日 $sql = "SELECT tmp2.*, d.name AS depart_name @@ -196,6 +197,7 @@ SELECT w.estimated_shipping_date, w.real_contract_arrival_date, w.actual_tofactory_date, +w.real_contract_arrival_date, w.real_arrival_date, w.install_end_date, w.tryrun_end_date, @@ -241,6 +243,26 @@ foreach ($wipwhole_array as $wip) { $arrayData[$wip['contractno']][$wip['facilityno']][$i]['con']['date'] = (isset($arrayData[$wip['contractno']][$i][2])) ? $arrayData[$wip['contractno']][$i][2] : ""; $arrayData[$wip['contractno']][$wip['facilityno']][$i]['con']['budget'] = 0; } + // 補上寶佳 (出貨前) 收款時間 + + if (isset($arrayData[$wip['contractno']]['sign'][0]) && $arrayData[$wip['contractno']]['sign'][0] == '寶佳出貨前30天') { + if ($wip['real_arrival_date'] != NULL) { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $signtime = $estimate_delivery_time - (30 * 86400); + $signtime = date('Ymd', $signtime); + $arrayData[$wip['contractno']]['sign'][2] = strval($signtime); + array_push($arrayData[$wip['contractno']]['sign']['max'], strtotime(strval($signtime))); + array_push($arrayData[$wip['contractno']]['sign']['min'], strtotime(strval($signtime))); + } elseif ($wip['real_contract_arrival_date'] != NULL) { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $signtime = $estimate_delivery_time - (30 * 86400); + $signtime = date('Ymd', $signtime); + $arrayData[$wip['contractno']]['sign'][2] = strval($signtime); + array_push($arrayData[$wip['contractno']]['sign']['max'], strtotime(strval($signtime))); + array_push($arrayData[$wip['contractno']]['sign']['min'], strtotime(strval($signtime))); + } + } + // 補上二次款 (出貨前) 收款時間,條件不是"出貨前"就pass if (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前30天')) { if (empty($wip['real_contract_arrival_date'])) { @@ -249,8 +271,8 @@ foreach ($wipwhole_array as $wip) { $secondtime = $estimate_delivery_time - (30 * 86400); $secondtime = date('Ymd', $secondtime); $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); - array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($wip['real_contract_arrival_date']))); - array_push($arrayData[$wip['contractno']]['second']['min'], strval($wip['real_contract_arrival_date'])); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); } } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前90天')) { if (empty($wip['real_contract_arrival_date'])) { @@ -259,12 +281,30 @@ foreach ($wipwhole_array as $wip) { $secondtime = $estimate_delivery_time - (90 * 86400); $secondtime = date('Ymd', $secondtime); $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); - array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($wip['real_contract_arrival_date']))); - array_push($arrayData[$wip['contractno']]['second']['min'], strval($wip['real_contract_arrival_date'])); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); } - } + } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && $arrayData[$wip['contractno']]['second'][0] == '寶佳出貨後10天') { + if ($wip['real_arrival_date'] != NULL) { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $secondtime = $estimate_delivery_time + (10 * 86400); + $secondtime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); + } else { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $secondtime = $estimate_delivery_time + (10 * 86400); + $secondtime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime($secondtime)); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); + } + } //根據作番狀態填入facilities,計算各階段數量、一個合約有幾個作番,增加作番資料 + // real_contract_arrival_date 預計出貨日=預計到貨日=預計貨抵工地 + // real_arrival_date 實際出貨日=實際到貨日=實際貨抵工地 if ($wip['delivery_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
"; $arrayData[$wip['contractno']]['total_facility_num'] += 1; @@ -274,107 +314,238 @@ foreach ($wipwhole_array as $wip) { $arrayData[$wip['contractno']]['install_num'] += 1; $arrayData[$wip['contractno']]['arrive_num'] += 1; $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['delivery_date']) && $wip['delivery_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['delivery']['min'], strval($wip['delivery_date'])); + + if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") { + $estimate_delivery_time = strtotime($wip['delivery_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['delivery'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['delivery']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['delivery']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['delivery'][2] = strval($wip['delivery_date']); + array_push($arrayData[$wip['contractno']]['delivery']['min'], strtotime(strval($wip['delivery_date']))); array_push($arrayData[$wip['contractno']]['delivery']['max'], strtotime(strval($wip['delivery_date']))); - if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['check']['min'], strval($wip['official_check_date'])); - array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date']))); - } - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], strval($wip['tryrun_end_date'])); + } + if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['check']['min'], strtotime(strval($wip['official_check_date']))); + array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date']))); + } + if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { + if ($arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") { + $estimate_delivery_time = strtotime($wip['tryrun_end_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['tryrun'][2] = strval($wip['tryrun_end_date']); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date']))); array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); - array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], strval($wip['real_arrival_date'])); + } + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date']))); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); } - } elseif ($wip['official_check_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['check_num'] += 1; - $arrayData[$wip['contractno']]['tryrun_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['check']['min'], strval($wip['official_check_date'])); - array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date']))); + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); } - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], strval($wip['tryrun_end_date'])); + } + } elseif ($wip['official_check_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + $arrayData[$wip['contractno']]['check_num'] += 1; + $arrayData[$wip['contractno']]['tryrun_num'] += 1; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['check']['min'], strval($wip['official_check_date'])); + array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date']))); + } + + if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { + if ($arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") { + $estimate_delivery_time = strtotime($wip['tryrun_end_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['tryrun'][2] = strval($wip['tryrun_end_date']); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date']))); array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); - array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], strval($wip['real_arrival_date'])); + } + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); } - } elseif ($wip['tryrun_end_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['tryrun_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], strval($wip['tryrun_end_date'])); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); - array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], strval($wip['real_arrival_date'])); + } + } elseif ($wip['tryrun_end_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + $arrayData[$wip['contractno']]['tryrun_num'] += 1; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strval($wip['tryrun_end_date'])); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); + } + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); } - } elseif ($wip['install_end_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); - array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strtotime(strval($wip['install_end_date'])))); + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], strval($wip['real_arrival_date'])); + } + } elseif ($wip['install_end_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strval($wip['install_end_date'])); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strtotime(strval($wip['install_end_date'])))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); } - } elseif ($wip['real_arrival_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], strval($wip['real_arrival_date'])); - array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); } - } elseif (($arrayData[$wip['contractno']]['second'] != NULL) && (isset($arrayData[$wip['contractno']]['second'][2])) && ($arrayData[$wip['contractno']]['second'][2] <= date('Ymd'))) { + } + } elseif ($wip['real_arrival_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件)
"; + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } + } elseif (($arrayData[$wip['contractno']]['second'] != NULL) && (isset($arrayData[$wip['contractno']]['second'][2])) && ($arrayData[$wip['contractno']]['second'][2] <= date('Ymd'))) { + + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + } else { + if ($wip['real_contract_arrival_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + } elseif ($wip['estimated_shipping_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
"; $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; } else { - if ($wip['real_contract_arrival_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - } elseif ($wip['estimated_shipping_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - } else { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (預計出港日待確認)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - } + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (預計出港日待確認)
"; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; } } } @@ -398,7 +569,7 @@ foreach ($arrayData as &$value) { } $stagearray = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); - $today = date('Ym01', strtotime('-1 month',strtotime(date('Ym01')))); + $today = date('Ym01', strtotime('-1 month', strtotime(date('Ym01')))); // $today = strtotime($today,); // echo "today: " . $today . "
"; // exit(); @@ -476,7 +647,7 @@ foreach ($received_array as $received) { } } } -foreach($arrayData as $key => $value){ +foreach ($arrayData as $key => $value) { print_r($value); echo "
"; } diff --git a/wms/account-receivable-index.php b/wms/account-receivable-index.php index 9feac530..190783da 100644 --- a/wms/account-receivable-index.php +++ b/wms/account-receivable-index.php @@ -32,6 +32,7 @@ LEFT JOIN ON a.BillNo=c.BillNo WHERE DATALENGTH(c.OrderBillNo) >0"; +//T8 銷售訂單 階段收款計畫 $sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId, c.EnterpriseName, c.TaxNo, c.ContactAddress FROM salOrderStagePay AS a LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo @@ -66,6 +67,7 @@ $received_array = $conn->query($sql_received); $opening_data = mysqli_query($link, $sql_opening); $invoice_data = $conn->query($sql_invoice); + // 合約收款階段內容分類 $sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天'); $sign90 = array('簽約後90天', '簽約後90日', '簽訂後90天'); @@ -104,9 +106,9 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['sign']['min'] = $arrayData[$BillNo]['second']['min'] = $arrayData[$BillNo]['arrive']['min'] = $arrayData[$BillNo]['install']['min'] = $arrayData[$BillNo]['tryrun']['min'] = $arrayData[$BillNo]['check']['min'] = $arrayData[$BillNo]['delivery']['min'] = $arrayData[$BillNo]['final']['min'] = array(); $arrayData[$BillNo]['sign']['max'] = $arrayData[$BillNo]['second']['max'] = $arrayData[$BillNo]['arrive']['max'] = $arrayData[$BillNo]['install']['max'] = $arrayData[$BillNo]['tryrun']['max'] = $arrayData[$BillNo]['check']['max'] = $arrayData[$BillNo]['delivery']['max'] = $arrayData[$BillNo]['final']['max'] = array(); $arrayData[$BillNo]['facilities'] = ""; - $arrayData[$BillNo]['total_facility_num'] = $arrayData[$BillNo]['delivery_num'] = $arrayData[$BillNo]['check_num'] = $arrayData[$BillNo]['tryrun_num'] = $arrayData[$BillNo]['install_num'] = $arrayData[$BillNo]['arrive_num'] = $arrayData[$BillNo]['second_num'] = $arrayData[$BillNo]['receivable_budget'] = 0; + $arrayData[$BillNo]['total_facility_num'] = $arrayData[$BillNo]['delivery_num'] = $arrayData[$BillNo]['check_num'] = $arrayData[$BillNo]['tryrun_num'] = $arrayData[$BillNo]['install_num'] = $arrayData[$BillNo]['arrive_num'] = $arrayData[$BillNo]['second_num'] = $arrayData[$BillNo]['sign_num'] = $arrayData[$BillNo]['receivable_budget'] = 0; } - if (stristr($PayStage, '二次款') || stristr($PayStage, '出貨前') || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60') || stristr($PayStage, '寶佳出貨後')) { + if (stristr($PayStage, '二次款') || (stristr($PayStage, '出貨前') && $PayStage != "寶佳出貨前30天") || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60') || stristr($PayStage, '寶佳出貨後10天')) { $arrayData[$BillNo]['second'][0] = $PayStage; $arrayData[$BillNo]['second'][1] = $PayAmount; $arrayData[$BillNo]['second'][2] = $PlanPayDate; @@ -116,28 +118,31 @@ foreach ($contract as $cont) { if (in_array($PayStage, $sign60)) { $secondtime = $signtime + (60 * 86400); $secondtime = date('Ymd', $secondtime); - $arrayData[$BillNo]['second'][2] = intval($secondtime); + $arrayData[$BillNo]['second'][2] = strval($secondtime); } elseif (in_array($PayStage, $sign90)) { $secondtime = $signtime + (90 * 86400); $secondtime = date('Ymd', $secondtime); - $arrayData[$BillNo]['second'][2] = intval($secondtime); + $arrayData[$BillNo]['second'][2] = strval($secondtime); } elseif (in_array($PayStage, $sign120)) { $secondtime = $signtime + (120 * 86400); $secondtime = date('Ymd', $secondtime); - $arrayData[$BillNo]['second'][2] = intval($secondtime); + $arrayData[$BillNo]['second'][2] = strval($secondtime); } elseif (stristr($PayStage, '簽訂後30天')) { $secondtime = $signtime + (30 * 86400); $secondtime = date('Ymd', $secondtime); - $arrayData[$BillNo]['second'][2] = intval($secondtime); + $arrayData[$BillNo]['second'][2] = strval($secondtime); } } - } elseif ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金') || stristr($PayStage, '工地動工') || stristr($PayStage, '寶佳出貨前')) { + } elseif ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金') || stristr($PayStage, '工地動工') || $PayStage == '寶佳出貨前30天') { $arrayData[$BillNo]['sign'][0] = $PayStage; $arrayData[$BillNo]['sign'][1] = $PayAmount; $arrayData[$BillNo]['sign'][2] = $PlanPayDate; $arrayData[$BillNo]['total_budget'] += $PayAmount; - array_push($arrayData[$BillNo]['sign']['min'], intval(substr($PlanPayDate, 4, 2))); - array_push($arrayData[$BillNo]['sign']['max'], intval(substr($PlanPayDate, 4, 2))); + $arrayData[$BillNo]['receivable_budget'] += $PayAmount; + if (isset($PlanPayDate) && !empty($PlanPayDate) && $PayStage != "寶佳出貨前30天") { + array_push($arrayData[$BillNo]['sign']['min'], strtotime(strval($PlanPayDate))); + array_push($arrayData[$BillNo]['sign']['max'], strtotime(strval($PlanPayDate))); + } } elseif (stristr($PayStage, '試車')) { $arrayData[$BillNo]['tryrun'][0] = $PayStage; $arrayData[$BillNo]['tryrun'][1] = $PayAmount; @@ -174,6 +179,9 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['total_budget'] += $PayAmount; } } +//取作番大日程作番與時程 +// real_contract_arrival_date 預計出貨日 +// real_arrival_date 實際出貨日 $sql = "SELECT tmp2.*, d.name AS depart_name @@ -187,6 +195,7 @@ SELECT w.contractno, w.facilityno, w.estimated_shipping_date, + w.real_contract_arrival_date, w.actual_tofactory_date, w.real_arrival_date, w.install_end_date, @@ -207,155 +216,395 @@ SELECT DISTINCT FROM department ) AS d -ON d.department_id = tmp2.department_id"; +ON d.department_id = tmp2.department_id ORDER BY contractno"; $wipwhole_array = mysqli_query($link, $sql); foreach ($wipwhole_array as $wip) { if (isset($arrayData[$wip['contractno']])) { + // 整理合約資料 $arrayData[$wip['contractno']][0] = $wip['department_id'];; $arrayData[$wip['contractno']][1] = $wip['depart_name']; $arrayData[$wip['contractno']][2] = $wip['manager_name']; $arrayData[$wip['contractno']][3] = $wip['salesid']; $arrayData[$wip['contractno']][4] = $wip['name']; $arrayData[$wip['contractno']][10] = $wip['contractno']; + $arrayData[$wip['contractno']]['total_facility_num'] += 1; + // [合約號][作番號]['no'] + $arrayData[$wip['contractno']][$wip['facilityno']]['no'] = $wip['facilityno']; + + // [合約號][作番號][款別] ['con'] [金額]/[合約預計收款日期] + // [合約號][作番號][款別] ['inv'] [金額]/[發票開立日期] + // [合約號][作番號][款別] ['rec'] [金額]/[實際收款日期] + $contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); + foreach ($contractstage as $i) { + $arrayData[$wip['contractno']][$wip['facilityno']][$i]['inv']['date'] = ""; + $arrayData[$wip['contractno']][$wip['facilityno']][$i]['inv']['budget'] = 0; + $arrayData[$wip['contractno']][$wip['facilityno']][$i]['rec']['date'] = ""; + $arrayData[$wip['contractno']][$wip['facilityno']][$i]['rec']['budget'] = 0; + $arrayData[$wip['contractno']][$wip['facilityno']][$i]['con']['date'] = (isset($arrayData[$wip['contractno']][$i][2])) ? $arrayData[$wip['contractno']][$i][2] : ""; + $arrayData[$wip['contractno']][$wip['facilityno']][$i]['con']['budget'] = 0; + } + // 補上寶佳 (出貨前) 收款時間 + + if (isset($arrayData[$wip['contractno']]['sign'][0]) && $arrayData[$wip['contractno']]['sign'][0] == '寶佳出貨前30天') { + if ($wip['real_arrival_date'] != NULL) { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $signtime = $estimate_delivery_time - (30 * 86400); + $signtime = date('Ymd', $signtime); + $arrayData[$wip['contractno']]['sign'][2] = strval($signtime); + array_push($arrayData[$wip['contractno']]['sign']['max'], strtotime(strval($signtime))); + array_push($arrayData[$wip['contractno']]['sign']['min'], strtotime(strval($signtime))); + } elseif ($wip['real_contract_arrival_date'] != NULL) { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $signtime = $estimate_delivery_time - (30 * 86400); + $signtime = date('Ymd', $signtime); + $arrayData[$wip['contractno']]['sign'][2] = strval($signtime); + array_push($arrayData[$wip['contractno']]['sign']['max'], strtotime(strval($signtime))); + array_push($arrayData[$wip['contractno']]['sign']['min'], strtotime(strval($signtime))); + } + } + + // 補上二次款 (出貨前) 收款時間,條件不是"出貨前"就pass if (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前30天')) { - $estimate_delivery_time = strtotime($wip['estimated_shipping_date']); - $secondtime = $estimate_delivery_time - (30 * 86400); - $secondtime = date('Ymd', $secondtime); - if (empty($wip['estimated_shipping_date'])) { - $arrayData[$wip['contractno']]['second']['min'] = 0; + if (empty($wip['real_contract_arrival_date'])) { } else { - array_push($arrayData[$wip['contractno']]['second']['max'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['second']['min'], intval(substr($wip['estimated_shipping_date'], 5, 2))); + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $secondtime = $estimate_delivery_time - (30 * 86400); + $secondtime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); } - $arrayData[$wip['contractno']]['second'][2] = intval($secondtime); } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前90天')) { - $estimate_delivery_time = strtotime($wip['estimated_shipping_date']); - $secondtime = $estimate_delivery_time - (90 * 86400); - $secondtime = date('Ymd', $secondtime); - $arrayData[$wip['contractno']]['second'][2] = intval($secondtime); - if (empty($wip['estimated_shipping_date'])) { - $arrayData[$wip['contractno']]['second']['min'] = 0; + if (empty($wip['real_contract_arrival_date'])) { } else { - array_push($arrayData[$wip['contractno']]['second']['max'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['second']['min'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - } - } - if ($wip['delivery_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['delivery_num'] += 1; - $arrayData[$wip['contractno']]['check_num'] += 1; - $arrayData[$wip['contractno']]['tryrun_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - array_push($arrayData[$wip['contractno']]['delivery']['min'], intval(substr($wip['delivery_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['delivery']['max'], intval(substr($wip['delivery_date'], 5, 2))); - if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['check']['min'], intval(substr($wip['official_check_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['check']['max'], intval(substr($wip['official_check_date'], 5, 2))); - } - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], intval(substr($wip['tryrun_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], intval(substr($wip['tryrun_end_date'], 5, 2))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } - } elseif ($wip['official_check_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['check_num'] += 1; - $arrayData[$wip['contractno']]['tryrun_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - array_push($arrayData[$wip['contractno']]['check']['min'], intval(substr($wip['official_check_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['check']['max'], intval(substr($wip['official_check_date'], 5, 2))); - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], intval(substr($wip['tryrun_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], intval(substr($wip['tryrun_end_date'], 5, 2))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } - } elseif ($wip['tryrun_end_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['tryrun_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], intval(substr($wip['tryrun_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], intval(substr($wip['tryrun_end_date'], 5, 2))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } - } elseif ($wip['install_end_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['install_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $secondtime = $estimate_delivery_time - (90 * 86400); + $secondtime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); + } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && $arrayData[$wip['contractno']]['second'][0] == '寶佳出貨後10天') { + + if ($wip['real_arrival_date'] != NULL) { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $secondtime = $estimate_delivery_time + (10 * 86400); + $secondtime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); + } else { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $secondtime = $estimate_delivery_time + (10 * 86400); + $secondtime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['second'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['second']['max'], strtotime($secondtime)); + array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); } - } elseif ($wip['real_arrival_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['arrive_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); + } + //根據作番狀態填入facilities,計算各階段數量、一個合約有幾個作番,增加作番資料 + // real_contract_arrival_date 預計出貨日=預計到貨日=預計貨抵工地 + // real_arrival_date 實際出貨日=實際到貨日=實際貨抵工地 + //----------------------------------------寶佳的另外處理--------------------------------------------------- + if ($arrayData[$wip['contractno']]['sign'][0] == "寶佳出貨前30天") { + $facility_status = ""; + // if ($arrayData[$wip['contractno']]['sign'][2]) + $today = strtotime(date('Ymd')); + $contractday = strtotime($arrayData[$wip['contractno']]['sign'][2]); + if ($today > $contractday) { + $arrayData[$wip['contractno']]['sign_num'] += 1; + $facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "已過)
"; + $contractday = strtotime($arrayData[$wip['contractno']]['second'][2]); + if ($today > $contractday) { + $arrayData[$wip['contractno']]['second_num'] += 1; + $facility_status = $wip['facilityno'] . " (出貨後10天" . $arrayData[$wip['contractno']]['second'][2] . "已過)
"; + if ($wip['real_arrival_date'] != NULL) { + $estimate_time = strtotime($wip['real_arrival_date']); + $contractday = $estimate_time + (90 * 86400); + if ($today > $contractday) { + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['arrive'][2] = strval(date('Y-m-d', $contractday)); + $facility_status = $wip['facilityno'] . " (貨抵工地後90天" . $arrayData[$wip['contractno']]['arrive'][2] . "已過)
"; + if ($wip['tryrun_end_date'] != NULL) { + $estimate_time = strtotime($wip['tryrun_end_date']); + $contractday = $estimate_time + (90 * 86400); + if ($today > $contractday) { + $arrayData[$wip['contractno']]['tryrun_num'] += 1; + $arrayData[$wip['contractno']]['tryrun'][2] = strval(date('Y-m-d', $contractday)); + $facility_status = $wip['facilityno'] . " (試車後90天" . $arrayData[$wip['contractno']]['tryrun'][2] . "已過)
"; + if ($wip['delivery_date'] != NULL) { + $estimate_time = strtotime($wip['delivery_date']); + $contractday = $estimate_time + (270 * 86400); + if ($today > $contractday) { + $arrayData[$wip['contractno']]['delivery_num'] += 1; + $arrayData[$wip['contractno']]['delivery'][2] = strval(date('Y-m-d', $contractday)); + $facility_status = $wip['facilityno'] . " (交車後270天" . $arrayData[$wip['contractno']]['delivery'][2] . "已過)
"; + } + } + } + } + } + } + } + } else { + $facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "未到)
"; } - } elseif (($arrayData[$wip['contractno']]['second'] != NULL) && (isset($arrayData[$wip['contractno']]['second'][2])) && ($arrayData[$wip['contractno']]['second'][2] <= date('Ymd'))) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; - $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['facilities'] .= $facility_status; } else { - if ($wip['estimated_shipping_date'] != NULL) { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計到港)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; + if ($wip['delivery_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
"; + $arrayData[$wip['contractno']]['tryrun_num'] += 1; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; + + if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") { + $estimate_delivery_time = strtotime($wip['delivery_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['delivery'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['delivery']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['delivery']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['delivery_num'] += 1; + $arrayData[$wip['contractno']]['check_num'] += 1; + $arrayData[$wip['contractno']]['delivery'][2] = strval($wip['delivery_date']); + array_push($arrayData[$wip['contractno']]['delivery']['min'], strtotime(strval($wip['delivery_date']))); + array_push($arrayData[$wip['contractno']]['delivery']['max'], strtotime(strval($wip['delivery_date']))); + } + if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['check']['min'], strtotime(strval($wip['official_check_date']))); + array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date']))); + } + if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { + if ($arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") { + $estimate_delivery_time = strtotime($wip['tryrun_end_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['tryrun'][2] = strval($wip['tryrun_end_date']); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date']))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); + } + } + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date']))); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); + } + } + } elseif ($wip['official_check_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
"; + $arrayData[$wip['contractno']]['check_num'] += 1; + $arrayData[$wip['contractno']]['tryrun_num'] += 1; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; + if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['check']['min'], strtotime(strval($wip['official_check_date']))); + array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date']))); + } + + if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { + if ($arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") { + $estimate_delivery_time = strtotime($wip['tryrun_end_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['tryrun'][2] = strval($wip['tryrun_end_date']); + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date']))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); + } + } + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date']))); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); + } + } + } elseif ($wip['tryrun_end_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
"; + $arrayData[$wip['contractno']]['tryrun_num'] += 1; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; + if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date']))); + array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date']))); + } + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date']))); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date']))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); + } + } + } elseif ($wip['install_end_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
"; + $arrayData[$wip['contractno']]['install_num'] += 1; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; + if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { + array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date']))); + array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strtotime(strval($wip['install_end_date'])))); + } + if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } + } else { + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date']))); + } + } + } elseif ($wip['real_arrival_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
"; + $arrayData[$wip['contractno']]['arrive_num'] += 1; + $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; + + if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") { + $estimate_delivery_time = strtotime($wip['real_arrival_date']); + $arrivetime = $estimate_delivery_time + (90 * 86400); + $arrivetime = date('Ymd', $secondtime); + $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime))); + } else { + $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']); + array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date']))); + array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date']))); + } + } elseif (($arrayData[$wip['contractno']]['second'] != NULL) && (isset($arrayData[$wip['contractno']]['second'][2])) && ($arrayData[$wip['contractno']]['second'][2] <= date('Ymd'))) { + + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件)
"; + $arrayData[$wip['contractno']]['second_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; } else { - $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (預計到港日待確認)
"; - $arrayData[$wip['contractno']]['total_facility_num'] += 1; + $arrayData[$wip['contractno']]['sign_num'] += 1; + if ($wip['real_contract_arrival_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
"; + } elseif ($wip['estimated_shipping_date'] != NULL) { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
"; + } else { + $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (預計出港日待確認)
"; + } } } } } - +// 計算每個合約的應收款、作番總數 +$today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m-d'))))); foreach ($arrayData as &$value) { if ($value['total_facility_num'] > 0) { - $month = 11; - $value['receivable_budget'] = $value['sign'][1] + ($value['second'][1] * ($value['second_num'] / $value['total_facility_num'])) + + $value['receivable_budget'] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']) + ($value['second'][1] * ($value['second_num'] / $value['total_facility_num'])) + ($value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num'])) + ($value['install'][1] * ($value['install_num'] / $value['total_facility_num'])) + ($value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num'])) + ($value['check'][1] * ($value['check_num'] / $value['total_facility_num'])) + (($value['delivery'][1] + $value['final'][1]) * ($value['delivery_num'] / $value['total_facility_num'])); - $value['sign'][3] = $value['sign'][1]; + $value['sign'][3] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']); $value['second'][3] = $value['second'][1] * ($value['second_num'] / $value['total_facility_num']); $value['arrive'][3] = $value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num']); $value['install'][3] = $value['install'][1] * ($value['install_num'] / $value['total_facility_num']); @@ -364,22 +613,51 @@ foreach ($arrayData as &$value) { $value['delivery'][3] = $value['delivery'][1] * ($value['delivery_num'] / $value['total_facility_num']); $value['final'][3] = $value['final'][1] * ($value['delivery_num'] / $value['total_facility_num']); } - $value['sign']['max'] = empty($value['sign']['max']) ? 0 : (($month - max($value['sign']['max'])) < 0 ? 0 : ($month - max($value['sign']['max']))); - $value['sign']['min'] = empty($value['sign']['min']) ? 0 : (($month - min($value['sign']['min'])) < 0 ? 0 : ($month - min($value['sign']['min']))); - $value['second']['max'] = empty($value['second']['max']) ? 0 : (($month - max($value['second']['max'])) < 0 ? 0 : ($month - max($value['second']['max']))); - $value['second']['min'] = empty($value['second']['min']) ? 0 : (($month - min($value['second']['min'])) < 0 ? 0 : ($month - min($value['second']['min']))); - $value['arrive']['max'] = empty($value['arrive']['max']) ? 0 : (($month - max($value['arrive']['max'])) < 0 ? 0 : ($month - max($value['arrive']['max']))); - $value['arrive']['min'] = empty($value['arrive']['min']) ? 0 : (($month - min($value['arrive']['min'])) < 0 ? 0 : ($month - min($value['arrive']['min']))); - $value['install']['max'] = empty($value['install']['max']) ? 0 : (($month - max($value['install']['max'])) < 0 ? 0 : ($month - max($value['install']['max']))); - $value['install']['min'] = empty($value['install']['min']) ? 0 : (($month - min($value['install']['min'])) < 0 ? 0 : ($month - min($value['install']['min']))); - $value['tryrun']['max'] = empty($value['tryrun']['max']) ? 0 : (($month - max($value['tryrun']['max'])) < 0 ? 0 : ($month - max($value['tryrun']['max']))); - $value['tryrun']['min'] = empty($value['tryrun']['min']) ? 0 : (($month - min($value['tryrun']['min'])) < 0 ? 0 : ($month - min($value['tryrun']['min']))); - $value['check']['max'] = empty($value['check']['max']) ? 0 : (($month - max($value['check']['max'])) < 0 ? 0 : ($month - max($value['check']['max']))); - $value['check']['min'] = empty($value['check']['min']) ? 0 : (($month - min($value['check']['min'])) < 0 ? 0 : ($month - min($value['check']['min']))); - $value['delivery']['max'] = empty($value['delivery']['max']) ? 0 : (($month - max($value['delivery']['max'])) < 0 ? 0 : ($month - max($value['delivery']['max']))); - $value['delivery']['min'] = empty($value['delivery']['min']) ? 0 : (($month - min($value['delivery']['min'])) < 0 ? 0 : ($month - min($value['delivery']['min']))); - $value['final']['max'] = empty($value['final']['max']) ? 0 : (($month - max($value['final']['max'])) < 0 ? 0 : ($month - max($value['final']['max']))); - $value['final']['min'] = empty($value['final']['min']) ? 0 : (($month - min($value['final']['min'])) < 0 ? 0 : ($month - min($value['final']['min']))); + // 計算最大催收次數與最小催收次數 + $contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); + + foreach ($contractstage as $i) { + if (!empty($value[$i]['min']) && count($value[$i]['min']) > 0) { + $latest_timestamp = max($value[$i]['min']); + $latest_date = new DateTime(); + $latest_date->setTimestamp($latest_timestamp); + if ($latest_date < $today_date) { + $interval = $latest_date->diff($today_date); + $month = $interval->format('%m'); + $value[$i]['min'] = $month; + } else { + $value[$i]['min'] = 0; + } + } else { + $value[$i]['min'] = 0; + }; + if (!empty($value[$i]['max']) && count($value[$i]['max']) > 0) { + $latest_timestamp = min($value[$i]['max']); + $latest_date = new DateTime(); + $latest_date->setTimestamp($latest_timestamp); + if ($latest_date < $today_date) { + $interval = $latest_date->diff($today_date); + $month = $interval->format('%m'); + $value[$i]['max'] = $month; + } else { + $value[$i]['max'] = 0; + } + } else { + $value[$i]['max'] = 0; + }; + } +} + +// [合約號][作番號][款別] ['con'] [金額]/[合約預計收款日期] +// [合約號][作番號][款別] ['inv'] [金額]/[發票開立日期] +// [合約號][作番號][款別] ['rec'] [金額]/[實際收款日期] +foreach ($wipwhole_array as $wip) { + if (isset($arrayData[$wip['contractno']]) && isset($arrayData[$wip['contractno']][$wip['facilityno']]) && !empty($arrayData[$wip['contractno']]['total_facility_num'])) { + $stagearray = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); + foreach ($stagearray as $stage) { + $arrayData[$wip['contractno']][$wip['facilityno']][$stage]['con'] = $arrayData[$wip['contractno']][$stage][1] / $arrayData[$wip['contractno']]['total_facility_num']; + } + } } // [invoice][發票號碼][0 發票日期, 1 發票金額, 2 發票狀態, 3 收款日期, 4 收款金額, 5 手續費, 6 核銷單號] foreach ($invoice_data as $invoice) { @@ -409,6 +687,8 @@ foreach ($received_array as $received) { //產生excel的array $excel_aray = array(); +$boga_array = array(); +$exclude_boga_array = array(); foreach ($arrayData as $key => $value) { $value['sign'][3] = (isset($value['sign'][3])) ? $value['sign'][3] : 0; $value['second'][3] = (isset($value['second'][3])) ? $value['second'][3] : 0; @@ -418,6 +698,43 @@ foreach ($arrayData as $key => $value) { $value['check'][3] = (isset($value['check'][3])) ? $value['check'][3] : 0; $value['delivery'][3] = (isset($value['delivery'][3])) ? $value['delivery'][3] : 0; $value['final'][3] = (isset($value['final'][3])) ? $value['final'][3] : 0; + $contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); + foreach ($contractstage as $i) { + $value[$i]['max'] = (empty($value[$i]['max']) || !isset($value[$i]['max'])) ? 0 : $value[$i]['max']; + $value[$i]['min'] = (empty($value[$i]['min']) || !isset($value[$i]['min'])) ? 0 : $value[$i]['min']; + }; + + + if ($value['sign'][0] == "寶佳出貨前30天") { + $boga_array[$key] = [ + $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], + $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'], + $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'], + $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'], + $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'], + $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'], + $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'], + $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'], + $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'], + $value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], str_replace('
', '; ', $value['facilities']) + ]; + }else{ + $exclude_boga_array[$key] = [ + $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], + $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'], + $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'], + $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'], + $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'], + $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'], + $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'], + $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'], + $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'], + $value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], str_replace('
', '; ', $value['facilities']) + ]; + } + + + $excel_aray[$key] = [ $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'], @@ -433,6 +750,8 @@ foreach ($arrayData as $key => $value) { } $data = json_encode($excel_aray); +$boga_data = json_encode($boga_array); +$exclude_boga_data = json_encode($exclude_boga_array); ?> - + + + @@ -491,42 +812,42 @@ if (in_array(accountidToDepartId($user_id), array('220', '210')) || $user_id == 客戶名稱 簽約款 應收簽約金額 - 簽約最大催收次數 簽約最小催收次數 + 簽約最大催收次數 二次款 應收二次金額 - 二次最大催收次數 二次最小催收次數 + 二次最大催收次數 貨抵工地款 應收貨抵工地金額 - 貨抵工地最大催收次數 貨抵工地最小催收次數 + 貨抵工地最大催收次數 安裝款 應收安裝金額 - 安裝最大催收次數 安裝最小催收次數 + 安裝最大催收次數 試車款 應收試車金額 - 試車最大催收次數 試車最小催收次數 + 試車最大催收次數 官檢款 應收官檢金額 - 官檢最大催收次數 官檢最小催收次數 + 官檢最大催收次數 移交款 應收移交金額 - 移交最大催收次數 移交最小催收次數 + 移交最大催收次數 尾款 應收尾款金額 - 尾款最大催收次數 尾款最小催收次數 + 尾款最大催收次數 合約總金額 目前應收 已開發票金額 已收金額 - + 收款狀態 @@ -535,7 +856,7 @@ if (in_array(accountidToDepartId($user_id), array('220', '210')) || $user_id == foreach ($arrayData as $key => $value) { ?> - + @@ -576,8 +897,8 @@ if (in_array(accountidToDepartId($user_id), array('220', '210')) || $user_id == -