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);