diff --git a/wms/account-receivable-new-index.php b/wms/account-receivable-new-index.php
index b5c07277..e4cd3eb7 100644
--- a/wms/account-receivable-new-index.php
+++ b/wms/account-receivable-new-index.php
@@ -60,39 +60,48 @@ function get_ratio($facilityno, $contractno, $arrayData)
}
// 查WMS 員工與對應主管
-$sql_manager = "SELECT A.accountid, A.name, A.manager, B.name AS manager_name FROM account AS A
-LEFT JOIN account AS B ON A.manager = B.accountid ";
-$managers = mysqli_query($link, $sql_manager);
-// $find_manager['員工工號'] = array('員工姓名', '主管工號', '主管姓名');
-$find_manager = array();
-if (is_iterable($managers)) {
- foreach ($managers as $manager) {
- $find_manager[$manager['accountid']] = $manager;
- }
-}
+// $sql_manager = "SELECT A.accountid, A.name, A.manager, B.name AS manager_name FROM account AS A
+// LEFT JOIN account AS B ON A.manager = B.accountid ";
+// $managers = mysqli_query($link, $sql_manager);
+// // $find_manager['員工工號'] = array('員工姓名', '主管工號', '主管姓名');
+// $find_manager = array();
+// if (is_iterable($managers)) {
+// foreach ($managers as $manager) {
+// $find_manager[$manager['accountid']] = $manager;
+// }
+// }
$follower = find_follow($user_id);
// T8所有合約號
-$sql_all_contract = "SELECT MainAll.* ,
-Person.PersonName,
-Dept.DeptName FROM
- (SELECT
-Main.BillNo,
-Main.BillDate,
-Main.BizPartnerId,
-Biz.ShortName,
-Biz.BizPartnerName,
-Biz.ContactAddress,
-Main.OAmountWithTax,
-Main.PersonId,
-Main.DeptId,
-Main.ModeId,
-Main.CurrentState
- FROM salSalesOrder AS Main
- LEFT JOIN comBusinessPartner AS Biz ON Biz.BizPartnerId = Main.BizPartnerId) AS MainAll
- LEFT JOIN comGroupPerson AS Person ON MainAll.PersonId= Person.PersonId
- LEFT JOIN comDepartment AS Dept ON MainAll.DeptId= Dept.DeptId
- WHERE MainAll.ModeId = 'M' AND (MainAll.CurrentState=2 OR MainAll.CurrentState=4) ";
+$sql_all_contract = "SELECT
+MainAll.*,
+Person.PersonName,
+Dept.DeptName,
+Dept.LeaderId,
+Leader.PersonName AS LeaderName
+FROM
+(
+ SELECT
+ Main.BillNo,
+ Main.BillDate,
+ Main.BizPartnerId,
+ Biz.ShortName,
+ Biz.BizPartnerName,
+ Biz.ContactAddress,
+ Main.OAmountWithTax,
+ Main.PersonId,
+ Main.DeptId,
+ Main.ModeId,
+ Main.CurrentState
+ FROM
+ salSalesOrder AS Main
+ LEFT JOIN comBusinessPartner AS Biz ON Biz.BizPartnerId = Main.BizPartnerId
+) AS MainAll
+LEFT JOIN comGroupPerson AS Person ON MainAll.PersonId = Person.PersonId
+LEFT JOIN comDepartment AS Dept ON MainAll.DeptId = Dept.DeptId
+LEFT JOIN comGroupPerson AS Leader ON Dept.LeaderId = Leader.PersonId
+WHERE
+MainAll.ModeId = 'M' AND (MainAll.CurrentState = 2 OR MainAll.CurrentState = 4) ";
if (!is_null($start_date)) {
$start_date = (int)date('Ymd', strtotime($start_date));
$sql_all_contract .= " AND MainAll.BillDate >= $start_date ";
@@ -130,8 +139,8 @@ if (is_iterable($query_all_contract)) {
$arrayData[$contract_numbers['BillNo']]['PersonName'] = isset($contract_numbers['PersonName']) ? $contract_numbers['PersonName'] : '--';
$arrayData[$contract_numbers['BillNo']]['DeptName'] = isset($contract_numbers['DeptName']) ? $contract_numbers['DeptName'] : '--';
$arrayData[$contract_numbers['BillNo']]['ShortName'] = isset($contract_numbers['ShortName']) ? $contract_numbers['ShortName'] : '--';
- $arrayData[$contract_numbers['BillNo']]['ManagerId'] = !empty($find_manager[$contract_numbers['PersonId']]['manager']) ? $find_manager[$contract_numbers['PersonId']]['manager'] : '--';
- $arrayData[$contract_numbers['BillNo']]['ManagerName'] = !empty($find_manager[$contract_numbers['PersonId']]['manager_name']) ? $find_manager[$contract_numbers['PersonId']]['manager_name'] : '--';
+ $arrayData[$contract_numbers['BillNo']]['ManagerId'] = isset($contract_numbers['LeaderId']) ? $contract_numbers['LeaderId'] : '--';
+ $arrayData[$contract_numbers['BillNo']]['ManagerName'] = isset($contract_numbers['LeaderName']) ? $contract_numbers['LeaderName'] : '--';
$arrayData[$contract_numbers['BillNo']]['invoice_budget'] = 0;
$arrayData[$contract_numbers['BillNo']]['received_budget'] = 0;
$arrayData[$contract_numbers['BillNo']]['receivable_budget'] = 0;
@@ -142,6 +151,7 @@ if (is_iterable($query_all_contract)) {
$arrayData[$contract_numbers['BillNo']]['facility'] = array();
$arrayData[$contract_numbers['BillNo']]['total_budget'] = $contract_numbers['OAmountWithTax'];
$sum_total_budget += $contract_numbers['OAmountWithTax'];
+ $sum_contract +=1;
}
}
$str_numbers .= "('" . implode("','", $contractNumbers) . "')";
@@ -166,7 +176,18 @@ foreach ($query_contract_budget as $contract_budget) {
$arrayData[$contract_budget['BillNo']]['facility'][$contract_budget['CU_MaterialId']]['total_budget'] = $contract_budget['OAmountWithTax'];
$arrayData[$contract_budget['BillNo']]['facility'][$contract_budget['CU_MaterialId']][$contract_budget['MaterialId']] = $contract_budget['OAmountWithTax'];
$arrayData[$contract_budget['BillNo']]['facility'][$contract_budget['CU_MaterialId']]['status'] = "";
+ $sum_facility +=1;
}
+ switch($contract_budget['CU_MaterialId']){
+ case "A40001":
+ $sum_A40001 += $contract_budget['OAmountWithTax'];
+ break;
+ case "A40008":
+ $sum_A40008 += $contract_budget['OAmountWithTax'];
+ break;
+
+ }
+
}
}
@@ -205,6 +226,7 @@ foreach ($query_PayStage as $PayStage) {
} else {
$PayStage_array[$PayStage['BillNo']] = $arrayData[$PayStage['BillNo']]['facility'][$key]['PayStage'];
}
+ $arrayData[$PayStage['BillNo']]['facility'][$key]['PayStage'] = array();
}
}
}
@@ -264,25 +286,25 @@ foreach ($query_wip as $wip) {
if (isset($arrayData[$wip['contractno']]) && isset($arrayData[$wip['contractno']]['facility'][$wip['facilityno']])) {
if ($wip['delivery_date'] != NULL && $wip['delivery_date'] !== '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['delivery_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['delivery_date'] . "已移交";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交) ; ";
} elseif ($wip['official_check_date'] != NULL && $wip['official_check_date'] != '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['official_check_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['official_check_date'] . "官檢完畢";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢) ; ";
} elseif ($wip['tryrun_end_date'] != NULL && $wip['tryrun_end_date'] !== '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['tryrun_end_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['tryrun_end_date'] . "試車完畢";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢) ; ";
} elseif ($wip['install_end_date'] != NULL && $wip['install_end_date'] !== '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['install_end_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['install_end_date'] . "安裝完畢";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢) ; ";
} elseif ($wip['real_arrival_date'] != NULL && $wip['real_arrival_date'] !== '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['real_arrival_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['real_arrival_date'] . "貨抵工地";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地) ; ";
} elseif ($wip['real_contract_arrival_date'] != NULL && $wip['real_contract_arrival_date'] !== '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['real_contract_arrival_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['real_contract_arrival_date'] . "預計出貨";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨) ; ";
} elseif ($wip['estimated_shipping_date'] != NULL && $wip['estimated_shipping_date'] !== '1970-01-01' && $wip['delivery_date'] !== '1970-01-11' && !empty($wip['estimated_shipping_date'])) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['estimated_shipping_date'] . "預計出港";
- $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港) ";
+ $arrayData[$wip['contractno']]['facility_status'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港) ; ";
}
}
}
@@ -294,7 +316,6 @@ $sign0 = array('簽約', '簽訂', '合約簽訂', '訂金');
$arrival = array('貨抵工地', '貨底工地', '工地動工');
$final6 = array('核可函取得後6個月', '得合格函後6個月');
-
foreach ($PayStage_array as $key => &$value) {
foreach ($value as $paykey => &$payvalue) {
if (isset($wip_array[$payvalue['facilityno']])) {
@@ -375,7 +396,7 @@ foreach ($PayStage_array as $key => &$value) {
$payvalue['PlanPayDate'] = NULL;
}
break;
- case (stristr($payvalue['PayStage'], '出貨前30') || stristr($payvalue['PayStage'], '簽約(出貨前30天)')):
+ case (stristr($payvalue['PayStage'], '出貨前30') || stristr($payvalue['PayStage'], '簽約(出貨前30天)') ||stristr($payvalue['PayStage'], '建照核發時')):
$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']);
@@ -431,6 +452,12 @@ foreach ($PayStage_array as $key => &$value) {
$payvalue['PlanPayDate'] = NULL;
}
break;
+ case "簽定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'], $sign60)):
$payvalue['stage'] = '二次款';
$estimate_time = strtotime($arrayData[$key]['PayStage'][1]['PlanPayDate']);
@@ -513,6 +540,9 @@ foreach ($PayStage_array as $key => &$value) {
if (strtotime($payvalue['PlanPayDate']) < 975686400) {
$payvalue['PlanPayDate'] = NULL;
}
+ } else {
+ $payvalue['PlanPayDate'] = NULL;
+ $payvalue['stage'] = "大日程無作番";
}
}
}
@@ -560,8 +590,8 @@ CheckAll.FromSalSalesOrder AS BillNo
$query_invoice = $conn->query($sql_invoice);
//發票資訊回填到arrayData
-foreach($query_invoice as $invoice) {
- if(isset($arrayData[$invoice['BillNo']])) {
+foreach ($query_invoice as $invoice) {
+ if (isset($arrayData[$invoice['BillNo']])) {
$arrayData[$invoice['BillNo']]['invoice_budget'] += $invoice['LAmountWithTax'];
}
}
@@ -590,8 +620,8 @@ WHERE CheckDetail.ModeId = 'M'";
$query_received = $conn->query($sql_received);
// 核銷資訊回填到arrayData
-foreach($query_received as $received) {
- if(isset($arrayData[$received['OrderBillNo']])) {
+foreach ($query_received as $received) {
+ if (isset($arrayData[$received['OrderBillNo']])) {
$arrayData[$received['OrderBillNo']]['received_budget'] += $received['CurrStandOffOAmount'];
}
}
@@ -601,64 +631,91 @@ $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'])) {
+ 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'])){
+ if ($today > strtotime($value[$sequenceNumber]['PlanPayDate'])) {
$value[$sequenceNumber]['hadtopay'] = 'V';
- }else{
+ $arrayData[$key]['receivable_budget'] += $value[$sequenceNumber]['PlanPayAmt'];
+ } else {
$value[$sequenceNumber]['hadtopay'] = '--';
}
- }else{
+ } else {
$collect_month = 0;
$value[$sequenceNumber]['hadtopay'] = '--';
}
- if($tmpinvoice >= $value[$sequenceNumber]['PlanPayAmt']){
+ if ($tmpinvoice >= $value[$sequenceNumber]['PlanPayAmt']) {
$value[$sequenceNumber]['invoice_budget'] = $value[$sequenceNumber]['PlanPayAmt'];
$tmpinvoice -= $value[$sequenceNumber]['invoice_budget'];
- }else{
+ } elseif ($tmpinvoice > 0) {
$value[$sequenceNumber]['invoice_budget'] = $tmpinvoice;
$tmpinvoice = 0;
+ } else {
+ $value[$sequenceNumber]['invoice_budget'] = 0;
}
- if($tmpreceived > $value[$sequenceNumber]['PlanPayAmt']){
+ if ($tmpreceived > $value[$sequenceNumber]['PlanPayAmt']) {
$value[$sequenceNumber]['received_budget'] = $value[$sequenceNumber]['PlanPayAmt'];
$tmpinvoice -= $value[$sequenceNumber]['received_budget'];
- }else{
+ } elseif ($tmpreceived > 0) {
$value[$sequenceNumber]['received_budget'] = $tmpreceived;
$tmpreceived = 0;
+ } else {
+ $value[$sequenceNumber]['received_budget'] = 0;
}
- if($collect_month >0 && $value[$sequenceNumber]['PlanPayAmt']> $value[$sequenceNumber]['received_budget']){
+ if ($collect_month > 0 && $value[$sequenceNumber]['PlanPayAmt'] > $value[$sequenceNumber]['received_budget']) {
$value[$sequenceNumber]['collect_month'] = $collect_month;
- }else{
+ } else {
$value[$sequenceNumber]['collect_month'] = 0;
}
-
}
}
-// foreach ($final_paystage as $key => $value) {
-// echo $key." =>
";
+
+// foreach($final_paystage as $key => $value) {
+// echo $key."
";
+// echo "---------------------
";
// foreach($value as $key2 => $value2) {
// echo $key2."
";
// print_r($value2);
// echo "
";
// }
-// echo "
-------------------------------
";
+// echo "
==================
";
// }
// exit();
+foreach ($final_paystage as $key => $value) {
+ for ($sequence = 1; $sequence <= count($value); $sequence++) {
+ if (isset($arrayData[$key]) && isset($arrayData[$key]['facility']) && isset($arrayData[$key]['facility'][$value[$sequence]['facilityno']]) && isset($arrayData[$key]['facility'][$value[$sequence]['facilityno']]['PayStage'])) {
+ array_push($arrayData[$key]['facility'][$value[$sequence]['facilityno']]['PayStage'], $value[$sequence]);
+ foreach ($arrayData[$key]['PayStage'] as $arkey => &$arvalue) {
+ if ($arvalue['PayStage'] == $value[$sequence]['PayStage']) {
+ if (isset($arvalue['receivable_budget']) && isset($arvalue['received_budget']) && isset($arvalue['invoice_budget'])) {
+ $arvalue['receivable_budget'] += $value[$sequence]['PlanPayAmt'];
+ $arvalue['received_budget'] += $value[$sequence]['received_budget'];
+ $arvalue['invoice_budget'] += $value[$sequence]['invoice_budget'];
+ if ($arvalue['collect_month'] < $value[$sequence]['collect_month']) {
+ $arvalue['collect_month'] = $value[$sequence]['collect_month'];
+ }
+ } else {
+ $arvalue['stage'] = $value[$sequence]['stage'];
+ $arvalue['receivable_budget'] = $value[$sequence]['PlanPayAmt'];
+ $arvalue['received_budget'] = $value[$sequence]['received_budget'];
+ $arvalue['invoice_budget'] = $value[$sequence]['invoice_budget'];
+ $arvalue['collect_month'] = $value[$sequence]['collect_month'];
+ }
+ }
+ }
+ }
+ }
+}
// 存進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 "
==================
";
- }
+$excel_array = array();
+foreach ($arrayData as $key => $value) {
+ echo $key . "
********************
";
+ print_r($value);
+ // foreach($value['facility'] as $key2 => $value2) {
+ // echo $key2."
";
+ // print_r($value2['PayStage']);
+ // echo "
";
+ // }
echo "
-------------------------------
";
-}
\ No newline at end of file
+}