diff --git a/wms/account-receivable-index.php b/wms/account-receivable-index.php
index 95a4c248..cab5caf3 100644
--- a/wms/account-receivable-index.php
+++ b/wms/account-receivable-index.php
@@ -108,7 +108,6 @@ if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepart
$sql_opening .= " OR person_id = '$user_id'";
$sql .= " WHERE salesid = '$user_id'";
$sql_contract_budget .= " AND (PersonId = '$user_id'";
- $sql_contract_budget .= " AND (PersonId = '$user_id'";
if (count($follower) > 0) {
$column_str = "('$user_id'" . ",'";
$column_str .= implode("','", $follower);
@@ -124,7 +123,6 @@ if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepart
$sql_opening .= ")";
$sql .= " ORDER BY contractno";
$sql_contract_budget .= ")";
- $sql_contract_budget .= ")";
};
}
@@ -219,7 +217,6 @@ 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]['sign_num'] = $arrayData[$BillNo]['receivable_budget'] = 0;
$arrayData[$BillNo]['total_list'] = $arrayData[$BillNo]['sign_list'] = $arrayData[$BillNo]['second_list'] = $arrayData[$BillNo]['arrive_list'] = $arrayData[$BillNo]['install_list'] = $arrayData[$BillNo]['tryrun_list'] = $arrayData[$BillNo]['check_list'] = $arrayData[$BillNo]['delivery_list'] = $arrayData[$BillNo]['final_list'] = [];
- $arrayData[$BillNo]['total_list'] = $arrayData[$BillNo]['sign_list'] = $arrayData[$BillNo]['second_list'] = $arrayData[$BillNo]['arrive_list'] = $arrayData[$BillNo]['install_list'] = $arrayData[$BillNo]['tryrun_list'] = $arrayData[$BillNo]['check_list'] = $arrayData[$BillNo]['delivery_list'] = $arrayData[$BillNo]['final_list'] = [];
}
if (stristr($PayStage, '二次款') || (stristr($PayStage, '出貨前') && $PayStage != "寶佳出貨前30天") || stristr($PayStage, '簽約後') || stristr($PayStage, '訂金支付後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60') || stristr($PayStage, '寶佳出貨後10天')) {
$arrayData[$BillNo]['second'][0] = $PayStage;
@@ -410,7 +407,6 @@ foreach ($wipwhole_array as $wip) {
if ($arrayData[$wip['contractno']]['sign'][0] == "寶佳出貨前30天") {
$facility_status = "";
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
$today = strtotime(date('Ymd'));
$contractday = strtotime($arrayData[$wip['contractno']]['sign'][2]);
$month = collect_month($contractday);
@@ -419,7 +415,6 @@ foreach ($wipwhole_array as $wip) {
if ($today > $contractday) {
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
$facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
//二次款
@@ -430,7 +425,6 @@ foreach ($wipwhole_array as $wip) {
if ($today > $contractday) {
$arrayData[$wip['contractno']]['second_num'] += 1;
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$facility_status = $wip['facilityno'] . " (出貨後10天" . $arrayData[$wip['contractno']]['second'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
//貨抵工地款
@@ -443,7 +437,6 @@ foreach ($wipwhole_array as $wip) {
if ($today > $contractday) {
$arrayData[$wip['contractno']]['arrive_num'] += 1;
array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['arrive'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (貨抵工地後90天" . $arrayData[$wip['contractno']]['arrive'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -457,7 +450,6 @@ foreach ($wipwhole_array as $wip) {
if ($today > $contractday) {
$arrayData[$wip['contractno']]['tryrun_num'] += 1;
array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['tryrun'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (試車後90天" . $arrayData[$wip['contractno']]['tryrun'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -472,8 +464,6 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['delivery_num'] += 1;
array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['delivery'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (交車後270天" . $arrayData[$wip['contractno']]['delivery'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -492,7 +482,6 @@ foreach ($wipwhole_array as $wip) {
} else {
$signtime = strtotime($arrayData[$wip['contractno']]['sign'][2]);
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
$month = collect_month($signtime);
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][6] = $month;
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = strval(date('Ymd', $signtime));
@@ -507,19 +496,14 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
";
$arrayData[$wip['contractno']]['tryrun_num'] += 1;
array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['install_num'] += 1;
array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['arrive_num'] += 1;
array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['second_num'] += 1;
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") {
$estimate_delivery_time = strtotime($wip['delivery_date']);
@@ -529,8 +513,6 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['delivery_num'] += 1;
array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
}
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][6] = $month;
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $arrivetime));
@@ -542,11 +524,8 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['delivery_num'] += 1;
array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['check_num'] += 1;
array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['delivery'][2] = strval($wip['delivery_date']);
$deliverytime = strtotime($wip['delivery_date']);
$month = collect_month($deliverytime);
@@ -618,22 +597,16 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
";
$arrayData[$wip['contractno']]['check_num'] += 1;
array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['tryrun_num'] += 1;
array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['install_num'] += 1;
array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['arrive_num'] += 1;
array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['second_num'] += 1;
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
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'])));
@@ -774,16 +747,12 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
";
$arrayData[$wip['contractno']]['install_num'] += 1;
array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['arrive_num'] += 1;
array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['second_num'] += 1;
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) {
$installtime = strtotime($wip['install_end_date']);
$month = collect_month($installtime);
@@ -831,13 +800,10 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
";
$arrayData[$wip['contractno']]['arrive_num'] += 1;
array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['second_num'] += 1;
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
$estimate_delivery_time = strtotime($wip['real_arrival_date']);
@@ -867,14 +833,11 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (已達二次款收款條件)
";
$arrayData[$wip['contractno']]['second_num'] += 1;
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
} else {
$arrayData[$wip['contractno']]['sign_num'] += 1;
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
if ($wip['real_contract_arrival_date'] != NULL) {
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
";
@@ -913,30 +876,6 @@ foreach ($wipwhole_array as $wip) {
// }
// }
-// foreach ($arrayData as $key => $value) {
-// echo $key."
";
-// print_r($value['total_list']);
-// echo " / 總 ";
-// print_r($value['sign_list']);
-// echo " / 訂金
";
-// print_r($value['arrive_list']);
-// echo " / 貨抵 ";
-// print_r($value['install_list']);
-// echo " / 安裝
";
-// print_r($value['tryrun_list']);
-// echo " / 試車 ";
-// print_r($value['check_list']);
-// echo " / 官檢
";
-// print_r($value['delivery_list']);
-// echo " / 移交 ";
-// print_r($value['final_list']);
-// echo " / 結案
";
-// echo "---------------------------
";
-// foreach($value['sign_list'] as $fac){
-// echo $fac."=========";
-// }
-// }
-
// 計算每個合約的應收款、作番總數
$today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m-d')))));
@@ -961,25 +900,6 @@ foreach ($arrayData as &$value) {
$value['final'][3] = $value['final'][1] * $final_ratio;
$value['receivable_budget'] = $value['sign'][3] + $value['second'][3] + $value['arrive'][3] + $value['install'][3] + $value['tryrun'][3] + $value['check'][3] + $value['delivery'][3] + $value['final'][3];
}
- //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
- $sign_ratio = get_ratio($value['sign_list'], $value[10], $contract_budget);
- $value['sign'][3] = $value['sign'][1] * $sign_ratio;
- $second_ratio = get_ratio($value['second_list'], $value[10], $contract_budget);
- $value['second'][3] = $value['second'][1] * $second_ratio;
- $arrive_ratio = get_ratio($value['arrive_list'], $value[10], $contract_budget);
- $value['arrive'][3] = $value['arrive'][1] * $arrive_ratio;
- $install_ratio = get_ratio($value['install_list'], $value[10], $contract_budget);
- $value['install'][3] = $value['install'][1] * $install_ratio;
- $tryrun_ratio = get_ratio($value['tryrun_list'], $value[10], $contract_budget);
- $value['tryrun'][3] = $value['tryrun'][1] * $tryrun_ratio;
- $check_ratio = get_ratio($value['check_list'], $value[10], $contract_budget);
- $value['check'][3] = $value['check'][1] * $check_ratio;
- $delivery_ratio = get_ratio($value['delivery_list'], $value[10], $contract_budget);
- $value['delivery'][3] = $value['delivery'][1] * $delivery_ratio;
- $final_ratio = get_ratio($value['final_list'], $value[10], $contract_budget);
- $value['final'][3] = $value['final'][1] * $final_ratio;
- $value['receivable_budget'] = $value['sign'][3] + $value['second'][3] + $value['arrive'][3] + $value['install'][3] + $value['tryrun'][3] + $value['check'][3] + $value['delivery'][3] + $value['final'][3];
- }
//['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
// 計算每台作番金額與各階段應收金額
if (isset($value['facility'])) {
@@ -1847,6 +1767,7 @@ foreach ($arrayData as $key => &$data) {
}
}
+
//產生excel的array
$excel_aray = array();
$boga_array = array();
@@ -1919,7 +1840,6 @@ foreach ($arrayData as $key => $value) {
number_format(round($value['A40001'])), number_format(round($value['A40008'])), number_format(round($value['total_budget'])), number_format(round($value['receivable_budget'])), number_format(round($value['invoice_budget'])), number_format(round($value['received_budget'])), $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
-
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
if (isset($value['facility'])) {
@@ -1979,7 +1899,6 @@ $average_A40001 = round($sum_A40001 / $sum_facility, 2);
$average_A40008 = round($sum_A40008 / $sum_facility, 2);
$average_budget = round($sum_total_budget / $sum_facility, 2);
-$total_data = json_encode($excel_aray);
$total_data = json_encode($excel_aray);
$boga_data = json_encode($boga_array);
$exclude_boga_data = json_encode($exclude_boga_array);
@@ -2024,9 +1943,6 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
margin-top: .5rem;
}
- .hiddenTable {
- display: none;
- }
@@ -2042,7 +1958,6 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
-
@@ -2237,13 +2152,11 @@ include "./footer.php";
}
xhr.send(JSON.stringify({
Bill: = $total_data ?>
- Bill: = $total_data ?>
}));
}
function bogaData() {
- console.log(= $boga_data ?>);
var xhr = new XMLHttpRequest();
var url = window.location.origin + "/wms/account-receivable-excel.php?type=boga&= $token_link ?>";
xhr.open('POST', url, true);
@@ -2272,11 +2185,9 @@ include "./footer.php";
if (content == 'AllData') {
var BillData = = $facility_data ?>;
var filename = "作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
- } else if (content == 'ExcludeData') {
} else if (content == 'ExcludeData') {
var BillData = = $facility_exclude_boga_data ?>;
var filename = "不含寶佳作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
- } else if (content == 'BogaData') {
} else if (content == 'BogaData') {
var BillData = = $facility_boga_data ?>;
var filename = "寶佳作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
diff --git a/wms/account-receivable-renovate-index.php b/wms/account-receivable-renovate-index.php
new file mode 100644
index 00000000..ee4b59f4
--- /dev/null
+++ b/wms/account-receivable-renovate-index.php
@@ -0,0 +1,2241 @@
+0";
+
+// T8核銷
+$sql_received = "SELECT
+a.BillNo, a.WriteOffBizPartnerId,a.PayWriteOffOAmount,
+b.FromBillDate AS ReceivedDate,b.CurrWOFeeOAmt AS Fee,
+c.OrderBillNo, c.checkBillNo, c.InvoiceNo, c.BillDate AS CheckBillDate
+FROM arWriteOffBill AS a
+LEFT JOIN arWriteOffBillRec AS b ON a.BillNo=b.BillNo
+LEFT JOIN
+ (SELECT temp1.*,arWriteOffBillDetail.* FROM arWriteOffBillDetail
+ LEFT JOIN
+ (SELECT
+ arCheckBill.BillNo AS checkBillNo, arCheckBill.BillDate,arCheckBillInvInfo.InvoiceNo
+ FROM arCheckBill
+ LEFT JOIN arCheckBillInvInfo
+ ON arCheckBill.InvoiceBillNo=arCheckBillInvInfo.InvoiceBillNo) AS temp1
+ ON temp1.checkBillNo = arWriteOffBillDetail.FromBillNo) AS c
+ON a.BillNo=c.BillNo
+WHERE DATALENGTH(c.OrderBillNo) >0";
+
+//T8 銷售訂單 階段收款計畫
+$sql_contract = "SELECT a.BillNo,s.BillDate, 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
+LEFT JOIN comBusinessPartner AS c ON s.BizPartnerId=c.BizPartnerId
+WHERE s.ModeId = 'M' AND (s.CurrentState=2 OR s.CurrentState=4) ";
+
+// T8 銷售訂單 作番金額
+$sql_contract_budget = "SELECT A.BillNo, A.OAmountWithTax,A.CU_MaterialId, A.MaterialId FROM salSalesOrderDetail AS A
+LEFT JOIN salSalesOrder AS B ON A.BillNo=B.BillNo
+WHERE B.ModeId='M' AND A.ItemType=1 ";
+
+//作番大日程
+$sql = "SELECT
+tmp2.*,
+d.name AS depart_name
+FROM(
+SELECT
+ a.manager,
+ a2.name as manager_name,
+ a.name,
+ a.department_id,
+ w.salesid,
+ 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,
+ w.tryrun_end_date,
+ w.official_check_date,
+ w.delivery_date
+from wipwholestatus AS w
+left join account AS a
+ON w.salesid = a.accountid
+left join account AS a2
+ON a2.accountid = a.manager
+where w.status = '1' AND w.contract_type='A'
+)AS tmp2
+left join (
+SELECT DISTINCT
+ department_id,
+ name
+FROM department
+
+) AS d
+ON d.department_id = tmp2.department_id ";
+
+//ORDER BY contractno
+
+// 期初收款資訊
+$sql_opening = "
+SELECT * FROM account_received ";
+// 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的
+if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) {
+ $sql .= " ORDER BY contractno";
+ $sql_contract_budget .= "ORDER BY BillNo, CU_MaterialId";
+} else {
+ $sql_contract .= "AND (s.PersonId = '$user_id'";
+ // $sql_received .= " AND (PersonId = '$user_id'";
+ $sql_opening .= " OR person_id = '$user_id'";
+ $sql .= " WHERE salesid = '$user_id'";
+ $sql_contract_budget .= " AND (PersonId = '$user_id'";
+ if (count($follower) > 0) {
+ $column_str = "('$user_id'" . ",'";
+ $column_str .= implode("','", $follower);
+ $column_str .= "')";
+ $sql_contract .= " OR s.PersonId IN $column_str)";
+ // $sql_received .= " OR PersonId IN $column_str)";
+ $sql_opening .= " OR person_id IN $column_str)";
+ $sql .= " OR salesid IN $column_str ORDER BY contractno";
+ $sql_contract_budget .= " OR PersonId IN $column_str )ORDER BY BillNo, CU_MaterialId";
+ } else {
+ $sql_contract .= ")";
+ // $sql_received .= ")";
+ $sql_opening .= ")";
+ $sql .= " ORDER BY contractno";
+ $sql_contract_budget .= ")";
+ };
+}
+
+$contract = $conn->query($sql_contract);
+$received_array = $conn->query($sql_received);
+$opening_data = mysqli_query($link, $sql_opening);
+$invoice_data = $conn->query($sql_invoice);
+$contract_budget_data = $conn->query($sql_contract_budget);
+
+$contract_budget = array();
+foreach ($contract_budget_data as $cont) {
+ if (isset($contract_budget[$cont['BillNo']])) {
+ $contract_budget[$cont['BillNo']]['total'] += $cont['OAmountWithTax'];
+ } else {
+ $contract_budget[$cont['BillNo']]['total'] = $cont['OAmountWithTax'];
+ }
+ if (isset($contract_budget[$cont['BillNo']][$cont['CU_MaterialId']])) {
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']]['total'] += $cont['OAmountWithTax'];
+ } else {
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']]['total'] = $cont['OAmountWithTax'];
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']]['A40001'] = 0;
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']]['A40008'] = 0;
+ };
+ if (isset($contract_budget[$cont['BillNo']][$cont['MaterialId']])) {
+ $contract_budget[$cont['BillNo']][$cont['MaterialId']] += $cont['OAmountWithTax'];
+ } else {
+ $contract_budget[$cont['BillNo']][$cont['MaterialId']] = $cont['OAmountWithTax'];
+ }
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax'];
+}
+
+/* 計算比例
+@param $facility_list array
+@param $contract_no string
+@param $contract_budget array
+return float */
+function get_ratio($facility_list, $contract_no, $contract_budget)
+{
+ $ratio = 0;
+ if (empty($facility_list)) {
+ return 0;
+ } else {
+ foreach ($facility_list as $every) {
+ if (isset($contract_budget[$contract_no][$every]['total']) && isset($contract_budget[$contract_no]['total'])) {
+ $ratio += $contract_budget[$contract_no][$every]['total'] / $contract_budget[$contract_no]['total'];
+ }
+ }
+ return $ratio;
+ }
+}
+
+// 合約收款階段內容分類
+$sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天');
+$sign90 = array('簽約後90天', '簽約後90日', '簽訂後90天');
+$sign120 = array('簽約後120天', '簽約後120日', '簽訂後120天');
+
+// 將T8合約收款階段資料依據款別分類放進arraData裡
+foreach ($contract as $cont) {
+ if ($cont['BillNo'] == 'SO20230801001') {
+ $BillNo = 'M230947';
+ } elseif ($cont['BillNo'] == 'SO20230801002') {
+ $BillNo = 'M231067';
+ } else {
+ $BillNo = $cont['BillNo'];
+ };
+ $BillDate = $cont['BillDate'];
+ $PayStage = $cont['PayStage'];
+ $PlanPayDate = $cont['PlanPayDate'];
+ $PayAmount = $cont['PlanPayAmt'];
+ $partnerName = $cont['BizPartnerName'];
+ $EnterpriseName = $cont['EnterpriseName'];
+ $TaxNo = $cont['TaxNo'];
+ $ContactAddress = $cont['ContactAddress'];
+ //['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期
+ //['tryrun'] 0 試車款名 1試車金額 2 試車收款日期 ['check'] 0 官檢款名 1 官檢金額 2 官檢收款日期 ['delivery'] 0 交車款名 1 交車金額 2 交車收款日期 ['final'] 0 尾款名 1 尾款金額 2 尾款收款日期
+ //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
+ if (!(isset($arrayData[$BillNo]))) {
+ // 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 9 T8單據日期
+ $arrayData[$BillNo] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
+ $arrayData[$BillNo][5] = $partnerName;
+ $arrayData[$BillNo][6] = $EnterpriseName;
+ $arrayData[$BillNo][7] = $TaxNo;
+ $arrayData[$BillNo][8] = $ContactAddress;
+ $arrayData[$BillNo][9] = $BillDate;
+ $arrayData[$BillNo]['total_budget'] = 0;
+ $arrayData[$BillNo]['invoice'] = array();
+ $arrayData[$BillNo]['received_budget'] = 0;
+ $arrayData[$BillNo]['invoice_budget'] = 0;
+ $arrayData[$BillNo]['sign'][1] = $arrayData[$BillNo]['second'][1] = $arrayData[$BillNo]['arrive'][1] = $arrayData[$BillNo]['install'][1] = $arrayData[$BillNo]['tryrun'][1] = $arrayData[$BillNo]['check'][1] = $arrayData[$BillNo]['delivery'][1] = $arrayData[$BillNo]['final'][1] = 0;
+ $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]['sign_num'] = $arrayData[$BillNo]['receivable_budget'] = 0;
+ $arrayData[$BillNo]['total_list'] = $arrayData[$BillNo]['sign_list'] = $arrayData[$BillNo]['second_list'] = $arrayData[$BillNo]['arrive_list'] = $arrayData[$BillNo]['install_list'] = $arrayData[$BillNo]['tryrun_list'] = $arrayData[$BillNo]['check_list'] = $arrayData[$BillNo]['delivery_list'] = $arrayData[$BillNo]['final_list'] = [];
+ }
+ if (stristr($PayStage, '二次款') || (stristr($PayStage, '出貨前') && $PayStage != "寶佳出貨前30天") || 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;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ if (isset($arrayData[$BillNo]['sign'][2]) && !is_null($arrayData[$BillNo]['sign'][2])) {
+ $signtime = strtotime(strval($arrayData[$BillNo]['sign'][2]));
+ if (in_array($PayStage, $sign60)) {
+ $secondtime = $signtime + (60 * 86400);
+ $secondtime = date('Ymd', $secondtime);
+ $arrayData[$BillNo]['second'][2] = strval($secondtime);
+ } elseif (in_array($PayStage, $sign90)) {
+ $secondtime = $signtime + (90 * 86400);
+ $secondtime = date('Ymd', $secondtime);
+ $arrayData[$BillNo]['second'][2] = strval($secondtime);
+ } elseif (in_array($PayStage, $sign120)) {
+ $secondtime = $signtime + (120 * 86400);
+ $secondtime = date('Ymd', $secondtime);
+ $arrayData[$BillNo]['second'][2] = strval($secondtime);
+ } elseif (stristr($PayStage, '簽訂後30天')) {
+ $secondtime = $signtime + (30 * 86400);
+ $secondtime = date('Ymd', $secondtime);
+ $arrayData[$BillNo]['second'][2] = strval($secondtime);
+ }
+ }
+ } 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;
+ $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;
+ $arrayData[$BillNo]['tryrun'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ } elseif (stristr($PayStage, '安裝') || stristr($PayStage, '貨抵工地且完工')) {
+ $arrayData[$BillNo]['install'][0] = $PayStage;
+ $arrayData[$BillNo]['install'][1] = $PayAmount;
+ $arrayData[$BillNo]['install'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ } elseif (stristr($PayStage, '貨抵工地') || stristr($PayStage, '貨底工地')) {
+ $arrayData[$BillNo]['arrive'][0] = $PayStage;
+ $arrayData[$BillNo]['arrive'][1] = $PayAmount;
+ $arrayData[$BillNo]['arrive'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ } elseif (stristr($PayStage, '得合格函後6個月') || stristr($PayStage, '核可函取得後6個月') || stristr($PayStage, '交車')) {
+ $arrayData[$BillNo]['delivery'][0] = $PayStage;
+ $arrayData[$BillNo]['delivery'][1] = $PayAmount;
+ $arrayData[$BillNo]['delivery'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ } elseif (stristr($PayStage, '合格') || stristr($PayStage, '驗收') || stristr($PayStage, '許可') || stristr($PayStage, '核可')) {
+ $arrayData[$BillNo]['check'][0] = $PayStage;
+ $arrayData[$BillNo]['check'][1] = $PayAmount;
+ $arrayData[$BillNo]['check'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ } elseif (stristr($PayStage, '驗收完成')) {
+ $arrayData[$BillNo]['final'][0] = $PayStage;
+ $arrayData[$BillNo]['final'][1] = $PayAmount;
+ $arrayData[$BillNo]['final'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ } else {
+ $arrayData[$BillNo]['other'][1] = $PayAmount;
+ $arrayData[$BillNo]['other'][2] = $PlanPayDate;
+ $arrayData[$BillNo]['total_budget'] += $PayAmount;
+ }
+}
+//取作番大日程作番與時程
+// real_contract_arrival_date 預計出貨日
+// real_arrival_date 實際出貨日
+
+$wipwhole_array = mysqli_query($link, $sql);
+foreach ($wipwhole_array as $wip) {
+ $today = strtotime(date('Ymd'));
+ //[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
+ 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;
+ $arrayData[$wip['contractno']]['A40001'] = (isset($contract_budget[$wip['contractno']]['A40001']) && !is_null($contract_budget[$wip['contractno']]['A40001'])) ? $contract_budget[$wip['contractno']]['A40001'] : 0;
+ $arrayData[$wip['contractno']]['A40008'] = (isset($contract_budget[$wip['contractno']]['A40008']) && !is_null($contract_budget[$wip['contractno']]['A40008'])) ? $contract_budget[$wip['contractno']]['A40008'] : 0;
+ // [合約號]['facility'][作番號]['no']
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['no'] = $wip['facilityno'];
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = "";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['total_budget'] = 0;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['receivable_budget'] = 0;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['collect_budget'] = 0;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40001'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40001']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40001'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40001'] : 0;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40008'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'] : 0;
+
+ // [合約號][作番號][款別] ['con'] [金額]/[合約預計收款日期]
+ // [合約號][作番號][款別] ['inv'] [金額]/[發票開立日期]
+ // [合約號][作番號][款別] ['rec'] [金額]/[實際收款日期]
+ $contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final');
+ foreach ($contractstage as $i) {
+ $arrayData[$wip['contractno']][$wip['facilityno']][$i] = ['', 0, '', 0, 0, 0, 0];
+ $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天')) {
+ if (empty($wip['real_contract_arrival_date'])) {
+ } else {
+ $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)));
+ }
+ } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前90天')) {
+ if (empty($wip['real_contract_arrival_date'])) {
+ } else {
+ $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)));
+ }
+ } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前120天')) {
+ if (empty($wip['real_contract_arrival_date'])) {
+ } else {
+ $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']);
+ $secondtime = $estimate_delivery_time - (120 * 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)));
+ }
+ } 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 ($arrayData[$wip['contractno']]['sign'][0] == "寶佳出貨前30天") {
+ $facility_status = "";
+ array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
+ $today = strtotime(date('Ymd'));
+ $contractday = strtotime($arrayData[$wip['contractno']]['sign'][2]);
+ $month = collect_month($contractday);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = $arrayData[$wip['contractno']]['sign'][2];
+ if ($today > $contractday) {
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+ $facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "已過)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
+ //二次款
+ $contractday = strtotime($arrayData[$wip['contractno']]['second'][2]);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][2] = $arrayData[$wip['contractno']]['second'][2];
+ $month = collect_month($contractday);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
+ if ($today > $contractday) {
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $facility_status = $wip['facilityno'] . " (出貨後10天" . $arrayData[$wip['contractno']]['second'][2] . "已過)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
+ //貨抵工地款
+ if ($wip['real_arrival_date'] != NULL) {
+ $estimate_time = strtotime($wip['real_arrival_date']);
+ $contractday = $estimate_time + (90 * 86400);
+ $month = collect_month($contractday);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $contractday));
+ if ($today > $contractday) {
+ $arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['arrive'][2] = strval(date('Y-m-d', $contractday));
+ $facility_status = $wip['facilityno'] . " (貨抵工地後90天" . $arrayData[$wip['contractno']]['arrive'][2] . "已過)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
+ //試車款
+ if ($wip['tryrun_end_date'] != NULL) {
+ $estimate_time = strtotime($wip['tryrun_end_date']);
+ $contractday = $estimate_time + (90 * 86400);
+ $month = collect_month($contractday);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $contractday));
+ if ($today > $contractday) {
+ $arrayData[$wip['contractno']]['tryrun_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['tryrun'][2] = strval(date('Y-m-d', $contractday));
+ $facility_status = $wip['facilityno'] . " (試車後90天" . $arrayData[$wip['contractno']]['tryrun'][2] . "已過)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
+ //交車款
+ if ($wip['delivery_date'] != NULL) {
+ $estimate_time = strtotime($wip['delivery_date']);
+ $contractday = $estimate_time + (270 * 86400);
+ $month = collect_month($contractday);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $contractday));
+ if ($today > $contractday) {
+ $arrayData[$wip['contractno']]['delivery_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
+ array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['delivery'][2] = strval(date('Y-m-d', $contractday));
+ $facility_status = $wip['facilityno'] . " (交車後270天" . $arrayData[$wip['contractno']]['delivery'][2] . "已過)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ $facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "未到)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
+ }
+ $arrayData[$wip['contractno']]['facilities'] .= $facility_status;
+ } else {
+ $signtime = strtotime($arrayData[$wip['contractno']]['sign'][2]);
+ array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
+ $month = collect_month($signtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = strval(date('Ymd', $signtime));
+ if (isset($arrayData[$wip['contractno']]['second'][2]) && ($arrayData[$wip['contractno']]['second'][2] !== NULL)) {
+ $secondtime = strtotime($arrayData[$wip['contractno']]['second'][2]);
+ $month = collect_month($secondtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][2] = strval(date('Ymd', $secondtime));
+ }
+ if ($wip['delivery_date'] != NULL) {
+ $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
";
+ $arrayData[$wip['contractno']]['tryrun_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['install_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+
+ if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") {
+ $estimate_delivery_time = strtotime($wip['delivery_date']);
+ $arrivetime = $estimate_delivery_time + (90 * 86400);
+ $month = collect_month($arrivetime);
+ if ($today > $arrivetime) {
+ $arrayData[$wip['contractno']]['delivery_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
+ array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
+ }
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $arrivetime));
+ $arrivetime = date('Ymd', $arrivetime);
+ $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;
+ array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
+ array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['check_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['delivery'][2] = strval($wip['delivery_date']);
+ $deliverytime = strtotime($wip['delivery_date']);
+ $month = collect_month($deliverytime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $deliverytime));
+ 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'])));
+ $checktime = strtotime($wip['official_check_date']);
+ $month = collect_month($checktime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][2] = strval(date('Ymd', $checktime));
+ }
+ 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']);
+ $tryruntime = $estimate_delivery_time + (90 * 86400);
+ $tryruntime = date('Ymd', $secondtime);
+ $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime);
+ array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($tryruntime)));
+ array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($tryruntime)));
+ $month = collect_month($tryruntime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
+ } 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'])));
+ $tryruntime = strtotime($wip['tryrun_end_date']);
+ $month = collect_month($tryruntime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
+ }
+ }
+ 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'])));
+ $installtime = strtotime($wip['install_end_date']);
+ $month = collect_month($installtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
+ }
+ 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);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $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 {
+ $arrivetime = strtotime($wip['real_arrival_date']);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $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']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
";
+ $arrayData[$wip['contractno']]['check_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['tryrun_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['install_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+ 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'])));
+ $checktime = strtotime($wip['official_check_date']);
+ $month = collect_month($checktime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][2] = strval(date('Ymd', $checktime));
+ }
+
+ if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) {
+ if (isset($arrayData[$wip['contractno']]['tryrun'][0]) && $arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") {
+ $estimate_delivery_time = strtotime($wip['tryrun_end_date']);
+ $tryruntime = $estimate_delivery_time + (90 * 86400);
+ $month = collect_month($tryruntime);
+ $tryruntime = date('Ymd', $tryruntime);
+ $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime);
+ array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($tryruntime)));
+ array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($tryruntime)));
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval($tryruntime);
+ } else {
+ $tryruntime = strtotime($wip['tryrun_end_date']);
+ $month = collect_month($tryruntime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
+ $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) {
+ $installtime = strtotime($wip['install_end_date']);
+ $month = collect_month($installtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
+ 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 (isset($arrayData[$wip['contractno']]['arrive'][0]) && $arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
+ $estimate_delivery_time = strtotime($wip['real_arrival_date']);
+ $arrivetime = $estimate_delivery_time + (90 * 86400);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $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'])));
+ $arrivetime = strtotime($wip['real_arrival_date']);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ }
+ } 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']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
";
+ $arrayData[$wip['contractno']]['tryrun_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['install_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+ 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'])));
+ $tryruntime = strtotime($wip['tryrun_end_date']);
+ $month = collect_month($tryruntime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
+ }
+ 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'])));
+ $installtime = strtotime($wip['install_end_date']);
+ $month = collect_month($installtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
+ }
+ 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);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $arrivetime = date('Ymd', $arrivetime);
+ $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
+ array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
+ array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
+ } else {
+ $arrivetime = strtotime($wip['real_arrival_date']);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $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', $arrivetime);
+ $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
+ 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']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
";
+ $arrayData[$wip['contractno']]['install_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+ if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) {
+ $installtime = strtotime($wip['install_end_date']);
+ $month = collect_month($installtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
+ 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);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $arrivetime = date('Ymd', $arrivetime);
+ $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
+ array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
+ array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
+ } else {
+ $arrivetime = strtotime($wip['real_arrival_date']);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $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']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
";
+ $arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+
+ if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
+ $estimate_delivery_time = strtotime($wip['real_arrival_date']);
+ $arrivetime = $estimate_delivery_time + (90 * 86400);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $arrivetime = date('Ymd', $arrivetime);
+ $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
+ array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
+ array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
+ } else {
+ $arrivetime = strtotime($wip['real_arrival_date']);
+ $month = collect_month($arrivetime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
+ $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'))) {
+ $secondtime = strtotime($arrayData[$wip['contractno']]['second'][2]);
+ $month = collect_month($secondtime);
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][2] = strval(date('Ymd', $secondtime));
+ $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (已達二次款收款條件)
";
+ $arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+ } else {
+ $arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
+ if ($wip['real_contract_arrival_date'] != NULL) {
+ $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
";
+ } elseif ($wip['estimated_shipping_date'] != NULL) {
+ $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
";
+ } else {
+ $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (預計出港日待確認)
";
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (預計出港日待確認)
";
+ }
+ }
+ }
+ }
+}
+// foreach ($arrayData as $key => $value) {
+// echo $key."
";
+// print_r($value['total_list']);
+// echo " / 總 ";
+// print_r($value['sign_list']);
+// echo " / 訂金
";
+// print_r($value['arrive_list']);
+// echo " / 貨抵 ";
+// print_r($value['install_list']);
+// echo " / 安裝
";
+// print_r($value['tryrun_list']);
+// echo " / 試車 ";
+// print_r($value['check_list']);
+// echo " / 官檢
";
+// print_r($value['delivery_list']);
+// echo " / 移交 ";
+// print_r($value['final_list']);
+// echo " / 結案
";
+// echo "---------------------------
";
+// foreach($value['sign_list'] as $fac){
+// echo $fac."=========";
+// }
+// }
+
+
+// 計算每個合約的應收款、作番總數
+$today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m-d')))));
+$contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final');
+foreach ($arrayData as &$value) {
+ if ($value['total_facility_num'] > 0) {
+ $sign_ratio = get_ratio($value['sign_list'], $value[10], $contract_budget);
+ $value['sign'][3] = $value['sign'][1] * $sign_ratio;
+ $second_ratio = get_ratio($value['second_list'], $value[10], $contract_budget);
+ $value['second'][3] = $value['second'][1] * $second_ratio;
+ $arrive_ratio = get_ratio($value['arrive_list'], $value[10], $contract_budget);
+ $value['arrive'][3] = $value['arrive'][1] * $arrive_ratio;
+ $install_ratio = get_ratio($value['install_list'], $value[10], $contract_budget);
+ $value['install'][3] = $value['install'][1] * $install_ratio;
+ $tryrun_ratio = get_ratio($value['tryrun_list'], $value[10], $contract_budget);
+ $value['tryrun'][3] = $value['tryrun'][1] * $tryrun_ratio;
+ $check_ratio = get_ratio($value['check_list'], $value[10], $contract_budget);
+ $value['check'][3] = $value['check'][1] * $check_ratio;
+ $delivery_ratio = get_ratio($value['delivery_list'], $value[10], $contract_budget);
+ $value['delivery'][3] = $value['delivery'][1] * $delivery_ratio;
+ $final_ratio = get_ratio($value['final_list'], $value[10], $contract_budget);
+ $value['final'][3] = $value['final'][1] * $final_ratio;
+ $value['receivable_budget'] = $value['sign'][3] + $value['second'][3] + $value['arrive'][3] + $value['install'][3] + $value['tryrun'][3] + $value['check'][3] + $value['delivery'][3] + $value['final'][3];
+ }
+ //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
+ // 計算每台作番金額與各階段應收金額
+ if (isset($value['facility'])) {
+ foreach ($value['facility'] as &$val) {
+ foreach ($contractstage as $stage) {
+ if (isset($value[$stage][0]) && !empty($value[$stage][0])) {
+ $val[$stage][0] = $value[$stage][0];
+ if (isset($contract_budget[$value[10]]['total']) && isset($contract_budget[$value[10]][$val['no']]['total'])) {
+ $ratio = $contract_budget[$value[10]][$val['no']]['total'] / $contract_budget[$value[10]]['total'];
+ } else {
+ $ratio = 0;
+ }
+ $val[$stage][1] = $value[$stage][1] * $ratio;
+ $val[$stage][3] = (!(isset($val[$stage][6])) || $val[$stage][6] == 0) ? 0 : $val[$stage][1];
+ $val['total_budget'] += $val[$stage][1];
+ $val['receivable_budget'] += $val[$stage][3];
+ }
+ }
+ }
+ }
+
+
+
+ // 計算最大催收次數與最小催收次數
+ 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) {
+ if (isset($arrayData[$invoice['ProjectId']])) {
+ $arrayData[$invoice['ProjectId']]['invoice_budget'] += intval($invoice['OAmountWithTax']);
+ $arrayData[$invoice['ProjectId']]['invoice'][$invoice['InvoiceNo']] = [date("Ymd", strtotime($invoice['InvoiceTime'])), $invoice['OAmountWithTax'], $invoice['InvoiceState']];
+ }
+}
+
+// 把核銷單的內容補到發票資料中
+foreach ($received_array as $received) {
+ if ($received['OrderBillNo'] == 'SO20230801001') {
+ $BillNo = 'M230947';
+ } elseif ($received['OrderBillNo'] == 'SO20230801002') {
+ $BillNo = 'M231067';
+ } else {
+ $BillNo = $received['OrderBillNo'];
+ };
+ if (isset($arrayData[$BillNo])) {
+ if (isset($arrayData[$BillNo]['invoice'][$received['InvoiceNo']])) {
+ $arrayData[$BillNo]['received_budget'] += $received['PayWriteOffOAmount'];
+ array_push($arrayData[$BillNo]['invoice'][$received['InvoiceNo']], date($received['ReceivedDate']), $received['PayWriteOffOAmount'], $received['Fee'], $received['BillNo']);
+ }
+ }
+}
+
+//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 4 已收金額 5 催收金額 6 已開發票金額 7 未開發票金額 min 最早應收月份 max 最晚應收月份
+foreach ($arrayData as $key => &$data) {
+ //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
+ //作番
+ $facilities = array();
+ if (isset($data['facility'])) {
+ foreach ($data['facility'] as $fakey => $val) {
+ array_push($facilities, $fakey);
+ }
+ }
+
+ $tmp_data = $data['received_budget'];
+ $tmp_invoice = $data['invoice_budget'];
+ //------------------------------------------------------------------------------------------------------------------------------------
+ if (isset($data['sign'][3]) && $data['sign'][3] > 0) {
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['sign'][3]) >= 0) {
+ $data['sign'][4] = $data['sign'][3];
+ $tmp_data -= $data['sign'][3];
+ $tmp_facility_received = $data['sign'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['sign'][3]) && $data['facility'][$this_facility]['sign'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['sign'][3]) {
+ $data['facility'][$this_facility]['sign'][4] = $data['facility'][$this_facility]['sign'][3];
+ $data['facility'][$this_facility]['sign'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['sign'][3];
+ }else{
+ $data['facility'][$this_facility]['sign'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['sign'][5] =$data['facility'][$this_facility]['sign'][3] -$data['facility'][$this_facility]['sign'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['sign'][4] = 0;
+ $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['sign'][4] = 0;
+ $data['facility'][$this_facility]['sign'][5] = 0;
+ }
+ if($data['facility'][$this_facility]['sign'][5] == 0){
+ $data['facility'][$this_facility]['sign'][6] =0;
+ }
+ }
+ } else {
+ $data['sign'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['sign'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['sign'][3]) && $data['facility'][$this_facility]['sign'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['sign'][3]) {
+ $data['facility'][$this_facility]['sign'][4] = $data['facility'][$this_facility]['sign'][3];
+ $data['facility'][$this_facility]['sign'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['sign'][3];
+ }else{
+ $data['facility'][$this_facility]['sign'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['sign'][5] =$data['facility'][$this_facility]['sign'][3] -$data['facility'][$this_facility]['sign'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['sign'][4] = 0;
+ $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['sign'][4] = 0;
+ $data['facility'][$this_facility]['sign'][5] = 0;
+ }
+ if($data['facility'][$this_facility]['sign'][5] == 0){
+ $data['facility'][$this_facility]['sign'][6] =0;
+ }
+ }
+ }
+ $data['sign'][5] = $data['sign'][3] - $data['sign'][4];
+ } else {
+ $data['sign'][4] = 0;
+ $data['sign'][5] = $data['sign'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['sign'][4] = 0;
+ $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3];
+ if($data['facility'][$this_facility]['sign'][5] == 0){
+ $data['facility'][$this_facility]['sign'][6] =0;
+ }
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['sign'][3]) >= 0) {
+ $data['sign'][6] = $data['sign'][3];
+ $tmp_invoice -= $data['sign'][3];
+ } else {
+ $data['sign'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['sign'][7] = $data['sign'][3] - $data['sign'][6];
+ } else {
+ $data['sign'][6] = 0;
+ $data['sign'][7] = $data['sign'][3];
+ }
+ } else {
+ $data['sign'][4] = 0;
+ $data['sign'][5] = 0;
+ $data['sign'][6] = 0;
+ $data['sign'][7] = 0;
+ }
+ if (isset($data['second'][3]) && $data['second'][3] > 0) {
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['second'][3]) >= 0) {
+ $data['second'][4] = $data['second'][3];
+ $tmp_data -= $data['second'][3];
+ $tmp_facility_received = $data['second'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['second'][3]) && $data['facility'][$this_facility]['second'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['second'][3]) {
+ $data['facility'][$this_facility]['second'][4] = $data['facility'][$this_facility]['second'][3];
+ $data['facility'][$this_facility]['second'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['second'][3];
+ }else{
+ $data['facility'][$this_facility]['second'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['second'][5] =$data['facility'][$this_facility]['second'][3] -$data['facility'][$this_facility]['second'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['second'][4] = 0;
+ $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['second'][4] = 0;
+ $data['facility'][$this_facility]['second'][5] = 0;
+ $data['facility'][$this_facility]['second'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['second'][5] == 0){
+ $data['facility'][$this_facility]['second'][6] =0;
+ }
+ }
+ } else {
+ $data['second'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['second'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['second'][3]) && $data['facility'][$this_facility]['second'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['second'][3]) {
+ $data['facility'][$this_facility]['second'][4] = $data['facility'][$this_facility]['second'][3];
+ $data['facility'][$this_facility]['second'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['second'][3];
+ }else{
+ $data['facility'][$this_facility]['second'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['second'][5] =$data['facility'][$this_facility]['second'][3] -$data['facility'][$this_facility]['second'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['second'][4] = 0;
+ $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['second'][4] = 0;
+ $data['facility'][$this_facility]['second'][5] = 0;
+ $data['facility'][$this_facility]['second'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['second'][5] == 0){
+ $data['facility'][$this_facility]['second'][6] =0;
+ }
+ }
+ }
+ $data['second'][5] = $data['second'][3] - $data['second'][4];
+ } else {
+ $data['second'][4] = 0;
+ $data['second'][5] = $data['second'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['second'][4] = 0;
+ $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3];
+ if($data['facility'][$this_facility]['second'][5] == 0){
+ $data['facility'][$this_facility]['second'][6] =0;
+ }
+ }
+
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['second'][3]) >= 0) {
+ $data['second'][6] = $data['second'][3];
+ $tmp_invoice -= $data['second'][3];
+ } else {
+ $data['second'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['second'][7] = $data['second'][3] - $data['second'][6];
+ } else {
+ $data['second'][6] = 0;
+ $data['second'][7] = $data['second'][3];
+ }
+ } else {
+ $data['second'][4] = 0;
+ $data['second'][5] = 0;
+ $data['second'][6] = 0;
+ $data['second'][7] = 0;
+ }
+
+ if (isset($data['arrive'][3]) && $data['arrive'][3] > 0) {
+
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['arrive'][1]) >= 0) {
+ $data['arrive'][4] = $data['arrive'][3];
+ $tmp_data -= $data['arrive'][3];
+ $tmp_facility_received = $data['arrive'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['arrive'][3]) && $data['facility'][$this_facility]['arrive'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['arrive'][3]) {
+ $data['facility'][$this_facility]['arrive'][4] = $data['facility'][$this_facility]['arrive'][3];
+ $data['facility'][$this_facility]['arrive'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['arrive'][3];
+ }else{
+ $data['facility'][$this_facility]['arrive'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['arrive'][5] =$data['facility'][$this_facility]['arrive'][3] -$data['facility'][$this_facility]['arrive'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['arrive'][4] = 0;
+ $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['arrive'][4] = 0;
+ $data['facility'][$this_facility]['arrive'][5] = 0;
+ $data['facility'][$this_facility]['arrive'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['arrive'][5] == 0){
+ $data['facility'][$this_facility]['arrive'][6] =0;
+ }
+ }
+ } else {
+ $data['arrive'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['arrive'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['arrive'][3]) && $data['facility'][$this_facility]['arrive'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['arrive'][3]) {
+ $data['facility'][$this_facility]['arrive'][4] = $data['facility'][$this_facility]['arrive'][3];
+ $data['facility'][$this_facility]['arrive'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['arrive'][3];
+ }else{
+ $data['facility'][$this_facility]['arrive'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['arrive'][5] =$data['facility'][$this_facility]['arrive'][3] -$data['facility'][$this_facility]['arrive'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['arrive'][4] = 0;
+ $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['arrive'][4] = 0;
+ $data['facility'][$this_facility]['arrive'][5] = 0;
+ $data['facility'][$this_facility]['arrive'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['arrive'][5] == 0){
+ $data['facility'][$this_facility]['arrive'][6] =0;
+ }
+ }
+ }
+ $data['arrive'][5] = $data['arrive'][3] - $data['arrive'][4];
+ } else {
+ $data['arrive'][4] = 0;
+ $data['arrive'][5] = $data['arrive'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['arrive'][4] = 0;
+ $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3];
+ if($data['facility'][$this_facility]['arrive'][5] == 0){
+ $data['facility'][$this_facility]['arrive'][6] =0;
+ }
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['arrive'][3]) >= 0) {
+ $data['arrive'][6] = $data['arrive'][3];
+ $tmp_invoice -= $data['arrive'][3];
+ } else {
+ $data['arrive'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['arrive'][7] = $data['arrive'][3] - $data['arrive'][6];
+ } else {
+ $data['arrive'][6] = 0;
+ $data['arrive'][7] = $data['arrive'][3];
+ }
+ } else {
+ $data['arrive'][4] = 0;
+ $data['arrive'][5] = 0;
+ $data['arrive'][6] = 0;
+ $data['arrive'][7] = 0;
+ }
+
+ if (isset($data['install'][3]) && $data['install'][3] > 0) {
+
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['install'][1]) >= 0) {
+ $data['install'][4] = $data['install'][3];
+ $tmp_data -= $data['install'][3];
+ $tmp_facility_received = $data['install'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['install'][3]) && $data['facility'][$this_facility]['install'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['install'][3]) {
+ $data['facility'][$this_facility]['install'][4] = $data['facility'][$this_facility]['install'][3];
+ $data['facility'][$this_facility]['install'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['install'][3];
+ }else{
+ $data['facility'][$this_facility]['install'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['install'][5] =$data['facility'][$this_facility]['install'][3] -$data['facility'][$this_facility]['install'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['install'][4] = 0;
+ $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['install'][4] = 0;
+ $data['facility'][$this_facility]['install'][5] = 0;
+ $data['facility'][$this_facility]['install'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['install'][5] == 0){
+ $data['facility'][$this_facility]['install'][6] =0;
+ }
+ }
+ } else {
+ $data['install'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['install'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['install'][3]) && $data['facility'][$this_facility]['install'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['install'][3]) {
+ $data['facility'][$this_facility]['install'][4] = $data['facility'][$this_facility]['install'][3];
+ $data['facility'][$this_facility]['install'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['install'][3];
+ }else{
+ $data['facility'][$this_facility]['install'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['install'][5] =$data['facility'][$this_facility]['install'][3] -$data['facility'][$this_facility]['install'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['install'][4] = 0;
+ $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['install'][4] = 0;
+ $data['facility'][$this_facility]['install'][5] = 0;
+ $data['facility'][$this_facility]['install'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['install'][5] == 0){
+ $data['facility'][$this_facility]['install'][6] =0;
+ }
+ }
+ }
+ $data['install'][5] = $data['install'][3] - $data['install'][4];
+ } else {
+ $data['install'][4] = 0;
+ $data['install'][5] = $data['install'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['install'][4] = 0;
+ $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3];
+ if($data['facility'][$this_facility]['install'][5] == 0){
+ $data['facility'][$this_facility]['install'][6] =0;
+ }
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['install'][3]) >= 0) {
+ $data['install'][6] = $data['install'][3];
+ $tmp_invoice -= $data['install'][3];
+ } else {
+ $data['install'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['install'][7] = $data['install'][3] - $data['install'][6];
+ } else {
+ $data['install'][6] = 0;
+ $data['install'][7] = $data['install'][3];
+ }
+ } else {
+ $data['install'][4] = 0;
+ $data['install'][5] = 0;
+ $data['install'][6] = 0;
+ $data['install'][7] = 0;
+ }
+
+
+ if (isset($data['tryrun'][3]) && $data['tryrun'][3] > 0) {
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['tryrun'][1]) >= 0) {
+ $data['tryrun'][4] = $data['tryrun'][3];
+ $tmp_data -= $data['tryrun'][3];
+ $tmp_facility_received = $data['tryrun'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['tryrun'][3]) && $data['facility'][$this_facility]['tryrun'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['tryrun'][3]) {
+ $data['facility'][$this_facility]['tryrun'][4] = $data['facility'][$this_facility]['tryrun'][3];
+ $data['facility'][$this_facility]['tryrun'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['tryrun'][3];
+ }else{
+ $data['facility'][$this_facility]['tryrun'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['tryrun'][5] =$data['facility'][$this_facility]['tryrun'][3] -$data['facility'][$this_facility]['tryrun'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['tryrun'][4] = 0;
+ $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['tryrun'][4] = 0;
+ $data['facility'][$this_facility]['tryrun'][5] = 0;
+ $data['facility'][$this_facility]['tryrun'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['tryrun'][5] == 0){
+ $data['facility'][$this_facility]['tryrun'][6] =0;
+ }
+ }
+ } else {
+ $data['tryrun'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['tryrun'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['tryrun'][3]) && $data['facility'][$this_facility]['tryrun'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['tryrun'][3]) {
+ $data['facility'][$this_facility]['tryrun'][4] = $data['facility'][$this_facility]['tryrun'][3];
+ $data['facility'][$this_facility]['tryrun'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['tryrun'][3];
+ }else{
+ $data['facility'][$this_facility]['tryrun'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['tryrun'][5] =$data['facility'][$this_facility]['tryrun'][3] -$data['facility'][$this_facility]['tryrun'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['tryrun'][4] = 0;
+ $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['tryrun'][4] = 0;
+ $data['facility'][$this_facility]['tryrun'][5] = 0;
+ $data['facility'][$this_facility]['tryrun'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['tryrun'][5] == 0){
+ $data['facility'][$this_facility]['tryrun'][6] =0;
+ }
+ }
+ }
+ $data['tryrun'][5] = $data['tryrun'][3] - $data['tryrun'][4];
+ } else {
+ $data['tryrun'][4] = 0;
+ $data['tryrun'][5] = $data['tryrun'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['tryrun'][4] = 0;
+ $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3];
+ if($data['facility'][$this_facility]['tryrun'][5] == 0){
+ $data['facility'][$this_facility]['tryrun'][6] =0;
+ }
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['tryrun'][3]) >= 0) {
+ $data['tryrun'][6] = $data['tryrun'][3];
+ $tmp_invoice -= $data['tryrun'][3];
+ } else {
+ $data['tryrun'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['tryrun'][7] = $data['tryrun'][3] - $data['tryrun'][6];
+ } else {
+ $data['tryrun'][6] = 0;
+ $data['tryrun'][7] = $data['tryrun'][3];
+ }
+ } else {
+ $data['tryrun'][4] = 0;
+ $data['tryrun'][5] = 0;
+ $data['tryrun'][6] = 0;
+ $data['tryrun'][7] = 0;
+ }
+
+ if (isset($data['check'][3]) && $data['check'][3] > 0) {
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['check'][1]) >= 0) {
+ $data['check'][4] = $data['check'][3];
+ $tmp_data -= $data['check'][3];
+ $tmp_facility_received = $data['check'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['check'][3]) && $data['facility'][$this_facility]['check'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['check'][3]) {
+ $data['facility'][$this_facility]['check'][4] = $data['facility'][$this_facility]['check'][3];
+ $data['facility'][$this_facility]['check'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['check'][3];
+ }else{
+ $data['facility'][$this_facility]['check'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['check'][5] =$data['facility'][$this_facility]['check'][3] -$data['facility'][$this_facility]['check'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['check'][4] = 0;
+ $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['check'][4] = 0;
+ $data['facility'][$this_facility]['check'][5] = 0;
+ $data['facility'][$this_facility]['check'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['check'][5] == 0){
+ $data['facility'][$this_facility]['check'][6] =0;
+ }
+ }
+ } else {
+ $data['check'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['check'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['check'][3]) && $data['facility'][$this_facility]['check'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['check'][3]) {
+ $data['facility'][$this_facility]['check'][4] = $data['facility'][$this_facility]['check'][3];
+ $data['facility'][$this_facility]['check'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['check'][3];
+ }else{
+ $data['facility'][$this_facility]['check'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['check'][5] =$data['facility'][$this_facility]['check'][3] -$data['facility'][$this_facility]['check'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['check'][4] = 0;
+ $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['check'][4] = 0;
+ $data['facility'][$this_facility]['check'][5] = 0;
+ $data['facility'][$this_facility]['check'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['check'][5] == 0){
+ $data['facility'][$this_facility]['check'][6] =0;
+ }
+ }
+ }
+ $data['check'][5] = $data['check'][3] - $data['check'][4];
+ } else {
+ $data['check'][4] = 0;
+ $data['check'][5] = $data['check'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['check'][4] = 0;
+ $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3];
+ if($data['facility'][$this_facility]['check'][5] == 0){
+ $data['facility'][$this_facility]['check'][6] =0;
+ }
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['check'][3]) >= 0) {
+ $data['check'][6] = $data['check'][3];
+ $tmp_invoice -= $data['check'][3];
+ } else {
+ $data['check'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['check'][7] = $data['check'][3] - $data['check'][6];
+ } else {
+ $data['check'][6] = 0;
+ $data['check'][7] = $data['check'][3];
+ }
+ } else {
+ $data['check'][4] = 0;
+ $data['check'][5] = 0;
+ $data['check'][6] = 0;
+ $data['check'][7] = 0;
+ }
+ if (isset($data['delivery'][3]) && $data['delivery'][3] > 0) {
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['delivery'][1]) >= 0) {
+ $data['delivery'][4] = $data['delivery'][3];
+ $tmp_data -= $data['delivery'][3];
+ $tmp_facility_received = $data['delivery'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['delivery'][3]) && $data['facility'][$this_facility]['delivery'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['delivery'][3]) {
+ $data['facility'][$this_facility]['delivery'][4] = $data['facility'][$this_facility]['delivery'][3];
+ $data['facility'][$this_facility]['delivery'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['delivery'][3];
+ }else{
+ $data['facility'][$this_facility]['delivery'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['delivery'][5] =$data['facility'][$this_facility]['delivery'][3] -$data['facility'][$this_facility]['delivery'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['delivery'][4] = 0;
+ $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['delivery'][4] = 0;
+ $data['facility'][$this_facility]['delivery'][5] = 0;
+ $data['facility'][$this_facility]['delivery'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['delivery'][5] == 0){
+ $data['facility'][$this_facility]['delivery'][6] =0;
+ }
+ }
+ } else {
+ $data['delivery'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['delivery'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['delivery'][3]) && $data['facility'][$this_facility]['delivery'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['delivery'][3]) {
+ $data['facility'][$this_facility]['delivery'][4] = $data['facility'][$this_facility]['delivery'][3];
+ $data['facility'][$this_facility]['delivery'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['delivery'][3];
+ }else{
+ $data['facility'][$this_facility]['delivery'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['delivery'][5] =$data['facility'][$this_facility]['delivery'][3] -$data['facility'][$this_facility]['delivery'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['delivery'][4] = 0;
+ $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['delivery'][4] = 0;
+ $data['facility'][$this_facility]['delivery'][5] = 0;
+ $data['facility'][$this_facility]['delivery'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['delivery'][5] == 0){
+ $data['facility'][$this_facility]['delivery'][6] =0;
+ }
+ }
+ }
+ $data['delivery'][5] = $data['delivery'][3] - $data['delivery'][4];
+ } else {
+ $data['delivery'][4] = 0;
+ $data['delivery'][5] = $data['delivery'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['delivery'][4] = 0;
+ $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3];
+ if($data['facility'][$this_facility]['sign'][5] == 0){
+ $data['facility'][$this_facility]['sign'][6] =0;
+ }
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['delivery'][3]) >= 0) {
+ $data['delivery'][6] = $data['delivery'][3];
+ $tmp_invoice -= $data['delivery'][3];
+ } else {
+ $data['delivery'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['delivery'][7] = $data['delivery'][3] - $data['delivery'][6];
+ } else {
+ $data['delivery'][6] = 0;
+ $data['delivery'][7] = $data['delivery'][3];
+ }
+ } else {
+ $data['delivery'][4] = 0;
+ $data['delivery'][5] = 0;
+ $data['delivery'][6] = 0;
+ $data['delivery'][7] = 0;
+ }
+
+ if (isset($data['final'][3]) && $data['final'][3] > 0) {
+ if ($tmp_data > 0) {
+ if (($tmp_data - $data['final'][1]) >= 0) {
+ $data['final'][4] = $data['final'][3];
+ $tmp_data -= $data['final'][3];
+ $tmp_facility_received = $data['final'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['final'][3]) && $data['facility'][$this_facility]['final'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['final'][3]) {
+ $data['facility'][$this_facility]['final'][4] = $data['facility'][$this_facility]['final'][3];
+ $data['facility'][$this_facility]['final'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['final'][3];
+ }else{
+ $data['facility'][$this_facility]['final'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['final'][5] =$data['facility'][$this_facility]['final'][3] -$data['facility'][$this_facility]['final'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['final'][4] = 0;
+ $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['final'][4] = 0;
+ $data['facility'][$this_facility]['final'][5] = 0;
+ $data['facility'][$this_facility]['final'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['final'][5] == 0){
+ $data['facility'][$this_facility]['final'][6] =0;
+ }
+ }
+ } else {
+ $data['final'][4] = $tmp_data;
+ $tmp_data = 0;
+ $tmp_facility_received = $data['final'][4];
+ foreach ($facilities as $this_facility) {
+ if (isset($data['facility'][$this_facility]['final'][3]) && $data['facility'][$this_facility]['final'][3] > 0) {
+ if ($tmp_facility_received > 0) {
+ if ($tmp_facility_received >= $data['facility'][$this_facility]['final'][3]) {
+ $data['facility'][$this_facility]['final'][4] = $data['facility'][$this_facility]['final'][3];
+ $data['facility'][$this_facility]['final'][5] = 0;
+ $tmp_facility_received -= $data['facility'][$this_facility]['final'][3];
+ }else{
+ $data['facility'][$this_facility]['final'][4] = $tmp_facility_received;
+ $data['facility'][$this_facility]['final'][5] =$data['facility'][$this_facility]['final'][3] -$data['facility'][$this_facility]['final'][4];
+ $tmp_facility_received = 0;
+ }
+ }else{
+ $data['facility'][$this_facility]['final'][4] = 0;
+ $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3];
+
+ }
+ }else{
+ $data['facility'][$this_facility]['final'][4] = 0;
+ $data['facility'][$this_facility]['final'][5] = 0;
+ $data['facility'][$this_facility]['final'][6] = 0;
+ }
+ if($data['facility'][$this_facility]['final'][5] == 0){
+ $data['facility'][$this_facility]['final'][6] =0;
+ }
+ }
+ }
+ $data['final'][5] = $data['final'][3] - $data['final'][4];
+ } else {
+ $data['final'][4] = 0;
+ $data['final'][5] = $data['final'][3];
+ foreach($facilities as $this_facility){
+ $data['facility'][$this_facility]['final'][4] = 0;
+ $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3];
+ }
+ if($data['facility'][$this_facility]['final'][5] == 0){
+ $data['facility'][$this_facility]['final'][6] =0;
+ }
+ }
+ if ($tmp_invoice > 0) {
+ if (($tmp_invoice - $data['final'][3]) >= 0) {
+ $data['final'][6] = $data['final'][3];
+ $tmp_invoice -= $data['final'][3];
+ } else {
+ $data['final'][6] = $tmp_invoice;
+ $tmp_invoice = 0;
+ }
+ $data['final'][7] = $data['final'][3] - $data['final'][6];
+ } else {
+ $data['final'][6] = 0;
+ $data['final'][7] = $data['final'][3];
+ }
+ } else {
+ $data['final'][4] = 0;
+ $data['final'][5] = 0;
+ $data['final'][6] = 0;
+ $data['final'][7] = 0;
+ }
+}
+
+
+//產生excel的array
+$excel_aray = array();
+$boga_array = array();
+$exclude_boga_array = array();
+$facility_array = array();
+$facility_boga_array = array();
+$facility_exclude_boga_array = array();
+foreach ($arrayData as $key => $value) {
+ $sum_A40001 += isset($value['A40001']) ? $value['A40001'] : 0;
+ $sum_A40008 += isset($value['A40008']) ? $value['A40008'] : 0;
+ $sum_total_budget += $value['total_budget'];
+ $sum_facility += $value['total_facility_num'];
+ $value['sign'][3] = (isset($value['sign'][3])) ? $value['sign'][3] : 0;
+ $value['second'][3] = (isset($value['second'][3])) ? $value['second'][3] : 0;
+ $value['arrive'][3] = (isset($value['arrive'][3])) ? $value['arrive'][3] : 0;
+ $value['install'][3] = (isset($value['install'][3])) ? $value['install'][3] : 0;
+ $value['tryrun'][3] = (isset($value['tryrun'][3])) ? $value['tryrun'][3] : 0;
+ $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;
+ $value[9] = (isset($value[9])) ? Date('Ymd', strtotime($value[9])) : 0;
+ $contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final');
+ foreach ($contractstage as $i) {
+ $value[$i]['max'] = (empty($value[$i]['max']) || is_null($value[$i]['max'])) ? 0 : $value[$i]['max'];
+ $value[$i]['min'] = (empty($value[$i]['min']) || is_null($value[$i]['min'])) ? 0 : $value[$i]['min'];
+ $value[$i][4] = (isset($value[$i][4])) ? $value[$i][4] : 0;
+ $value[$i][5] = (isset($value[$i][5])) ? $value[$i][5] : 0;
+ $value['A40001'] = (isset($value['A40001'])) ? $value['A40001'] : 0;
+ $value['A40008'] = (isset($value['A40008'])) ? $value['A40008'] : 0;
+ };
+
+ if (isset($value['sign'][0]) && $value['sign'][0] == "寶佳出貨前30天") {
+ $boga_array[$key] = [
+ $value[9], $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
+ number_format(round($value['sign'][1])), number_format(round($value['sign'][3])), number_format(round($value['sign'][6])), number_format(round($value['sign'][7])), number_format(round($value['sign'][4])), number_format(round($value['sign'][5])), $value['sign']['max'], $value['sign']['min'],
+ number_format(round($value['second'][1])), number_format(round($value['second'][3])), number_format(round($value['second'][6])), number_format(round($value['second'][7])), number_format(round($value['second'][4])), number_format(round($value['second'][5])), $value['second']['max'], $value['second']['min'],
+ number_format(round($value['arrive'][1])), number_format(round($value['arrive'][3])), number_format(round($value['arrive'][6])), number_format(round($value['arrive'][7])), number_format(round($value['arrive'][4])), number_format(round($value['arrive'][5])), $value['arrive']['max'], $value['arrive']['min'],
+ number_format(round($value['install'][1])), number_format(round($value['install'][3])), number_format(round($value['install'][6])), number_format(round($value['install'][7])), number_format(round($value['install'][4])), number_format(round($value['install'][5])), $value['install']['max'], $value['install']['min'],
+ number_format(round($value['tryrun'][1])), number_format(round($value['tryrun'][3])), number_format(round($value['tryrun'][6])), number_format(round($value['tryrun'][7])), number_format(round($value['tryrun'][4])), number_format(round($value['tryrun'][5])), $value['tryrun']['max'], $value['tryrun']['min'],
+ number_format(round($value['check'][1])), number_format(round($value['check'][3])), number_format(round($value['check'][6])), number_format(round($value['check'][7])), number_format(round($value['check'][4])), number_format(round($value['check'][5])), $value['check']['max'], $value['check']['min'],
+ number_format(round($value['delivery'][1])), number_format(round($value['delivery'][3])), number_format(round($value['delivery'][6])), number_format(round($value['delivery'][7])), number_format(round($value['delivery'][4])), number_format(round($value['delivery'][5])), $value['delivery']['max'], $value['delivery']['min'],
+ number_format(round($value['final'][1])), number_format(round($value['final'][3])), number_format(round($value['final'][6])), number_format(round($value['final'][7])), number_format(round($value['final'][4])), number_format(round($value['final'][5])), $value['final']['max'], $value['final']['min'],
+ number_format(round($value['A40001'])), number_format(round($value['A40008'])), number_format(round($value['total_budget'])), number_format(round($value['receivable_budget'])), number_format(round($value['invoice_budget'])), number_format(round($value['received_budget'])), $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
+ ];
+ } else {
+ $exclude_boga_array[$key] = [
+ $value[9], $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
+ number_format(round($value['sign'][1])), number_format(round($value['sign'][3])), number_format(round($value['sign'][6])), number_format(round($value['sign'][7])), number_format(round($value['sign'][4])), number_format(round($value['sign'][5])), $value['sign']['max'], $value['sign']['min'],
+ number_format(round($value['second'][1])), number_format(round($value['second'][3])), number_format(round($value['second'][6])), number_format(round($value['second'][7])), number_format(round($value['second'][4])), number_format(round($value['second'][5])), $value['second']['max'], $value['second']['min'],
+ number_format(round($value['arrive'][1])), number_format(round($value['arrive'][3])), number_format(round($value['arrive'][6])), number_format(round($value['arrive'][7])), number_format(round($value['arrive'][4])), number_format(round($value['arrive'][5])), $value['arrive']['max'], $value['arrive']['min'],
+ number_format(round($value['install'][1])), number_format(round($value['install'][3])), number_format(round($value['install'][6])), number_format(round($value['install'][7])), number_format(round($value['install'][4])), number_format(round($value['install'][5])), $value['install']['max'], $value['install']['min'],
+ number_format(round($value['tryrun'][1])), number_format(round($value['tryrun'][3])), number_format(round($value['tryrun'][6])), number_format(round($value['tryrun'][7])), number_format(round($value['tryrun'][4])), number_format(round($value['tryrun'][5])), $value['tryrun']['max'], $value['tryrun']['min'],
+ number_format(round($value['check'][1])), number_format(round($value['check'][3])), number_format(round($value['check'][6])), number_format(round($value['check'][7])), number_format(round($value['check'][4])), number_format(round($value['check'][5])), $value['check']['max'], $value['check']['min'],
+ number_format(round($value['delivery'][1])), number_format(round($value['delivery'][3])), number_format(round($value['delivery'][6])), number_format(round($value['delivery'][7])), number_format(round($value['delivery'][4])), number_format(round($value['delivery'][5])), $value['delivery']['max'], $value['delivery']['min'],
+ number_format(round($value['final'][1])), number_format(round($value['final'][3])), number_format(round($value['final'][6])), number_format(round($value['final'][7])), number_format(round($value['final'][4])), number_format(round($value['final'][5])), $value['final']['max'], $value['final']['min'],
+ number_format(round($value['A40001'])), number_format(round($value['A40008'])), number_format(round($value['total_budget'])), number_format(round($value['receivable_budget'])), number_format(round($value['invoice_budget'])), number_format(round($value['received_budget'])), $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
+ ];
+ }
+
+ $excel_aray[$key] = [
+ $value[9], $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
+ number_format(round($value['sign'][1])), number_format(round($value['sign'][3])), number_format(round($value['sign'][6])), number_format(round($value['sign'][7])), number_format(round($value['sign'][4])), number_format(round($value['sign'][5])), $value['sign']['max'], $value['sign']['min'],
+ number_format(round($value['second'][1])), number_format(round($value['second'][3])), number_format(round($value['second'][6])), number_format(round($value['second'][7])), number_format(round($value['second'][4])), number_format(round($value['second'][5])), $value['second']['max'], $value['second']['min'],
+ number_format(round($value['arrive'][1])), number_format(round($value['arrive'][3])), number_format(round($value['arrive'][6])), number_format(round($value['arrive'][7])), number_format(round($value['arrive'][4])), number_format(round($value['arrive'][5])), $value['arrive']['max'], $value['arrive']['min'],
+ number_format(round($value['install'][1])), number_format(round($value['install'][3])), number_format(round($value['install'][6])), number_format(round($value['install'][7])), number_format(round($value['install'][4])), number_format(round($value['install'][5])), $value['install']['max'], $value['install']['min'],
+ number_format(round($value['tryrun'][1])), number_format(round($value['tryrun'][3])), number_format(round($value['tryrun'][6])), number_format(round($value['tryrun'][7])), number_format(round($value['tryrun'][4])), number_format(round($value['tryrun'][5])), $value['tryrun']['max'], $value['tryrun']['min'],
+ number_format(round($value['check'][1])), number_format(round($value['check'][3])), number_format(round($value['check'][6])), number_format(round($value['check'][7])), number_format(round($value['check'][4])), number_format(round($value['check'][5])), $value['check']['max'], $value['check']['min'],
+ number_format(round($value['delivery'][1])), number_format(round($value['delivery'][3])), number_format(round($value['delivery'][6])), number_format(round($value['delivery'][7])), number_format(round($value['delivery'][4])), number_format(round($value['delivery'][5])), $value['delivery']['max'], $value['delivery']['min'],
+ number_format(round($value['final'][1])), number_format(round($value['final'][3])), number_format(round($value['final'][6])), number_format(round($value['final'][7])), number_format(round($value['final'][4])), number_format(round($value['final'][5])), $value['final']['max'], $value['final']['min'],
+ number_format(round($value['A40001'])), number_format(round($value['A40008'])), number_format(round($value['total_budget'])), number_format(round($value['receivable_budget'])), number_format(round($value['invoice_budget'])), number_format(round($value['received_budget'])), $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
+ ];
+
+ //['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份
+ //[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
+ if (isset($value['facility'])) {
+ foreach ($value['facility'] as $valkey => $val) {
+ foreach ($contractstage as $stage) {
+ $val[$stage][0] = (!(isset($val[$stage][0])) || is_null($val[$stage][0])) ? "-" : $val[$stage][0];
+ $val[$stage][1] = (!(isset($val[$stage][1])) || is_null($val[$stage][1])) ? 0 : $val[$stage][1];
+ $val[$stage][2] = (!(isset($val[$stage][2])) || is_null($val[$stage][2])) ? "-" : $val[$stage][2];
+ $val[$stage][3] = (!(isset($val[$stage][3])) || is_null($val[$stage][3])) ? 0 : $val[$stage][3];
+ $val[$stage][4] = (!(isset($val[$stage][4])) || is_null($val[$stage][4])) ? 0 : $val[$stage][4];
+ $val[$stage][5] = (!(isset($val[$stage][5])) || is_null($val[$stage][5])) ? 0 : $val[$stage][5];
+ $val[$stage][6] = (!(isset($val[$stage][6])) || is_null($val[$stage][6])) ? 0 : $val[$stage][6];
+ }
+ $facility_array[$valkey] = [
+ $value[9], $valkey, $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
+ $val['sign'][0], number_format(round($val['sign'][1])), $val['sign'][2], number_format(round($val['sign'][3])), number_format(round($val['sign'][4])), number_format(round($val['sign'][5])), number_format(round($val['sign'][6])),
+ $val['second'][0], number_format(round($val['second'][1])), $val['second'][2], number_format(round($val['second'][3])), number_format(round($val['second'][4])), number_format(round($val['second'][5])), number_format(round($val['second'][6])),
+ $val['arrive'][0], number_format(round($val['arrive'][1])), $val['arrive'][2], number_format(round($val['arrive'][3])), number_format(round($val['arrive'][4])), number_format(round($val['arrive'][5])), number_format(round($val['arrive'][6])),
+ $val['install'][0], number_format(round($val['install'][1])), $val['install'][2], number_format(round($val['install'][3])), number_format(round($val['install'][4])), number_format(round($val['install'][5])), number_format(round($val['install'][6])),
+ $val['tryrun'][0], number_format(round($val['tryrun'][1])), $val['tryrun'][2], number_format(round($val['tryrun'][3])), number_format(round($val['tryrun'][4])), number_format(round($val['tryrun'][5])), number_format(round($val['tryrun'][6])),
+ $val['check'][0], number_format(round($val['check'][1])), $val['check'][2], number_format(round($val['check'][3])), number_format(round($val['check'][4])), number_format(round($val['check'][5])), number_format(round($val['check'][6])),
+ $val['delivery'][0], number_format(round($val['delivery'][1])), $val['delivery'][2], number_format(round($val['delivery'][3])), number_format(round($val['delivery'][4])), number_format(round($val['delivery'][5])), number_format(round($val['delivery'][6])),
+ $val['final'][0], number_format(round($val['final'][1])), $val['final'][2], number_format(round($val['final'][3])), number_format(round($val['final'][4])), number_format(round($val['final'][5])), number_format(round($val['final'][6])),
+ str_replace('
', '; ', $val['status']), number_format(round($val['A40001'])), number_format(round($val['A40008'])), number_format(round($val['total_budget'])), number_format(round($val['receivable_budget']))
+ ];
+ if ($value['sign'][0] == "寶佳出貨前30天") {
+ $facility_boga_array[$valkey] = [
+ $value[9], $valkey, $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
+ $val['sign'][0], number_format(round($val['sign'][1])), $val['sign'][2], number_format(round($val['sign'][3])), number_format(round($val['sign'][4])), number_format(round($val['sign'][5])), number_format(round($val['sign'][6])),
+ $val['second'][0], number_format(round($val['second'][1])), $val['second'][2], number_format(round($val['second'][3])), number_format(round($val['second'][4])), number_format(round($val['second'][5])), number_format(round($val['second'][6])),
+ $val['arrive'][0], number_format(round($val['arrive'][1])), $val['arrive'][2], number_format(round($val['arrive'][3])), number_format(round($val['arrive'][4])), number_format(round($val['arrive'][5])), number_format(round($val['arrive'][6])),
+ $val['install'][0], number_format(round($val['install'][1])), $val['install'][2], number_format(round($val['install'][3])), number_format(round($val['install'][4])), number_format(round($val['install'][5])), number_format(round($val['install'][6])),
+ $val['tryrun'][0], number_format(round($val['tryrun'][1])), $val['tryrun'][2], number_format(round($val['tryrun'][3])), number_format(round($val['tryrun'][4])), number_format(round($val['tryrun'][5])), number_format(round($val['tryrun'][6])),
+ $val['check'][0], number_format(round($val['check'][1])), $val['check'][2], number_format(round($val['check'][3])), number_format(round($val['check'][4])), number_format(round($val['check'][5])), number_format(round($val['check'][6])),
+ $val['delivery'][0], number_format(round($val['delivery'][1])), $val['delivery'][2], number_format(round($val['delivery'][3])), number_format(round($val['delivery'][4])), number_format(round($val['delivery'][5])), number_format(round($val['delivery'][6])),
+ $val['final'][0], number_format(round($val['final'][1])), $val['final'][2], number_format(round($val['final'][3])), number_format(round($val['final'][4])), number_format(round($val['final'][5])), number_format(round($val['final'][6])),
+ str_replace('
', '; ', $val['status']), number_format(round($val['A40001'])), number_format(round($val['A40008'])), number_format(round($val['total_budget'])), number_format(round($val['receivable_budget']))
+ ];
+ } else {
+ $facility_exclude_boga_array[$valkey] = [
+ $value[9], $valkey, $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
+ $val['sign'][0], number_format(round($val['sign'][1])), $val['sign'][2], number_format(round($val['sign'][3])), number_format(round($val['sign'][4])), number_format(round($val['sign'][5])), number_format(round($val['sign'][6])),
+ $val['second'][0], number_format(round($val['second'][1])), $val['second'][2], number_format(round($val['second'][3])), number_format(round($val['second'][4])), number_format(round($val['second'][5])), number_format(round($val['second'][6])),
+ $val['arrive'][0], number_format(round($val['arrive'][1])), $val['arrive'][2], number_format(round($val['arrive'][3])), number_format(round($val['arrive'][4])), number_format(round($val['arrive'][5])), number_format(round($val['arrive'][6])),
+ $val['install'][0], number_format(round($val['install'][1])), $val['install'][2], number_format(round($val['install'][3])), number_format(round($val['install'][4])), number_format(round($val['install'][5])), number_format(round($val['install'][6])),
+ $val['tryrun'][0], number_format(round($val['tryrun'][1])), $val['tryrun'][2], number_format(round($val['tryrun'][3])), number_format(round($val['tryrun'][4])), number_format(round($val['tryrun'][5])), number_format(round($val['tryrun'][6])),
+ $val['check'][0], number_format(round($val['check'][1])), $val['check'][2], number_format(round($val['check'][3])), number_format(round($val['check'][4])), number_format(round($val['check'][5])), number_format(round($val['check'][6])),
+ $val['delivery'][0], number_format(round($val['delivery'][1])), $val['delivery'][2], number_format(round($val['delivery'][3])), number_format(round($val['delivery'][4])), number_format(round($val['delivery'][5])), number_format(round($val['delivery'][6])),
+ $val['final'][0], number_format(round($val['final'][1])), $val['final'][2], number_format(round($val['final'][3])), number_format(round($val['final'][4])), number_format(round($val['final'][5])), number_format(round($val['final'][6])),
+ str_replace('
', '; ', $val['status']), number_format(round($val['A40001'])), number_format(round($val['A40008'])), number_format(round($val['total_budget'])), number_format(round($val['receivable_budget']))
+ ];
+ }
+ }
+ }
+}
+$average_A40001 = round($sum_A40001 / $sum_facility, 2);
+$average_A40008 = round($sum_A40008 / $sum_facility, 2);
+$average_budget = round($sum_total_budget / $sum_facility, 2);
+
+$total_data = json_encode($excel_aray);
+$boga_data = json_encode($boga_array);
+$exclude_boga_data = json_encode($exclude_boga_array);
+$facility_data = json_encode($facility_array);
+$facility_boga_data = json_encode($facility_boga_array);
+$facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 合約號 |
+ 部門 |
+ 經理 |
+ 營業員 |
+ 客戶名稱 |
+ 簽約款 |
+ 應收簽約金額 |
+ 簽約最小催收次數 |
+ 簽約最大催收次數 |
+ 二次款 |
+ 應收二次金額 |
+ 二次最小催收次數 |
+ 二次最大催收次數 |
+ 貨抵工地款 |
+ 應收貨抵工地金額 |
+ 貨抵工地最小催收次數 |
+ 貨抵工地最大催收次數 |
+ 安裝款 |
+ 應收安裝金額 |
+ 安裝最小催收次數 |
+ 安裝最大催收次數 |
+ 試車款 |
+ 應收試車金額 |
+ 試車最小催收次數 |
+ 試車最大催收次數 |
+ 官檢款 |
+ 應收官檢金額 |
+ 官檢最小催收次數 |
+ 官檢最大催收次數 |
+ 移交款 |
+ 應收移交金額 |
+ 移交最小催收次數 |
+ 移交最大催收次數 |
+ 尾款 |
+ 應收尾款金額 |
+ 尾款最小催收次數 |
+ 尾款最大催收次數 |
+ 合約總金額 |
+ 目前應收 |
+ 已開發票金額 |
+ 已收金額 |
+
+ 收款狀態 |
+
+
+
+
+ $value) {
+ ?>
+
+ = $key ?> |
+ = $value[1] ?> |
+ = $value[2] ?> |
+ = $value[4] ?> |
+ = $value[5] ?> |
+ = number_format(round($value['sign'][1])) ?> |
+ = isset($value['sign'][3]) ? number_format(round($value['sign'][3])) : '--' ?> |
+ = isset($value['sign']['min']) ? $value['sign']['min'] : '--' ?> |
+ = isset($value['sign']['max']) ? $value['sign']['max'] : '--' ?> |
+ = isset($value['second'][1]) ? number_format(round($value['second'][1])) : '--' ?> |
+ = isset($value['second'][3]) ? number_format(round($value['second'][3])) : '--' ?> |
+ = isset($value['second']['min']) ? $value['second']['min'] : '--' ?> |
+ = isset($value['second']['max']) ? $value['second']['max'] : '--' ?> |
+ = isset($value['arrive'][1]) ? number_format(round($value['arrive'][1])) : '--' ?> |
+ = isset($value['arrive'][3]) ? number_format(round($value['arrive'][3])) : '--' ?> |
+ = isset($value['arrive']['min']) ? $value['arrive']['min'] : '--' ?> |
+ = isset($value['arrive']['max']) ? $value['arrive']['max'] : '--' ?> |
+ = isset($value['install'][1]) ? number_format(round($value['install'][1])) : '--' ?> |
+ = isset($value['install'][3]) ? number_format(round($value['install'][3])) : '--' ?> |
+ = isset($value['install']['min']) ? $value['install']['min'] : '--' ?> |
+ = isset($value['install']['max']) ? $value['install']['max'] : '--' ?> |
+ = isset($value['tryrun'][1]) ? number_format(round($value['tryrun'][1])) : '--' ?> |
+ = isset($value['tryrun'][3]) ? number_format(round($value['tryrun'][3])) : '--' ?> |
+ = isset($value['tryrun']['min']) ? $value['tryrun']['min'] : '--' ?> |
+ = isset($value['tryrun']['max']) ? $value['tryrun']['max'] : '--' ?> |
+ = isset($value['check'][1]) ? number_format(round($value['check'][1])) : '--' ?> |
+ = isset($value['check'][3]) ? number_format(round($value['check'][3])) : '--' ?> |
+ = isset($value['check']['min']) ? $value['check']['min'] : '--' ?> |
+ = isset($value['check']['max']) ? $value['check']['max'] : '--' ?> |
+ = isset($value['delivery'][1]) ? number_format(round($value['delivery'][1])) : '--' ?> |
+ = isset($value['delivery'][3]) ? number_format(round($value['delivery'][3])) : '--' ?> |
+ = isset($value['delivery']['min']) ? $value['delivery']['min'] : '--' ?> |
+ = isset($value['delivery']['max']) ? $value['delivery']['max'] : '--' ?> |
+ = isset($value['final'][1]) ? number_format(round($value['final'][1])) : '--' ?> |
+ = isset($value['final'][3]) ? number_format(round($value['final'][3])) : '--' ?> |
+ = isset($value['final']['min']) ? $value['final']['min'] : '--' ?> |
+ = isset($value['final']['max']) ? $value['final']['max'] : '--' ?> |
+ = isset($value['total_budget']) ? number_format(round($value['total_budget'])) : '--' ?> |
+ = isset($value['receivable_budget']) ? number_format(round($value['receivable_budget'])) : '--' ?> |
+ = isset($value['invoice_budget']) ? number_format(round($value['invoice_budget'])) : '--' ?> |
+ = isset($value['received_budget']) ? number_format(round($value['received_budget'])) : '--' ?> |
+ = $value['facilities'] ?> |
+
+
+
+
+
+
+
\ No newline at end of file