diff --git a/wms/account-receivable-index-ing.php b/wms/account-receivable-index-ing.php
index fd59165e..69f1cd80 100644
--- a/wms/account-receivable-index-ing.php
+++ b/wms/account-receivable-index-ing.php
@@ -1,7 +1,4 @@
0) {
$column_str = "('$user_id'" . ",'";
$column_str .= implode("','", $follower);
@@ -99,20 +102,39 @@ if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) {
// $sql_received .= " OR PersonId IN $column_str)";
$sql_opening .= " OR person_id IN $column_str)";
$sql .= " OR salesid IN $column_str ORDER BY contractno";
+ $sql_contract_budget .= " OR PersonId IN $column_str ORDER BY BillNo, CU_MaterialId)";
} else {
$sql_contract .= ")";
// $sql_received .= ")";
$sql_opening .= ")";
$sql .= " ORDER BY contractno";
+ $sql_contract_budget .= ")";
};
-} else {
+}else{
$sql .= " ORDER BY contractno";
+ $sql_contract_budget .= "ORDER BY BillNo, CU_MaterialId";
}
$contract = $conn->query($sql_contract);
$received_array = $conn->query($sql_received);
$opening_data = mysqli_query($link, $sql_opening);
$invoice_data = $conn->query($sql_invoice);
+$contract_budget_data = $conn->query($sql_contract_budget);
+
+$contract_budget = array();
+foreach ($contract_budget_data as $cont) {
+ if(isset($contract_budget[$cont['BillNo']])){
+ $contract_budget[$cont['BillNo']]['total'] += $cont['OAmountWithTax'];
+ }else{
+ $contract_budget[$cont['BillNo']]['total'] = $cont['OAmountWithTax'];
+ }
+ if(isset($contract_budget[$cont['BillNo']][$cont['CU_MaterialId']])){
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']] += $cont['OAmountWithTax'];
+ }else{
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']] = $cont['OAmountWithTax'];
+ };
+}
+
// 合約收款階段內容分類
@@ -155,6 +177,7 @@ foreach ($contract as $cont) {
$arrayData[$BillNo]['sign']['max'] = $arrayData[$BillNo]['second']['max'] = $arrayData[$BillNo]['arrive']['max'] = $arrayData[$BillNo]['install']['max'] = $arrayData[$BillNo]['tryrun']['max'] = $arrayData[$BillNo]['check']['max'] = $arrayData[$BillNo]['delivery']['max'] = $arrayData[$BillNo]['final']['max'] = array();
$arrayData[$BillNo]['facilities'] = "";
$arrayData[$BillNo]['total_facility_num'] = $arrayData[$BillNo]['delivery_num'] = $arrayData[$BillNo]['check_num'] = $arrayData[$BillNo]['tryrun_num'] = $arrayData[$BillNo]['install_num'] = $arrayData[$BillNo]['arrive_num'] = $arrayData[$BillNo]['second_num'] = $arrayData[$BillNo]['sign_num'] = $arrayData[$BillNo]['receivable_budget'] = 0;
+ $arrayData[$BillNo]['total_facility_list']= $arrayData[$BillNo]['sign_list'] = $arrayData[$BillNo]['second_list'] = $arrayData[$BillNo]['arrive_list'] = $arrayData[$BillNo]['install_list'] = $arrayData[$BillNo]['tryrun_list'] = $arrayData[$BillNo]['check_list'] = $arrayData[$BillNo]['delivery_list'] = $arrayData[$BillNo]['final_list'] = [];
}
if (stristr($PayStage, '二次款') || (stristr($PayStage, '出貨前') && $PayStage != "寶佳出貨前30天") || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60') || stristr($PayStage, '寶佳出貨後10天')) {
$arrayData[$BillNo]['second'][0] = $PayStage;
@@ -340,7 +363,8 @@ foreach ($wipwhole_array as $wip) {
if ($arrayData[$wip['contractno']]['sign'][0] == "寶佳出貨前30天") {
$facility_status = "";
- // if ($arrayData[$wip['contractno']]['sign'][2])
+ array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
+ //-##############################################################################################################################################
$today = strtotime(date('Ymd'));
$contractday = strtotime($arrayData[$wip['contractno']]['sign'][2]);
$month = collect_month($contractday);
@@ -348,6 +372,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['sign'][2] = $arrayData[$wip['contractno']]['sign'][2];
if ($today > $contractday) {
$arrayData[$wip['contractno']]['sign_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['sign_list'], $wip['facilityno']);
$facility_status = $wip['facilityno'] . " (出貨前30天" . $arrayData[$wip['contractno']]['sign'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
//二次款
@@ -748,13 +773,17 @@ foreach ($wipwhole_array as $wip) {
}
}
}
+print_r($contract_budget['D23070082']);
+echo "
";
+exit();
+
// 計算每個合約的應收款、作番總數
$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) {
- $value['receivable_budget'] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']) + ($value['second'][1] * ($value['second_num'] / $value['total_facility_num'])) +
+ $value['receivable_budget'] = $value['sign'][1] * ($contract_budget[$value[10]]['total'] / $contract_budget[$value[10]]['total']) + ($value['second'][1] * ($value['second_num'] / $value['total_facility_num'])) +
($value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num'])) + ($value['install'][1] * ($value['install_num'] / $value['total_facility_num'])) +
($value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num'])) + ($value['check'][1] * ($value['check_num'] / $value['total_facility_num'])) +
(($value['delivery'][1] + $value['final'][1]) * ($value['delivery_num'] / $value['total_facility_num']));
@@ -971,6 +1000,327 @@ foreach ($arrayData as $key => $value) {
}
}
}
+
+
+$data = json_encode($excel_aray);
+$boga_data = json_encode($boga_array);
+$exclude_boga_data = json_encode($exclude_boga_array);
+$facility_data = json_encode($facility_array);
+$facility_boga_data = json_encode($facility_boga_array);
+$facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
+
+?>
+
+
+
合約號 | +部門 | +經理 | +營業員 | +客戶名稱 | +簽約款 | +應收簽約金額 | +簽約最小催收次數 | +簽約最大催收次數 | +二次款 | +應收二次金額 | +二次最小催收次數 | +二次最大催收次數 | +貨抵工地款 | +應收貨抵工地金額 | +貨抵工地最小催收次數 | +貨抵工地最大催收次數 | +安裝款 | +應收安裝金額 | +安裝最小催收次數 | +安裝最大催收次數 | +試車款 | +應收試車金額 | +試車最小催收次數 | +試車最大催收次數 | +官檢款 | +應收官檢金額 | +官檢最小催收次數 | +官檢最大催收次數 | +移交款 | +應收移交金額 | +移交最小催收次數 | +移交最大催收次數 | +尾款 | +應收尾款金額 | +尾款最小催收次數 | +尾款最大催收次數 | +合約總金額 | +目前應收 | +已開發票金額 | +已收金額 | + +收款狀態 | + +
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
= $key ?> | += $value[1] ?> | += $value[2] ?> | += $value[4] ?> | += $value[5] ?> | += number_format(round($value['sign'][1])) ?> | += isset($value['sign'][3]) ? number_format(round($value['sign'][3])) : '--' ?> | += isset($value['sign']['min']) ? $value['sign']['min'] : '--' ?> | += isset($value['sign']['max']) ? $value['sign']['max'] : '--' ?> | += isset($value['second'][1]) ? number_format(round($value['second'][1])) : '--' ?> | += isset($value['second'][3]) ? number_format(round($value['second'][3])) : '--' ?> | += isset($value['second']['min']) ? $value['second']['min'] : '--' ?> | += isset($value['second']['max']) ? $value['second']['max'] : '--' ?> | += isset($value['arrive'][1]) ? number_format(round($value['arrive'][1])) : '--' ?> | += isset($value['arrive'][3]) ? number_format(round($value['arrive'][3])) : '--' ?> | += isset($value['arrive']['min']) ? $value['arrive']['min'] : '--' ?> | += isset($value['arrive']['max']) ? $value['arrive']['max'] : '--' ?> | += isset($value['install'][1]) ? number_format(round($value['install'][1])) : '--' ?> | += isset($value['install'][3]) ? number_format(round($value['install'][3])) : '--' ?> | += isset($value['install']['min']) ? $value['install']['min'] : '--' ?> | += isset($value['install']['max']) ? $value['install']['max'] : '--' ?> | += isset($value['tryrun'][1]) ? number_format(round($value['tryrun'][1])) : '--' ?> | += isset($value['tryrun'][3]) ? number_format(round($value['tryrun'][3])) : '--' ?> | += isset($value['tryrun']['min']) ? $value['tryrun']['min'] : '--' ?> | += isset($value['tryrun']['max']) ? $value['tryrun']['max'] : '--' ?> | += isset($value['check'][1]) ? number_format(round($value['check'][1])) : '--' ?> | += isset($value['check'][3]) ? number_format(round($value['check'][3])) : '--' ?> | += isset($value['check']['min']) ? $value['check']['min'] : '--' ?> | += isset($value['check']['max']) ? $value['check']['max'] : '--' ?> | += isset($value['delivery'][1]) ? number_format(round($value['delivery'][1])) : '--' ?> | += isset($value['delivery'][3]) ? number_format(round($value['delivery'][3])) : '--' ?> | += isset($value['delivery']['min']) ? $value['delivery']['min'] : '--' ?> | += isset($value['delivery']['max']) ? $value['delivery']['max'] : '--' ?> | += isset($value['final'][1]) ? number_format(round($value['final'][1])) : '--' ?> | += isset($value['final'][3]) ? number_format(round($value['final'][3])) : '--' ?> | += isset($value['final']['min']) ? $value['final']['min'] : '--' ?> | += isset($value['final']['max']) ? $value['final']['max'] : '--' ?> | += isset($value['total_budget']) ? number_format(round($value['total_budget'])) : '--' ?> | += isset($value['receivable_budget']) ? number_format(round($value['receivable_budget'])) : '--' ?> | += isset($value['invoice_budget']) ? number_format(round($value['invoice_budget'])) : '--' ?> | += isset($value['received_budget']) ? number_format(round($value['received_budget'])) : '--' ?> | += $value['facilities'] ?> | + +