diff --git a/wms/account-receivable-.xlsx b/wms/account-receivable-.xlsx deleted file mode 100644 index d5274026..00000000 Binary files a/wms/account-receivable-.xlsx and /dev/null differ diff --git a/wms/account-receivable-check.php b/wms/account-receivable-check.php deleted file mode 100644 index 4ed786aa..00000000 --- a/wms/account-receivable-check.php +++ /dev/null @@ -1,201 +0,0 @@ - - -
- -
- - - -
- -
-
-
-

-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
- -
-
-
- - -
-
- - -
-
- - -
-
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - -
目前應收已開發票金額未開發票金額已收金額未收金額
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
簽約款二次款貨抵工地款安裝款試車款官檢款交車款
-
-
- - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
發票日期發票金額收款日期收款金額說明功能
- - - - - -
-
- \ No newline at end of file diff --git a/wms/account-receivable-contract.php b/wms/account-receivable-contract.php index dc849699..dbdf791d 100644 --- a/wms/account-receivable-contract.php +++ b/wms/account-receivable-contract.php @@ -1,239 +1,2615 @@ "; -$sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt,s.BizPartnerId,c.BizPartnerName -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.BillNo = '$BillNo'"; +$sum_facility = 0; +$sum_A40001 = 0; +$sum_A40008 = 0; +$sum_total_budget = 0; +$average_budget = 0; +$average_A40001 = 0; +$average_A40008 = 0; + -// T8發票 -//M220478 -$sql_invoice = "SELECT DISTINCT +$follower = find_follow($user_id); +$arrayData = []; +$receivable_array = []; +// T8發票 (有專案的發票) +$sql_invoice = "SELECT DISTINCT a.InvoiceNo, a.InvoiceTime,a.OAmountWithTax,a.InvoiceState, b.ProjectId FROM arSellInvoice as a LEFT JOIN arSellInvoiceMaterial as b ON a.BillNo=b.BillNo -WHERE b.ProjectId='$BillNo'"; +WHERE DATALENGTH(b.ProjectId)>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); -$invoices = $conn->query($sql_invoice); +$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); -// foreach($contract as $con){ -// print_r($con); -// echo "
"; -// } +$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; -// foreach ($contract as $cont) { -// if ($cont['BillNo'] == 'SO20230801002') { -// $BillNo = 'M231067'; -// }else{ -// $BillNo = $cont['BillNo']; -// }; -// $PayStage = $cont['PayStage']; -// $PayAmount = $cont['PlanPayAmt']; -// $partnerName = $cont['BizPartnerName']; -// if(isset($arrayData[$BillNo])){ -// array_push($arrayData[$BillNo], $PayStage); -// array_push($arrayData[$BillNo], $PayAmount); + // [合約號][作番號][款別] ['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; + } + // 補上寶佳 (出貨前) 收款時間 -// }else{ -// $arrayData[$BillNo][0] = $BillNo; -// $arrayData[$BillNo][1] = $partnerName; -// array_push($arrayData[$BillNo], $PayStage); -// array_push($arrayData[$BillNo], $PayAmount); + 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 實際出貨日=實際到貨日=實際貨抵工地 + //----------------------------------------寶佳的另外處理--------------------------------------------------- + $sign_status_tmp = !empty($arrayData[$wip['contractno']]['sign'][0]) ? $arrayData[$wip['contractno']]['sign'][0] : null; + if ($sign_status_tmp == "寶佳出貨前30天") { + // 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 { + $sign_tmp = !empty($arrayData[$wip['contractno']]['sign'][2]) ? $arrayData[$wip['contractno']]['sign'][2] : ''; + $signtime = strtotime($sign_tmp); + // $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 (isset($arrayData[$wip['contractno']]['delivery'][0]) && $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."========="; // } -// }; -// foreach($arrayData as $data){ -// foreach($data as $value){ -// echo $value.";"; -// } -// echo "
"; // } +// 計算每個合約的應收款、作番總數 +$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 催收次數 7 已開發票金額 8 未開發票金額 + //作番 + $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]; + $tmp_facility_invoice = $data['sign'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['sign'][3]) && $data['facility'][$this_facility]['sign'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['sign'][3]) { + $data['facility'][$this_facility]['sign'][7] = $data['facility'][$this_facility]['sign'][3]; + $data['facility'][$this_facility]['sign'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['sign'][3]; + } else { + $data['facility'][$this_facility]['sign'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['sign'][8] = $data['facility'][$this_facility]['sign'][3] - $data['facility'][$this_facility]['sign'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['sign'][7] = 0; + $data['facility'][$this_facility]['sign'][8] = $data['facility'][$this_facility]['sign'][3]; + } + } else { + $data['facility'][$this_facility]['sign'][7] = 0; + $data['facility'][$this_facility]['sign'][8] = 0; + } + + } + } else { + $data['sign'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['sign'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['sign'][3]) && $data['facility'][$this_facility]['sign'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['sign'][3]) { + $data['facility'][$this_facility]['sign'][7] = $data['facility'][$this_facility]['sign'][3]; + $data['facility'][$this_facility]['sign'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['sign'][3]; + } else { + $data['facility'][$this_facility]['sign'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['sign'][8] = $data['facility'][$this_facility]['sign'][3] - $data['facility'][$this_facility]['sign'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['sign'][7] = 0; + $data['facility'][$this_facility]['sign'][8] = $data['facility'][$this_facility]['sign'][3]; + } + } else { + $data['facility'][$this_facility]['sign'][7] = 0; + $data['facility'][$this_facility]['sign'][8] = 0; + } + } + } + $data['sign'][7] = $data['sign'][3] - $data['sign'][6]; + } else { + $data['sign'][6] = 0; + $data['sign'][7] = $data['sign'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['sign'][7] = 0; + $data['facility'][$this_facility]['sign'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['second'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['second'][3]) && $data['facility'][$this_facility]['second'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['second'][3]) { + $data['facility'][$this_facility]['second'][7] = $data['facility'][$this_facility]['second'][3]; + $data['facility'][$this_facility]['second'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['second'][3]; + } else { + $data['facility'][$this_facility]['second'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['second'][8] = $data['facility'][$this_facility]['second'][3] - $data['facility'][$this_facility]['second'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['second'][7] = 0; + $data['facility'][$this_facility]['second'][8] = $data['facility'][$this_facility]['second'][3]; + } + } else { + $data['facility'][$this_facility]['second'][7] = 0; + $data['facility'][$this_facility]['second'][8] = 0; + } + + } + } else { + $data['second'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['second'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['second'][3]) && $data['facility'][$this_facility]['second'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['second'][3]) { + $data['facility'][$this_facility]['second'][7] = $data['facility'][$this_facility]['second'][3]; + $data['facility'][$this_facility]['second'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['second'][3]; + } else { + $data['facility'][$this_facility]['second'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['second'][8] = $data['facility'][$this_facility]['second'][3] - $data['facility'][$this_facility]['second'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['second'][7] = 0; + $data['facility'][$this_facility]['second'][8] = $data['facility'][$this_facility]['second'][3]; + } + } else { + $data['facility'][$this_facility]['second'][7] = 0; + $data['facility'][$this_facility]['second'][8] = 0; + } + } + } + $data['second'][7] = $data['second'][3] - $data['second'][6]; + } else { + $data['second'][6] = 0; + $data['second'][7] = $data['second'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['second'][7] = 0; + $data['facility'][$this_facility]['second'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['arrive'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['arrive'][3]) && $data['facility'][$this_facility]['arrive'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['arrive'][3]) { + $data['facility'][$this_facility]['arrive'][7] = $data['facility'][$this_facility]['arrive'][3]; + $data['facility'][$this_facility]['arrive'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['sign'][3]; + } else { + $data['facility'][$this_facility]['arrive'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['arrive'][8] = $data['facility'][$this_facility]['arrive'][3] - $data['facility'][$this_facility]['arrive'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['arrive'][7] = 0; + $data['facility'][$this_facility]['arrive'][8] = $data['facility'][$this_facility]['arrive'][3]; + } + } else { + $data['facility'][$this_facility]['arrive'][7] = 0; + $data['facility'][$this_facility]['arrive'][8] = 0; + } + + } + } else { + $data['arrive'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['arrive'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['arrive'][3]) && $data['facility'][$this_facility]['arrive'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['arrive'][3]) { + $data['facility'][$this_facility]['arrive'][7] = $data['facility'][$this_facility]['arrive'][3]; + $data['facility'][$this_facility]['arrive'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['arrive'][3]; + } else { + $data['facility'][$this_facility]['arrive'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['arrive'][8] = $data['facility'][$this_facility]['arrive'][3] - $data['facility'][$this_facility]['arrive'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['arrive'][7] = 0; + $data['facility'][$this_facility]['arrive'][8] = $data['facility'][$this_facility]['arrive'][3]; + } + } else { + $data['facility'][$this_facility]['arrive'][7] = 0; + $data['facility'][$this_facility]['arrive'][8] = 0; + } + } + } + $data['arrive'][7] = $data['arrive'][3] - $data['arrive'][6]; + } else { + $data['arrive'][6] = 0; + $data['arrive'][7] = $data['arrive'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['arrive'][7] = 0; + $data['facility'][$this_facility]['arrive'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['install'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['install'][3]) && $data['facility'][$this_facility]['install'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['install'][3]) { + $data['facility'][$this_facility]['install'][7] = $data['facility'][$this_facility]['install'][3]; + $data['facility'][$this_facility]['install'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['install'][3]; + } else { + $data['facility'][$this_facility]['install'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['install'][8] = $data['facility'][$this_facility]['install'][3] - $data['facility'][$this_facility]['install'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['install'][7] = 0; + $data['facility'][$this_facility]['install'][8] = $data['facility'][$this_facility]['install'][3]; + } + } else { + $data['facility'][$this_facility]['install'][7] = 0; + $data['facility'][$this_facility]['install'][8] = 0; + } + + } + } else { + $data['install'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['install'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['install'][3]) && $data['facility'][$this_facility]['install'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['install'][3]) { + $data['facility'][$this_facility]['install'][7] = $data['facility'][$this_facility]['install'][3]; + $data['facility'][$this_facility]['install'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['install'][3]; + } else { + $data['facility'][$this_facility]['install'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['install'][8] = $data['facility'][$this_facility]['install'][3] - $data['facility'][$this_facility]['install'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['install'][7] = 0; + $data['facility'][$this_facility]['install'][8] = $data['facility'][$this_facility]['install'][3]; + } + } else { + $data['facility'][$this_facility]['install'][7] = 0; + $data['facility'][$this_facility]['install'][8] = 0; + } + } + } + $data['install'][7] = $data['install'][3] - $data['install'][6]; + } else { + $data['install'][6] = 0; + $data['install'][7] = $data['install'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['install'][7] = 0; + $data['facility'][$this_facility]['install'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['tryrun'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['tryrun'][3]) && $data['facility'][$this_facility]['tryrun'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['tryrun'][3]) { + $data['facility'][$this_facility]['tryrun'][7] = $data['facility'][$this_facility]['tryrun'][3]; + $data['facility'][$this_facility]['tryrun'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['tryrun'][3]; + } else { + $data['facility'][$this_facility]['tryrun'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['tryrun'][8] = $data['facility'][$this_facility]['tryrun'][3] - $data['facility'][$this_facility]['tryrun'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['tryrun'][7] = 0; + $data['facility'][$this_facility]['tryrun'][8] = $data['facility'][$this_facility]['tryrun'][3]; + } + } else { + $data['facility'][$this_facility]['tryrun'][7] = 0; + $data['facility'][$this_facility]['tryrun'][8] = 0; + } + + } + } else { + $data['tryrun'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['tryrun'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['tryrun'][3]) && $data['facility'][$this_facility]['tryrun'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['tryrun'][3]) { + $data['facility'][$this_facility]['tryrun'][7] = $data['facility'][$this_facility]['tryrun'][3]; + $data['facility'][$this_facility]['tryrun'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['tryrun'][3]; + } else { + $data['facility'][$this_facility]['tryrun'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['tryrun'][8] = $data['facility'][$this_facility]['tryrun'][3] - $data['facility'][$this_facility]['tryrun'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['tryrun'][7] = 0; + $data['facility'][$this_facility]['tryrun'][8] = $data['facility'][$this_facility]['tryrun'][3]; + } + } else { + $data['facility'][$this_facility]['tryrun'][7] = 0; + $data['facility'][$this_facility]['tryrun'][8] = 0; + } + } + } + $data['tryrun'][7] = $data['tryrun'][3] - $data['tryrun'][6]; + } else { + $data['tryrun'][6] = 0; + $data['tryrun'][7] = $data['tryrun'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['tryrun'][7] = 0; + $data['facility'][$this_facility]['tryrun'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['check'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['check'][3]) && $data['facility'][$this_facility]['check'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['check'][3]) { + $data['facility'][$this_facility]['check'][7] = $data['facility'][$this_facility]['check'][3]; + $data['facility'][$this_facility]['check'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['check'][3]; + } else { + $data['facility'][$this_facility]['check'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['check'][8] = $data['facility'][$this_facility]['check'][3] - $data['facility'][$this_facility]['check'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['check'][7] = 0; + $data['facility'][$this_facility]['check'][8] = $data['facility'][$this_facility]['check'][3]; + } + } else { + $data['facility'][$this_facility]['check'][7] = 0; + $data['facility'][$this_facility]['check'][8] = 0; + } + + } + } else { + $data['check'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['check'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['check'][3]) && $data['facility'][$this_facility]['check'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['check'][3]) { + $data['facility'][$this_facility]['check'][7] = $data['facility'][$this_facility]['check'][3]; + $data['facility'][$this_facility]['check'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['check'][3]; + } else { + $data['facility'][$this_facility]['check'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['check'][8] = $data['facility'][$this_facility]['check'][3] - $data['facility'][$this_facility]['check'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['check'][7] = 0; + $data['facility'][$this_facility]['check'][8] = $data['facility'][$this_facility]['check'][3]; + } + } else { + $data['facility'][$this_facility]['check'][7] = 0; + $data['facility'][$this_facility]['check'][8] = 0; + } + } + } + $data['check'][7] = $data['check'][3] - $data['check'][6]; + } else { + $data['check'][6] = 0; + $data['check'][7] = $data['check'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['check'][7] = 0; + $data['facility'][$this_facility]['check'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['delivery'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['delivery'][3]) && $data['facility'][$this_facility]['delivery'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['delivery'][3]) { + $data['facility'][$this_facility]['delivery'][7] = $data['facility'][$this_facility]['delivery'][3]; + $data['facility'][$this_facility]['delivery'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['sign'][3]; + } else { + $data['facility'][$this_facility]['delivery'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['delivery'][8] = $data['facility'][$this_facility]['delivery'][3] - $data['facility'][$this_facility]['delivery'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['delivery'][7] = 0; + $data['facility'][$this_facility]['delivery'][8] = $data['facility'][$this_facility]['delivery'][3]; + } + } else { + $data['facility'][$this_facility]['delivery'][7] = 0; + $data['facility'][$this_facility]['delivery'][8] = 0; + } + + } + } else { + $data['delivery'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['delivery'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['delivery'][3]) && $data['facility'][$this_facility]['delivery'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['delivery'][3]) { + $data['facility'][$this_facility]['delivery'][7] = $data['facility'][$this_facility]['delivery'][3]; + $data['facility'][$this_facility]['delivery'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['delivery'][3]; + } else { + $data['facility'][$this_facility]['delivery'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['delivery'][8] = $data['facility'][$this_facility]['delivery'][3] - $data['facility'][$this_facility]['delivery'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['delivery'][7] = 0; + $data['facility'][$this_facility]['delivery'][8] = $data['facility'][$this_facility]['delivery'][3]; + } + } else { + $data['facility'][$this_facility]['delivery'][7] = 0; + $data['facility'][$this_facility]['delivery'][8] = 0; + } + } + } + $data['delivery'][7] = $data['delivery'][3] - $data['delivery'][6]; + } else { + $data['delivery'][6] = 0; + $data['delivery'][7] = $data['delivery'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['delivery'][7] = 0; + $data['facility'][$this_facility]['delivery'][8] = $data['facility'][$this_facility]['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]; + $tmp_facility_invoice = $data['final'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['final'][3]) && $data['facility'][$this_facility]['final'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['final'][3]) { + $data['facility'][$this_facility]['final'][7] = $data['facility'][$this_facility]['final'][3]; + $data['facility'][$this_facility]['final'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['final'][3]; + } else { + $data['facility'][$this_facility]['final'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['final'][8] = $data['facility'][$this_facility]['final'][3] - $data['facility'][$this_facility]['final'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['final'][7] = 0; + $data['facility'][$this_facility]['final'][8] = $data['facility'][$this_facility]['final'][3]; + } + } else { + $data['facility'][$this_facility]['final'][7] = 0; + $data['facility'][$this_facility]['final'][8] = 0; + } + + } + } else { + $data['final'][6] = $tmp_invoice; + $tmp_invoice = 0; + $tmp_facility_invoice = $data['final'][6]; + foreach ($facilities as $this_facility) { + if (isset($data['facility'][$this_facility]['final'][3]) && $data['facility'][$this_facility]['final'][3] > 0) { + if ($tmp_facility_invoice > 0) { + if ($tmp_facility_invoice >= $data['facility'][$this_facility]['final'][3]) { + $data['facility'][$this_facility]['final'][7] = $data['facility'][$this_facility]['final'][3]; + $data['facility'][$this_facility]['final'][8] = 0; + $tmp_facility_invoice -= $data['facility'][$this_facility]['final'][3]; + } else { + $data['facility'][$this_facility]['final'][7] = $tmp_facility_invoice; + $data['facility'][$this_facility]['final'][8] = $data['facility'][$this_facility]['final'][3] - $data['facility'][$this_facility]['final'][7]; + $tmp_facility_invoice = 0; + } + } else { + $data['facility'][$this_facility]['final'][7] = 0; + $data['facility'][$this_facility]['final'][8] = $data['facility'][$this_facility]['final'][3]; + } + } else { + $data['facility'][$this_facility]['final'][7] = 0; + $data['facility'][$this_facility]['final'][8] = 0; + } + } + } + $data['final'][7] = $data['final'][3] - $data['final'][6]; + } else { + $data['final'][6] = 0; + $data['final'][7] = $data['final'][3]; + foreach ($facilities as $this_facility) { + $data['facility'][$this_facility]['final'][7] = 0; + $data['facility'][$this_facility]['final'][8] = $data['facility'][$this_facility]['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 催收次數 7 已開發票金額 8 未開發票金額 + 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] =="19700101"?"-":$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]; + $val[$stage][7] = (!(isset($val[$stage][7])) || is_null($val[$stage][7])) ? 0 : $val[$stage][7]; + $val[$stage][8] = (!(isset($val[$stage][8])) || is_null($val[$stage][8])) ? 0 : $val[$stage][8]; + } + $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'][7])), number_format(round($val['sign'][8])), 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'][7])), number_format(round($val['second'][8])), 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'][7])), number_format(round($val['arrive'][8])), 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'][7])), number_format(round($val['install'][8])), 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'][7])), number_format(round($val['tryrun'][8])), 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'][7])), number_format(round($val['check'][8])), 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'][7])), number_format(round($val['delivery'][8])), 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'][7])), number_format(round($val['final'][8])), 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'])) + ]; + $sign_status_tmp = !empty($value['sign'][0]) ? $value['sign'][0] : null; + if ($sign_status_tmp == "寶佳出貨前30天") { + // 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'][7])), number_format(round($val['sign'][8])), 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'][7])), number_format(round($val['second'][8])), 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'][7])), number_format(round($val['arrive'][8])), 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'][7])), number_format(round($val['install'][8])), 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'][7])), number_format(round($val['tryrun'][8])), 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'][7])), number_format(round($val['check'][8])), 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'][7])), number_format(round($val['delivery'][8])), 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'][7])), number_format(round($val['final'][8])), 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'][7])), number_format(round($val['sign'][8])), 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'][7])), number_format(round($val['second'][8])), 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'][7])), number_format(round($val['arrive'][8])), 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'][7])), number_format(round($val['install'][8])), 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'][7])), number_format(round($val['tryrun'][8])), 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'][7])), number_format(round($val['check'][8])), 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'][7])), number_format(round($val['delivery'][8])), 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'][7])), number_format(round($val['final'][8])), 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) { + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
發票號碼發票日期發票金額收款日期收款金額說明功能
- - - - - -
\ No newline at end of file diff --git a/wms/account-receivable-index.php b/wms/account-receivable-index.php index 87f59c7b..ce7725df 100644 --- a/wms/account-receivable-index.php +++ b/wms/account-receivable-index.php @@ -17,32 +17,38 @@ $follower = find_follow($user_id); $arrayData = []; $receivable_array = []; // T8發票 (有專案的發票) -$sql_invoice = "SELECT DISTINCT -a.InvoiceNo, a.InvoiceTime,a.OAmountWithTax,a.InvoiceState, -b.ProjectId -FROM arSellInvoice as a -LEFT JOIN arSellInvoiceMaterial as b -ON a.BillNo=b.BillNo -WHERE DATALENGTH(b.ProjectId)>0"; +$sql_invoice = "SELECT +Detail.BillNo AS InvoiceBillNo, +Detail.MaterialId, +Detail.LAmountWithTax, +Main.InvoiceNo, +CheckAll.FromSalSalesOrder AS BillNo + FROM arSellInvoiceMaterial AS Detail + LEFT JOIN arSellInvoice AS Main ON Detail.BillNo=Main.BillNo + LEFT JOIN ( + SELECT CheckDetail.BillNo, CheckDetail.FromSalSalesOrder, CheckDetail.RowNo + FROM arCheckBillDetail AS CheckDetail ) + AS CheckAll ON CheckAll.BillNo= Detail.FromBillNo AND Detail.FromRowCode = CheckAll.RowNo + WHERE Detail.ItemType=0 AND Main.InvoiceState!=2"; // 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"; +CheckDetail.OrderBillNo, +arWriteOffBillDetail.FromBillNo AS CheckBillNo, +arWriteOffBillDetail.FromRowCode AS CheckRowCode, +arWriteOffBillDetail.CurrStandOffOAmount +FROM arWriteOffBillDetail + LEFT JOIN + (SELECT + arCheckBillDetail.BillNo, + arCheckBillDetail.RowCode, + arCheckBillDetail.FromSalSalesOrder AS OrderBillNo, + salSalesOrder.TypeId + FROM arCheckBillDetail + LEFT JOIN salSalesOrder + ON salSalesOrder.BillNo =arCheckBillDetail.FromSalSalesOrder ) + AS CheckDetail + ON CheckDetail.BillNo=arWriteOffBillDetail.FromBillNo AND arWriteOffBillDetail.FromRowCode = CheckDetail.RowCode"; //T8 銷售訂單 階段收款計畫 $sql_contract = "SELECT a.BillNo,s.BillDate, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId, @@ -508,7 +514,7 @@ foreach ($wipwhole_array as $wip) { $arrayData[$wip['contractno']]['sign_num'] += 1; array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']); - if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") { + if (isset($arrayData[$wip['contractno']]['delivery'][0]) && $arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") { $estimate_delivery_time = strtotime($wip['delivery_date']); $arrivetime = $estimate_delivery_time + (90 * 86400); $month = collect_month($arrivetime); @@ -972,9 +978,9 @@ foreach ($wipwhole_array as $wip) { } // [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']]; + if (isset($arrayData[$invoice['BillNo']])) { + $arrayData[$invoice['BillNo']]['invoice_budget'] += intval($invoice['OAmountWithTax']); + $arrayData[$invoice['BillNo']]['invoice'][$invoice['InvoiceNo']] = [date("Ymd", strtotime($invoice['InvoiceTime'])), $invoice['OAmountWithTax'], $invoice['InvoiceState']]; } } @@ -987,11 +993,13 @@ foreach ($received_array as $received) { } 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']); - } + $arrayData[$BillNo]['received_budget'] += $received['CurrStandOffOAmount']; + // 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']); + // } } } diff --git a/wms/account-receivable-invoice.php b/wms/account-receivable-invoice.php deleted file mode 100644 index b3d9bbc7..00000000 --- a/wms/account-receivable-invoice.php +++ /dev/null @@ -1 +0,0 @@ - -
- -
- -
-
-
-
-

-

新增收款資訊

-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
- - - - - - -
-
-
-
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/wms/account-receivable-received-edit.php b/wms/account-receivable-received-edit.php deleted file mode 100644 index 5f0e95a2..00000000 --- a/wms/account-receivable-received-edit.php +++ /dev/null @@ -1,142 +0,0 @@ -"; -// print_r($BillData); -$sql_pay = "SELECT * from account_received where pay_id = '$pay_id'"; -$pay = mysqli_query($link, $sql_pay); -$pay = mysqli_fetch_assoc($pay); - -?> -
- -
- -
-
- - -
-
-

-

編輯收款資訊

-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - - - -
-
-
-
-
- -
-
-
-
- - - - - \ No newline at end of file diff --git a/wms/account-receivable-received-submit.php b/wms/account-receivable-received-submit.php deleted file mode 100644 index b9b18f0f..00000000 --- a/wms/account-receivable-received-submit.php +++ /dev/null @@ -1,96 +0,0 @@ - - \ No newline at end of file diff --git a/wms/account-receivable-renovate-index.php b/wms/account-receivable-renovate-index.php index a4f2f82e..09240ac2 100644 --- a/wms/account-receivable-renovate-index.php +++ b/wms/account-receivable-renovate-index.php @@ -14,69 +14,151 @@ $average_budget = 0; $average_A40002 = 0; $average_A40009 = 0; $average_A40010 = 0; +$start_date = empty($_POST['date_start']) ? null : $_POST['date_start']; +$end_date = empty($_POST['date_end']) ? null : $_POST['date_end']; +// 查WMS 契約員主管 +$sql_manager = "SELECT A.accountid, A.name, A.manager, B.name AS manager_name FROM account AS A +LEFT JOIN account AS B ON A.manager = B.accountid "; +$managers = mysqli_query($link, $sql_manager); +$find_manager = array(); +if (is_iterable($managers)) { + foreach ($managers as $manager) { + $find_manager[$manager['accountid']] = $manager; + } +} $follower = find_follow($user_id); $arrayData = []; $receivable_array = []; // T8所有合約號 -$sql_contractNumber = "SELECT Distinct BillNo FROM salSalesOrder WHERE ModeId = 'T' AND (CurrentState=2 OR CurrentState=4) "; +$sql_contractNumber = "SELECT MainAll.* , +Person.PersonName, +Dept.DeptName FROM + (SELECT +Main.BillNo, +Main.BillDate, +Main.BizPartnerId, +Biz.ShortName, +Biz.BizPartnerName, +Biz.ContactAddress, +Main.OAmountWithTax, +Main.PersonId, +Main.DeptId, +Main.TypeId, +Main.ModeId, +Main.CurrentState + FROM salSalesOrder AS Main + LEFT JOIN comBusinessPartner AS Biz ON Biz.BizPartnerId = Main.BizPartnerId) AS MainAll + LEFT JOIN comGroupPerson AS Person ON MainAll.PersonId= Person.PersonId + LEFT JOIN comDepartment AS Dept ON MainAll.DeptId= Dept.DeptId + WHERE MainAll.ModeId = 'T' AND (MainAll.CurrentState=2 OR MainAll.CurrentState=4) "; + +if (!is_null($start_date)) { + $start_date = (int)date('Ymd', strtotime($start_date)); + $sql_contractNumber .= " AND MainAll.BillDate >= $start_date "; +} +if (!is_null($end_date)) { + $end_date = (int)date('Ymd', strtotime($end_date)); + $sql_contractNumber .= " AND MainAll.BillDate <= $end_date "; +} +if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210', '321')))) { +} else { + $sql_contractNumber .= " AND (MainAll.PersonId = '$user_id'"; + if (count($follower) > 0) { + $column_str = "('$user_id'" . ",'"; + $column_str .= implode("','", $follower); + $column_str .= "')"; + $sql_contractNumber .= " OR MainAll.PersonId IN $column_str)"; + } else { + $sql_contractNumber .= ")"; + }; +} + // T8發票 (有專案的發票) -$sql_invoice = "SELECT DISTINCT -a.InvoiceNo, a.InvoiceTime,a.OAmountWithTax,a.InvoiceState, -b.FromSalSalesOrder -FROM arSellInvoice as a -LEFT JOIN (SELECT CH.FromSalSalesOrder, SE.* FROM arSellInvoiceMaterial AS SE -LEFT JOIN arCheckBillDetail AS CH ON SE.FromBillNo=CH.BillNo) as b -ON a.BillNo=b.BillNo -WHERE DATALENGTH(b.FromSalSalesOrder)>0 -ORDER BY InvoiceTime ASC"; +$sql_invoice = "SELECT +Detail.BillNo AS InvoiceBillNo, +Detail.MaterialId, +Detail.LAmountWithTax, +Main.InvoiceNo, +CheckAll.FromSalSalesOrder AS BillNo + FROM arSellInvoiceMaterial AS Detail + LEFT JOIN arSellInvoice AS Main ON Detail.BillNo=Main.BillNo + LEFT JOIN ( + SELECT CheckDetail.BillNo, CheckDetail.FromSalSalesOrder, CheckDetail.RowNo + FROM arCheckBillDetail AS CheckDetail ) + AS CheckAll ON CheckAll.BillNo= Detail.FromBillNo AND Detail.FromRowCode = CheckAll.RowNo + WHERE Detail.ItemType=0 AND Main.InvoiceState!=2"; // 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"; +CheckDetail.OrderBillNo, +arWriteOffBillDetail.FromBillNo AS CheckBillNo, +arWriteOffBillDetail.FromRowCode AS CheckRowCode, +arWriteOffBillDetail.CurrStandOffOAmount, +CheckDetail.TypeId +FROM arWriteOffBillDetail + LEFT JOIN + (SELECT + arCheckBillDetail.BillNo, + arCheckBillDetail.RowCode, + arCheckBillDetail.FromSalSalesOrder AS OrderBillNo, + salSalesOrder.TypeId, + salSalesOrder.ModeId + FROM arCheckBillDetail + LEFT JOIN salSalesOrder + ON salSalesOrder.BillNo =arCheckBillDetail.FromSalSalesOrder ) + AS CheckDetail + ON CheckDetail.BillNo=arWriteOffBillDetail.FromBillNo AND arWriteOffBillDetail.FromRowCode = CheckDetail.RowCode +WHERE CheckDetail.ModeId = 'T'"; // 期初收款資訊 $sql_opening = " SELECT * FROM account_received "; -// 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的 -if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) { -} else { - $sql_opening .= " OR person_id = '$user_id'"; - $sql_contractNumber .= " AND (PersonId = '$user_id'"; - if (count($follower) > 0) { - $column_str = "('$user_id'" . ",'"; - $column_str .= implode("','", $follower); - $column_str .= "')"; - $sql_contractNumber .= " OR PersonId IN $column_str)"; - $sql_opening .= " OR person_id IN $column_str)"; - } else { - $sql_opening .= ")"; - $sql_contractNumber .= ")"; - }; -} + $contractNumbers = array(); $query_contract_number = $conn->query($sql_contractNumber); foreach ($query_contract_number as $contract_numbers) { - array_push($contractNumbers, $contract_numbers['BillNo']); + $billNo = $contract_numbers['BillNo']; + switch ($contract_numbers['BillNo']) { + case 'SO20230701001': + $billNo = 'M220104'; + break; + case 'SO20230701002': + $billNo = 'M230098'; + break; + case 'SO20230701003': + $billNo = 'M230159'; + break; + case 'SO20230901001': + $billNo = 'M230992'; + break; + case 'SO20231110001': + $billNo = 'M230492'; + break; + case 'SO20231110002': + $billNo = 'M230557'; + break; + case 'SO20231110003': + $billNo = 'M230496'; + break; + case 'SP20240108001': + $billNo = 'M230683'; + break; + case 'SP20240116004': + $billNo = 'B230726'; + break; + case 'T220035': + $billNo = 'M220035'; + break; + case 'T230098': + $billNo = 'M230098'; + break; + } + array_push($contractNumbers, $billNo); $str_numbers = "('" . implode("','", $contractNumbers) . "')"; } //作番大日程 @@ -460,7 +542,7 @@ foreach ($allPayStages as $key => &$payStage) { // [invoice][發票號碼][0 發票日期, 1 發票金額, 2 發票狀態, 3 收款日期, 4 收款金額, 5 手續費, 6 核銷單號] foreach ($invoice_data as $invoice) { - if (isset($arrayData[$invoice['FromSalSalesOrder']])) { + if (isset($invoice['FromSalSalesOrder']) && isset($arrayData[$invoice['FromSalSalesOrder']])) { $arrayData[$invoice['FromSalSalesOrder']]['invoice_budget'] += intval($invoice['OAmountWithTax']); $arrayData[$invoice['FromSalSalesOrder']]['invoice'][$invoice['InvoiceNo']] = [date("Ymd", strtotime($invoice['InvoiceTime'])), $invoice['OAmountWithTax'], $invoice['InvoiceState']]; } @@ -470,7 +552,7 @@ foreach ($invoice_data as $invoice) { foreach ($received_array as $received) { $BillNo = $received['OrderBillNo']; if (isset($arrayData[$BillNo])) { - if (isset($arrayData[$BillNo]['invoice'][$received['InvoiceNo']])) { + if (isset($received['InvoiceNo']) && 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']); } diff --git a/wms/account-receivable-repair-index.php b/wms/account-receivable-repair-index.php index bd1d7acc..5e22c234 100644 --- a/wms/account-receivable-repair-index.php +++ b/wms/account-receivable-repair-index.php @@ -23,8 +23,10 @@ LEFT JOIN account AS B ON A.manager = B.accountid "; $managers = mysqli_query($link, $sql_manager); $find_manager = array(); -foreach ($managers as $manager) { - $find_manager[$manager['accountid']] = $manager; +if (is_iterable($managers)) { + foreach ($managers as $manager) { + $find_manager[$manager['accountid']] = $manager; + } } $follower = find_follow($user_id); $arrayData = array(); diff --git a/wms/account-receivable-test.php b/wms/account-receivable-test.php index 52c6056c..f143dbec 100644 --- a/wms/account-receivable-test.php +++ b/wms/account-receivable-test.php @@ -381,10 +381,62 @@ $P_all = " // echo $value['PayStage'] .";".$value['BillNo']. "
"; // } -$sql = "SELECT A.BillNo,B.CU_MaterialId, B.ProjectId FROM salSalesOrder AS A -LEFT JOIN salSalesOrderDetail AS B ON A.BillNo=B.BillNo -WHERE A.ModeId='T' AND B.ItemType=0 AND A.BillNo != B.ProjectId AND A.CurrentState=4"; +// $sql = "SELECT A.BillNo,B.CU_MaterialId, B.ProjectId FROM salSalesOrder AS A +// LEFT JOIN salSalesOrderDetail AS B ON A.BillNo=B.BillNo +// WHERE A.ModeId='T' AND B.ItemType=0 AND A.BillNo != B.ProjectId AND A.CurrentState=4"; +// $query = $conn->query($sql); +// foreach($query as $key => $value) { +// echo $value['BillNo'] .";".$value['CU_MaterialId'].";".$value['ProjectId']. "
"; +// } + + +// 發貨單 沒有ProjectId的資料 +// $sql = "SELECT DISTINCT salDispatchListMaster.BillNo, salDispatchListMaster.ModeId,salDispatchListMaster.BillDate FROM salDispatchListDetail +// LEFT JOIN salDispatchListMaster ON salDispatchListMaster.BillNo=salDispatchListDetail.BillNo +// WHERE salDispatchListDetail.ItemType=0 AND LEN(salDispatchListDetail.ProjectId)=0"; +// $query = $conn->query($sql); +// foreach($query as $key => $value) { +// switch($value['ModeId']) { +// case 'B': +// $mode = '保養'; +// break; +// case 'T': +// $mode = '汰改'; +// break; +// case 'M': +// $mode = '新梯'; +// break; +// case 'Z': +// $mode = '維修'; +// break; +// } +// echo $value['BillNo'] .";".$mode.";".$value['BillDate']. "
"; +// } + +// 銷售訂單 沒有ProjectId的資料 +$sql = "SELECT Main.*, comBusinessPartner.BizPartnerName, salDispatchListMaster.BillNo AS DispBillNo , salDispatchListMaster.BillDate AS DispBillDate FROM +(SELECT DISTINCT salSalesOrder.BillNo,salSalesOrder.BizPartnerId, salSalesOrder.TypeId, salSalesOrder.ModeId, salSalesOrderDetail.ProjectId, salSalesOrderDetail.CU_MaterialId FROM salSalesOrderDetail +LEFT JOIN salSalesOrder ON salSalesOrder.BillNo= salSalesOrderDetail.BillNo +WHERE (LEN(salSalesOrderDetail.ProjectId)=0 AND salSalesOrderDetail.ItemType=0) OR LEN(salSalesOrderDetail.CU_MaterialId)=0 ) AS Main +LEFT JOIN comBusinessPartner ON comBusinessPartner.BizPartnerId = Main.BizPartnerId +LEFT JOIN salDispatchListMaster ON salDispatchListMaster.FromBillNo= Main.BillNo +WHERE salDispatchListMaster.BillDate >20231031 OR salDispatchListMaster.BillDate IS NULL"; $query = $conn->query($sql); -foreach($query as $key => $value) { - echo $value['BillNo'] .";".$value['CU_MaterialId'].";".$value['ProjectId']. "
"; -} \ No newline at end of file +foreach ($query as $key => $value) { + $mode = ''; + switch ($value['ModeId']) { + case 'B': + $mode = '保養'; + break; + case 'T': + $mode = '汰改'; + break; + case 'M': + $mode = '新梯'; + break; + case 'Z': + $mode = '維修'; + break; + } + echo $value['BillNo'] . ";" . $mode . ";" . $value['BizPartnerId'] .";".$value['BizPartnerName'].";".$value['ProjectId']. ";".$value['CU_MaterialId']. ";".$value['DispBillNo'].";" . $value['DispBillDate'] ."
"; +}