|
|
@ -93,7 +93,7 @@ if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) { |
|
|
|
// $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'"; |
|
|
|
$sql_contract_budget .= " AND (PersonId = '$user_id'"; |
|
|
|
if (count($follower) > 0) { |
|
|
|
$column_str = "('$user_id'" . ",'"; |
|
|
|
$column_str .= implode("','", $follower); |
|
|
@ -110,7 +110,7 @@ if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) { |
|
|
|
$sql .= " ORDER BY contractno"; |
|
|
|
$sql_contract_budget .= ")"; |
|
|
|
}; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
$sql .= " ORDER BY contractno"; |
|
|
|
$sql_contract_budget .= "ORDER BY BillNo, CU_MaterialId"; |
|
|
|
} |
|
|
@ -123,19 +123,37 @@ $contract_budget_data = $conn->query($sql_contract_budget); |
|
|
|
|
|
|
|
$contract_budget = array(); |
|
|
|
foreach ($contract_budget_data as $cont) { |
|
|
|
if(isset($contract_budget[$cont['BillNo']])){ |
|
|
|
if (isset($contract_budget[$cont['BillNo']])) { |
|
|
|
$contract_budget[$cont['BillNo']]['total'] += $cont['OAmountWithTax']; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
$contract_budget[$cont['BillNo']]['total'] = $cont['OAmountWithTax']; |
|
|
|
} |
|
|
|
if(isset($contract_budget[$cont['BillNo']][$cont['CU_MaterialId']])){ |
|
|
|
if (isset($contract_budget[$cont['BillNo']][$cont['CU_MaterialId']])) { |
|
|
|
$contract_budget[$cont['BillNo']][$cont['CU_MaterialId']] += $cont['OAmountWithTax']; |
|
|
|
}else{ |
|
|
|
$contract_budget[$cont['BillNo']][$cont['CU_MaterialId']] = $cont['OAmountWithTax']; |
|
|
|
} else { |
|
|
|
$contract_budget[$cont['BillNo']][$cont['CU_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]) && isset($contract_budget[$contract_no]['total'])) { |
|
|
|
$ratio += $contract_budget[$contract_no][$every] / $contract_budget[$contract_no]['total']; |
|
|
|
} |
|
|
|
} |
|
|
|
return $ratio; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 合約收款階段內容分類 |
|
|
|
$sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天'); |
|
|
@ -177,7 +195,7 @@ foreach ($contract as $cont) { |
|
|
|
$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_facility_list']= $arrayData[$BillNo]['sign_list'] = $arrayData[$BillNo]['second_list'] = $arrayData[$BillNo]['arrive_list'] = $arrayData[$BillNo]['install_list'] = $arrayData[$BillNo]['tryrun_list'] = $arrayData[$BillNo]['check_list'] = $arrayData[$BillNo]['delivery_list'] = $arrayData[$BillNo]['final_list'] = []; |
|
|
|
$arrayData[$BillNo]['total_list'] = $arrayData[$BillNo]['sign_list'] = $arrayData[$BillNo]['second_list'] = $arrayData[$BillNo]['arrive_list'] = $arrayData[$BillNo]['install_list'] = $arrayData[$BillNo]['tryrun_list'] = $arrayData[$BillNo]['check_list'] = $arrayData[$BillNo]['delivery_list'] = $arrayData[$BillNo]['final_list'] = []; |
|
|
|
} |
|
|
|
if (stristr($PayStage, '二次款') || (stristr($PayStage, '出貨前') && $PayStage != "寶佳出貨前30天") || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60') || stristr($PayStage, '寶佳出貨後10天')) { |
|
|
|
$arrayData[$BillNo]['second'][0] = $PayStage; |
|
|
@ -364,7 +382,6 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
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); |
|
|
@ -382,6 +399,7 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$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; |
|
|
|
//貨抵工地款 |
|
|
@ -393,6 +411,7 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$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; |
|
|
@ -405,6 +424,7 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$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; |
|
|
@ -417,6 +437,8 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$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; |
|
|
@ -434,6 +456,7 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $facility_status; |
|
|
|
} else { |
|
|
|
$signtime = strtotime($arrayData[$wip['contractno']]['sign'][2]); |
|
|
|
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']); |
|
|
|
$month = collect_month($signtime); |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][6] = $month; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = strval(date('Ymd', $signtime)); |
|
|
@ -447,10 +470,15 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['tryrun_num'] += 1; |
|
|
|
array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']); |
|
|
|
$arrayData[$wip['contractno']]['install_num'] += 1; |
|
|
|
array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']); |
|
|
|
$arrayData[$wip['contractno']]['arrive_num'] += 1; |
|
|
|
array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']); |
|
|
|
$arrayData[$wip['contractno']]['second_num'] += 1; |
|
|
|
array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']); |
|
|
|
$arrayData[$wip['contractno']]['sign_num'] += 1; |
|
|
|
array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']); |
|
|
|
|
|
|
|
if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") { |
|
|
|
$estimate_delivery_time = strtotime($wip['delivery_date']); |
|
|
@ -458,6 +486,8 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$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)); |
|
|
@ -467,7 +497,10 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
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); |
|
|
@ -538,11 +571,17 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢) <br>"; |
|
|
|
$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']))); |
|
|
@ -619,10 +658,15 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢) <br>"; |
|
|
|
$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']))); |
|
|
@ -677,9 +721,13 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢) <br>"; |
|
|
|
$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); |
|
|
@ -726,8 +774,11 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地) <br>"; |
|
|
|
$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']); |
|
|
@ -756,9 +807,12 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
$arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (已達二次款收款條件) <br>"; |
|
|
|
$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'] . "預計出貨日) <br>"; |
|
|
|
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日) <br>"; |
|
|
@ -773,9 +827,29 @@ foreach ($wipwhole_array as $wip) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
print_r($contract_budget['D23070082']); |
|
|
|
echo "<br>"; |
|
|
|
exit(); |
|
|
|
// foreach ($arrayData as $key => $value) { |
|
|
|
// echo $key."<br>"; |
|
|
|
// print_r($value['total_list']); |
|
|
|
// echo " / 總 "; |
|
|
|
// print_r($value['sign_list']); |
|
|
|
// echo " / 訂金 <br>"; |
|
|
|
// print_r($value['arrive_list']); |
|
|
|
// echo " / 貨抵 "; |
|
|
|
// print_r($value['install_list']); |
|
|
|
// echo " / 安裝 <br>"; |
|
|
|
// print_r($value['tryrun_list']); |
|
|
|
// echo " / 試車 "; |
|
|
|
// print_r($value['check_list']); |
|
|
|
// echo " / 官檢 <br>"; |
|
|
|
// print_r($value['delivery_list']); |
|
|
|
// echo " / 移交 "; |
|
|
|
// print_r($value['final_list']); |
|
|
|
// echo " / 結案 <br>"; |
|
|
|
// echo "---------------------------<br>"; |
|
|
|
// foreach($value['sign_list'] as $fac){ |
|
|
|
// echo $fac."========="; |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// 計算每個合約的應收款、作番總數 |
|
|
@ -783,27 +857,36 @@ $today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y |
|
|
|
$contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); |
|
|
|
foreach ($arrayData as &$value) { |
|
|
|
if ($value['total_facility_num'] > 0) { |
|
|
|
$value['receivable_budget'] = $value['sign'][1] * ($contract_budget[$value[10]]['total'] / $contract_budget[$value[10]]['total']) + ($value['second'][1] * ($value['second_num'] / $value['total_facility_num'])) + |
|
|
|
($value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num'])) + ($value['install'][1] * ($value['install_num'] / $value['total_facility_num'])) + |
|
|
|
($value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num'])) + ($value['check'][1] * ($value['check_num'] / $value['total_facility_num'])) + |
|
|
|
(($value['delivery'][1] + $value['final'][1]) * ($value['delivery_num'] / $value['total_facility_num'])); |
|
|
|
$value['sign'][3] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']); |
|
|
|
$value['second'][3] = $value['second'][1] * ($value['second_num'] / $value['total_facility_num']); |
|
|
|
$value['arrive'][3] = $value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num']); |
|
|
|
$value['install'][3] = $value['install'][1] * ($value['install_num'] / $value['total_facility_num']); |
|
|
|
$value['tryrun'][3] = $value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num']); |
|
|
|
$value['check'][3] = $value['check'][1] * ($value['check_num'] / $value['total_facility_num']); |
|
|
|
$value['delivery'][3] = $value['delivery'][1] * ($value['delivery_num'] / $value['total_facility_num']); |
|
|
|
$value['final'][3] = $value['final'][1] * ($value['delivery_num'] / $value['total_facility_num']); |
|
|
|
$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 催收次數 |
|
|
|
// 計算每台作番金額與各階段應收金額 |
|
|
|
foreach ($value['facility'] as &$val) { |
|
|
|
|
|
|
|
foreach ($contractstage as $stage) { |
|
|
|
if (isset($value[$stage][0]) && !empty($value[$stage][0])) { |
|
|
|
$val[$stage][0] = $value[$stage][0]; |
|
|
|
$val[$stage][1] = $value[$stage][1] / $value['total_facility_num']; |
|
|
|
if (isset($contract_budget[$value[10]]['total']) && isset($contract_budget[$value[10]][$val['no']])) { |
|
|
|
$ratio = $contract_budget[$value[10]][$val['no']] / $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]; |
|
|
@ -882,6 +965,284 @@ foreach ($received_array as $received) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 4 已收金額 5 催收金額 6 已開發票金額 7 未開發票金額 min 最早應收月份 max 最晚應收月份 |
|
|
|
foreach ($arrayData as $key => &$data) { |
|
|
|
$tmp_data = $data['received_budget']; |
|
|
|
$tmp_invoice = $data['invoice_budget']; |
|
|
|
|
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['sign'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['sign'][5] = $data['sign'][3] - $data['sign'][4]; |
|
|
|
} else { |
|
|
|
$data['sign'][4] = 0; |
|
|
|
$data['sign'][5] = $data['sign'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['sign'][3]) >= 0) { |
|
|
|
$data['sign'][6] = $data['sign'][3]; |
|
|
|
$tmp_invoice -= $data['sign'][3]; |
|
|
|
} else { |
|
|
|
$data['sign'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['sign'][7] = $data['sign'][3] - $data['sign'][6]; |
|
|
|
} else { |
|
|
|
$data['sign'][6] = 0; |
|
|
|
$data['sign'][7] = $data['sign'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['sign'][4] = 0; |
|
|
|
$data['sign'][5] = 0; |
|
|
|
$data['sign'][6] = 0; |
|
|
|
$data['sign'][7] = 0; |
|
|
|
} |
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['second'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['second'][5] = $data['second'][3] - $data['second'][4]; |
|
|
|
} else { |
|
|
|
$data['second'][4] = 0; |
|
|
|
$data['second'][5] = $data['second'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['second'][3]) >= 0) { |
|
|
|
$data['second'][6] = $data['second'][3]; |
|
|
|
$tmp_invoice -= $data['second'][3]; |
|
|
|
} else { |
|
|
|
$data['second'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['second'][7] = $data['second'][3] - $data['second'][6]; |
|
|
|
} else { |
|
|
|
$data['second'][6] = 0; |
|
|
|
$data['second'][7] = $data['second'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['second'][4] = 0; |
|
|
|
$data['second'][5] = 0; |
|
|
|
$data['second'][6] = 0; |
|
|
|
$data['second'][7] = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['arrive'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['arrive'][5] = $data['arrive'][3] - $data['arrive'][4]; |
|
|
|
} else { |
|
|
|
$data['arrive'][4] = 0; |
|
|
|
$data['arrive'][5] = $data['arrive'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['arrive'][3]) >= 0) { |
|
|
|
$data['arrive'][6] = $data['arrive'][3]; |
|
|
|
$tmp_invoice -= $data['arrive'][3]; |
|
|
|
} else { |
|
|
|
$data['arrive'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['arrive'][7] = $data['arrive'][3] - $data['arrive'][6]; |
|
|
|
} else { |
|
|
|
$data['arrive'][6] = 0; |
|
|
|
$data['arrive'][7] = $data['arrive'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['arrive'][4] = 0; |
|
|
|
$data['arrive'][5] = 0; |
|
|
|
$data['arrive'][6] = 0; |
|
|
|
$data['arrive'][7] = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['install'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['install'][5] = $data['install'][3] - $data['install'][4]; |
|
|
|
} else { |
|
|
|
$data['install'][4] = 0; |
|
|
|
$data['install'][5] = $data['install'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['install'][3]) >= 0) { |
|
|
|
$data['install'][6] = $data['install'][3]; |
|
|
|
$tmp_invoice -= $data['install'][3]; |
|
|
|
} else { |
|
|
|
$data['install'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['install'][7] = $data['install'][3] - $data['install'][6]; |
|
|
|
} else { |
|
|
|
$data['install'][6] = 0; |
|
|
|
$data['install'][7] = $data['install'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['install'][4] = 0; |
|
|
|
$data['install'][5] = 0; |
|
|
|
$data['install'][6] = 0; |
|
|
|
$data['install'][7] = 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['tryrun'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['tryrun'][5] = $data['tryrun'][3] - $data['tryrun'][4]; |
|
|
|
} else { |
|
|
|
$data['tryrun'][4] = 0; |
|
|
|
$data['tryrun'][5] = $data['tryrun'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['tryrun'][3]) >= 0) { |
|
|
|
$data['tryrun'][6] = $data['tryrun'][3]; |
|
|
|
$tmp_invoice -= $data['tryrun'][3]; |
|
|
|
} else { |
|
|
|
$data['tryrun'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['tryrun'][7] = $data['tryrun'][3] - $data['tryrun'][6]; |
|
|
|
} else { |
|
|
|
$data['tryrun'][6] = 0; |
|
|
|
$data['tryrun'][7] = $data['tryrun'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['tryrun'][4] = 0; |
|
|
|
$data['tryrun'][5] = 0; |
|
|
|
$data['tryrun'][6] = 0; |
|
|
|
$data['tryrun'][7] = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['check'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['check'][5] = $data['check'][3] - $data['check'][4]; |
|
|
|
} else { |
|
|
|
$data['check'][4] = 0; |
|
|
|
$data['check'][5] = $data['check'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['check'][3]) >= 0) { |
|
|
|
$data['check'][6] = $data['check'][3]; |
|
|
|
$tmp_invoice -= $data['check'][3]; |
|
|
|
} else { |
|
|
|
$data['check'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['check'][7] = $data['check'][3] - $data['check'][6]; |
|
|
|
} else { |
|
|
|
$data['check'][6] = 0; |
|
|
|
$data['check'][7] = $data['check'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['check'][4] = 0; |
|
|
|
$data['check'][5] = 0; |
|
|
|
$data['check'][6] = 0; |
|
|
|
$data['check'][7] = 0; |
|
|
|
} |
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['delivery'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['delivery'][5] = $data['delivery'][3] - $data['delivery'][4]; |
|
|
|
} else { |
|
|
|
$data['delivery'][4] = 0; |
|
|
|
$data['delivery'][5] = $data['delivery'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['delivery'][3]) >= 0) { |
|
|
|
$data['delivery'][6] = $data['delivery'][3]; |
|
|
|
$tmp_invoice -= $data['delivery'][3]; |
|
|
|
} else { |
|
|
|
$data['delivery'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['delivery'][7] = $data['delivery'][3] - $data['delivery'][6]; |
|
|
|
} else { |
|
|
|
$data['delivery'][6] = 0; |
|
|
|
$data['delivery'][7] = $data['delivery'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['delivery'][4] = 0; |
|
|
|
$data['delivery'][5] = 0; |
|
|
|
$data['delivery'][6] = 0; |
|
|
|
$data['delivery'][7] = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if ($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]; |
|
|
|
} else { |
|
|
|
$data['final'][4] = $tmp_data; |
|
|
|
$tmp_data = 0; |
|
|
|
} |
|
|
|
$data['final'][5] = $data['final'][3] - $data['final'][4]; |
|
|
|
} else { |
|
|
|
$data['final'][4] = 0; |
|
|
|
$data['final'][5] = $data['final'][3]; |
|
|
|
} |
|
|
|
if ($tmp_invoice > 0) { |
|
|
|
if (($tmp_invoice - $data['final'][3]) >= 0) { |
|
|
|
$data['final'][6] = $data['final'][3]; |
|
|
|
$tmp_invoice -= $data['final'][3]; |
|
|
|
} else { |
|
|
|
$data['final'][6] = $tmp_invoice; |
|
|
|
$tmp_invoice = 0; |
|
|
|
} |
|
|
|
$data['final'][7] = $data['final'][3] - $data['final'][6]; |
|
|
|
} else { |
|
|
|
$data['final'][6] = 0; |
|
|
|
$data['final'][7] = $data['final'][3]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$data['final'][4] = 0; |
|
|
|
$data['final'][5] = 0; |
|
|
|
$data['final'][6] = 0; |
|
|
|
$data['final'][7] = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//產生excel的array |
|
|
|
$excel_aray = array(); |
|
|
@ -891,6 +1252,7 @@ $facility_array = array(); |
|
|
|
$facility_boga_array = array(); |
|
|
|
$facility_exclude_boga_array = array(); |
|
|
|
foreach ($arrayData as $key => $value) { |
|
|
|
|
|
|
|
$value['sign'][3] = (isset($value['sign'][3])) ? $value['sign'][3] : 0; |
|
|
|
$value['second'][3] = (isset($value['second'][3])) ? $value['second'][3] : 0; |
|
|
|
$value['arrive'][3] = (isset($value['arrive'][3])) ? $value['arrive'][3] : 0; |
|
|
@ -903,50 +1265,51 @@ foreach ($arrayData as $key => $value) { |
|
|
|
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; |
|
|
|
}; |
|
|
|
|
|
|
|
if ($value['sign'][0] == "寶佳出貨前30天") { |
|
|
|
$boga_array[$key] = [ |
|
|
|
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], |
|
|
|
$value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'], |
|
|
|
$value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'], |
|
|
|
$value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'], |
|
|
|
$value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'], |
|
|
|
$value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'], |
|
|
|
$value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'], |
|
|
|
$value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'], |
|
|
|
$value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'], |
|
|
|
$value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'], |
|
|
|
$value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'], |
|
|
|
$value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'], |
|
|
|
$value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'], |
|
|
|
$value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'], |
|
|
|
$value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'], |
|
|
|
$value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'], |
|
|
|
$value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'], |
|
|
|
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('<br>', '; ', $value['facilities']) |
|
|
|
]; |
|
|
|
} else { |
|
|
|
$exclude_boga_array[$key] = [ |
|
|
|
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], |
|
|
|
$value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'], |
|
|
|
$value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'], |
|
|
|
$value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'], |
|
|
|
$value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'], |
|
|
|
$value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'], |
|
|
|
$value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'], |
|
|
|
$value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'], |
|
|
|
$value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'], |
|
|
|
$value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'], |
|
|
|
$value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'], |
|
|
|
$value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'], |
|
|
|
$value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'], |
|
|
|
$value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'], |
|
|
|
$value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'], |
|
|
|
$value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'], |
|
|
|
$value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'], |
|
|
|
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('<br>', '; ', $value['facilities']) |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$excel_aray[$key] = [ |
|
|
|
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], |
|
|
|
$value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'], |
|
|
|
$value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'], |
|
|
|
$value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'], |
|
|
|
$value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'], |
|
|
|
$value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'], |
|
|
|
$value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'], |
|
|
|
$value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'], |
|
|
|
$value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'], |
|
|
|
$value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'], |
|
|
|
$value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'], |
|
|
|
$value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'], |
|
|
|
$value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'], |
|
|
|
$value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'], |
|
|
|
$value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'], |
|
|
|
$value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'], |
|
|
|
$value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'], |
|
|
|
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('<br>', '; ', $value['facilities']) |
|
|
|
]; |
|
|
|
|
|
|
|
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 |
|
|
|
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 |
|
|
|
foreach ($value['facility'] as $valkey => $val) { |
|
|
@ -1001,8 +1364,7 @@ foreach ($arrayData as $key => $value) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$data = json_encode($excel_aray); |
|
|
|
$total_data = json_encode($excel_aray); |
|
|
|
$boga_data = json_encode($boga_array); |
|
|
|
$exclude_boga_data = json_encode($exclude_boga_array); |
|
|
|
$facility_data = json_encode($facility_array); |
|
|
@ -1060,7 +1422,7 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array); |
|
|
|
<button type="button" style="width: 12%;" onclick="downloadFacilityData('AllData')" class="btn btn-success btn-md">作番收款明細<span class="glyphicon glyphicon-download-alt"></span></button> |
|
|
|
<button type="button" style="width: 12%;" onclick="downloadFacilityData('ExcludeData')" class="btn btn-info btn-md">不含寶佳作番收款明細<span class="glyphicon glyphicon-download-alt"></span></button> |
|
|
|
<button type="button" style="width: 12%;" onclick="downloadFacilityData('BogaData')" class="btn btn-warning btn-md">寶佳作番收款明細<span class="glyphicon glyphicon-download-alt"></span></button> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
@ -1209,18 +1571,14 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array); |
|
|
|
document.body.removeChild(link); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// xhr.send(JSON.stringify({ |
|
|
|
// Bill: <?= $data ?> |
|
|
|
// }) |
|
|
|
// ); |
|
|
|
xhr.send(JSON.stringify({ |
|
|
|
Bill: <?= $data ?> |
|
|
|
Bill: <?= $total_data ?> |
|
|
|
})); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function bogaData() { |
|
|
|
console.log(<?= $boga_data ?>); |
|
|
|
var xhr = new XMLHttpRequest(); |
|
|
|
var url = window.location.origin + "/wms/account-receivable-excel.php?type=boga&<?= $token_link ?>"; |
|
|
|
xhr.open('POST', url, true); |
|
|
@ -1249,12 +1607,10 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array); |
|
|
|
if (content == 'AllData') { |
|
|
|
var BillData = <?= $facility_data ?>; |
|
|
|
var filename = "作番應收帳款" + "<?= date('Y-m-d-Hm') ?>" + ".xlsx"; |
|
|
|
} |
|
|
|
else if(content == 'ExcludeData') { |
|
|
|
} else if (content == 'ExcludeData') { |
|
|
|
var BillData = <?= $facility_exclude_boga_data ?>; |
|
|
|
var filename = "不含寶佳作番應收帳款" + "<?= date('Y-m-d-Hm') ?>" + ".xlsx"; |
|
|
|
} |
|
|
|
else if(content == 'BogaData'){ |
|
|
|
} else if (content == 'BogaData') { |
|
|
|
var BillData = <?= $facility_boga_data ?>; |
|
|
|
var filename = "寶佳作番應收帳款" + "<?= date('Y-m-d-Hm') ?>" + ".xlsx"; |
|
|
|
} |
|
|
@ -1321,46 +1677,63 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array); |
|
|
|
form.submit(); |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<?php |
|
|
|
$table = ""; |
|
|
|
|
|
|
|
//[stage] 0 款名 1金額 2 應收款日期 |
|
|
|
//['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 |
|
|
|
// 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 |
|
|
|
//[stage] 0 款名 1金額 2 應收款日期 |
|
|
|
//['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 |
|
|
|
// 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 |
|
|
|
// [合約號]['facility'][作番號]['no'] |
|
|
|
//['receivable_budget'] / ['total_facility_num'] / ['total_budget'] |
|
|
|
//['receivable_budget'] / ['total_facility_num'] / ['total_budget'] |
|
|
|
//('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final'); |
|
|
|
foreach ($arrayData as $key => $value) { |
|
|
|
foreach($value['facility'] as $fakey => $facility) { |
|
|
|
foreach ($value['facility'] as $fakey => $facility) { |
|
|
|
foreach ($contractstage as $stage) { |
|
|
|
switch ($stage) { |
|
|
|
case 'sign':$stageno = 0;break; |
|
|
|
case 'second':$stageno=1;break; |
|
|
|
case 'arrive':$stageno=2;break; |
|
|
|
case 'install':$stageno=3;break; |
|
|
|
case 'tryrun':$stageno=4;break; |
|
|
|
case 'check':$stageno=5;break; |
|
|
|
case 'delivery':$stageno=6;break; |
|
|
|
case 'final':$stageno=7;break; |
|
|
|
case 'sign': |
|
|
|
$stageno = 0; |
|
|
|
break; |
|
|
|
case 'second': |
|
|
|
$stageno = 1; |
|
|
|
break; |
|
|
|
case 'arrive': |
|
|
|
$stageno = 2; |
|
|
|
break; |
|
|
|
case 'install': |
|
|
|
$stageno = 3; |
|
|
|
break; |
|
|
|
case 'tryrun': |
|
|
|
$stageno = 4; |
|
|
|
break; |
|
|
|
case 'check': |
|
|
|
$stageno = 5; |
|
|
|
break; |
|
|
|
case 'delivery': |
|
|
|
$stageno = 6; |
|
|
|
break; |
|
|
|
case 'final': |
|
|
|
$stageno = 7; |
|
|
|
break; |
|
|
|
} |
|
|
|
if (isset($value[$stage]) && isset($value[$stage][0]) && !empty($value[$stage][0])) { |
|
|
|
if($value[$stage][3] >0){ |
|
|
|
if ($value[$stage][3] > 0) { |
|
|
|
$stage3 = 1; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
$stage3 = 0; |
|
|
|
} |
|
|
|
$budget = $value[$stage][1]; |
|
|
|
$receivable_date = $value[$stage][2]; |
|
|
|
$table .= "INSERT INTO account_receivable ( |
|
|
|
`contract_no`, |
|
|
|
`facility_no`, |
|
|
|
`stage`, |
|
|
|
`budget`, |
|
|
|
`receivable_date`, |
|
|
|
`receivable`) VALUES ('$key','$fakey',$stageno,$budget,$receivable_date,$stage3); \n"; |
|
|
|
`contract_no`, |
|
|
|
`facility_no`, |
|
|
|
`stage`, |
|
|
|
`budget`, |
|
|
|
`receivable_date`, |
|
|
|
`receivable`) VALUES ('$key','$fakey',$stageno,$budget,$receivable_date,$stage3); \n"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
$file_path = 'account_receivable_sql_file.sql'; |
|
|
|