|
@ -128,7 +128,7 @@ ON d.department_id = tmp2.department_id |
|
|
WHERE contractno IN $str_numbers "; |
|
|
WHERE contractno IN $str_numbers "; |
|
|
|
|
|
|
|
|
//T8 銷售訂單 階段收款計畫 |
|
|
//T8 銷售訂單 階段收款計畫 |
|
|
$sql_contract = "SELECT a.BillNo,s.BillDate, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId, |
|
|
$sql_contract = "SELECT a.BillNo,s.BillDate, a.RowNo, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId, |
|
|
c.EnterpriseName, c.TaxNo, c.ContactAddress FROM salOrderStagePay AS a |
|
|
c.EnterpriseName, c.TaxNo, c.ContactAddress FROM salOrderStagePay AS a |
|
|
LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo |
|
|
LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo |
|
|
LEFT JOIN comBusinessPartner AS c ON s.BizPartnerId=c.BizPartnerId |
|
|
LEFT JOIN comBusinessPartner AS c ON s.BizPartnerId=c.BizPartnerId |
|
@ -152,6 +152,8 @@ foreach ($contract as $cont) { |
|
|
$EnterpriseName = $cont['EnterpriseName']; |
|
|
$EnterpriseName = $cont['EnterpriseName']; |
|
|
$TaxNo = $cont['TaxNo']; |
|
|
$TaxNo = $cont['TaxNo']; |
|
|
$ContactAddress = $cont['ContactAddress']; |
|
|
$ContactAddress = $cont['ContactAddress']; |
|
|
|
|
|
$RowNo = $cont['RowNo']; |
|
|
|
|
|
|
|
|
//['type'] A:比照新梯、B:純分期、C:其他 |
|
|
//['type'] A:比照新梯、B:純分期、C:其他 |
|
|
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期 |
|
|
//['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 尾款收款日期 |
|
|
//['tryrun'] 0 試車款名 1試車金額 2 試車收款日期 ['check'] 0 官檢款名 1 官檢金額 2 官檢收款日期 ['delivery'] 0 交車款名 1 交車金額 2 交車收款日期 ['final'] 0 尾款名 1 尾款金額 2 尾款收款日期 |
|
@ -169,68 +171,47 @@ foreach ($contract as $cont) { |
|
|
$arrayData[$BillNo]['invoice'] = array(); |
|
|
$arrayData[$BillNo]['invoice'] = array(); |
|
|
$arrayData[$BillNo]['received_budget'] = 0; |
|
|
$arrayData[$BillNo]['received_budget'] = 0; |
|
|
$arrayData[$BillNo]['invoice_budget'] = 0; |
|
|
$arrayData[$BillNo]['invoice_budget'] = 0; |
|
|
$arrayData[$BillNo]['PayStage'][$PayStage]['type'] = 0; |
|
|
|
|
|
$arrayData[$BillNo]['A40002'] = $arrayData[$BillNo]['A40009'] = $arrayData[$BillNo]['A40010'] = 0; |
|
|
$arrayData[$BillNo]['A40002'] = $arrayData[$BillNo]['A40009'] = $arrayData[$BillNo]['A40010'] = 0; |
|
|
$arrayData[$BillNo]['total_facility_num'] = 0; |
|
|
$arrayData[$BillNo]['total_facility_num'] = 0; |
|
|
} |
|
|
} |
|
|
|
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['type'] = 0; |
|
|
|
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['name'] = $PayStage; |
|
|
|
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['PlanPayDate'] = $PlanPayDate; |
|
|
|
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['PayAmount'] = $PayAmount; |
|
|
// 判斷type |
|
|
// 判斷type |
|
|
$wipStage = ['簽約', '訂金','貨抵工地','完工','試車','安裝','驗收','完工','交車'.'尾款','設備']; |
|
|
$wipStage = ['簽約', '訂金', '貨抵工地', '完工', '試車', '安裝', '驗收', '完工', '交車', '尾款']; |
|
|
foreach ($wipStage as $wipstage) { |
|
|
foreach ($wipStage as $wipstage) { |
|
|
if (strpos($PayStage, $wipstage) !== false) { |
|
|
if (strpos($PayStage, $wipstage) !== false) { |
|
|
$arrayData[$BillNo]['PayStage'][$PayStage]['type'] = "A"; |
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "A"; |
|
|
echo "---------'"; |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
echo $arrayData[$BillNo]['PayStage'][$PayStage]['type']; |
|
|
|
|
|
$haveNumber = (int) filter_var(str_replace('-', '', $PayStage), FILTER_SANITIZE_NUMBER_INT); |
|
|
$haveNumber = (int) filter_var(str_replace('-', '', $PayStage), FILTER_SANITIZE_NUMBER_INT); |
|
|
echo $haveNumber."___________________"; |
|
|
if ($haveNumber > 0 && $arrayData[$BillNo]['PayStage'][$RowNo]['type'] === 0) { |
|
|
if($haveNumber >0 && $arrayData[$BillNo]['PayStage'][$PayStage]['type'] === 0){ |
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "B"; |
|
|
$arrayData[$BillNo]['PayStage'][$PayStage]['type'] = "B"; |
|
|
} elseif ($haveNumber > 0 && $arrayData[$BillNo]['PayStage'][$RowNo]['type'] == 'A') { |
|
|
}elseif($haveNumber > 0 && $arrayData[$BillNo]['PayStage'][$PayStage]['type'] == 'A'){ |
|
|
$arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "C"; |
|
|
$arrayData[$BillNo]['PayStage'][$PayStage]['type'] = "C"; |
|
|
|
|
|
} |
|
|
} |
|
|
echo $PayStage." / ".$arrayData[$BillNo]['PayStage'][$PayStage]['type']; |
|
|
|
|
|
echo "<br>"; |
|
|
|
|
|
// if ($arrayData[$BillNo]['type'] == 0) { |
|
|
|
|
|
// if (mb_substr($cont['PayStage'], -1) == '期' && mb_substr($cont['PayStage'], 0, 1) == '第') { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "B"; |
|
|
|
|
|
// } elseif (strpos($cont['PayStage'], '1') == false) { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "A"; |
|
|
|
|
|
// } else { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "E"; |
|
|
|
|
|
// } |
|
|
|
|
|
// } elseif ($arrayData[$BillNo]['type'] == "B") { |
|
|
|
|
|
// if (mb_substr($cont['PayStage'], -1) == '期' && mb_substr($cont['PayStage'], 0, 1) == '第') { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "B"; |
|
|
|
|
|
// } else { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "E"; |
|
|
|
|
|
// } |
|
|
|
|
|
// } elseif ($arrayData[$BillNo]['type'] == "A") { |
|
|
|
|
|
// if (strpos($cont['PayStage'], '1') == false) { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "A"; |
|
|
|
|
|
// } else { |
|
|
|
|
|
// $arrayData[$BillNo]['type'] = "E"; |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
} |
|
|
} |
|
|
exit(); |
|
|
|
|
|
$received_array = $conn->query($sql_received); |
|
|
$received_array = $conn->query($sql_received); |
|
|
$opening_data = mysqli_query($link, $sql_opening); |
|
|
$opening_data = mysqli_query($link, $sql_opening); |
|
|
$invoice_data = $conn->query($sql_invoice); |
|
|
$invoice_data = $conn->query($sql_invoice); |
|
|
$contract_budget_data = $conn->query($sql_contract_budget); |
|
|
$contract_budget_data = $conn->query($sql_contract_budget); |
|
|
|
|
|
|
|
|
|
|
|
// 將T8銷售訂單明細 每個作番金額存入arrayData |
|
|
$contract_budget = array(); |
|
|
$contract_budget = array(); |
|
|
foreach ($contract_budget_data as $cont) { |
|
|
foreach ($contract_budget_data as $cont) { |
|
|
if (isset($arrayData[$BillNo]['total_budget'])) { |
|
|
$BillNo = $cont['BillNo']; |
|
|
|
|
|
if (isset($arrayData[$BillNo])) { |
|
|
$arrayData[$BillNo]['total_budget'] += $cont['OAmountWithTax']; |
|
|
$arrayData[$BillNo]['total_budget'] += $cont['OAmountWithTax']; |
|
|
if (isset($arrayData[$BillNo][$cont['CU_MaterialId']])) { |
|
|
$arrayData[$BillNo][$cont['MaterialId']] += $cont['OAmountWithTax']; |
|
|
$arrayData[$BillNo][$cont['CU_MaterialId']]['total_budget'] += $cont['OAmountWithTax']; |
|
|
if (isset($arrayData[$BillNo]['facility'][$cont['CU_MaterialId']])) { |
|
|
$arrayData[$BillNo][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax']; |
|
|
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] += $cont['OAmountWithTax']; |
|
|
|
|
|
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax']; |
|
|
} else { |
|
|
} else { |
|
|
$arrayData[$BillNo][$cont['CU_MaterialId']]['total_budget'] = $cont['OAmountWithTax']; |
|
|
$arrayData[$BillNo]['total_facility_num'] += 1; |
|
|
$arrayData[$BillNo][$cont['CU_MaterialId']]['A40002'] = $arrayData[$BillNo][$cont['CU_MaterialId']]['A40009'] = $arrayData[$BillNo][$cont['CU_MaterialId']]['A40010'] = 0; |
|
|
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] = $cont['OAmountWithTax']; |
|
|
$arrayData[$BillNo][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax']; |
|
|
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40002'] = $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40009'] = $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40010'] = 0; |
|
|
|
|
|
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax']; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (isset($contract_budget[$cont['BillNo']])) { |
|
|
if (isset($contract_budget[$cont['BillNo']])) { |
|
@ -238,20 +219,40 @@ foreach ($contract_budget_data as $cont) { |
|
|
} else { |
|
|
} else { |
|
|
$contract_budget[$cont['BillNo']]['total'] = $cont['OAmountWithTax']; |
|
|
$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']]['A40002'] = 0; |
|
|
|
|
|
$contract_budget[$cont['BillNo']][$cont['CU_MaterialId']]['A40009'] = 0; |
|
|
|
|
|
$contract_budget[$cont['BillNo']][$cont['CU_MaterialId']]['A40010'] = 0; |
|
|
|
|
|
}; |
|
|
|
|
|
if (isset($contract_budget[$cont['BillNo']][$cont['MaterialId']])) { |
|
|
if (isset($contract_budget[$cont['BillNo']][$cont['MaterialId']])) { |
|
|
$contract_budget[$cont['BillNo']][$cont['MaterialId']] += $cont['OAmountWithTax']; |
|
|
$contract_budget[$cont['BillNo']][$cont['MaterialId']] += $cont['OAmountWithTax']; |
|
|
} else { |
|
|
} else { |
|
|
$contract_budget[$cont['BillNo']][$cont['MaterialId']] = $cont['OAmountWithTax']; |
|
|
$contract_budget[$cont['BillNo']][$cont['MaterialId']] = $cont['OAmountWithTax']; |
|
|
} |
|
|
} |
|
|
$contract_budget[$cont['BillNo']][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax']; |
|
|
|
|
|
|
|
|
if (isset($contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']])) { |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['total'] += $cont['OAmountWithTax']; |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax']; |
|
|
|
|
|
} else { |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['total'] = $cont['OAmountWithTax']; |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40002'] = 0; |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40009'] = 0; |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40010'] = 0; |
|
|
|
|
|
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax']; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*計算作番佔合約的金額比例 |
|
|
|
|
|
@param $facility_no string => 作番號 |
|
|
|
|
|
@param $contract_budget_billno array => $contract_budget[合約號] |
|
|
|
|
|
return float */ |
|
|
|
|
|
function get_contract_ratio($facility_no,$contract_budget_billno){ |
|
|
|
|
|
$ratio = 0; |
|
|
|
|
|
if (empty($contract_budget_billno['total'])) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
$ratio += $contract_budget_billno['facility'][$facility_no]['total'] / $contract_budget_billno['total']; |
|
|
|
|
|
|
|
|
|
|
|
return $ratio; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/* 計算比例 |
|
|
/* 計算比例 |
|
@ -274,35 +275,55 @@ function get_ratio($facility_list, $contract_no, $contract_budget) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 合約收款階段內容分類 |
|
|
//取作番大日程作番與時程 進arrayData |
|
|
$sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天'); |
|
|
|
|
|
$sign90 = array('簽約後90天', '簽約後90日', '簽訂後90天'); |
|
|
|
|
|
$sign120 = array('簽約後120天', '簽約後120日', '簽訂後120天'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//取作番大日程作番與時程 |
|
|
|
|
|
// real_contract_arrival_date 預計出貨日 |
|
|
// real_contract_arrival_date 預計出貨日 |
|
|
// real_arrival_date 實際出貨日 |
|
|
// real_arrival_date 實際出貨日 |
|
|
$today = strtotime(date('Ymd')); |
|
|
$today = strtotime(date('Ymd')); |
|
|
|
|
|
|
|
|
$wipwhole_array = mysqli_query($link, $sql); |
|
|
$wipwhole_array = mysqli_query($link, $sql); |
|
|
|
|
|
$wipwhole_status = array(); |
|
|
foreach ($wipwhole_array as $wip) { |
|
|
foreach ($wipwhole_array as $wip) { |
|
|
|
|
|
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 |
|
|
if (isset($arrayData[$wip['contractno']])) { |
|
|
if (isset($arrayData[$wip['contractno']])) { |
|
|
|
|
|
// 整理合約資料 |
|
|
$arrayData[$wip['contractno']][0] = $wip['department_id'];; |
|
|
$arrayData[$wip['contractno']][0] = $wip['department_id'];; |
|
|
$arrayData[$wip['contractno']][1] = $wip['depart_name']; |
|
|
$arrayData[$wip['contractno']][1] = $wip['depart_name']; |
|
|
$arrayData[$wip['contractno']][2] = $wip['manager_name']; |
|
|
$arrayData[$wip['contractno']][2] = $wip['manager_name']; |
|
|
$arrayData[$wip['contractno']][3] = $wip['salesid']; |
|
|
$arrayData[$wip['contractno']][3] = $wip['salesid']; |
|
|
$arrayData[$wip['contractno']][4] = $wip['name']; |
|
|
$arrayData[$wip['contractno']][4] = $wip['name']; |
|
|
$arrayData[$wip['contractno']][10] = $wip['contractno']; |
|
|
$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; |
|
|
|
|
|
} |
|
|
|
|
|
$wipwhole_status[$wip['facilityno']] = $wip; |
|
|
|
|
|
} |
|
|
|
|
|
//~!~~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~~!~!~!~!~!~!~!~!~~!!~!~!~!~!~!~!~!~!~!~!~!~!~!!~!~!!~!~!~!~!!~!~!~!!~!~!~!~!~!!~!~!~!~!!~!~!~!~!~!~!!~ |
|
|
|
|
|
// 整理arrayData[合約]['PayStage']進 (新增) arrayData[合約]['facility'][作番號][PayStage] |
|
|
|
|
|
foreach($arrayData as &$value){ |
|
|
|
|
|
if(is_iterable($value['facility'])){ |
|
|
|
|
|
print_r($value['facility']); |
|
|
|
|
|
echo "<br>------<br>"; |
|
|
|
|
|
echo $value[10]." , ".$value['total_facility_num']."<br>"; |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
for($stage=1; $stage< (count($value['PayStage'])+1); $stage++){ |
|
|
|
|
|
// echo $value[10]." /"; |
|
|
|
|
|
// print_r($value['PayStage'][$stage]); |
|
|
|
|
|
// echo "<br>"; |
|
|
} |
|
|
} |
|
|
foreach ($arrayData as $data) { |
|
|
|
|
|
print_r($data); |
|
|
|
|
|
echo "<br>"; |
|
|
echo "<br>"; |
|
|
} |
|
|
} |
|
|
exit(); |
|
|
exit(); |
|
|
//----------------------------------------------------------------------------------確認A40002、A40009、A40010合約總金額有無存入--------------------------------------------- |
|
|
//========================================================================================================================================================= |
|
|
|
|
|
|
|
|
foreach ($wipwhole_array as $wip) { |
|
|
foreach ($wipwhole_array as $wip) { |
|
|
|
|
|
|
|
|
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 |
|
|
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 |
|
@ -326,169 +347,14 @@ foreach ($wipwhole_array as $wip) { |
|
|
$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']]['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; |
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40008'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'] : 0; |
|
|
|
|
|
|
|
|
// [合約號][作番號][款別] ['con'] [金額]/[合約預計收款日期] |
|
|
|
|
|
// [合約號][作番號][款別] ['inv'] [金額]/[發票開立日期] |
|
|
|
|
|
// [合約號][作番號][款別] ['rec'] [金額]/[實際收款日期] |
|
|
|
|
|
$contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); |
|
|
$contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); |
|
|
foreach ($contractstage as $i) { |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i] = ['', 0, '', 0, 0, 0, 0]; |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i]['inv']['date'] = ""; |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i]['inv']['budget'] = 0; |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i]['rec']['date'] = ""; |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i]['rec']['budget'] = 0; |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i]['con']['date'] = (isset($arrayData[$wip['contractno']][$i][2])) ? $arrayData[$wip['contractno']][$i][2] : ""; |
|
|
|
|
|
$arrayData[$wip['contractno']][$wip['facilityno']][$i]['con']['budget'] = 0; |
|
|
|
|
|
} |
|
|
|
|
|
// 補上寶佳 (出貨前) 收款時間 |
|
|
|
|
|
|
|
|
|
|
|
if (isset($arrayData[$wip['contractno']]['sign'][0]) && $arrayData[$wip['contractno']]['sign'][0] == '寶佳出貨前30天') { |
|
|
|
|
|
if ($wip['real_arrival_date'] != NULL) { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_arrival_date']); |
|
|
|
|
|
$signtime = $estimate_delivery_time - (30 * 86400); |
|
|
|
|
|
$signtime = date('Ymd', $signtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['sign'][2] = strval($signtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['sign']['max'], strtotime(strval($signtime))); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['sign']['min'], strtotime(strval($signtime))); |
|
|
|
|
|
} elseif ($wip['real_contract_arrival_date'] != NULL) { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); |
|
|
|
|
|
$signtime = $estimate_delivery_time - (30 * 86400); |
|
|
|
|
|
$signtime = date('Ymd', $signtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['sign'][2] = strval($signtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['sign']['max'], strtotime(strval($signtime))); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['sign']['min'], strtotime(strval($signtime))); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 補上二次款 (出貨前) 收款時間,條件不是"出貨前"就pass |
|
|
|
|
|
if (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前30天')) { |
|
|
|
|
|
if (empty($wip['real_contract_arrival_date'])) { |
|
|
|
|
|
} else { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); |
|
|
|
|
|
$secondtime = $estimate_delivery_time - (30 * 86400); |
|
|
|
|
|
$secondtime = date('Ymd', $secondtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['second'][2] = strval($secondtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); |
|
|
|
|
|
} |
|
|
|
|
|
} elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前90天')) { |
|
|
|
|
|
if (empty($wip['real_contract_arrival_date'])) { |
|
|
|
|
|
} else { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); |
|
|
|
|
|
$secondtime = $estimate_delivery_time - (90 * 86400); |
|
|
|
|
|
$secondtime = date('Ymd', $secondtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['second'][2] = strval($secondtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); |
|
|
|
|
|
} |
|
|
|
|
|
} elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前120天')) { |
|
|
|
|
|
if (empty($wip['real_contract_arrival_date'])) { |
|
|
|
|
|
} else { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); |
|
|
|
|
|
$secondtime = $estimate_delivery_time - (120 * 86400); |
|
|
|
|
|
$secondtime = date('Ymd', $secondtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['second'][2] = strval($secondtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); |
|
|
|
|
|
} |
|
|
|
|
|
} elseif (isset($arrayData[$wip['contractno']]['second'][0]) && $arrayData[$wip['contractno']]['second'][0] == '寶佳出貨後10天') { |
|
|
|
|
|
|
|
|
|
|
|
if ($wip['real_arrival_date'] != NULL) { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_arrival_date']); |
|
|
|
|
|
$secondtime = $estimate_delivery_time + (10 * 86400); |
|
|
|
|
|
$secondtime = date('Ymd', $secondtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['second'][2] = strval($secondtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['max'], strtotime(strval($secondtime))); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); |
|
|
|
|
|
} else { |
|
|
|
|
|
$estimate_delivery_time = strtotime($wip['real_contract_arrival_date']); |
|
|
|
|
|
$secondtime = $estimate_delivery_time + (10 * 86400); |
|
|
|
|
|
$secondtime = date('Ymd', $secondtime); |
|
|
|
|
|
$arrayData[$wip['contractno']]['second'][2] = strval($secondtime); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['max'], strtotime($secondtime)); |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['second']['min'], strtotime(strval($secondtime))); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//根據作番狀態填入facilities,計算各階段數量、一個合約有幾個作番,增加作番資料 |
|
|
//根據作番狀態填入facilities,計算各階段數量、一個合約有幾個作番,增加作番資料 |
|
|
// real_contract_arrival_date 預計出貨日=預計到貨日=預計貨抵工地 |
|
|
// real_contract_arrival_date 預計出貨日=預計到貨日=預計貨抵工地 |
|
|
// real_arrival_date 實際出貨日=實際到貨日=實際貨抵工地 |
|
|
// real_arrival_date 實際出貨日=實際到貨日=實際貨抵工地 |
|
|
//----------------------------------------寶佳的另外處理--------------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
if ($arrayData[$wip['contractno']]['sign'][0] == "寶佳出貨前30天") { |
|
|
|
|
|
$facility_status = ""; |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']); |
|
|
|
|
|
$today = strtotime(date('Ymd')); |
|
|
|
|
|
$contractday = strtotime($arrayData[$wip['contractno']]['sign'][2]); |
|
|
|
|
|
$month = collect_month($contractday); |
|
|
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][6] = $month; |
|
|
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = $arrayData[$wip['contractno']]['sign'][2]; |
|
|
|
|
|
if ($today > $contractday) { |
|
|
|
|
|
$arrayData[$wip['contractno']]['sign_num'] += 1; |
|
|
|
|
|
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']); |
|
|
|
|
|
$facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "已過) <br>"; |
|
|
|
|
|
$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] . "已過) <br>"; |
|
|
|
|
|
$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] . "已過) <br>"; |
|
|
|
|
|
$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] . "已過) <br>"; |
|
|
|
|
|
$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] . "已過) <br>"; |
|
|
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
$facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "未到) <br>"; |
|
|
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status; |
|
|
|
|
|
} |
|
|
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $facility_status; |
|
|
|
|
|
} else { |
|
|
|
|
|
$signtime = strtotime($arrayData[$wip['contractno']]['sign'][2]); |
|
|
$signtime = strtotime($arrayData[$wip['contractno']]['sign'][2]); |
|
|
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']); |
|
|
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']); |
|
|
$month = collect_month($signtime); |
|
|
$month = collect_month($signtime); |
|
@ -860,7 +726,6 @@ foreach ($wipwhole_array as $wip) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
// foreach ($arrayData as $key => $value) { |
|
|
// foreach ($arrayData as $key => $value) { |
|
|
// echo $key."<br>"; |
|
|
// echo $key."<br>"; |
|
|
// print_r($value['total_list']); |
|
|
// print_r($value['total_list']); |
|
|