From e9b13926dc893ad87676d5a15980452e56959687 Mon Sep 17 00:00:00 2001 From: Ellin Date: Mon, 19 Feb 2024 17:57:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=87=89=E6=94=B6=E5=B8=B3=E6=AC=BE=E6=AC=8A?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wms/account-receivable-index.php | 3 ++ wms/account-receivable-new-index.php | 72 ++++++++++++++++++++++++++-- wms/fun_global.php | 2 +- 3 files changed, 73 insertions(+), 4 deletions(-) diff --git a/wms/account-receivable-index.php b/wms/account-receivable-index.php index 20162a22..784bd4b2 100644 --- a/wms/account-receivable-index.php +++ b/wms/account-receivable-index.php @@ -2158,6 +2158,9 @@ $facility_array = array(); $facility_boga_array = array(); $facility_exclude_boga_array = array(); foreach ($arrayData as $key => $value) { + // if($key == "M230860"){ + // print_r($value); + // } $sum_A40001 += isset($value['A40001']) ? $value['A40001'] : 0; $sum_A40008 += isset($value['A40008']) ? $value['A40008'] : 0; $sum_total_budget += $value['total_budget']; diff --git a/wms/account-receivable-new-index.php b/wms/account-receivable-new-index.php index 0c18ac06..b5c07277 100644 --- a/wms/account-receivable-new-index.php +++ b/wms/account-receivable-new-index.php @@ -300,6 +300,7 @@ foreach ($PayStage_array as $key => &$value) { if (isset($wip_array[$payvalue['facilityno']])) { switch ($payvalue['PayStage']) { case '寶佳出貨前30天': + $payvalue['stage'] = '訂金'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time - (30 * 86400); @@ -313,6 +314,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case '寶佳出貨後10天': + $payvalue['stage'] = '二次款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time + (10 * 86400); @@ -322,6 +324,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case '貨抵工地後90天': + $payvalue['stage'] = '貨抵工地款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time + (90 * 86400); @@ -331,6 +334,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case '安裝試車後90天': + $payvalue['stage'] = '試車款'; if ($wip_array[$payvalue['facilityno']]['tryrun_end_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['tryrun_end_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['tryrun_end_date'])) { $estimate_time = strtotime($wip['tryrun_end_date']); $signtime = $estimate_time + (90 * 86400); @@ -340,6 +344,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case '交車後270天': + $payvalue['stage'] = '尾款'; if ($wip_array[$payvalue['facilityno']]['delivery_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['delivery_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['delivery_date'])) { $estimate_time = strtotime($wip['delivery_date']); $signtime = $estimate_time + (270 * 86400); @@ -349,6 +354,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (in_array($payvalue['PayStage'], $arrival)): + $payvalue['stage'] = '貨抵工地款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time + (10 * 86400); @@ -358,6 +364,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case '二次款': + $payvalue['stage'] = '二次款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $payvalue['PlanPayDate'] = date('Y-m-d', $estimate_time); @@ -369,6 +376,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '出貨前30') || stristr($payvalue['PayStage'], '簽約(出貨前30天)')): + $payvalue['stage'] = '二次款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time - (30 * 86400); @@ -382,6 +390,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '出貨前60')): + $payvalue['stage'] = '二次款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time - (60 * 86400); @@ -395,6 +404,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '出貨前90')): + $payvalue['stage'] = '二次款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time - (90 * 86400); @@ -408,6 +418,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '出貨前120')): + $payvalue['stage'] = '二次款'; if ($wip_array[$payvalue['facilityno']]['real_arrival_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['real_arrival_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['real_arrival_date'])) { $estimate_time = strtotime($wip['real_arrival_date']); $signtime = $estimate_time - (120 * 86400); @@ -421,30 +432,36 @@ foreach ($PayStage_array as $key => &$value) { } break; case (in_array($payvalue['PayStage'], $sign60)): + $payvalue['stage'] = '二次款'; $estimate_time = strtotime($arrayData[$key]['PayStage'][1]['PlanPayDate']); $signtime = $estimate_time + (60 * 86400); $payvalue['PlanPayDate'] = date('Y-m-d', $signtime); break; case (in_array($payvalue['PayStage'], $sign90)): + $payvalue['stage'] = '二次款'; $estimate_time = strtotime($arrayData[$key]['PayStage'][1]['PlanPayDate']); $signtime = $estimate_time + (90 * 86400); $payvalue['PlanPayDate'] = date('Y-m-d', $signtime); break; case (in_array($payvalue['PayStage'], $sign120)): + $payvalue['stage'] = '二次款'; $estimate_time = strtotime($arrayData[$key]['PayStage'][1]['PlanPayDate']); $signtime = $estimate_time + (120 * 86400); $payvalue['PlanPayDate'] = date('Y-m-d', $signtime); break; case (stristr($payvalue['PayStage'], '簽訂後30')): + $payvalue['stage'] = '二次款'; $estimate_time = strtotime($arrayData[$key]['PayStage'][1]['PlanPayDate']); $signtime = $estimate_time + (30 * 86400); $payvalue['PlanPayDate'] = date('Y-m-d', $signtime); break; case (in_array($payvalue['PayStage'], $sign0)): + $payvalue['stage'] = '訂金'; $estimate_time = strtotime($arrayData[$key]['PayStage'][1]['PlanPayDate']); $payvalue['PlanPayDate'] = date('Y-m-d', $estimate_time); break; case (stristr($payvalue['PayStage'], '試車')): + $payvalue['stage'] = '試車款'; if ($wip_array[$payvalue['facilityno']]['tryrun_end_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['tryrun_end_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['tryrun_end_date'])) { $estimate_time = strtotime($wip['tryrun_end_date']); $payvalue['PlanPayDate'] = date('Y-m-d', $estimate_time); @@ -453,6 +470,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '安裝') || stristr($payvalue['PayStage'], '貨抵工地且完工')): + $payvalue['stage'] = '安裝款'; if ($wip_array[$payvalue['facilityno']]['install_end_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['install_end_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['install_end_date'])) { $estimate_time = strtotime($wip['install_end_date']); $payvalue['PlanPayDate'] = date('Y-m-d', $estimate_time); @@ -461,6 +479,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (in_array($payvalue['PayStage'], $final6)): + $payvalue['stage'] = '尾款'; if ($wip_array[$payvalue['facilityno']]['delivery_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['delivery_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['delivery_date'])) { $estimate_time = strtotime($wip['delivery_date']); $estimate_time = $estimate_time + (180 * 86400); @@ -470,6 +489,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '合格') || stristr($payvalue['PayStage'], '驗收') || stristr($payvalue['PayStage'], '驗收')): + $payvalue['stage'] = '官檢驗收款'; if ($wip_array[$payvalue['facilityno']]['official_check_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['official_check_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['official_check_date'])) { $estimate_time = strtotime($wip['official_check_date']); $payvalue['PlanPayDate'] = date('Y-m-d', $estimate_time); @@ -478,6 +498,7 @@ foreach ($PayStage_array as $key => &$value) { } break; case (stristr($payvalue['PayStage'], '交車') || stristr($payvalue['PayStage'], '移交') || stristr($payvalue['PayStage'], '完工') || stristr($payvalue['PayStage'], '許可') || stristr($payvalue['PayStage'], '核可')): + $payvalue['stage'] = '交車款'; if ($wip_array[$payvalue['facilityno']]['delivery_date'] !== null && strtotime($wip_array[$payvalue['facilityno']]['delivery_date']) > 975686400 && !empty($wip_array[$payvalue['facilityno']]['delivery_date'])) { $estimate_time = strtotime($wip['delivery_date']); $payvalue['PlanPayDate'] = date('Y-m-d', $estimate_time); @@ -575,24 +596,69 @@ foreach($query_received as $received) { } } -// 將發票與核銷資訊 分別計算作番收款階段金額 +// 將發票與核銷資訊 分別計算作番收款階段金額 與 催收次數 +$today = strtotime(date('Y-m-t')); foreach ($final_paystage as $key => &$value) { $tmpinvoice = $arrayData[$key]['invoice_budget']; $tmpreceived = $arrayData[$key]['received_budget']; for($sequenceNumber = 1; $sequenceNumber <= count($value); $sequenceNumber++) { + if(isset($value[$sequenceNumber]['PlanPayDate'])) { + $collect_month = collect_month(strtotime($value[$sequenceNumber]['PlanPayDate'])); + if($today > strtotime($value[$sequenceNumber]['PlanPayDate'])){ + $value[$sequenceNumber]['hadtopay'] = 'V'; + }else{ + $value[$sequenceNumber]['hadtopay'] = '--'; + } + }else{ + $collect_month = 0; + $value[$sequenceNumber]['hadtopay'] = '--'; + } if($tmpinvoice >= $value[$sequenceNumber]['PlanPayAmt']){ $value[$sequenceNumber]['invoice_budget'] = $value[$sequenceNumber]['PlanPayAmt']; - $tmpinvoice = $tmpinvoice - $value[$sequenceNumber]['invoice_budget']; + $tmpinvoice -= $value[$sequenceNumber]['invoice_budget']; }else{ $value[$sequenceNumber]['invoice_budget'] = $tmpinvoice; $tmpinvoice = 0; } if($tmpreceived > $value[$sequenceNumber]['PlanPayAmt']){ $value[$sequenceNumber]['received_budget'] = $value[$sequenceNumber]['PlanPayAmt']; - $tmpinvoice = $tmpreceived - $value[$sequenceNumber]['received_budget']; + $tmpinvoice -= $value[$sequenceNumber]['received_budget']; }else{ $value[$sequenceNumber]['received_budget'] = $tmpreceived; $tmpreceived = 0; } + if($collect_month >0 && $value[$sequenceNumber]['PlanPayAmt']> $value[$sequenceNumber]['received_budget']){ + $value[$sequenceNumber]['collect_month'] = $collect_month; + }else{ + $value[$sequenceNumber]['collect_month'] = 0; + } + } } +// foreach ($final_paystage as $key => $value) { +// echo $key." =>
"; +// foreach($value as $key2 => $value2) { +// echo $key2."
"; +// print_r($value2); +// echo "
"; +// } +// echo "
-------------------------------
"; +// } +// exit(); + +// 存進excel_array +// $excel_array = array(); +// $today = strtotime(date('Ymt')); +foreach($arrayData as $key => $value) { + echo $key."
"; + foreach($value['facility'] as $key2 => $value2) { + echo $key2."
"; + foreach($value2 as $key3 => $value3){ + echo $key3."
"; + print_r($value3); + echo "
*********************
"; + } + echo "
==================
"; + } + echo "
-------------------------------
"; +} \ No newline at end of file diff --git a/wms/fun_global.php b/wms/fun_global.php index d2793e5b..a72e476c 100644 --- a/wms/fun_global.php +++ b/wms/fun_global.php @@ -645,7 +645,7 @@ function getAccounttype($link, $user_id) */ function collect_month($contractday) { - $today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m-d'))))); + $today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m-t'))))); $latest_timestamp = $contractday; $latest_date = new DateTime(); $latest_date->setTimestamp($latest_timestamp);