diff --git a/wms/account-receivable-renovate-index.php b/wms/account-receivable-renovate-index.php
index 90f18d98..08777c0a 100644
--- a/wms/account-receivable-renovate-index.php
+++ b/wms/account-receivable-renovate-index.php
@@ -29,7 +29,8 @@ b.ProjectId
FROM arSellInvoice as a
LEFT JOIN arSellInvoiceMaterial as b
ON a.BillNo=b.BillNo
-WHERE DATALENGTH(b.ProjectId)>0";
+WHERE DATALENGTH(b.ProjectId)>0
+ORDER BY InvoiceTime ASC";
// T8核銷
$sql_received = "SELECT
@@ -253,24 +254,13 @@ function get_contract_ratio($facility_no, $contract_budget_billno)
return $ratio;
}
-/* 計算比例
-@param $facility_list array
-@param $contract_no string
-@param $contract_budget array
-return float */
-function get_ratio($facility_list, $contract_no, $contract_budget)
+/* 比較應收日期
+@param $a array
+@param $b array
+return int */
+function comparePlanPayDate($a, $b)
{
- $ratio = 0;
- if (empty($facility_list)) {
- return 0;
- } else {
- foreach ($facility_list as $every) {
- if (isset($contract_budget[$contract_no][$every]['total']) && isset($contract_budget[$contract_no]['total'])) {
- $ratio += $contract_budget[$contract_no][$every]['total'] / $contract_budget[$contract_no]['total'];
- }
- }
- return $ratio;
- }
+ return strtotime($a['PlanPayDate']) - strtotime($b['PlanPayDate']);
}
//取作番大日程作番與時程 進arrayData
@@ -297,21 +287,24 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['total_budget'] = 0;
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['receivable_budget'] = 0;
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['collect_budget'] = 0;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40001'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40001']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40001'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40001'] : 0;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40002'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40002']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40002'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40002'] : 0;
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40008'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'] : 0;
+ $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40010'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40010']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40010'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40010'] : 0;
}
$wipwhole_status[$wip['facilityno']] = $wip;
}
// 整理arrayData[合約]['PayStage']進 (新增) arrayData[合約]['facility'][作番號][PayStage]
$sign_array = ['訂金', '簽約', '合約'];
-
+// 將所有facility的paystage放入一個array以便計算順序
+$allPayStages = [];
foreach ($arrayData as &$value) {
if (is_iterable($value['facility'])) {
- foreach ($value['facility'] as $fakey => $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]['facilityno'] = $fakey;
//算每個作番的金額
$facility['PayStage'][$stage]['PayAmount'] = $value['PayStage'][$stage]['PayAmount'] * $ratio;
//算每個作番每個收款階段的收款時間
@@ -367,46 +360,46 @@ 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'])) {
$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'])) );
+ $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'])) );
+ $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'])) );
+ $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'])) );
+ $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'])) );
+ $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'])) );
+ $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'])) );
+ $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'])) );
+ $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date'])));
}
break;
default:
@@ -416,534 +409,35 @@ foreach ($arrayData as &$value) {
break;
}
}
- }
- }
-}
-foreach($arrayData as $key => $value){
- echo $key."
";
- print_r($value);
- echo "
--------------------------
";
-}
-exit();
-//=========================================================================================================================================================
-
-foreach ($wipwhole_array as $wip) {
-
- //[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
- if (isset($arrayData[$wip['contractno']])) {
- // 整理合約資料
- $arrayData[$wip['contractno']][0] = $wip['department_id'];;
- $arrayData[$wip['contractno']][1] = $wip['depart_name'];
- $arrayData[$wip['contractno']][2] = $wip['manager_name'];
- $arrayData[$wip['contractno']][3] = $wip['salesid'];
- $arrayData[$wip['contractno']][4] = $wip['name'];
- $arrayData[$wip['contractno']][10] = $wip['contractno'];
- $arrayData[$wip['contractno']]['total_facility_num'] += 1;
- $arrayData[$wip['contractno']]['A40001'] = (isset($contract_budget[$wip['contractno']]['A40001']) && !is_null($contract_budget[$wip['contractno']]['A40001'])) ? $contract_budget[$wip['contractno']]['A40001'] : 0;
- $arrayData[$wip['contractno']]['A40008'] = (isset($contract_budget[$wip['contractno']]['A40008']) && !is_null($contract_budget[$wip['contractno']]['A40008'])) ? $contract_budget[$wip['contractno']]['A40008'] : 0;
- // [合約號]['facility'][作番號]['no']
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['no'] = $wip['facilityno'];
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = "";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['total_budget'] = 0;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['receivable_budget'] = 0;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['collect_budget'] = 0;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40001'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40001']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40001'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40001'] : 0;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40008'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40008'] : 0;
-
- $contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final');
-
-
- //根據作番狀態填入facilities,計算各階段數量、一個合約有幾個作番,增加作番資料
- // real_contract_arrival_date 預計出貨日=預計到貨日=預計貨抵工地
- // real_arrival_date 實際出貨日=實際到貨日=實際貨抵工地
-
-
- $signtime = strtotime($arrayData[$wip['contractno']]['sign'][2]);
- array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
- $month = collect_month($signtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = strval(date('Ymd', $signtime));
- if (isset($arrayData[$wip['contractno']]['second'][2]) && ($arrayData[$wip['contractno']]['second'][2] !== NULL)) {
- $secondtime = strtotime($arrayData[$wip['contractno']]['second'][2]);
- $month = collect_month($secondtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][2] = strval(date('Ymd', $secondtime));
- }
- if ($wip['delivery_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
";
- $arrayData[$wip['contractno']]['tryrun_num'] += 1;
- array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['install_num'] += 1;
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['arrive_num'] += 1;
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['second_num'] += 1;
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
-
- if ($arrayData[$wip['contractno']]['delivery'][0] == "交車後270天") {
- $estimate_delivery_time = strtotime($wip['delivery_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($arrivetime);
- if ($today > $arrivetime) {
- $arrayData[$wip['contractno']]['delivery_num'] += 1;
- array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
- }
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $arrivetime));
- $arrivetime = date('Ymd', $arrivetime);
- $arrayData[$wip['contractno']]['delivery'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['delivery']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['delivery']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrayData[$wip['contractno']]['delivery_num'] += 1;
- array_push($arrayData[$wip['contractno']]['delivery_list'], $wip['facilityno']);
- array_push($arrayData[$wip['contractno']]['final_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['check_num'] += 1;
- array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['delivery'][2] = strval($wip['delivery_date']);
- $deliverytime = strtotime($wip['delivery_date']);
- $month = collect_month($deliverytime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $deliverytime));
- array_push($arrayData[$wip['contractno']]['delivery']['min'], strtotime(strval($wip['delivery_date'])));
- array_push($arrayData[$wip['contractno']]['delivery']['max'], strtotime(strval($wip['delivery_date'])));
- }
- if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) {
- array_push($arrayData[$wip['contractno']]['check']['min'], strtotime(strval($wip['official_check_date'])));
- array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date'])));
- $checktime = strtotime($wip['official_check_date']);
- $month = collect_month($checktime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][2] = strval(date('Ymd', $checktime));
- }
- if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) {
- if ($arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") {
- $estimate_delivery_time = strtotime($wip['tryrun_end_date']);
- $tryruntime = $estimate_delivery_time + (90 * 86400);
- $tryruntime = date('Ymd', $secondtime);
- $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($tryruntime)));
- array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($tryruntime)));
- $month = collect_month($tryruntime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
- } else {
- $arrayData[$wip['contractno']]['tryrun'][2] = strval($wip['tryrun_end_date']);
- array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date'])));
- array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date'])));
- $tryruntime = strtotime($wip['tryrun_end_date']);
- $month = collect_month($tryruntime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
- }
- }
- if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) {
- array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date'])));
- array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date'])));
- $installtime = strtotime($wip['install_end_date']);
- $month = collect_month($installtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
- }
- if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) {
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrivetime = date('Ymd', $secondtime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrivetime = strtotime($wip['real_arrival_date']);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date'])));
- }
- }
- } elseif ($wip['official_check_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
";
- $arrayData[$wip['contractno']]['check_num'] += 1;
- array_push($arrayData[$wip['contractno']]['check_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['tryrun_num'] += 1;
- array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['install_num'] += 1;
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['arrive_num'] += 1;
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['second_num'] += 1;
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) {
- array_push($arrayData[$wip['contractno']]['check']['min'], strtotime(strval($wip['official_check_date'])));
- array_push($arrayData[$wip['contractno']]['check']['max'], strtotime(strval($wip['official_check_date'])));
- $checktime = strtotime($wip['official_check_date']);
- $month = collect_month($checktime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['check'][2] = strval(date('Ymd', $checktime));
- }
-
- if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) {
- if (isset($arrayData[$wip['contractno']]['tryrun'][0]) && $arrayData[$wip['contractno']]['tryrun'][0] == "安裝試車後90天") {
- $estimate_delivery_time = strtotime($wip['tryrun_end_date']);
- $tryruntime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($tryruntime);
- $tryruntime = date('Ymd', $tryruntime);
- $arrayData[$wip['contractno']]['tryrun'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($tryruntime)));
- array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($tryruntime)));
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval($tryruntime);
- } else {
- $tryruntime = strtotime($wip['tryrun_end_date']);
- $month = collect_month($tryruntime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
- $arrayData[$wip['contractno']]['tryrun'][2] = strval($wip['tryrun_end_date']);
- array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date'])));
- array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date'])));
- }
- }
- if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) {
- $installtime = strtotime($wip['install_end_date']);
- $month = collect_month($installtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
- array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date'])));
- array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date'])));
- }
- if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) {
- if (isset($arrayData[$wip['contractno']]['arrive'][0]) && $arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrivetime = date('Ymd', $secondtime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date'])));
- $arrivetime = strtotime($wip['real_arrival_date']);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- }
- } else {
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $arrivetime = date('Ymd', $secondtime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date'])));
- }
- }
- } elseif ($wip['tryrun_end_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
";
- $arrayData[$wip['contractno']]['tryrun_num'] += 1;
- array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['install_num'] += 1;
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['arrive_num'] += 1;
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['second_num'] += 1;
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) {
- array_push($arrayData[$wip['contractno']]['tryrun']['min'], strtotime(strval($wip['tryrun_end_date'])));
- array_push($arrayData[$wip['contractno']]['tryrun']['max'], strtotime(strval($wip['tryrun_end_date'])));
- $tryruntime = strtotime($wip['tryrun_end_date']);
- $month = collect_month($tryruntime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $tryruntime));
- }
- if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) {
- array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date'])));
- array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strval($wip['install_end_date'])));
- $installtime = strtotime($wip['install_end_date']);
- $month = collect_month($installtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
- }
- if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) {
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrivetime = date('Ymd', $arrivetime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrivetime = strtotime($wip['real_arrival_date']);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date'])));
- }
- } else {
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $arrivetime = date('Ymd', $arrivetime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date'])));
- }
- }
- } elseif ($wip['install_end_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
";
- $arrayData[$wip['contractno']]['install_num'] += 1;
- array_push($arrayData[$wip['contractno']]['install_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['arrive_num'] += 1;
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['second_num'] += 1;
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) {
- $installtime = strtotime($wip['install_end_date']);
- $month = collect_month($installtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['install'][2] = strval(date('Ymd', $installtime));
- array_push($arrayData[$wip['contractno']]['install']['min'], strtotime(strval($wip['install_end_date'])));
- array_push($arrayData[$wip['contractno']]['install']['max'], strtotime(strtotime(strval($wip['install_end_date']))));
- }
- if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) {
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrivetime = date('Ymd', $arrivetime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrivetime = strtotime($wip['real_arrival_date']);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date'])));
- }
- } else {
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_contract_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $arrivetime = date('Ymd', $secondtime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($secondtime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
- } else {
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_contract_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_contract_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_contract_arrival_date'])));
- }
- }
- } elseif ($wip['real_arrival_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
";
- $arrayData[$wip['contractno']]['arrive_num'] += 1;
- array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['second_num'] += 1;
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
-
- if ($arrayData[$wip['contractno']]['arrive'][0] == "貨抵工地後90天") {
- $estimate_delivery_time = strtotime($wip['real_arrival_date']);
- $arrivetime = $estimate_delivery_time + (90 * 86400);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrivetime = date('Ymd', $arrivetime);
- $arrayData[$wip['contractno']]['arrive'][2] = strval($arrivetime);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($arrivetime)));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($arrivetime)));
+ if (isset($allPayStages[$value[10]])) {
+ $allPayStages[$value[10]] = array_merge($allPayStages[$value[10]], $facility['PayStage']);
} else {
- $arrivetime = strtotime($wip['real_arrival_date']);
- $month = collect_month($arrivetime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $arrivetime));
- $arrayData[$wip['contractno']]['arrive'][2] = strval($wip['real_arrival_date']);
- array_push($arrayData[$wip['contractno']]['arrive']['min'], strtotime(strval($wip['real_arrival_date'])));
- array_push($arrayData[$wip['contractno']]['arrive']['max'], strtotime(strval($wip['real_arrival_date'])));
- }
- } elseif (($arrayData[$wip['contractno']]['second'] != NULL) && (isset($arrayData[$wip['contractno']]['second'][2])) && ($arrayData[$wip['contractno']]['second'][2] <= date('Ymd'))) {
- $secondtime = strtotime($arrayData[$wip['contractno']]['second'][2]);
- $month = collect_month($secondtime);
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][2] = strval(date('Ymd', $secondtime));
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (已達二次款收款條件)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (已達二次款收款條件)
";
- $arrayData[$wip['contractno']]['second_num'] += 1;
- array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- } else {
- $arrayData[$wip['contractno']]['sign_num'] += 1;
- array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
- if ($wip['real_contract_arrival_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['real_contract_arrival_date'] . "預計出貨日)
";
- } elseif ($wip['estimated_shipping_date'] != NULL) {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出港日)
";
- } else {
- $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (預計出港日待確認)
";
- $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $wip['facilityno'] . " (預計出港日待確認)
";
+ $allPayStages[$value[10]] = $facility['PayStage'];
}
}
}
}
-// foreach ($arrayData as $key => $value) {
-// echo $key."
";
-// print_r($value['total_list']);
-// echo " / 總 ";
-// print_r($value['sign_list']);
-// echo " / 訂金
";
-// print_r($value['arrive_list']);
-// echo " / 貨抵 ";
-// print_r($value['install_list']);
-// echo " / 安裝
";
-// print_r($value['tryrun_list']);
-// echo " / 試車 ";
-// print_r($value['check_list']);
-// echo " / 官檢
";
-// print_r($value['delivery_list']);
-// echo " / 移交 ";
-// print_r($value['final_list']);
-// echo " / 結案
";
-// echo "---------------------------
";
-// foreach($value['sign_list'] as $fac){
-// echo $fac."=========";
-// }
-// }
-
-
-// 計算每個合約的應收款、作番總數
-$today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m-d')))));
-$contractstage = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final');
-foreach ($arrayData as &$value) {
- if ($value['total_facility_num'] > 0) {
- $sign_ratio = get_ratio($value['sign_list'], $value[10], $contract_budget);
- $value['sign'][3] = $value['sign'][1] * $sign_ratio;
- $second_ratio = get_ratio($value['second_list'], $value[10], $contract_budget);
- $value['second'][3] = $value['second'][1] * $second_ratio;
- $arrive_ratio = get_ratio($value['arrive_list'], $value[10], $contract_budget);
- $value['arrive'][3] = $value['arrive'][1] * $arrive_ratio;
- $install_ratio = get_ratio($value['install_list'], $value[10], $contract_budget);
- $value['install'][3] = $value['install'][1] * $install_ratio;
- $tryrun_ratio = get_ratio($value['tryrun_list'], $value[10], $contract_budget);
- $value['tryrun'][3] = $value['tryrun'][1] * $tryrun_ratio;
- $check_ratio = get_ratio($value['check_list'], $value[10], $contract_budget);
- $value['check'][3] = $value['check'][1] * $check_ratio;
- $delivery_ratio = get_ratio($value['delivery_list'], $value[10], $contract_budget);
- $value['delivery'][3] = $value['delivery'][1] * $delivery_ratio;
- $final_ratio = get_ratio($value['final_list'], $value[10], $contract_budget);
- $value['final'][3] = $value['final'][1] * $final_ratio;
- $value['receivable_budget'] = $value['sign'][3] + $value['second'][3] + $value['arrive'][3] + $value['install'][3] + $value['tryrun'][3] + $value['check'][3] + $value['delivery'][3] + $value['final'][3];
- }
- //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
- // 計算每台作番金額與各階段應收金額
- if (isset($value['facility'])) {
- foreach ($value['facility'] as &$val) {
- foreach ($contractstage as $stage) {
- if (isset($value[$stage][0]) && !empty($value[$stage][0])) {
- $val[$stage][0] = $value[$stage][0];
- if (isset($contract_budget[$value[10]]['total']) && isset($contract_budget[$value[10]][$val['no']]['total'])) {
- $ratio = $contract_budget[$value[10]][$val['no']]['total'] / $contract_budget[$value[10]]['total'];
- } else {
- $ratio = 0;
- }
- $val[$stage][1] = $value[$stage][1] * $ratio;
- $val[$stage][3] = (!(isset($val[$stage][6])) || $val[$stage][6] == 0) ? 0 : $val[$stage][1];
- $val['total_budget'] += $val[$stage][1];
- $val['receivable_budget'] += $val[$stage][3];
- }
- }
- }
- }
-
-
+foreach ($allPayStages as $paykey => $pay) {
+ uasort($allPayStages[$paykey], 'comparePlanPayDate');
+}
- // 計算最大催收次數與最小催收次數
- foreach ($contractstage as $i) {
- if (!empty($value[$i]['min']) && count($value[$i]['min']) > 0) {
- $latest_timestamp = max($value[$i]['min']);
- $latest_date = new DateTime();
- $latest_date->setTimestamp($latest_timestamp);
- if ($latest_date < $today_date) {
- $interval = $latest_date->diff($today_date);
- $month = $interval->format('%m');
- $value[$i]['min'] = $month;
- } else {
- $value[$i]['min'] = 0;
- }
- } else {
- $value[$i]['min'] = 0;
- };
- if (!empty($value[$i]['max']) && count($value[$i]['max']) > 0) {
- $latest_timestamp = min($value[$i]['max']);
- $latest_date = new DateTime();
- $latest_date->setTimestamp($latest_timestamp);
- if ($latest_date < $today_date) {
- $interval = $latest_date->diff($today_date);
- $month = $interval->format('%m');
- $value[$i]['max'] = $month;
- } else {
- $value[$i]['max'] = 0;
- }
- } else {
- $value[$i]['max'] = 0;
- };
+foreach ($allPayStages as &$payStage) {
+ $sequenceNumber = 1;
+ foreach ($payStage as $tk => &$pstage) {
+ $pstage['sequenceNumber'] = $sequenceNumber;
+ $sequenceNumber += 1;
}
}
-
-// [合約號][作番號][款別] ['con'] [金額]/[合約預計收款日期]
-// [合約號][作番號][款別] ['inv'] [金額]/[發票開立日期]
-// [合約號][作番號][款別] ['rec'] [金額]/[實際收款日期]
-foreach ($wipwhole_array as $wip) {
- if (isset($arrayData[$wip['contractno']]) && isset($arrayData[$wip['contractno']][$wip['facilityno']]) && !empty($arrayData[$wip['contractno']]['total_facility_num'])) {
- $stagearray = array('sign', 'second', 'arrive', 'install', 'tryrun', 'check', 'delivery', 'final');
- foreach ($stagearray as $stage) {
- $arrayData[$wip['contractno']][$wip['facilityno']][$stage]['con'] = $arrayData[$wip['contractno']][$stage][1] / $arrayData[$wip['contractno']]['total_facility_num'];
+// 整理好的收款階段
+$final_paystage = array();
+foreach ($allPayStages as $key => &$payStage) {
+ if (is_iterable($payStage)) {
+ foreach ($payStage as $key2 => $pstage) {
+ $final_paystage[$key][$pstage['sequenceNumber']] = $pstage;
}
}
}
+
// [invoice][發票號碼][0 發票日期, 1 發票金額, 2 發票狀態, 3 收款日期, 4 收款金額, 5 手續費, 6 核銷單號]
foreach ($invoice_data as $invoice) {
if (isset($arrayData[$invoice['ProjectId']])) {
@@ -954,13 +448,7 @@ foreach ($invoice_data as $invoice) {
// 把核銷單的內容補到發票資料中
foreach ($received_array as $received) {
- if ($received['OrderBillNo'] == 'SO20230801001') {
- $BillNo = 'M230947';
- } elseif ($received['OrderBillNo'] == 'SO20230801002') {
- $BillNo = 'M231067';
- } else {
- $BillNo = $received['OrderBillNo'];
- };
+ $BillNo = $received['OrderBillNo'];
if (isset($arrayData[$BillNo])) {
if (isset($arrayData[$BillNo]['invoice'][$received['InvoiceNo']])) {
$arrayData[$BillNo]['received_budget'] += $received['PayWriteOffOAmount'];
@@ -968,764 +456,68 @@ foreach ($received_array as $received) {
}
}
}
-
-//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 4 已收金額 5 催收金額 6 已開發票金額 7 未開發票金額 min 最早應收月份 max 最晚應收月份
-foreach ($arrayData as $key => &$data) {
- //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
- //作番
- $facilities = array();
- if (isset($data['facility'])) {
- foreach ($data['facility'] as $fakey => $val) {
- array_push($facilities, $fakey);
- }
- }
-
- $tmp_data = $data['received_budget'];
- $tmp_invoice = $data['invoice_budget'];
- //------------------------------------------------------------------------------------------------------------------------------------
- if (isset($data['sign'][3]) && $data['sign'][3] > 0) {
- if ($tmp_data > 0) {
- if (($tmp_data - $data['sign'][3]) >= 0) {
- $data['sign'][4] = $data['sign'][3];
- $tmp_data -= $data['sign'][3];
- $tmp_facility_received = $data['sign'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['sign'][3]) && $data['facility'][$this_facility]['sign'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['sign'][3]) {
- $data['facility'][$this_facility]['sign'][4] = $data['facility'][$this_facility]['sign'][3];
- $data['facility'][$this_facility]['sign'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['sign'][3];
- } else {
- $data['facility'][$this_facility]['sign'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3] - $data['facility'][$this_facility]['sign'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['sign'][4] = 0;
- $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3];
- }
- } else {
- $data['facility'][$this_facility]['sign'][4] = 0;
- $data['facility'][$this_facility]['sign'][5] = 0;
- }
- if ($data['facility'][$this_facility]['sign'][5] == 0) {
- $data['facility'][$this_facility]['sign'][6] = 0;
- }
- }
- } else {
- $data['sign'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['sign'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['sign'][3]) && $data['facility'][$this_facility]['sign'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['sign'][3]) {
- $data['facility'][$this_facility]['sign'][4] = $data['facility'][$this_facility]['sign'][3];
- $data['facility'][$this_facility]['sign'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['sign'][3];
- } else {
- $data['facility'][$this_facility]['sign'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3] - $data['facility'][$this_facility]['sign'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['sign'][4] = 0;
- $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3];
- }
- } else {
- $data['facility'][$this_facility]['sign'][4] = 0;
- $data['facility'][$this_facility]['sign'][5] = 0;
- }
- if ($data['facility'][$this_facility]['sign'][5] == 0) {
- $data['facility'][$this_facility]['sign'][6] = 0;
- }
- }
- }
- $data['sign'][5] = $data['sign'][3] - $data['sign'][4];
- } else {
- $data['sign'][4] = 0;
- $data['sign'][5] = $data['sign'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['sign'][4] = 0;
- $data['facility'][$this_facility]['sign'][5] = $data['facility'][$this_facility]['sign'][3];
- if ($data['facility'][$this_facility]['sign'][5] == 0) {
- $data['facility'][$this_facility]['sign'][6] = 0;
- }
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['sign'][3]) >= 0) {
- $data['sign'][6] = $data['sign'][3];
- $tmp_invoice -= $data['sign'][3];
- } else {
- $data['sign'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['sign'][7] = $data['sign'][3] - $data['sign'][6];
- } else {
- $data['sign'][6] = 0;
- $data['sign'][7] = $data['sign'][3];
- }
- } else {
- $data['sign'][4] = 0;
- $data['sign'][5] = 0;
- $data['sign'][6] = 0;
- $data['sign'][7] = 0;
- }
- if (isset($data['second'][3]) && $data['second'][3] > 0) {
- if ($tmp_data > 0) {
- if (($tmp_data - $data['second'][3]) >= 0) {
- $data['second'][4] = $data['second'][3];
- $tmp_data -= $data['second'][3];
- $tmp_facility_received = $data['second'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['second'][3]) && $data['facility'][$this_facility]['second'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['second'][3]) {
- $data['facility'][$this_facility]['second'][4] = $data['facility'][$this_facility]['second'][3];
- $data['facility'][$this_facility]['second'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['second'][3];
- } else {
- $data['facility'][$this_facility]['second'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3] - $data['facility'][$this_facility]['second'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['second'][4] = 0;
- $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3];
- }
- } else {
- $data['facility'][$this_facility]['second'][4] = 0;
- $data['facility'][$this_facility]['second'][5] = 0;
- $data['facility'][$this_facility]['second'][6] = 0;
- }
- if ($data['facility'][$this_facility]['second'][5] == 0) {
- $data['facility'][$this_facility]['second'][6] = 0;
- }
- }
- } else {
- $data['second'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['second'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['second'][3]) && $data['facility'][$this_facility]['second'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['second'][3]) {
- $data['facility'][$this_facility]['second'][4] = $data['facility'][$this_facility]['second'][3];
- $data['facility'][$this_facility]['second'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['second'][3];
- } else {
- $data['facility'][$this_facility]['second'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3] - $data['facility'][$this_facility]['second'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['second'][4] = 0;
- $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3];
- }
- } else {
- $data['facility'][$this_facility]['second'][4] = 0;
- $data['facility'][$this_facility]['second'][5] = 0;
- $data['facility'][$this_facility]['second'][6] = 0;
- }
- if ($data['facility'][$this_facility]['second'][5] == 0) {
- $data['facility'][$this_facility]['second'][6] = 0;
- }
- }
- }
- $data['second'][5] = $data['second'][3] - $data['second'][4];
- } else {
- $data['second'][4] = 0;
- $data['second'][5] = $data['second'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['second'][4] = 0;
- $data['facility'][$this_facility]['second'][5] = $data['facility'][$this_facility]['second'][3];
- if ($data['facility'][$this_facility]['second'][5] == 0) {
- $data['facility'][$this_facility]['second'][6] = 0;
- }
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['second'][3]) >= 0) {
- $data['second'][6] = $data['second'][3];
- $tmp_invoice -= $data['second'][3];
- } else {
- $data['second'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['second'][7] = $data['second'][3] - $data['second'][6];
- } else {
- $data['second'][6] = 0;
- $data['second'][7] = $data['second'][3];
- }
- } else {
- $data['second'][4] = 0;
- $data['second'][5] = 0;
- $data['second'][6] = 0;
- $data['second'][7] = 0;
- }
-
- if (isset($data['arrive'][3]) && $data['arrive'][3] > 0) {
-
- if ($tmp_data > 0) {
- if (($tmp_data - $data['arrive'][1]) >= 0) {
- $data['arrive'][4] = $data['arrive'][3];
- $tmp_data -= $data['arrive'][3];
- $tmp_facility_received = $data['arrive'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['arrive'][3]) && $data['facility'][$this_facility]['arrive'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['arrive'][3]) {
- $data['facility'][$this_facility]['arrive'][4] = $data['facility'][$this_facility]['arrive'][3];
- $data['facility'][$this_facility]['arrive'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['arrive'][3];
- } else {
- $data['facility'][$this_facility]['arrive'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3] - $data['facility'][$this_facility]['arrive'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['arrive'][4] = 0;
- $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3];
- }
- } else {
- $data['facility'][$this_facility]['arrive'][4] = 0;
- $data['facility'][$this_facility]['arrive'][5] = 0;
- $data['facility'][$this_facility]['arrive'][6] = 0;
- }
- if ($data['facility'][$this_facility]['arrive'][5] == 0) {
- $data['facility'][$this_facility]['arrive'][6] = 0;
- }
- }
- } else {
- $data['arrive'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['arrive'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['arrive'][3]) && $data['facility'][$this_facility]['arrive'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['arrive'][3]) {
- $data['facility'][$this_facility]['arrive'][4] = $data['facility'][$this_facility]['arrive'][3];
- $data['facility'][$this_facility]['arrive'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['arrive'][3];
- } else {
- $data['facility'][$this_facility]['arrive'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3] - $data['facility'][$this_facility]['arrive'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['arrive'][4] = 0;
- $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3];
- }
- } else {
- $data['facility'][$this_facility]['arrive'][4] = 0;
- $data['facility'][$this_facility]['arrive'][5] = 0;
- $data['facility'][$this_facility]['arrive'][6] = 0;
- }
- if ($data['facility'][$this_facility]['arrive'][5] == 0) {
- $data['facility'][$this_facility]['arrive'][6] = 0;
- }
- }
- }
- $data['arrive'][5] = $data['arrive'][3] - $data['arrive'][4];
- } else {
- $data['arrive'][4] = 0;
- $data['arrive'][5] = $data['arrive'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['arrive'][4] = 0;
- $data['facility'][$this_facility]['arrive'][5] = $data['facility'][$this_facility]['arrive'][3];
- if ($data['facility'][$this_facility]['arrive'][5] == 0) {
- $data['facility'][$this_facility]['arrive'][6] = 0;
- }
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['arrive'][3]) >= 0) {
- $data['arrive'][6] = $data['arrive'][3];
- $tmp_invoice -= $data['arrive'][3];
- } else {
- $data['arrive'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['arrive'][7] = $data['arrive'][3] - $data['arrive'][6];
- } else {
- $data['arrive'][6] = 0;
- $data['arrive'][7] = $data['arrive'][3];
- }
- } else {
- $data['arrive'][4] = 0;
- $data['arrive'][5] = 0;
- $data['arrive'][6] = 0;
- $data['arrive'][7] = 0;
- }
-
- if (isset($data['install'][3]) && $data['install'][3] > 0) {
-
- if ($tmp_data > 0) {
- if (($tmp_data - $data['install'][1]) >= 0) {
- $data['install'][4] = $data['install'][3];
- $tmp_data -= $data['install'][3];
- $tmp_facility_received = $data['install'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['install'][3]) && $data['facility'][$this_facility]['install'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['install'][3]) {
- $data['facility'][$this_facility]['install'][4] = $data['facility'][$this_facility]['install'][3];
- $data['facility'][$this_facility]['install'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['install'][3];
- } else {
- $data['facility'][$this_facility]['install'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3] - $data['facility'][$this_facility]['install'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['install'][4] = 0;
- $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3];
- }
- } else {
- $data['facility'][$this_facility]['install'][4] = 0;
- $data['facility'][$this_facility]['install'][5] = 0;
- $data['facility'][$this_facility]['install'][6] = 0;
- }
- if ($data['facility'][$this_facility]['install'][5] == 0) {
- $data['facility'][$this_facility]['install'][6] = 0;
- }
- }
- } else {
- $data['install'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['install'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['install'][3]) && $data['facility'][$this_facility]['install'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['install'][3]) {
- $data['facility'][$this_facility]['install'][4] = $data['facility'][$this_facility]['install'][3];
- $data['facility'][$this_facility]['install'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['install'][3];
- } else {
- $data['facility'][$this_facility]['install'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3] - $data['facility'][$this_facility]['install'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['install'][4] = 0;
- $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3];
- }
- } else {
- $data['facility'][$this_facility]['install'][4] = 0;
- $data['facility'][$this_facility]['install'][5] = 0;
- $data['facility'][$this_facility]['install'][6] = 0;
- }
- if ($data['facility'][$this_facility]['install'][5] == 0) {
- $data['facility'][$this_facility]['install'][6] = 0;
- }
- }
+// $final_paystage ['type'] ['PlanPayDate'] ['PayAmount'] ['facilityno'] ['sequenceNumber'] ['name'] ['InvoiceAmount'] ['receivedAmount']
+foreach($final_paystage as $key => &$payStage){
+ if(isset($arrayData[$key]['invoice_budget']) && isset($arrayData[$key]['received_budget'])){
+ $tmpInvoice = $arrayData[$key]['invoice_budget'];
+ $tmpReceived = $arrayData[$key]['received_budget'];
+ for($sequence = 1; $sequence <= count($payStage); $sequence++){
+ $collect_month = collect_month(strtotime($payStage[$sequence]['PlanPayDate']));
+ if($tmpInvoice >$payStage[$sequence]['PayAmount']){
+ $payStage[$sequence]['InvoiceAmount'] = $payStage[$sequence]['PayAmount'];
+ $tmpInvoice -= $payStage[$sequence]['PayAmount'];
+ }else{
+ $payStage[$sequence]['InvoiceAmount'] = $tmpInvoice;
+ $tmpInvoice = 0;
}
- $data['install'][5] = $data['install'][3] - $data['install'][4];
- } else {
- $data['install'][4] = 0;
- $data['install'][5] = $data['install'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['install'][4] = 0;
- $data['facility'][$this_facility]['install'][5] = $data['facility'][$this_facility]['install'][3];
- if ($data['facility'][$this_facility]['install'][5] == 0) {
- $data['facility'][$this_facility]['install'][6] = 0;
- }
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['install'][3]) >= 0) {
- $data['install'][6] = $data['install'][3];
- $tmp_invoice -= $data['install'][3];
- } else {
- $data['install'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['install'][7] = $data['install'][3] - $data['install'][6];
- } else {
- $data['install'][6] = 0;
- $data['install'][7] = $data['install'][3];
- }
- } else {
- $data['install'][4] = 0;
- $data['install'][5] = 0;
- $data['install'][6] = 0;
- $data['install'][7] = 0;
- }
-
- if (isset($data['tryrun'][3]) && $data['tryrun'][3] > 0) {
- if ($tmp_data > 0) {
- if (($tmp_data - $data['tryrun'][1]) >= 0) {
- $data['tryrun'][4] = $data['tryrun'][3];
- $tmp_data -= $data['tryrun'][3];
- $tmp_facility_received = $data['tryrun'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['tryrun'][3]) && $data['facility'][$this_facility]['tryrun'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['tryrun'][3]) {
- $data['facility'][$this_facility]['tryrun'][4] = $data['facility'][$this_facility]['tryrun'][3];
- $data['facility'][$this_facility]['tryrun'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['tryrun'][3];
- } else {
- $data['facility'][$this_facility]['tryrun'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3] - $data['facility'][$this_facility]['tryrun'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['tryrun'][4] = 0;
- $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3];
- }
- } else {
- $data['facility'][$this_facility]['tryrun'][4] = 0;
- $data['facility'][$this_facility]['tryrun'][5] = 0;
- $data['facility'][$this_facility]['tryrun'][6] = 0;
- }
- if ($data['facility'][$this_facility]['tryrun'][5] == 0) {
- $data['facility'][$this_facility]['tryrun'][6] = 0;
- }
- }
- } else {
- $data['tryrun'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['tryrun'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['tryrun'][3]) && $data['facility'][$this_facility]['tryrun'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['tryrun'][3]) {
- $data['facility'][$this_facility]['tryrun'][4] = $data['facility'][$this_facility]['tryrun'][3];
- $data['facility'][$this_facility]['tryrun'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['tryrun'][3];
- } else {
- $data['facility'][$this_facility]['tryrun'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3] - $data['facility'][$this_facility]['tryrun'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['tryrun'][4] = 0;
- $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3];
- }
- } else {
- $data['facility'][$this_facility]['tryrun'][4] = 0;
- $data['facility'][$this_facility]['tryrun'][5] = 0;
- $data['facility'][$this_facility]['tryrun'][6] = 0;
- }
- if ($data['facility'][$this_facility]['tryrun'][5] == 0) {
- $data['facility'][$this_facility]['tryrun'][6] = 0;
- }
- }
- }
- $data['tryrun'][5] = $data['tryrun'][3] - $data['tryrun'][4];
- } else {
- $data['tryrun'][4] = 0;
- $data['tryrun'][5] = $data['tryrun'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['tryrun'][4] = 0;
- $data['facility'][$this_facility]['tryrun'][5] = $data['facility'][$this_facility]['tryrun'][3];
- if ($data['facility'][$this_facility]['tryrun'][5] == 0) {
- $data['facility'][$this_facility]['tryrun'][6] = 0;
- }
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['tryrun'][3]) >= 0) {
- $data['tryrun'][6] = $data['tryrun'][3];
- $tmp_invoice -= $data['tryrun'][3];
- } else {
- $data['tryrun'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['tryrun'][7] = $data['tryrun'][3] - $data['tryrun'][6];
- } else {
- $data['tryrun'][6] = 0;
- $data['tryrun'][7] = $data['tryrun'][3];
- }
- } else {
- $data['tryrun'][4] = 0;
- $data['tryrun'][5] = 0;
- $data['tryrun'][6] = 0;
- $data['tryrun'][7] = 0;
- }
+ if($tmpReceived >$payStage[$sequence]['PayAmount']){
- if (isset($data['check'][3]) && $data['check'][3] > 0) {
- if ($tmp_data > 0) {
- if (($tmp_data - $data['check'][1]) >= 0) {
- $data['check'][4] = $data['check'][3];
- $tmp_data -= $data['check'][3];
- $tmp_facility_received = $data['check'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['check'][3]) && $data['facility'][$this_facility]['check'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['check'][3]) {
- $data['facility'][$this_facility]['check'][4] = $data['facility'][$this_facility]['check'][3];
- $data['facility'][$this_facility]['check'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['check'][3];
- } else {
- $data['facility'][$this_facility]['check'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3] - $data['facility'][$this_facility]['check'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['check'][4] = 0;
- $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3];
- }
- } else {
- $data['facility'][$this_facility]['check'][4] = 0;
- $data['facility'][$this_facility]['check'][5] = 0;
- $data['facility'][$this_facility]['check'][6] = 0;
- }
- if ($data['facility'][$this_facility]['check'][5] == 0) {
- $data['facility'][$this_facility]['check'][6] = 0;
- }
- }
- } else {
- $data['check'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['check'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['check'][3]) && $data['facility'][$this_facility]['check'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['check'][3]) {
- $data['facility'][$this_facility]['check'][4] = $data['facility'][$this_facility]['check'][3];
- $data['facility'][$this_facility]['check'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['check'][3];
- } else {
- $data['facility'][$this_facility]['check'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3] - $data['facility'][$this_facility]['check'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['check'][4] = 0;
- $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3];
- }
- } else {
- $data['facility'][$this_facility]['check'][4] = 0;
- $data['facility'][$this_facility]['check'][5] = 0;
- $data['facility'][$this_facility]['check'][6] = 0;
- }
- if ($data['facility'][$this_facility]['check'][5] == 0) {
- $data['facility'][$this_facility]['check'][6] = 0;
- }
- }
- }
- $data['check'][5] = $data['check'][3] - $data['check'][4];
- } else {
- $data['check'][4] = 0;
- $data['check'][5] = $data['check'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['check'][4] = 0;
- $data['facility'][$this_facility]['check'][5] = $data['facility'][$this_facility]['check'][3];
- if ($data['facility'][$this_facility]['check'][5] == 0) {
- $data['facility'][$this_facility]['check'][6] = 0;
- }
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['check'][3]) >= 0) {
- $data['check'][6] = $data['check'][3];
- $tmp_invoice -= $data['check'][3];
- } else {
- $data['check'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['check'][7] = $data['check'][3] - $data['check'][6];
- } else {
- $data['check'][6] = 0;
- $data['check'][7] = $data['check'][3];
- }
- } else {
- $data['check'][4] = 0;
- $data['check'][5] = 0;
- $data['check'][6] = 0;
- $data['check'][7] = 0;
- }
- if (isset($data['delivery'][3]) && $data['delivery'][3] > 0) {
- if ($tmp_data > 0) {
- if (($tmp_data - $data['delivery'][1]) >= 0) {
- $data['delivery'][4] = $data['delivery'][3];
- $tmp_data -= $data['delivery'][3];
- $tmp_facility_received = $data['delivery'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['delivery'][3]) && $data['facility'][$this_facility]['delivery'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['delivery'][3]) {
- $data['facility'][$this_facility]['delivery'][4] = $data['facility'][$this_facility]['delivery'][3];
- $data['facility'][$this_facility]['delivery'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['delivery'][3];
- } else {
- $data['facility'][$this_facility]['delivery'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3] - $data['facility'][$this_facility]['delivery'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['delivery'][4] = 0;
- $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3];
- }
- } else {
- $data['facility'][$this_facility]['delivery'][4] = 0;
- $data['facility'][$this_facility]['delivery'][5] = 0;
- $data['facility'][$this_facility]['delivery'][6] = 0;
- }
- if ($data['facility'][$this_facility]['delivery'][5] == 0) {
- $data['facility'][$this_facility]['delivery'][6] = 0;
- }
- }
- } else {
- $data['delivery'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['delivery'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['delivery'][3]) && $data['facility'][$this_facility]['delivery'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['delivery'][3]) {
- $data['facility'][$this_facility]['delivery'][4] = $data['facility'][$this_facility]['delivery'][3];
- $data['facility'][$this_facility]['delivery'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['delivery'][3];
- } else {
- $data['facility'][$this_facility]['delivery'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3] - $data['facility'][$this_facility]['delivery'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['delivery'][4] = 0;
- $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3];
- }
- } else {
- $data['facility'][$this_facility]['delivery'][4] = 0;
- $data['facility'][$this_facility]['delivery'][5] = 0;
- $data['facility'][$this_facility]['delivery'][6] = 0;
- }
- if ($data['facility'][$this_facility]['delivery'][5] == 0) {
- $data['facility'][$this_facility]['delivery'][6] = 0;
- }
- }
+ $payStage[$sequence]['receivedAmount'] = $payStage[$sequence]['PayAmount'];
+ $tmpReceived -= $payStage[$sequence]['PayAmount'];
+ }else{
+ $payStage[$sequence]['receivedAmount'] = $tmpReceived;
+ $tmpReceived = 0;
}
- $data['delivery'][5] = $data['delivery'][3] - $data['delivery'][4];
- } else {
- $data['delivery'][4] = 0;
- $data['delivery'][5] = $data['delivery'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['delivery'][4] = 0;
- $data['facility'][$this_facility]['delivery'][5] = $data['facility'][$this_facility]['delivery'][3];
- if ($data['facility'][$this_facility]['sign'][5] == 0) {
- $data['facility'][$this_facility]['sign'][6] = 0;
- }
+ if($collect_month>0){
+ // $arrayData[$key]['facility'][$payStage[$sequence]['facilityno']]['receivable_budget']+=$payStage[$sequence]['PayAmount'];
}
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['delivery'][3]) >= 0) {
- $data['delivery'][6] = $data['delivery'][3];
- $tmp_invoice -= $data['delivery'][3];
- } else {
- $data['delivery'][6] = $tmp_invoice;
- $tmp_invoice = 0;
+ if($collect_month>0 && $payStage[$sequence]['PayAmount']>$payStage[$sequence]['receivedAmount']){
+ $payStage[$sequence]['collect_month'] = $collect_month;
+ }else{
+ $payStage[$sequence]['collect_month'] = 0;
}
- $data['delivery'][7] = $data['delivery'][3] - $data['delivery'][6];
- } else {
- $data['delivery'][6] = 0;
- $data['delivery'][7] = $data['delivery'][3];
}
- } else {
- $data['delivery'][4] = 0;
- $data['delivery'][5] = 0;
- $data['delivery'][6] = 0;
- $data['delivery'][7] = 0;
}
+}
+// foreach($final_paystage as $key => $payStage){
+// echo $key."
";
+// for($sequence = 1; $sequence <= count($payStage); $sequence++){
+// print_r($payStage[$sequence]);
+// echo "
";
+// }
+// echo "---------------------
";
+// }
- if (isset($data['final'][3]) && $data['final'][3] > 0) {
- if ($tmp_data > 0) {
- if (($tmp_data - $data['final'][1]) >= 0) {
- $data['final'][4] = $data['final'][3];
- $tmp_data -= $data['final'][3];
- $tmp_facility_received = $data['final'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['final'][3]) && $data['facility'][$this_facility]['final'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['final'][3]) {
- $data['facility'][$this_facility]['final'][4] = $data['facility'][$this_facility]['final'][3];
- $data['facility'][$this_facility]['final'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['final'][3];
- } else {
- $data['facility'][$this_facility]['final'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3] - $data['facility'][$this_facility]['final'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['final'][4] = 0;
- $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3];
- }
- } else {
- $data['facility'][$this_facility]['final'][4] = 0;
- $data['facility'][$this_facility]['final'][5] = 0;
- $data['facility'][$this_facility]['final'][6] = 0;
- }
- if ($data['facility'][$this_facility]['final'][5] == 0) {
- $data['facility'][$this_facility]['final'][6] = 0;
- }
- }
- } else {
- $data['final'][4] = $tmp_data;
- $tmp_data = 0;
- $tmp_facility_received = $data['final'][4];
- foreach ($facilities as $this_facility) {
- if (isset($data['facility'][$this_facility]['final'][3]) && $data['facility'][$this_facility]['final'][3] > 0) {
- if ($tmp_facility_received > 0) {
- if ($tmp_facility_received >= $data['facility'][$this_facility]['final'][3]) {
- $data['facility'][$this_facility]['final'][4] = $data['facility'][$this_facility]['final'][3];
- $data['facility'][$this_facility]['final'][5] = 0;
- $tmp_facility_received -= $data['facility'][$this_facility]['final'][3];
- } else {
- $data['facility'][$this_facility]['final'][4] = $tmp_facility_received;
- $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3] - $data['facility'][$this_facility]['final'][4];
- $tmp_facility_received = 0;
- }
- } else {
- $data['facility'][$this_facility]['final'][4] = 0;
- $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3];
- }
- } else {
- $data['facility'][$this_facility]['final'][4] = 0;
- $data['facility'][$this_facility]['final'][5] = 0;
- $data['facility'][$this_facility]['final'][6] = 0;
- }
- if ($data['facility'][$this_facility]['final'][5] == 0) {
- $data['facility'][$this_facility]['final'][6] = 0;
- }
- }
- }
- $data['final'][5] = $data['final'][3] - $data['final'][4];
- } else {
- $data['final'][4] = 0;
- $data['final'][5] = $data['final'][3];
- foreach ($facilities as $this_facility) {
- $data['facility'][$this_facility]['final'][4] = 0;
- $data['facility'][$this_facility]['final'][5] = $data['facility'][$this_facility]['final'][3];
- }
- if ($data['facility'][$this_facility]['final'][5] == 0) {
- $data['facility'][$this_facility]['final'][6] = 0;
- }
- }
- if ($tmp_invoice > 0) {
- if (($tmp_invoice - $data['final'][3]) >= 0) {
- $data['final'][6] = $data['final'][3];
- $tmp_invoice -= $data['final'][3];
- } else {
- $data['final'][6] = $tmp_invoice;
- $tmp_invoice = 0;
- }
- $data['final'][7] = $data['final'][3] - $data['final'][6];
- } else {
- $data['final'][6] = 0;
- $data['final'][7] = $data['final'][3];
- }
- } else {
- $data['final'][4] = 0;
- $data['final'][5] = 0;
- $data['final'][6] = 0;
- $data['final'][7] = 0;
- }
+foreach ($arrayData as &$value) {
+ // if (is_iterable($value['facility'])) {
+ // foreach ($value['facility'] as $fakey => &$facility) {
+ // // foreach ($facility['PayStage'] as $index => &$payStage) {
+ // // // $payStage['sequenceNumber'] = $allPayStages[$value[10]][$index]['sequenceNumber'];
+ // // echo $index." => ";
+ // // print_r($payStage);
+ // // echo "
";
+ // // }
+ // echo $fakey." => ";
+ // print_r($facility);
+ // echo "
";
+ // }
+ // }
+ print_r($value);
+ echo "---------------------
";
}
+exit();
+//=========================================================================================================================================================
//產生excel的array
diff --git a/wms/account-receivable-test.php b/wms/account-receivable-test.php
index 65ab59fc..52c6056c 100644
--- a/wms/account-receivable-test.php
+++ b/wms/account-receivable-test.php
@@ -374,9 +374,17 @@ $P_all = "
// echo $value['facilityno']. ";" . $value['actual_tofactory_date'] . "
";
// }
-$sql_paystage = "SELECT A.PayStage, A.BillNo FROM salOrderStagePay AS A
-LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo WHERE s.ModeId = 'T' AND (s.CurrentState=2 OR s.CurrentState=4)";
-$query_paystage = $conn->query($sql_paystage);
-foreach($query_paystage as $key => $value) {
- echo $value['PayStage'] .";".$value['BillNo']. "
";
+// $sql_paystage = "SELECT A.PayStage, A.BillNo FROM salOrderStagePay AS A
+// LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo WHERE s.ModeId = 'T' AND (s.CurrentState=2 OR s.CurrentState=4)";
+// $query_paystage = $conn->query($sql_paystage);
+// foreach($query_paystage as $key => $value) {
+// echo $value['PayStage'] .";".$value['BillNo']. "
";
+// }
+
+$sql = "SELECT A.BillNo,B.CU_MaterialId, B.ProjectId FROM salSalesOrder AS A
+LEFT JOIN salSalesOrderDetail AS B ON A.BillNo=B.BillNo
+WHERE A.ModeId='T' AND B.ItemType=0 AND A.BillNo != B.ProjectId AND A.CurrentState=4";
+$query = $conn->query($sql);
+foreach($query as $key => $value) {
+ echo $value['BillNo'] .";".$value['CU_MaterialId'].";".$value['ProjectId']. "
";
}
\ No newline at end of file
diff --git a/wms/bons/api/get.php b/wms/bons/api/get.php
new file mode 100644
index 00000000..b50687a3
--- /dev/null
+++ b/wms/bons/api/get.php
@@ -0,0 +1,75 @@
+prepare($sql);
+$stmt->execute();
+$data = $stmt->fetch(PDO::FETCH_ASSOC);
+$data['amount'] = intval($data['amount']);
+$checkBillNo = $data['CBno'];
+
+
+$sql = "SELECT
+ c.BillDate AS CheckBillDate
+ FROM arWriteOffBill AS a
+ LEFT JOIN arWriteOffBillRec AS b ON a.BillNo=b.BillNo
+ LEFT JOIN
+ (SELECT temp1.*,arWriteOffBillDetail.* FROM arWriteOffBillDetail
+ LEFT JOIN
+ (SELECT
+ arCheckBill.BillNo AS checkBillNo, arCheckBill.BillDate,arCheckBillInvInfo.InvoiceNo
+ FROM arCheckBill
+ LEFT JOIN arCheckBillInvInfo
+ ON arCheckBill.InvoiceBillNo=arCheckBillInvInfo.InvoiceBillNo) AS temp1
+ ON temp1.checkBillNo = arWriteOffBillDetail.FromBillNo) AS c
+ ON a.BillNo=c.BillNo
+ WHERE c.checkBillNo = '$checkBillNo'
+ ";
+
+$stmt = $connT8->prepare($sql);
+$stmt->execute();
+$check = $stmt->fetch(PDO::FETCH_ASSOC);
+
+
+
+$CU_MaterialId = $data['facility'];
+$sql = "SELECT SQuantity FROM salIncomeApplyDetail WHERE BillNo = :contract_no AND CU_MaterialId = :CU_MaterialId";
+$stmt = $connT8->prepare($sql);
+$stmt->bindParam(':contract_no', $contract_no);
+$stmt->bindParam(':CU_MaterialId', $CU_MaterialId);
+$stmt->execute();
+$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
+$count = COUNT($result);
+$data['maintain_month'] = intval($count * $result[0]['SQuantity']);
+
+
+
+
+if (!empty($check['CheckBillDate'])) {
+ header('Content-Type: application/json');
+ echo json_encode($data);
+} else {
+ echo false;
+ exit;
+}
+// }
diff --git a/wms/bons/bons_index.php b/wms/bons/bons_index.php
new file mode 100644
index 00000000..0ee7058a
--- /dev/null
+++ b/wms/bons/bons_index.php
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wms/bons/elevator_new/elevator_new_deal_bonus_v1_0.php b/wms/bons/elevator_new/elevator_new_deal_bonus_v1_0.php
new file mode 100644
index 00000000..7d45b3a1
--- /dev/null
+++ b/wms/bons/elevator_new/elevator_new_deal_bonus_v1_0.php
@@ -0,0 +1,125 @@
+$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "$bonus_array"=>$bonus_array #所有獎金水庫
+ ];
+
+*/
+
+
+
+function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_knockdown_price, $sales_id, $region_manger_id){
+ $bonus_array = [];
+ if ($ver == "1.0"){
+
+ #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
+ switch ($contract_type){
+ case "strategy_customer":
+ #契約員獎金($sales_bonus)
+ $sales_bonus = $elevator_knockdown_price * 0.007;
+ #地區經理經理獎金($region_manager_bonus)
+ $region_manager_bonus = 400;
+ break;
+
+ case "general_customer":
+ #契約員獎金($sales_bonus)
+ $sales_bonus = $elevator_knockdown_price * 0.015;
+ #區域經理獎金($region_manager_bonus)
+ $region_manager_bonus = 600;
+ break;
+ };
+
+ #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20%
+ array_push($bonus_array,[
+ "bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus * 0.2), #金額
+ "payment_schedul_due" => "deposit", #訂金已收款20%
+ "payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定
+ ]);
+
+ #營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%
+ array_push($bonus_array,[
+ "bonus_type" => "營銷人員銷售獎金-出貨款段", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus * 0.5), #金額
+ "payment_schedul_due" => "shipping", #訂金已收款20%
+ "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定
+ ]);
+
+ #營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%
+ array_push($bonus_array,[
+ "bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus * 0.3), #金額
+ "payment_schedul_due" => "acceptance", #訂金已收款20%
+ "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定
+ ]);
+
+ #區域經理獎金水庫-----訂金已收款100%,發放總獎金50%
+ array_push($bonus_array,[
+ "bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus * 0.5), #金額
+ "payment_schedul_due" => "deposit", #訂金已收款100%
+ "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定
+ ]);
+
+ #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
+ array_push($bonus_array,[
+ "bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus * 0.5), #金額
+ "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100%
+ "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定
+ ]);
+
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ }else{
+ array_push($bonus_array,[
+ "bonus_type" => "error", #獎金名稱
+ "bonus_receiver" => "error", #發放人員
+ "bonus_amount" => 0, #金額
+ "payment_schedul_due" => "9999-1-1", #預計發放時間
+ "payment_schedul_regulation" => "error" #發放規定
+ ]);
+
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"error", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ };
+
+ return $result_array;
+};
+
+?>
\ No newline at end of file
diff --git a/wms/bons/elevator_new/elevator_new_deal_bonus_v1_0_examination.php b/wms/bons/elevator_new/elevator_new_deal_bonus_v1_0_examination.php
new file mode 100644
index 00000000..97c47660
--- /dev/null
+++ b/wms/bons/elevator_new/elevator_new_deal_bonus_v1_0_examination.php
@@ -0,0 +1,72 @@
+$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "$bonus_array"=>$bonus_array #所有獎金水庫
+ ];
+
+*/
+
+
+require_once("elevator_new_deal_bonus_v1_0.php");
+
+#$ver, $contract_type, $elevator_knockdown_price, $sales_id, $region_manger_id
+
+#獎金測試
+$examination_array = [
+ #錯誤版本
+ ["2.0","strategy_customer",1000000,"M0001", "M0003"],
+ #戰略客戶(strategy_customer)
+ ["1.0","strategy_customer",1000000,"M0001", "M0003"], #戰略客戶
+
+ #一般客戶(general_customer)
+ ["1.0","general_customer",1000000,"M0001", "M0003"] #一般客戶
+];
+
+
+
+for($i = 0; $i";
+ echo "計算結果:" . $result["result_status"] . "
";
+ echo "輸入參數:" . $examination_array[$i][1] . " " . $examination_array[$i][2] . " " . $examination_array[$i][3] . " " . $examination_array[$i][4] . "
";
+ for($j = 0; $j";
+ };
+ echo "-------------------------" . "
";
+
+};
+
+
+?>
diff --git a/wms/bons/elevator_new/elevator_new_deal_bonus_v2_0.php b/wms/bons/elevator_new/elevator_new_deal_bonus_v2_0.php
new file mode 100644
index 00000000..84dde3cd
--- /dev/null
+++ b/wms/bons/elevator_new/elevator_new_deal_bonus_v2_0.php
@@ -0,0 +1,164 @@
+$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "$bonus_array"=>$bonus_array #所有獎金水庫
+ ];
+
+*/
+
+
+
+function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $sales_id, $region_manger_id){
+ $bonus_array = [];
+ if ($ver == "2.0"){
+ $discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。
+
+ #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
+ switch ($contract_type){
+ case "strategy_customer":
+ #契約員獎金($sales_bonus)
+ $sales_bonus = $elevator_knockdown_price * 0.007;
+ #地區經理提成獎金($region_manager_bonus)
+ $region_manager_bonus = 400;
+ break;
+
+ case "general_customer":
+ switch ($elevator_type) {
+ #客梯(passenger)、貨梯(cargo)
+ case ($elevator_type == "passenger" or $elevator_type == "cargo"):
+ switch ($discount) {
+ case ($discount >= 1.0):
+ $sales_bonus = $elevator_knockdown_price * 0.02;
+ break;
+ case ($discount >= 0.9 and $discount < 1.0):
+ $sales_bonus = $elevator_knockdown_price * 0.018;
+ break;
+ case ($discount >= 0.75 and $discount < 0.9):
+ $sales_bonus = $elevator_knockdown_price * 0.015;
+ break;
+ case ($discount < 0.75):
+ $sales_bonus = $elevator_knockdown_price * 0.008;
+ break;
+ };
+ break;
+
+ #小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive)
+ case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"):
+ switch ($discount) {
+ case ($discount >= 1.0):
+ $sales_bonus = $elevator_knockdown_price * 0.02;
+ break;
+ case ($discount >= 0.9 and $discount < 1.0):
+ $sales_bonus = $elevator_knockdown_price * 0.018;
+ break;
+ case ($discount >= 0.72 and $discount < 0.9):
+ $sales_bonus = $elevator_knockdown_price * 0.015;
+ break;
+ case ($discount < 0.72):
+ $sales_bonus = $elevator_knockdown_price * 0.008;
+ break;
+ };
+ break;
+ };
+ #區域經理提成獎金($region_manager_bonus)
+ $region_manager_bonus = 600;
+ break;
+ };
+
+ #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20%
+ array_push($bonus_array,[
+ "bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus * 0.2), #金額
+ "payment_schedul_due" => "deposit", #訂金已收款20%
+ "payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定
+ ]);
+
+ #營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%
+ array_push($bonus_array,[
+ "bonus_type" => "營銷人員銷售獎金-出貨款段", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus * 0.5), #金額
+ "payment_schedul_due" => "shipping", #訂金已收款20%
+ "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定
+ ]);
+
+ #營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%
+ array_push($bonus_array,[
+ "bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus * 0.3), #金額
+ "payment_schedul_due" => "acceptance", #訂金已收款20%
+ "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定
+ ]);
+
+ #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50%
+ array_push($bonus_array,[
+ "bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus * 0.5), #金額
+ "payment_schedul_due" => "deposit", #訂金已收款100%
+ "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定
+ ]);
+
+ #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
+ array_push($bonus_array,[
+ "bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus * 0.5), #金額
+ "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100%
+ "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定
+ ]);
+
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ }else{
+ array_push($bonus_array,[
+ "bonus_type" => "error", #獎金名稱
+ "bonus_receiver" => "error", #發放人員
+ "bonus_amount" => 0, #金額
+ "payment_schedul_due" => "9999-1-1", #預計發放時間
+ "payment_schedul_regulation" => "error" #發放規定
+ ]);
+
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"error", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ };
+
+ return $result_array;
+};
+
+?>
\ No newline at end of file
diff --git a/wms/bons/elevator_new/elevator_new_deal_bonus_v2_0_examination.php b/wms/bons/elevator_new/elevator_new_deal_bonus_v2_0_examination.php
new file mode 100644
index 00000000..771b791b
--- /dev/null
+++ b/wms/bons/elevator_new/elevator_new_deal_bonus_v2_0_examination.php
@@ -0,0 +1,116 @@
+$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "$bonus_array"=>$bonus_array #所有獎金水庫
+ ];
+
+*/
+
+
+require_once("elevator_new_deal_bonus_v2_0.php");
+
+#$ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $sales_id, $region_manger_id
+
+#獎金測試
+$examination_array = [
+ #錯誤版本
+ ["1.0","strategy_customer","passenger",1000000,1000000,"M0001", "M0003"],
+ #戰略客戶(strategy_customer)
+ ["2.0","strategy_customer","passenger",1000000,1000000,"M0001", "M0003"], #戰略客戶、客梯、銷售點數100%
+ ["2.0","strategy_customer","passenger",1000000,900000,"M0001", "M0003"], #戰略客戶、客梯、銷售點數90%
+ ["2.0","strategy_customer","passenger",1000000,750000,"M0001", "M0003"], #戰略客戶、客梯、銷售點數75%
+ ["2.0","strategy_customer","passenger",1000000,600000,"M0001", "M0003"], #戰略客戶、客梯、銷售點數60%
+ ["2.0","strategy_customer","cargo",1000000,1000000,"M0001", "M0003"], #戰略客戶、貨梯、銷售點數100%
+ ["2.0","strategy_customer","cargo",1000000,900000,"M0001", "M0003"], #戰略客戶、貨梯、銷售點數90%
+ ["2.0","strategy_customer","cargo",1000000,750000,"M0001", "M0003"], #戰略客戶、貨梯、銷售點數75%
+ ["2.0","strategy_customer","cargo",1000000,600000,"M0001", "M0003"], #戰略客戶、貨梯、銷售點數60%
+ ["2.0","strategy_customer","dumbwaiter",1000000,1000000,"M0001", "M0003"], #戰略客戶、小電梯、銷售點數100%
+ ["2.0","strategy_customer","dumbwaiter",1000000,900000,"M0001", "M0003"], #戰略客戶、小電梯、銷售點數90%
+ ["2.0","strategy_customer","dumbwaiter",1000000,720000,"M0001", "M0003"], #戰略客戶、小電梯、銷售點數75%
+ ["2.0","strategy_customer","dumbwaiter",1000000,600000,"M0001", "M0003"], #戰略客戶、小電梯、銷售點數60%
+ ["2.0","strategy_customer","flatbase",1000000,1000000,"M0001", "M0003"], #戰略客戶、平台梯、銷售點數100%
+ ["2.0","strategy_customer","flatbase",1000000,900000,"M0001", "M0003"], #戰略客戶、平台梯、銷售點數90%
+ ["2.0","strategy_customer","flatbase",1000000,720000,"M0001", "M0003"], #戰略客戶、平台梯、銷售點數75%
+ ["2.0","strategy_customer","flatbase",1000000,600000,"M0001", "M0003"], #戰略客戶、平台梯、銷售點數60%
+ ["2.0","strategy_customer","positive_drive",1000000,1000000,"M0001", "M0003"], #戰略客戶、強驅、銷售點數100%
+ ["2.0","strategy_customer","positive_drive",1000000,900000,"M0001", "M0003"], #戰略客戶、強驅、銷售點數90%
+ ["2.0","strategy_customer","positive_drive",1000000,720000,"M0001", "M0003"], #戰略客戶、強驅、銷售點數75%
+ ["2.0","strategy_customer","positive_drive",1000000,600000,"M0001", "M0003"], #戰略客戶、強驅、銷售點數60%
+
+ #一般客戶(general_customer)
+ ["2.0","general_customer","passenger",1000000,1000000,"M0001", "M0003"], #一般客戶、客梯、銷售點數100%
+ ["2.0","general_customer","passenger",1000000,900000,"M0001", "M0003"], #一般客戶、客梯、銷售點數90%
+ ["2.0","general_customer","passenger",1000000,750000,"M0001", "M0003"], #一般客戶、客梯、銷售點數75%
+ ["2.0","general_customer","passenger",1000000,600000,"M0001", "M0003"], #一般客戶、客梯、銷售點數60%
+ ["2.0","general_customer","cargo",1000000,1000000,"M0001", "M0003"], #一般客戶、貨梯、銷售點數100%
+ ["2.0","general_customer","cargo",1000000,900000,"M0001", "M0003"], #一般客戶、貨梯、銷售點數90%
+ ["2.0","general_customer","cargo",1000000,750000,"M0001", "M0003"], #一般客戶、貨梯、銷售點數75%
+ ["2.0","general_customer","cargo",1000000,600000,"M0001", "M0003"], #一般客戶、貨梯、銷售點數60%
+ ["2.0","general_customer","dumbwaiter",1000000,1000000,"M0001", "M0003"], #一般客戶、小電梯、銷售點數100%
+ ["2.0","general_customer","dumbwaiter",1000000,900000,"M0001", "M0003"], #一般客戶、小電梯、銷售點數90%
+ ["2.0","general_customer","dumbwaiter",1000000,720000,"M0001", "M0003"], #一般客戶、小電梯、銷售點數75%
+ ["2.0","general_customer","dumbwaiter",1000000,600000,"M0001", "M0003"], #一般客戶、小電梯、銷售點數60%
+ ["2.0","general_customer","flatbase",1000000,1000000,"M0001", "M0003"], #一般客戶、平台梯、銷售點數100%
+ ["2.0","general_customer","flatbase",1000000,900000,"M0001", "M0003"], #一般客戶、平台梯、銷售點數90%
+ ["2.0","general_customer","flatbase",1000000,720000,"M0001", "M0003"], #一般客戶、平台梯、銷售點數75%
+ ["2.0","general_customer","flatbase",1000000,600000,"M0001", "M0003"], #一般客戶、平台梯、銷售點數60%
+ ["2.0","general_customer","positive_drive",1000000,1000000,"M0001", "M0003"], #一般客戶、強驅、銷售點數100%
+ ["2.0","general_customer","positive_drive",1000000,900000,"M0001", "M0003"], #一般客戶、強驅、銷售點數90%
+ ["2.0","general_customer","positive_drive",1000000,720000,"M0001", "M0003"], #一般客戶、強驅、銷售點數75%
+ ["2.0","general_customer","positive_drive",1000000,600000,"M0001", "M0003"] #一般客戶、強驅、銷售點數60%
+];
+
+
+
+for($i = 0; $i";
+ echo "計算結果:" . $result["result_status"] . "
";
+ echo "輸入參數:" . $examination_array[$i][1] . " " . $examination_array[$i][2] . " " . $examination_array[$i][3] . " " . $examination_array[$i][4] . " "
+ . $examination_array[$i][5] . " " . $examination_array[$i][6] . "
";
+ for($j = 0; $j";
+ };
+ echo "-------------------------" . "
";
+
+};
+
+
+?>
diff --git a/wms/bons/maintainance_contract_payment_status.php b/wms/bons/maintainance_contract_payment_status.php
new file mode 100644
index 00000000..ed76f046
--- /dev/null
+++ b/wms/bons/maintainance_contract_payment_status.php
@@ -0,0 +1,399 @@
+query($sql);
+
+function getContractnoDetails($link, $user_id, $contractno = null)
+{
+ $sql = "
+ SELECT
+ c.contractno
+ FROM contract AS c
+ LEFT JOIN con_maintance_examine_apply AS cmea
+ ON c.contractno = cmea.vol_no
+ WHERE 1 = 1
+ AND cmea.salesman IN (" . getAccountids($link, $user_id) . ")
+ ";
+ if (!empty($contractno)) {
+ $sql .= "
+ AND c.contractno = '$contractno'
+ ";
+ }
+ $result = mysqli_query($link, $sql);
+ $data = [];
+ foreach ($result as $row) {
+ array_push($data, $row['contractno']);
+ }
+ return "'" . implode("','", $data) . "'";
+}
+
+function getSalesmanNo($link, $contractno)
+{
+ $sql = "
+ SELECT
+ cmea.salesman
+ FROM contract AS c
+ LEFT JOIN con_maintance_examine_apply AS cmea
+ ON c.contractno = cmea.vol_no
+ WHERE 1 = 1
+ AND c.contractno IN ('$contractno')
+ ";
+ $result = mysqli_query($link, $sql);
+ $data = [];
+ foreach ($result as $row)
+ return $row['salesman'];
+ return "";
+}
+function getSalesmanName($link, $contractno)
+{
+ $sql = "
+ SELECT
+ a.name
+ FROM contract AS c
+ LEFT JOIN con_maintance_examine_apply AS cmea
+ ON c.contractno = cmea.vol_no
+ LEFT JOIN account AS a
+ ON cmea.salesman = a.accountid
+ WHERE 1 = 1
+ AND c.contractno IN ('$contractno')
+ ";
+ $result = mysqli_query($link, $sql);
+ $data = [];
+ foreach ($result as $row)
+ return $row['name'];
+ return "";
+}
+
+function getAccountids($link, $user_id)
+{
+ $sql = "
+ SELECT
+ accountid
+ FROM account
+ WHERE 1 = 1
+ AND (accountid = '$user_id'
+ OR accountid IN (
+ SELECT
+ accountid
+ FROM account
+ WHERE 1 = 1
+ AND manager = '$user_id'
+ AND accounttype IN ('B','E','M','W')
+ )
+ )
+ ";
+ $result = mysqli_query($link, $sql);
+ $data = [];
+ foreach ($result as $row) {
+ array_push($data, $row['accountid']);
+ }
+ return "'" . implode("','", $data) . "'";
+}
+
+function checkArCheckBillStatus($row)
+{
+ $CU_EstPayDate = $row['CU_EstPayDate'];
+ $BillNo2 = $row['BillNo2'];
+ if (substr($CU_EstPayDate, 0, 6) <= date("Ym")) {
+ if (empty($BillNo2)) {
+ return "未轉應收確認單";
+ } else {
+ return "已轉應收確認單";
+ }
+ } else {
+ return "時間未到";
+ }
+}
+
+function arSellInvoiceMaterial($row)
+{
+
+ $CU_EstPayDate = $row['CU_EstPayDate'];
+ $InvoiceName = $row['InvoiceName'];
+
+ if (substr($CU_EstPayDate, 0, 6) <= date("Ym")) {
+ if (empty($InvoiceName)) {
+ return "未開發票";
+ } else {
+ return "已開發票";
+ }
+ } else {
+ return "時間未到";
+ }
+}
+
+function checkArWriteOffBill($conn, $row)
+{
+ $BillNo = $row['BillNo2'];
+
+ $sql = "
+ SELECT
+ *
+ -- a.BillNo,
+ -- a.WriteOffBizPartnerId,
+ -- a.PayWriteOffOAmount,
+ -- b.FromBillDate AS ReceivedDate,
+ -- b.CurrWOFeeOAmt AS Fee,
+ -- c.OrderBillNo,
+ -- c.checkBillNo,
+ -- c.InvoiceNo,
+ -- c.BillDate AS CheckBillDate
+ FROM arWriteOffBill AS a
+ LEFT JOIN arWriteOffBillRec AS b ON a.BillNo=b.BillNo
+ LEFT JOIN
+ (SELECT temp1.*,arWriteOffBillDetail.* FROM arWriteOffBillDetail
+ LEFT JOIN
+ (SELECT
+ arCheckBill.BillNo AS checkBillNo, arCheckBill.BillDate,arCheckBillInvInfo.InvoiceNo
+ FROM arCheckBill
+ LEFT JOIN arCheckBillInvInfo
+ ON arCheckBill.InvoiceBillNo=arCheckBillInvInfo.InvoiceBillNo) AS temp1
+ ON temp1.checkBillNo = arWriteOffBillDetail.FromBillNo) AS c
+ ON a.BillNo=c.BillNo
+ WHERE c.checkBillNo = '$BillNo'
+ ";
+
+ $del = $conn->query($sql);
+ $i = 0;
+ foreach ($del as $row)
+ $i++;
+ if (empty($i)) {
+ return "未收款";
+ } else {
+ return "已收款";
+ }
+}
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 營業人員/契約人員 |
+ 合約號 |
+ 標示號 |
+ 電梯編號 |
+ 預計請款日 |
+ 催收次數 |
+ 應收申請單狀態 |
+ 請款金額(未轉應收) |
+ 請款金額(已轉應收) |
+ 應收申請單號 |
+ 發票狀態 |
+ 發票單標示號 |
+ 發票單號 |
+ 發票明細 |
+ 發票金額 |
+ 發票號碼 |
+ 核銷 |
+
+
+
+
+
+
+
+ ";
+ echo getSalesmanName($link, $row['BillNo']);
+ ?>
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+There is no record!";
+endif;
+
+#代表結束連線
+mysqli_close($link);
+
+include "footer.php";
+?>
\ No newline at end of file
diff --git a/wms/bons/maintance/maintenance_contract_bonus_v2_0.php b/wms/bons/maintance/maintenance_contract_bonus_v2_0.php
new file mode 100644
index 00000000..c2cadb3e
--- /dev/null
+++ b/wms/bons/maintance/maintenance_contract_bonus_v2_0.php
@@ -0,0 +1,248 @@
+$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "$bonus_array"=>$bonus_array #所有獎金水庫
+ ];
+
+*/
+
+
+
+function maintenance_contract_bonus_v2_0($ver, $contract_type, $contract_years, $discount, $fee_per_st, $commission_fee, $receivable_date_due, $sales_id, $region_manger_id, $regular_contract_manger_id){
+ $bonus_array = [];
+ if ($ver == "2.0"){
+
+ #契約總類($contract_type):新簽約(new)、免保轉有費(free_to_charge)、續簽約(原價或僅契約金額異動)(renew_priceissue)
+ switch ($contract_type){
+ case "new":
+ #契約員獎金($sales_bonus)
+ switch ($fee_per_st) {
+ case ($fee_per_st <= 3000):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.6;
+ break;
+ case ($fee_per_st >= 3001 and $fee_per_st <= 3499):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.7;
+ break;
+ case ($fee_per_st >= 3500 and $fee_per_st <= 3999):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.8;
+ break;
+ case ($fee_per_st >= 4000):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.9;
+ break;
+ };
+ #地區經理經理獎金($region_manager_bonus)
+ $region_manager_bonus = 170;
+ #專任契約經理獎金($regular_contract_manger_bonus)
+ $regular_contract_manger_bonus = 300;
+ break;
+
+ case "free_to_charge":
+ switch ($fee_per_st) {
+ case ($fee_per_st <= 3000):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.3;
+ break;
+ case ($fee_per_st >= 3001 and $fee_per_st <= 3499):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.35;
+ break;
+ case ($fee_per_st >= 3500 and $fee_per_st <= 3999):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.4;
+ break;
+ case ($fee_per_st >= 4000):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.5;
+ break;
+ };
+ #地區經理經理獎金($region_manager_bonus)
+ $region_manager_bonus = 100;
+ #專任契約經理獎金($regular_contract_manger_bonus)
+ $regular_contract_manger_bonus = 100;
+ break;
+
+ case "renew_priceissue":
+ switch ($fee_per_st) {
+ case ($fee_per_st <= 3000):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.25;
+ break;
+ case ($fee_per_st >= 3001 and $fee_per_st <= 3499):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.3;
+ break;
+ case ($fee_per_st >= 3500 and $fee_per_st <= 3999):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.35;
+ break;
+ case ($fee_per_st >= 4000):
+ $sales_bonus = ($fee_per_st - $commission_fee) * 0.4;
+ break;
+ };
+ #地區經理經理獎金($region_manager_bonus)
+ $region_manager_bonus = 100;
+ #專任契約經理獎金($regular_contract_manger_bonus)
+ $regular_contract_manger_bonus = 100;
+ break;
+ };
+
+ #合約折扣率($discount):大於80%以上(含)(above_80)、60-79%(含)以上(60_to_79)、折扣率59% (含)以下(below_59)
+ switch ($discount) {
+ case ($discount < 0.6):
+ $sales_bonus = $sales_bonus * 0.7;
+ break;
+ case ($discount >= 0.6 and $discount < 0.8):
+ $sales_bonus = $sales_bonus * 0.8;
+ break;
+ case ($discount >= 0.8):
+ $sales_bonus = $sales_bonus * 1.0;
+ break;
+ };
+
+ #簽約年數($contract_years):1年(1),超過1年(above)
+
+ switch ($contract_years){
+ case $contract_years == "one":
+ #契約員獎金
+ array_push($bonus_array,[
+ "bonus_type" => "契約員獎金", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +1 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ #地區經理經理獎金
+ array_push($bonus_array,[
+ "bonus_type" => "地區經理獎金", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +1 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ #專任契約經理獎金
+ array_push($bonus_array,[
+ "bonus_type" => "專任契約經理獎金", #獎金名稱
+ "bonus_receiver" => $regular_contract_manger_id, #發放人員
+ "bonus_amount" => round($regular_contract_manger_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +1 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ break;
+
+ case $contract_years == "above_two":
+ /*** 以下第1年獎金 ***/
+ #契約員獎金
+ array_push($bonus_array,[
+ "bonus_type" => "契約員獎金", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +1 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ #地區經理經理獎金
+ array_push($bonus_array,[
+ "bonus_type" => "地區經理獎金", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +1 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ #專任契約經理獎金
+ array_push($bonus_array,[
+ "bonus_type" => "專任契約經理獎金", #獎金名稱
+ "bonus_receiver" => $regular_contract_manger_id, #發放人員
+ "bonus_amount" => round($regular_contract_manger_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +1 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+ /*** 以上第1年獎金 ***/
+
+ /*** 以下第2年獎金 ***/
+ #第2年契約員獎金
+ array_push($bonus_array,[
+ "bonus_type" => "契約員獎金", #獎金名稱
+ "bonus_receiver" => $sales_id, #發放人員
+ "bonus_amount" => round($sales_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +13 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ #第2年地區經理經理獎金
+ array_push($bonus_array,[
+ "bonus_type" => "地區經理獎金", #獎金名稱
+ "bonus_receiver" => $region_manger_id, #發放人員
+ "bonus_amount" => round($region_manager_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +13 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+
+ #第2年專任契約經理獎金
+ array_push($bonus_array,[
+ "bonus_type" => "專任契約經理獎金", #獎金名稱
+ "bonus_receiver" => $regular_contract_manger_id, #發放人員
+ "bonus_amount" => round($regular_contract_manger_bonus), #金額
+ "pay_day_due" => date("Y-m-d",strtotime("$receivable_date_due +13 months")), #預計發放時間
+ "bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定
+ ]);
+ /*** 以上第2年獎金 ***/
+
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ break;
+ }
+ }else{
+ array_push($bonus_array,[
+ "bonus_type" => "error", #獎金名稱
+ "bonus_receiver" => "error", #發放人員
+ "bonus_amount" => 0, #金額
+ "pay_day_due" => "9999-1-1", #預計發放時間
+ "bonus_regulation" => "error" #發放規定
+ ]);
+ $result_array = [
+ "ver"=>$ver, #獎金版本
+ "result_status"=>"error", #計算結果
+ "bonus_array"=>$bonus_array #獎金水庫
+ ];
+ }
+
+ return $result_array;
+};
+
+
+?>
diff --git a/wms/bons/maintance/maintenance_contract_bonus_v2_0_examination.php b/wms/bons/maintance/maintenance_contract_bonus_v2_0_examination.php
new file mode 100644
index 00000000..de316b53
--- /dev/null
+++ b/wms/bons/maintance/maintenance_contract_bonus_v2_0_examination.php
@@ -0,0 +1,156 @@
+$ver, #獎金版本
+ "result_status"=>"success", #計算結果
+ "$bonus_array"=>$bonus_array #所有獎金水庫
+ ];
+
+*/
+
+
+require_once("maintenance_contract_bonus_v2_0.php");
+
+
+
+#獎金測試
+$examination_array = [
+ #錯誤版本
+ ["1.0","new","one",0.8,4000,333, "2014-07-01", "M0001", "M0002", "M0003"],
+ #新簽約
+ ["2.0","new","one",0.8,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3000元
+ ["2.0","new","one",0.8,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3200元
+ ["2.0","new","one",0.8,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3500元
+ ["2.0","new","one",0.8,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、4000元
+ ["2.0","new","one",0.7,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3000元
+ ["2.0","new","one",0.7,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3200元
+ ["2.0","new","one",0.7,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3500元
+ ["2.0","new","one",0.7,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、4000元
+ ["2.0","new","one",0.6,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3000元
+ ["2.0","new","one",0.6,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3200元
+ ["2.0","new","one",0.6,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3500元
+ ["2.0","new","one",0.6,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、4000元
+ ["2.0","new","above_two",0.8,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3000元
+ ["2.0","new","above_two",0.8,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3200元
+ ["2.0","new","above_two",0.8,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3500元
+ ["2.0","new","above_two",0.8,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、4000元
+ ["2.0","new","above_two",0.7,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3000元
+ ["2.0","new","above_two",0.7,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3200元
+ ["2.0","new","above_two",0.7,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3500元
+ ["2.0","new","above_two",0.7,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、4000元
+ ["2.0","new","above_two",0.6,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3000元
+ ["2.0","new","above_two",0.6,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3200元
+ ["2.0","new","above_two",0.6,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3500元
+ ["2.0","new","above_two",0.6,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、4000元
+
+ #免保轉有費(free_to_charge)
+ ["2.0","free_to_charge","one",0.8,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3000元
+ ["2.0","free_to_charge","one",0.8,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3200元
+ ["2.0","free_to_charge","one",0.8,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3500元
+ ["2.0","free_to_charge","one",0.8,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、4000元
+ ["2.0","free_to_charge","one",0.7,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3000元
+ ["2.0","free_to_charge","one",0.7,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3200元
+ ["2.0","free_to_charge","one",0.7,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3500元
+ ["2.0","free_to_charge","one",0.7,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、4000元
+ ["2.0","free_to_charge","one",0.6,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3000元
+ ["2.0","free_to_charge","one",0.6,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3200元
+ ["2.0","free_to_charge","one",0.6,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3500元
+ ["2.0","free_to_charge","one",0.6,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、4000元
+ ["2.0","free_to_charge","above_two",0.8,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3000元
+ ["2.0","free_to_charge","above_two",0.8,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3200元
+ ["2.0","free_to_charge","above_two",0.8,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3500元
+ ["2.0","free_to_charge","above_two",0.8,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、4000元
+ ["2.0","free_to_charge","above_two",0.7,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3000元
+ ["2.0","free_to_charge","above_two",0.7,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3200元
+ ["2.0","free_to_charge","above_two",0.7,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3500元
+ ["2.0","free_to_charge","above_two",0.7,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、4000元
+ ["2.0","free_to_charge","above_two",0.6,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3000元
+ ["2.0","free_to_charge","above_two",0.6,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3200元
+ ["2.0","free_to_charge","above_two",0.6,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3500元
+ ["2.0","free_to_charge","above_two",0.6,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、4000元
+
+ #續簽約(原價或僅契約金額異動)(renew_priceissue)
+ ["2.0","renew_priceissue","one",0.8,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3000元
+ ["2.0","renew_priceissue","one",0.8,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3200元
+ ["2.0","renew_priceissue","one",0.8,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、3500元
+ ["2.0","renew_priceissue","one",0.8,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.8、4000元
+ ["2.0","renew_priceissue","one",0.7,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3000元
+ ["2.0","renew_priceissue","one",0.7,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3200元
+ ["2.0","renew_priceissue","one",0.7,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、3500元
+ ["2.0","renew_priceissue","one",0.7,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.7、4000元
+ ["2.0","renew_priceissue","one",0.6,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3000元
+ ["2.0","renew_priceissue","one",0.6,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3200元
+ ["2.0","renew_priceissue","one",0.6,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、3500元
+ ["2.0","renew_priceissue","one",0.6,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、1年、折扣率0.6、4000元
+ ["2.0","renew_priceissue","above_two",0.8,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3000元
+ ["2.0","renew_priceissue","above_two",0.8,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3200元
+ ["2.0","renew_priceissue","above_two",0.8,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、3500元
+ ["2.0","renew_priceissue","above_two",0.8,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.8、4000元
+ ["2.0","renew_priceissue","above_two",0.7,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3000元
+ ["2.0","renew_priceissue","above_two",0.7,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3200元
+ ["2.0","renew_priceissue","above_two",0.7,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、3500元
+ ["2.0","renew_priceissue","above_two",0.7,4000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.7、4000元
+ ["2.0","renew_priceissue","above_two",0.6,3000,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3000元
+ ["2.0","renew_priceissue","above_two",0.6,3200,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3200元
+ ["2.0","renew_priceissue","above_two",0.6,3500,333,"2014-07-01", "M0001", "M0002", "M0003"], #新簽約、2年以上、折扣率0.6、3500元
+ ["2.0","renew_priceissue","above_two",0.6,4000,333,"2014-07-01", "M0001", "M0002", "M0003"] #新簽約、2年以上、折扣率0.6、4000元
+];
+
+
+
+for($i = 0; $i";
+ echo "計算結果:" . $result["result_status"] . "
";
+ echo "輸入參數:" . $examination_array[$i][1] . " " . $examination_array[$i][2] . " " . $examination_array[$i][3] . " " . $examination_array[$i][4] . " "
+ . $examination_array[$i][5] . " " . $examination_array[$i][6] . " " . $examination_array[$i][7]. " " . $examination_array[$i][8] . "
";
+ for($j = 0; $j";
+ };
+ echo "-------------------------" . "
";
+
+};
+
+
+?>
diff --git a/wms/contract-repair/contract-repair-input.php b/wms/contract-repair/contract-repair-input.php
index 67c069e4..d85fa1bd 100644
--- a/wms/contract-repair/contract-repair-input.php
+++ b/wms/contract-repair/contract-repair-input.php
@@ -48,7 +48,6 @@ $contract_stauts = ["合約簽回", "採購", "工程發包", "工程中", "修
報價單編號 |
-
|
|
-
+
|
diff --git a/wms/contract-repair/js/alpine.js b/wms/contract-repair/js/alpine.js
index 8877b11b..326d6908 100644
--- a/wms/contract-repair/js/alpine.js
+++ b/wms/contract-repair/js/alpine.js
@@ -872,4 +872,86 @@ const contract_edit = () => {
}
}
+}
+
+const bonsIndex = () => {
+ return {
+ data: {
+ contract_no: 'Q23080067',
+ client_type: '',
+ facility_no: '',
+ bons_verson: '',
+ receiver: '',
+ maintain_month: '',
+ maintain_price_toal: ''
+ },
+ step: 1,
+ isLoading: false,
+ fail_arr: [],
+ nextStepFn() {
+ if (this.step == 1) {
+ if (this.data.contract_no == '') return alert('請輸入合約號');
+ this.isLoading = true;
+ this.getContractData();
+ } else if (this.step == 2) {
+ if (!this.data.disabled) {
+ this.calBons();
+ }
+ }
+ this.step = 3;
+
+ },
+ nextStepKeyupFn(e) {
+ if (e.keyCode !== 13) return;
+ if (this.step == 1) {
+ if (this.data.contract_no == '') return alert('請輸入合約號');
+ this.isLoading = true;
+ this.getContractData();
+ } else if (this.step == 2) {
+ this.step = 3; s
+ }
+ },
+ getContractData() {
+ axios.get('./api/get.php?contract_no=' + this.data.contract_no).then(res => {
+ if (!res.data) {
+ this.step = 2;
+ this.isLoading = false;
+ return;
+ }
+ if (!this.customize) {
+ this.data.contract_no = res.data.BillNo;
+ this.data.facility_no = res.data.facility;
+ this.data.bons_verson = res.data.bons_verson;
+ this.data.receiver = res.data.personId;
+ this.data.maintain_price_toal = res.data.amount;
+ this.data.bons_verson = 2;
+ this.data.maintain_month = res.data.maintain_month;
+ }
+ this.step = 2;
+ this.isLoading = false;
+ }).catch(err => {
+
+ })
+ },
+ preStepFn() {
+ this.step = 1
+ if (this.step == 2) {
+
+ }
+ },
+ save() {
+
+ },
+ calBons() {
+ console.log('123');
+ },
+ errorFn() {
+ let msg = '';
+ for (let i = 0; i < this.fail_arr.length; i++) {
+ msg += this.fail_arr[i] + '、';
+ }
+ alert(msg);
+ },
+
+ }
}
\ No newline at end of file
diff --git a/wms/contract/api/T8salIncomeApply.php b/wms/contract/api/T8salIncomeApply.php
index 96246a7c..0a3d7698 100644
--- a/wms/contract/api/T8salIncomeApply.php
+++ b/wms/contract/api/T8salIncomeApply.php
@@ -29,9 +29,7 @@ function T8API($data)
echo 'API傳入失敗,' . $result['ErrorMsg'];
return $result;
} else {
- // echo '';
// print_r($result);
- // echo '
';
return $result;
}
}
diff --git a/wms/contract/api/postContractData.php b/wms/contract/api/postContractData.php
index d9b9f8b8..2a9e082c 100644
--- a/wms/contract/api/postContractData.php
+++ b/wms/contract/api/postContractData.php
@@ -459,12 +459,12 @@ function T8insert($data, $facilityno)
// print_r($elevators['maintainance']);
// echo '';
foreach ($elevators as $index => $elevator) {
- $type[] = $elevator['maintainance'];
- if ($type[$index] == 'A') {
+ $maintainance_type = $elevator['maintainance'];
+ if ($maintainance_type == 'A') {
$type = 'C3';
- } else if ($type[$index] == 'B') {
+ } else if ($maintainance_type == 'B') {
$type = 'C4';
- } else if ($type[$index] == 'C') {
+ } else if ($maintainance_type == 'C') {
$type = 'C5';
}
}
@@ -487,7 +487,7 @@ function T8insert($data, $facilityno)
$stmt->bindParam(':CreatorId', $user_id);
$stmt->execute();
}
-
+ $row = 0;
// // 新增電梯數
foreach ($elevators as $index => $elevator) {
// echo '';
@@ -535,23 +535,24 @@ function T8insert($data, $facilityno)
// 依每台電梯去加入各個的付款項
for ($i = 0; $i < $IncomeId[$payType]; $i++) {
+ $row++;
// 計算分期款的收款月份
$paymonth = $i * $SQuantity;
- $payday = date('Y-m-d', strtotime("$date_1 + $paymonth months"));
-
+ $countDay = date('Y-m-d', strtotime("$date_1 + $paymonth months"));
+ $payDay = str_replace('-', '', $countDay);
$rows_data = [
"BillNo" => "$contractno",
"IncomeId" => "$payType",
"TaxId" => "ST005",
- "RowCode" => $i + 1,
- "RowNo" => $i + 1,
+ "RowCode" => $row,
+ "RowNo" => $row,
"ItemType" => 1,
"SPrice" => $elevator['sold_price'],
"SQuantity" => $SQuantity,
"ProjectId" => "$contractno",
"FromSourceTag" => 0,
"CU_MaterialId" => "$facilityno[$index]",
- "CU_EstPayDate" => "$payday"
+ "CU_EstPayDate" => "$payDay"
];
$salIncomeApplyDetail_rows[] = $rows_data;
}
@@ -594,7 +595,8 @@ function T8insert($data, $facilityno)
// 呼叫 API
$result = T8API($API_body);
- if ($result['Status'] == 'Error') {
+ if ($result['Status'] == 'Error' || $result['Status'] == 'Fails') {
+
http_response_code(404);
die('Error!:' . $result['ErrorMsg']);
}
diff --git a/wms/contract/api/testT8API.php b/wms/contract/api/testT8API.php
index 3718df5d..e7a85071 100644
--- a/wms/contract/api/testT8API.php
+++ b/wms/contract/api/testT8API.php
@@ -2,13 +2,18 @@
$date = Date('Y-m-d');
$date1 = Date('Y-m-d', strtotime("$date +1 months"));
-
-$a = 1;
-$b = 12 / $a;
-for ($i = 0; $i < $b; $i++) {
- $c = $i * $a;
- $date1 = Date('Y-m-d', strtotime("$date + $c months"));
- echo '';
- print_r($date1);
- echo '
';
+// $countDay = date('Ymd', strtotime("$date1 + 1 months"));
+// echo '';
+// print_r($countDay);
+// echo '
';
+// exit();
+$a = 0;
+// $b = 24 / $a;
+for ($i = 0; $i < 2; $i++) {
+ for ($j = 0; $j < 12; $j++) {
+ $a++;
+ echo '';
+ print_r($a);
+ echo '
';
+ }
}
diff --git a/wms/contract/connt8.php b/wms/contract/connt8.php
index 59f2b247..2a40e459 100644
--- a/wms/contract/connt8.php
+++ b/wms/contract/connt8.php
@@ -4,7 +4,7 @@ include "/Users/LO_2342/Desktop/httpdocs/wms/fun_global.php";
// phpinfo();
// exit();
try {
- $connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8TEST", "M0225", "IFFBU1E=");
+ $connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8masada", "M0225", "IFFBU1E=");
if ($connT8) {
$connT8->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
diff --git a/wms/contract/connt8_test.php b/wms/contract/connt8_test.php
new file mode 100644
index 00000000..a13f85d2
--- /dev/null
+++ b/wms/contract/connt8_test.php
@@ -0,0 +1,15 @@
+setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ }
+} catch (PDOException $e) {
+ // echo "fail";
+ // echo $e->getMessage();
+ die("ERROR!!!: " . $e->getMessage());
+}
diff --git a/wms/contract/js/alpine.js b/wms/contract/js/alpine.js
index d13d8389..35f81f58 100644
--- a/wms/contract/js/alpine.js
+++ b/wms/contract/js/alpine.js
@@ -734,7 +734,7 @@ const contractDownload = () => {
this.standardData.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。'
this.onstandardViewData.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。'
},
- errorFn(){
+ errorFn() {
alert("資料有誤,請先填完整資料進行保存")
},
sendBuyInputFn() {
diff --git a/wms/mkt/pricereview-create.php b/wms/mkt/pricereview-create.php
index cc95eadf..ea0033f5 100644
--- a/wms/mkt/pricereview-create.php
+++ b/wms/mkt/pricereview-create.php
@@ -754,7 +754,7 @@ $option_str .= "";
$("#optionModal").modal('show');
var jobj = $(this); // 父視窗
- $("#optionModal .modal-body td").unbind().click(function(){
+ $("#optionModal .modal-body td").unbind().click(function() {
var pobj = $(this).closest('td').parent();
selectOptionFn(pobj, jobj)
});
@@ -832,7 +832,7 @@ $option_str .= "";
jobj.closest('td').parent().find('td[name=Exclusions]').html(str);
});
} else {
- alert("請先新增OPTION");
+ alert("請先新增除外項目");
return false;
}
});
@@ -1198,7 +1198,7 @@ $option_str .= "";
return rv3 = false;
}
});
- if ((rv3 === false)) return rv3;
+ if ((rv3 === false)) return rv3;
var rv4 = true;
$("input[name='item_unit_price']").each(function() {
@@ -2486,7 +2486,7 @@ if($_SERVER["REQUEST_METHOD"] == "POST"){
X
-
+
@@ -2564,7 +2564,8 @@ include "../footer.php";
jobj.closest('td').parent().find('input[name=op_id]').val(pobj.find('td').eq(0).html());
$("#optionModal").modal('hide');
}
- function checkSubmit(){
+
+ function checkSubmit() {
const price_total = document.getElementById('price_total')
if (Number(price_total.value.replace(",", "")) > 0) {
diff --git a/wms/mkt/pricereview-edit.php b/wms/mkt/pricereview-edit.php
index d4361dbe..3868a44f 100644
--- a/wms/mkt/pricereview-edit.php
+++ b/wms/mkt/pricereview-edit.php
@@ -10,7 +10,7 @@ $row = mysqli_fetch_row($res);
if ($row[0] > 0) {
echo "";
exit;
}
@@ -117,12 +117,12 @@ foreach ($res as $data) {
if ($v3["optional"] == "1") $optional = "標";
elseif ($v3["optional"] == "2") $optional = "選";
$option_str .= "";
- $option_str .= "".$k2." | ";
- $option_str .= "".$v3["spec"]." | ";
- $option_str .= "".$v3["memo"]." | ";
- $option_str .= "".$optional." | ";
- $option_str .= "".$v3["unit"]." | ";
- $option_str .= "".number_format($v3["price"])." | ";
+ $option_str .= "" . $k2 . " | ";
+ $option_str .= "" . $v3["spec"] . " | ";
+ $option_str .= "" . $v3["memo"] . " | ";
+ $option_str .= "" . $optional . " | ";
+ $option_str .= "" . $v3["unit"] . " | ";
+ $option_str .= "" . number_format($v3["price"]) . " | ";
$option_str .= "
";
}
}
@@ -152,1290 +152,1495 @@ foreach ($res as $data) {
}
$option_str .= "";
?>
-
-
-
+
-
-
- - 「保存」:儲存價審單內容
- - 「提交」:儲存價審單內容並進行簽核作業
- - 檔案上傳:可上傳報價單或附表一
-
-
-
-
-
-
-
-
-
-
-
-
-
+ if ($("#pay_all_amount").val() != $("#price_total").val()) {
+ alert("【付款辦法】金額合計有誤!");
+ $("input[name=pay_scale]").eq(0).trigger("focus");
+ return false;
+ }
+ if ($(this).val() == "tosign") {
+ if (!confirm("是否確認提交?")) return false;
+ }
+
+ //console.log(itemNameArr);
+ //return false;
+ });
+ });
+
+
+
+ - 「保存」:儲存價審單內容
+ - 「提交」:儲存價審單內容並進行簽核作業
+ - 檔案上傳:可上傳報價單或附表一
+
+
+
+
+
-
-
-
-