diff --git a/wms/account-receivable-renovate-index.php b/wms/account-receivable-renovate-index.php
index 0998b46b..90f18d98 100644
--- a/wms/account-receivable-renovate-index.php
+++ b/wms/account-receivable-renovate-index.php
@@ -124,8 +124,7 @@ SELECT DISTINCT
FROM department
) AS d
-ON d.department_id = tmp2.department_id
-WHERE contractno IN $str_numbers ";
+ON d.department_id = tmp2.department_id";
//T8 銷售訂單 階段收款計畫
$sql_contract = "SELECT a.BillNo,s.BillDate, a.RowNo, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId,
@@ -179,7 +178,7 @@ foreach ($contract as $cont) {
$arrayData[$BillNo]['PayStage'][$RowNo]['PlanPayDate'] = $PlanPayDate;
$arrayData[$BillNo]['PayStage'][$RowNo]['PayAmount'] = $PayAmount;
// 判斷type
- $wipStage = ['簽約', '訂金', '貨抵工地', '完工', '試車', '安裝', '驗收', '完工', '交車', '尾款'];
+ $wipStage = ['簽約', '訂金', '貨抵工地', '完工', '試車', '安裝', '驗收', '完工', '交車', '尾款', '合約'];
foreach ($wipStage as $wipstage) {
if (strpos($PayStage, $wipstage) !== false) {
$arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "A";
@@ -235,24 +234,23 @@ foreach ($contract_budget_data as $cont) {
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40010'] = 0;
$contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax'];
};
-
-
}
/*計算作番佔合約的金額比例
@param $facility_no string => 作番號
@param $contract_budget_billno array => $contract_budget[合約號]
return float */
-function get_contract_ratio($facility_no,$contract_budget_billno){
+function get_contract_ratio($facility_no, $contract_budget_billno)
+{
$ratio = 0;
- if (empty($contract_budget_billno['total'])) {
- return 0;
- } else {
-
+ if (isset($contract_budget_billno['facility'][$facility_no])) {
+ if (empty($contract_budget_billno['total'])) {
+ } else {
+
$ratio += $contract_budget_billno['facility'][$facility_no]['total'] / $contract_budget_billno['total'];
-
- return $ratio;
+ }
}
+ return $ratio;
}
/* 計算比例
@@ -304,22 +302,127 @@ foreach ($wipwhole_array as $wip) {
}
$wipwhole_status[$wip['facilityno']] = $wip;
}
-//~!~~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~~!~!~!~!~!~!~!~!~~!!~!~!~!~!~!~!~!~!~!~!~!~!~!!~!~!!~!~!~!~!!~!~!~!!~!~!~!~!~!!~!~!~!~!!~!~!~!~!~!~!!~
+
// 整理arrayData[合約]['PayStage']進 (新增) arrayData[合約]['facility'][作番號][PayStage]
-foreach($arrayData as &$value){
- if(is_iterable($value['facility'])){
- print_r($value['facility']);
- echo "
------
";
- echo $value[10]." , ".$value['total_facility_num']."
";
+$sign_array = ['訂金', '簽約', '合約'];
+foreach ($arrayData as &$value) {
+ if (is_iterable($value['facility'])) {
+ foreach ($value['facility'] as $fakey => $facility) {
+ $ratio = get_contract_ratio($fakey, $contract_budget[$value[10]]);
+ for ($stage = 1; $stage < (count($value['PayStage']) + 1); $stage++) {
+ $facility['PayStage'][$stage] = $value['PayStage'][$stage];
+ //算每個作番的金額
+ $facility['PayStage'][$stage]['PayAmount'] = $value['PayStage'][$stage]['PayAmount'] * $ratio;
+ //算每個作番每個收款階段的收款時間
+ switch ($facility['PayStage'][$stage]['type']) {
+ case "A":
+ switch ($facility['PayStage'][$stage]['name']) {
+ 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']));
+ }
+ 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']));
+ }
+ 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']));
+ }
+ 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']));
+ }
+ 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']));
+ }
+ 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']));
+ }
+ break;
+ case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')):
+ if (isset($wipwhole_status[$fakey]['real_arrival_date']) && $wipwhole_status[$fakey]['real_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_arrival_date'])) {
+ $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']));
+ }
+ break;
+ default:
+ break;
+ };
+
+ case "B":
+
+ break;
+ case "C":
+ switch ($facility['PayStage'][$stage]['name']) {
+ 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'])) {
+ $haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['tryrun_end_date'])) );
+ }
+ 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);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['delivery_date'])) );
+ }
+ 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);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['delivery_date'])) );
+ }
+ 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);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['delivery_date'])) );
+ }
+ 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);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['delivery_date'])) );
+ }
+ 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);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['install_end_date'])) );
+ }
+ break;
+ case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')):
+ if (isset($wipwhole_status[$fakey]['real_arrival_date']) && $wipwhole_status[$fakey]['real_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_arrival_date'])) {
+ $haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",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'])) {
+ $haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months",strtotime($wipwhole_status[$fakey]['real_contract_arrival_date'])) );
+ }
+ break;
+ default:
+ break;
+ };
+ default:
+ break;
+ }
+ }
+ }
}
- for($stage=1; $stage< (count($value['PayStage'])+1); $stage++){
- // echo $value[10]." /";
- // print_r($value['PayStage'][$stage]);
- // echo "
";
- }
-
- echo "
";
+}
+foreach($arrayData as $key => $value){
+ echo $key."
";
+ print_r($value);
+ echo "
--------------------------
";
}
exit();
//=========================================================================================================================================================