@ -316,19 +316,19 @@ foreach ($contract_budget_data as $cont) {
switch ($cont['MaterialId']) {
case 'A40002':
$sum_A40002 += $cont['OAmountWithTax'];
$sum_facility_A40002 +=1;
$sum_facility_A40002 += 1;
break;
case 'A40009':
$sum_A40009 += $cont['OAmountWithTax'];
$sum_facility_A40009 +=1;
$sum_facility_A40009 += 1;
break;
case 'A40010':
$sum_A40010 += $cont['OAmountWithTax'];
$sum_facility_A40010 +=1;
$sum_facility_A40010 += 1;
break;
case 'A40019':
$sum_A40019 += $cont['OAmountWithTax'];
$sum_facility_A40019 +=1;
$sum_facility_A40019 += 1;
break;
}
@ -470,7 +470,7 @@ foreach ($wipwhole_array as $wip) {
}
// 整理arrayData[合約]['PayStage']進 (新增) arrayData[合約]['facility'][作番號][PayStage]
$sign_array = ['訂金', '簽約', '合約'] ;
$sign0 = array('簽約', '簽訂', '合約簽訂', '訂金', '訂金款', '訂金') ;
// 將所有facility的paystage放入一個array以便計算順序
$allPayStages = [];
foreach ($arrayData as & $value) {
@ -490,31 +490,43 @@ foreach ($arrayData as &$value) {
case (stristr($facility['PayStage'][$stage]['name'], '試車')):
if (isset($wipwhole_status[$fakey]['tryrun_end_date']) & & $wipwhole_status[$fakey]['tryrun_end_date'] !== NULL & & !empty($wipwhole_status[$fakey]['tryrun_end_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['tryrun_end_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '完工')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '尾款')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '交車')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '驗收')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '安裝')):
if (isset($wipwhole_status[$fakey]['install_end_date']) & & $wipwhole_status[$fakey]['install_end_date'] !== NULL & & !empty($wipwhole_status[$fakey]['install_end_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['install_end_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')):
@ -522,9 +534,14 @@ foreach ($arrayData as &$value) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['real_arrival_date']));
} elseif (isset($wipwhole_status[$fakey]['real_contract_arrival_date']) & & $wipwhole_status[$fakey]['real_contract_arrival_date'] !== NULL & & !empty($wipwhole_status[$fakey]['real_contract_arrival_date'])) {
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date']));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (in_array($facility['PayStage'][$stage]['name'], $sign0)):
break;
default:
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
break;
};
@ -537,36 +554,48 @@ foreach ($arrayData as &$value) {
if (isset($wipwhole_status[$fakey]['tryrun_end_date']) & & $wipwhole_status[$fakey]['tryrun_end_date'] !== NULL & & !empty($wipwhole_status[$fakey]['tryrun_end_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['tryrun_end_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '完工')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '尾款')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '交車')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '驗收')):
if (isset($wipwhole_status[$fakey]['delivery_date']) & & $wipwhole_status[$fakey]['delivery_date'] !== NULL & & !empty($wipwhole_status[$fakey]['delivery_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '安裝')):
if (isset($wipwhole_status[$fakey]['install_end_date']) & & $wipwhole_status[$fakey]['install_end_date'] !== NULL & & !empty($wipwhole_status[$fakey]['install_end_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['install_end_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')):
@ -576,9 +605,12 @@ foreach ($arrayData as &$value) {
} elseif (isset($wipwhole_status[$fakey]['real_contract_arrival_date']) & & $wipwhole_status[$fakey]['real_contract_arrival_date'] !== NULL & & !empty($wipwhole_status[$fakey]['real_contract_arrival_date'])) {
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date'])));
} else {
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
}
break;
default:
$facility['PayStage'][$stage]['PlanPayDate'] = NULL;
break;
};
default:
@ -684,20 +716,22 @@ foreach ($final_paystage as $key => &$payStage) {
// 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 9 T8單據日期 10 合約號
// 0 合約號 1 作番號 2 部門id 3 部門名稱 4 經理名稱 5 營業員id 6 營業員名稱 7 客戶名稱 8 抬頭 9 統編 10 通訊地址
// 11 收款階段名稱 12 應收日期 13 收款金額 14 已開金額 15 已收金額 16 催收次數
$table = "";
$excel_aray = array();
$print_array = array();
$today = strtotime(date('Ymt'));
foreach ($arrayData as $key => $value) {
if (isset($final_paystage[$key])) {
for ($sequence = 1; $sequence < = count($final_paystage[$key]); $sequence++) {
if(!is_null($value['ManagerId']) & & $value['ManagerId'] !==''){
if (!is_null($value['ManagerId']) & & $value['ManagerId'] !== '') {
$managerId = $value['ManagerId'];
}else{
} else {
$managerId = $value[11];
}
if(!is_null($value['ManagerName']) & & $value['ManagerName'] !==''){
if (!is_null($value['ManagerName']) & & $value['ManagerName'] !== '') {
$managerName = $value['ManagerName'];
}else{
} else {
$managerName = $value[2];
}
$value[4] = (isset($value[4]) & & !empty($value[4])) ? $value[4] : '--';
@ -709,9 +743,16 @@ foreach ($arrayData as $key => $value) {
$value[12] = (isset($value[12]) & & !empty($value[12])) ? date('Y/m/d', strtotime($value[12])) : '--';
$thisPayStage = $final_paystage[$key][$sequence];
$keyname = $key . "_" . $final_paystage[$key][$sequence]['facilityno'] . "_" . $sequence;
$havetopay = ($today >= strtotime($final_paystage[$key][$sequence]['PlanPayDate'])) ? "V" : "--";
if (isset($final_paystage[$key][$sequence]['PlanPayDate']) & & !empty($final_paystage[$key][$sequence]['PlanPayDate']) & & $final_paystage[$key][$sequence]['PlanPayDate'] !== NULL) {
$havetopay = ($today >= strtotime($final_paystage[$key][$sequence]['PlanPayDate'])) ? "V" : "--";
} else {
$havetopay = "--";
}
$table_hadtopay = 0;
switch ($havetopay) {
case "V":
$table_hadtopay = 1;
$unInvoiceAmount = $final_paystage[$key][$sequence]['PayAmount'] - $final_paystage[$key][$sequence]['InvoiceAmount'];
$unReceivedAmount = $final_paystage[$key][$sequence]['PayAmount'] - $final_paystage[$key][$sequence]['receivedAmount'];
break;
@ -720,10 +761,15 @@ foreach ($arrayData as $key => $value) {
$unReceivedAmount = 0;
break;
}
if (is_null($thisPayStage['PlanPayDate']) || empty($thisPayStage['PlanPayDate'])) {
$thisplanpaydate = "--";
} else {
$thisplanpaydate = $thisPayStage['PlanPayDate'];
}
if ($havetopay == "V" & & $unReceivedAmount > 1) {
$print_array[$keyname] = [
$value[10], $thisPayStage['facilityno'], $value[0], $value[1], $value[11], $value['ManagerName'], $value[3], $value[4], $value[5], $value[6], $value[7], $value[8],
$thisPayStage['name'], $thisPayStage['PlanPayDate'], $havetopay,
$thisPayStage['name'], $thisplanpaydate , $havetopay,
number_format(round($final_paystage[$key][$sequence]['PayAmount'])),
number_format(round($final_paystage[$key][$sequence]['InvoiceAmount'])), number_format(round($unInvoiceAmount)),
number_format(round($final_paystage[$key][$sequence]['receivedAmount'])), number_format(round($unReceivedAmount)),
@ -731,18 +777,58 @@ foreach ($arrayData as $key => $value) {
];
}
$table_budget = round($final_paystage[$key][$sequence]['PayAmount']);
$table_invoice_budget = round($final_paystage[$key][$sequence]['InvoiceAmount']);
$table_received_budget = round($final_paystage[$key][$sequence]['receivedAmount']);
$excel_aray[$keyname] = [
$value[10], $thisPayStage['facilityno'], $value[0], $value[1], $managerId, $managerName, $value[3], $value[4], $value[5], $value[6], $value[7], $value[8],
$thisPayStage['name'], $thisPayStage['PlanPayDate'], $havetopay,
$thisPayStage['name'], $thisplanpaydate , $havetopay,
number_format(round($final_paystage[$key][$sequence]['PayAmount'])),
number_format(round($final_paystage[$key][$sequence]['InvoiceAmount'])), number_format(round($unInvoiceAmount)),
number_format(round($final_paystage[$key][$sequence]['receivedAmount'])), number_format(round($unReceivedAmount)),
number_format(round($final_paystage[$key][$sequence]['collect_month']))
];
if ($final_paystage[$key][$sequence]['InvoiceAmount'] > 1) {
$invoice_state = 1;
} else {
$invoice_state = 0;
}
$table1 = "INSERT INTO account_receivable_renovate(
`contract_no`,
`facility_no`,
`stagename`,
`budget`,
`receivable`,
`invoice_state`,
`invoice_budget`,
`received_budget`
";
$table2 = ") VALUES (
'$value[10]',
'$thisPayStage[facilityno]',
'$thisPayStage[name]',
$table_budget,
$table_hadtopay,
$invoice_state,
$table_invoice_budget,
$table_received_budget
";
if (!is_null($final_paystage[$key][$sequence]['PlanPayDate']) & & !empty($final_paystage[$key][$sequence]['PlanPayDate'])) {
$table1 .= ",`receivable_date`";
$receivable_date = date('Y-m-d', strtotime($final_paystage[$key][$sequence]['PlanPayDate']));
$table2 .= ",'$receivable_date' \n";
}
$table .= $table1 . $table2 . "); \n";
}
}
}
// $file_path = 'account_receivable_renovate_sql.sql';
// if (file_put_contents($file_path, $table) !== false) {
// // echo "SQL文件已成功生成:{$file_path}";
// } else {
// // echo "生成SQL文件时出现错误。";
// }
$total_data = json_encode($print_array);
$average_budget = $sum_total_budget / $sum_facility;
$average_A40002 = $sum_A40002 / $sum_facility_A40002;
@ -1024,6 +1110,7 @@ include "./footer.php";
}));
}
function searchFront(area) {
var term = 'search_' + area;
@ -1109,6 +1196,7 @@ include "./footer.php";
}
}
}
function check(searchname) {
console.log(searchname);