diff --git a/wms/account-receivable-excel.php b/wms/account-receivable-excel.php
index ba579837..db419a5d 100644
--- a/wms/account-receivable-excel.php
+++ b/wms/account-receivable-excel.php
@@ -12,10 +12,10 @@ $array_data = array();
$Bill = json_decode(file_get_contents("php://input"), true);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
-
+// file_put_contents('account-receivable.txt', json_encode($Bill));
if ($type == 'facility') {
$colomnHeader = [
- '作番號','合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭',
+ '作番號', '合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭',
'訂金名稱', '訂金合約金額', '訂金應收日期', '訂金目前應收金額', '訂金已收金額', '訂金催收金額', '訂金催收次數',
'二次款名稱', '二次款合約金額', '二次款應收日期', '二次款目前應收金額', '二次款已收金額', '二次款催收金額', '二次款催收次數',
'貨抵工地款名稱', '貨抵工地款合約金額', '貨抵工地款應收日期', '貨抵工地款目前應收金額', '貨抵工地款已收金額', '貨抵工地款催收金額', '貨抵工地款催收次數',
@@ -29,8 +29,8 @@ if ($type == 'facility') {
$sheet->fromArray($colomnHeader, NULL, 'A1');
$rowIndex = 2;
foreach ($Bill as $key => $value) {
-
- $sheet->fromArray($value, NULL, 'A' . $rowIndex,true);
+
+ $sheet->fromArray($value, NULL, 'A' . $rowIndex, true);
$column = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ',
@@ -48,33 +48,37 @@ if ($type == 'facility') {
} else {
$colomnHeader = [
'合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭',
- '訂金', '訂金目前應收', '訂金最大催收次數', '訂金最小催收次數',
- '二次款', '二次款目前應收', '二次款最大催收次數', '二次款最小催收次數',
- '貨抵工地款', '貨抵工地款目前應收', '貨抵工地款最小催收次數', '貨抵工地款最小催收次數',
- '安裝款', '安裝款目前應收', '安裝款最大催收次數', '安裝款最小催收次數',
- '試車款', '試車款目前應收', '試車款最大催收次數', '試車款最小催收次數',
- '官檢款', '官檢款目前應收', '官檢款最大催收次數', '官檢款最小催收次數',
- '交車款', '交車款目前應收', '交車款最大催收次數', '交車款最小催收次數',
- '尾款', '尾款目前應收', '尾款最大催收次數', '尾款最小催收次數',
+ '訂金', '訂金目前應收', '訂金已開票金額','訂金未開票金額', '訂金已收金額', '訂金催收金額', '訂金最大催收次數', '訂金最小催收次數',
+ '二次款', '二次款目前應收', '二次款已開票金額','二次款未開票金額', '二次款已收金額', '二次款催收金額', '二次款最大催收次數', '二次款最小催收次數',
+ '貨抵工地款', '貨抵工地款目前應收', '貨抵工地款已開票金額','貨抵工地款未開票金額', '貨抵工地款已收金額', '貨抵工地款催收金額', '貨抵工地款最大催收次數', '貨抵工地款最小催收次數',
+ '安裝款', '安裝款目前應收', '安裝款已開票金額','安裝款未開票金額', '安裝款已收金額', '安裝款催收金額', '安裝款最大催收次數', '安裝款最小催收次數',
+ '試車款', '試車款目前應收', '試車款已開票金額','試車款未開票金額', '試車款已收金額', '試車款催收金額', '試車款最大催收次數', '試車款最小催收次數',
+ '官檢款', '官檢款目前應收', '官檢款已開票金額','官檢款未開票金額', '官檢款已收金額', '官檢款催收金額', '官檢款最大催收次數', '官檢款最小催收次數',
+ '交車款', '交車款目前應收', '交車款已開票金額','交車款未開票金額', '交車款已收金額', '交車款催收金額', '交車款最大催收次數', '交車款最小催收次數',
+ '尾款', '尾款目前應收', '尾款已開票金額','尾款未開票金額', '尾款已收金額', '尾款催收金額', '尾款最大催收次數', '尾款最小催收次數',
'合約總金額', '目前應收', '已開發票金額', '已收金額', '作番總數', '作番狀態'
];
$sheet->fromArray($colomnHeader, NULL, 'A1');
$rowIndex = 2;
foreach ($Bill as $key => $value) {
- $sheet->fromArray($value, NULL, 'A' . $rowIndex);
+ $sheet->fromArray($value, NULL, 'A' . $rowIndex, true);
$column = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
- 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT'
+ 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ',
+ 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ',
+ 'CA'
];
foreach ($column as $col) {
- if ($col == 'AT') {
- $sheet->getStyle('AT' . $rowIndex)->getAlignment()->setWrapText(true);
+ if ($col == 'BZ') {
+ $sheet->getColumnDimension('BZ')->setWidth(40);
+ $sheet->getStyle('BZ')->getAlignment()->setWrapText(true);
} else {
$sheet->getColumnDimension($col)->setAutoSize(true);
}
}
+
$rowIndex++;
}
$writer = new Xlsx($spreadsheet);
diff --git a/wms/account-receivable-facility.xlsx b/wms/account-receivable-facility.xlsx
index 80c882a6..89c6100d 100644
Binary files a/wms/account-receivable-facility.xlsx and b/wms/account-receivable-facility.xlsx differ
diff --git a/wms/account-receivable-index-ing.php b/wms/account-receivable-index-ing.php
index 69f1cd80..c7d50eaa 100644
--- a/wms/account-receivable-index-ing.php
+++ b/wms/account-receivable-index-ing.php
@@ -93,7 +93,7 @@ if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) {
// $sql_received .= " AND (PersonId = '$user_id'";
$sql_opening .= " OR person_id = '$user_id'";
$sql .= " WHERE salesid = '$user_id'";
- $sql_contract_budget.= " AND (PersonId = '$user_id'";
+ $sql_contract_budget .= " AND (PersonId = '$user_id'";
if (count($follower) > 0) {
$column_str = "('$user_id'" . ",'";
$column_str .= implode("','", $follower);
@@ -110,7 +110,7 @@ if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) {
$sql .= " ORDER BY contractno";
$sql_contract_budget .= ")";
};
-}else{
+} else {
$sql .= " ORDER BY contractno";
$sql_contract_budget .= "ORDER BY BillNo, CU_MaterialId";
}
@@ -123,19 +123,37 @@ $contract_budget_data = $conn->query($sql_contract_budget);
$contract_budget = array();
foreach ($contract_budget_data as $cont) {
- if(isset($contract_budget[$cont['BillNo']])){
+ if (isset($contract_budget[$cont['BillNo']])) {
$contract_budget[$cont['BillNo']]['total'] += $cont['OAmountWithTax'];
- }else{
+ } else {
$contract_budget[$cont['BillNo']]['total'] = $cont['OAmountWithTax'];
}
- if(isset($contract_budget[$cont['BillNo']][$cont['CU_MaterialId']])){
+ 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'];
+ } else {
+ $contract_budget[$cont['BillNo']][$cont['CU_MaterialId']] = $cont['OAmountWithTax'];
};
}
-
+/* 計算比例
+@param $facility_list array
+@param $contract_no string
+@param $contract_budget array
+return float */
+function get_ratio($facility_list, $contract_no, $contract_budget)
+{
+ $ratio = 0;
+ if (empty($facility_list)) {
+ return 0;
+ } else {
+ foreach ($facility_list as $every) {
+ if (isset($contract_budget[$contract_no][$every]) && isset($contract_budget[$contract_no]['total'])) {
+ $ratio += $contract_budget[$contract_no][$every] / $contract_budget[$contract_no]['total'];
+ }
+ }
+ return $ratio;
+ }
+}
// 合約收款階段內容分類
$sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天');
@@ -177,7 +195,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'] = [];
+ $arrayData[$BillNo]['total_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;
@@ -364,7 +382,6 @@ foreach ($wipwhole_array as $wip) {
if ($arrayData[$wip['contractno']]['sign'][0] == "寶佳出貨前30天") {
$facility_status = "";
array_push($arrayData[$wip['contractno']]['total_list'], $wip['facilityno']);
- //-##############################################################################################################################################
$today = strtotime(date('Ymd'));
$contractday = strtotime($arrayData[$wip['contractno']]['sign'][2]);
$month = collect_month($contractday);
@@ -382,6 +399,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
if ($today > $contractday) {
$arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$facility_status = $wip['facilityno'] . " (出貨後10天" . $arrayData[$wip['contractno']]['second'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
//貨抵工地款
@@ -393,6 +411,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $contractday));
if ($today > $contractday) {
$arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['arrive'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (貨抵工地後90天" . $arrayData[$wip['contractno']]['arrive'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -405,6 +424,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $contractday));
if ($today > $contractday) {
$arrayData[$wip['contractno']]['tryrun_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['tryrun'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (試車後90天" . $arrayData[$wip['contractno']]['tryrun'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -417,6 +437,8 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $contractday));
if ($today > $contractday) {
$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']]['delivery'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (交車後270天" . $arrayData[$wip['contractno']]['delivery'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -434,6 +456,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facilities'] .= $facility_status;
} else {
$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));
@@ -447,10 +470,15 @@ foreach ($wipwhole_array as $wip) {
$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']);
@@ -458,6 +486,8 @@ foreach ($wipwhole_array as $wip) {
$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));
@@ -467,7 +497,10 @@ foreach ($wipwhole_array as $wip) {
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);
@@ -538,11 +571,17 @@ foreach ($wipwhole_array as $wip) {
$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'])));
@@ -619,10 +658,15 @@ foreach ($wipwhole_array as $wip) {
$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'])));
@@ -677,9 +721,13 @@ foreach ($wipwhole_array as $wip) {
$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);
@@ -726,8 +774,11 @@ foreach ($wipwhole_array as $wip) {
$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']);
@@ -756,9 +807,12 @@ foreach ($wipwhole_array as $wip) {
$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'] . "預計出貨日)
";
@@ -773,9 +827,29 @@ foreach ($wipwhole_array as $wip) {
}
}
}
-print_r($contract_budget['D23070082']);
-echo "
";
-exit();
+// 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."=========";
+// }
+// }
// 計算每個合約的應收款、作番總數
@@ -783,27 +857,36 @@ $today_date = new DateTime(date('Y-m-d', strtotime('-1 month', strtotime(date('Y
$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] * ($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']));
- $value['sign'][3] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']);
- $value['second'][3] = $value['second'][1] * ($value['second_num'] / $value['total_facility_num']);
- $value['arrive'][3] = $value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num']);
- $value['install'][3] = $value['install'][1] * ($value['install_num'] / $value['total_facility_num']);
- $value['tryrun'][3] = $value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num']);
- $value['check'][3] = $value['check'][1] * ($value['check_num'] / $value['total_facility_num']);
- $value['delivery'][3] = $value['delivery'][1] * ($value['delivery_num'] / $value['total_facility_num']);
- $value['final'][3] = $value['final'][1] * ($value['delivery_num'] / $value['total_facility_num']);
+ $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 催收次數
// 計算每台作番金額與各階段應收金額
foreach ($value['facility'] as &$val) {
-
foreach ($contractstage as $stage) {
if (isset($value[$stage][0]) && !empty($value[$stage][0])) {
$val[$stage][0] = $value[$stage][0];
- $val[$stage][1] = $value[$stage][1] / $value['total_facility_num'];
+ if (isset($contract_budget[$value[10]]['total']) && isset($contract_budget[$value[10]][$val['no']])) {
+ $ratio = $contract_budget[$value[10]][$val['no']] / $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];
@@ -882,6 +965,284 @@ foreach ($received_array as $received) {
}
}
+//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 4 已收金額 5 催收金額 6 已開發票金額 7 未開發票金額 min 最早應收月份 max 最晚應收月份
+foreach ($arrayData as $key => &$data) {
+ $tmp_data = $data['received_budget'];
+ $tmp_invoice = $data['invoice_budget'];
+
+ if ($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];
+ } else {
+ $data['sign'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['sign'][5] = $data['sign'][3] - $data['sign'][4];
+ } else {
+ $data['sign'][4] = 0;
+ $data['sign'][5] = $data['sign'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['second'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['second'][5] = $data['second'][3] - $data['second'][4];
+ } else {
+ $data['second'][4] = 0;
+ $data['second'][5] = $data['second'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['arrive'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['arrive'][5] = $data['arrive'][3] - $data['arrive'][4];
+ } else {
+ $data['arrive'][4] = 0;
+ $data['arrive'][5] = $data['arrive'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['install'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['install'][5] = $data['install'][3] - $data['install'][4];
+ } else {
+ $data['install'][4] = 0;
+ $data['install'][5] = $data['install'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['tryrun'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['tryrun'][5] = $data['tryrun'][3] - $data['tryrun'][4];
+ } else {
+ $data['tryrun'][4] = 0;
+ $data['tryrun'][5] = $data['tryrun'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['check'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['check'][5] = $data['check'][3] - $data['check'][4];
+ } else {
+ $data['check'][4] = 0;
+ $data['check'][5] = $data['check'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['delivery'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['delivery'][5] = $data['delivery'][3] - $data['delivery'][4];
+ } else {
+ $data['delivery'][4] = 0;
+ $data['delivery'][5] = $data['delivery'][3];
+ }
+ 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;
+ }
+ $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;
+ }
+
+ if ($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];
+ } else {
+ $data['final'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['final'][5] = $data['final'][3] - $data['final'][4];
+ } else {
+ $data['final'][4] = 0;
+ $data['final'][5] = $data['final'][3];
+ }
+ 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;
+ }
+}
//產生excel的array
$excel_aray = array();
@@ -891,6 +1252,7 @@ $facility_array = array();
$facility_boga_array = array();
$facility_exclude_boga_array = array();
foreach ($arrayData as $key => $value) {
+
$value['sign'][3] = (isset($value['sign'][3])) ? $value['sign'][3] : 0;
$value['second'][3] = (isset($value['second'][3])) ? $value['second'][3] : 0;
$value['arrive'][3] = (isset($value['arrive'][3])) ? $value['arrive'][3] : 0;
@@ -903,50 +1265,51 @@ foreach ($arrayData as $key => $value) {
foreach ($contractstage as $i) {
$value[$i]['max'] = (empty($value[$i]['max']) || is_null($value[$i]['max'])) ? 0 : $value[$i]['max'];
$value[$i]['min'] = (empty($value[$i]['min']) || is_null($value[$i]['min'])) ? 0 : $value[$i]['min'];
+ $value[$i][4] = (isset($value[$i][4])) ? $value[$i][4] : 0;
+ $value[$i][5] = (isset($value[$i][5])) ? $value[$i][5] : 0;
};
if ($value['sign'][0] == "寶佳出貨前30天") {
$boga_array[$key] = [
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
- $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'],
- $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'],
- $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'],
- $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'],
- $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'],
- $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'],
- $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'],
- $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'],
+ $value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'],
+ $value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'],
+ $value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'],
+ $value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'],
+ $value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'],
+ $value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'],
+ $value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'],
+ $value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'],
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
} else {
$exclude_boga_array[$key] = [
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
- $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'],
- $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'],
- $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'],
- $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'],
- $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'],
- $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'],
- $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'],
- $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'],
+ $value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'],
+ $value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'],
+ $value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'],
+ $value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'],
+ $value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'],
+ $value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'],
+ $value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'],
+ $value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'],
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
}
-
-
$excel_aray[$key] = [
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
- $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'],
- $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'],
- $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'],
- $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'],
- $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'],
- $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'],
- $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'],
- $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'],
+ $value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'],
+ $value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'],
+ $value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'],
+ $value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'],
+ $value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'],
+ $value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'],
+ $value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'],
+ $value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'],
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
+
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
foreach ($value['facility'] as $valkey => $val) {
@@ -1001,8 +1364,7 @@ foreach ($arrayData as $key => $value) {
}
}
-
-$data = json_encode($excel_aray);
+$total_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);
@@ -1060,7 +1422,7 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
-
+
@@ -1209,18 +1571,14 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
document.body.removeChild(link);
}
}
-
- // xhr.send(JSON.stringify({
- // Bill: = $data ?>
- // })
- // );
xhr.send(JSON.stringify({
- Bill: = $data ?>
+ Bill: = $total_data ?>
}));
}
function bogaData() {
+ console.log(= $boga_data ?>);
var xhr = new XMLHttpRequest();
var url = window.location.origin + "/wms/account-receivable-excel.php?type=boga&= $token_link ?>";
xhr.open('POST', url, true);
@@ -1249,12 +1607,10 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
if (content == 'AllData') {
var BillData = = $facility_data ?>;
var filename = "作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
- }
- else if(content == 'ExcludeData') {
+ } else if (content == 'ExcludeData') {
var BillData = = $facility_exclude_boga_data ?>;
var filename = "不含寶佳作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
- }
- else if(content == 'BogaData'){
+ } else if (content == 'BogaData') {
var BillData = = $facility_boga_data ?>;
var filename = "寶佳作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
}
@@ -1321,46 +1677,63 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
form.submit();
}
+
+ $value) {
- foreach($value['facility'] as $fakey => $facility) {
+ foreach ($value['facility'] as $fakey => $facility) {
foreach ($contractstage as $stage) {
switch ($stage) {
- case 'sign':$stageno = 0;break;
- case 'second':$stageno=1;break;
- case 'arrive':$stageno=2;break;
- case 'install':$stageno=3;break;
- case 'tryrun':$stageno=4;break;
- case 'check':$stageno=5;break;
- case 'delivery':$stageno=6;break;
- case 'final':$stageno=7;break;
+ case 'sign':
+ $stageno = 0;
+ break;
+ case 'second':
+ $stageno = 1;
+ break;
+ case 'arrive':
+ $stageno = 2;
+ break;
+ case 'install':
+ $stageno = 3;
+ break;
+ case 'tryrun':
+ $stageno = 4;
+ break;
+ case 'check':
+ $stageno = 5;
+ break;
+ case 'delivery':
+ $stageno = 6;
+ break;
+ case 'final':
+ $stageno = 7;
+ break;
}
if (isset($value[$stage]) && isset($value[$stage][0]) && !empty($value[$stage][0])) {
- if($value[$stage][3] >0){
+ if ($value[$stage][3] > 0) {
$stage3 = 1;
- }else{
+ } else {
$stage3 = 0;
}
$budget = $value[$stage][1];
$receivable_date = $value[$stage][2];
$table .= "INSERT INTO account_receivable (
- `contract_no`,
- `facility_no`,
- `stage`,
- `budget`,
- `receivable_date`,
- `receivable`) VALUES ('$key','$fakey',$stageno,$budget,$receivable_date,$stage3); \n";
+`contract_no`,
+`facility_no`,
+`stage`,
+`budget`,
+`receivable_date`,
+`receivable`) VALUES ('$key','$fakey',$stageno,$budget,$receivable_date,$stage3); \n";
}
}
}
-
}
$file_path = 'account_receivable_sql_file.sql';
diff --git a/wms/account-receivable-index.php b/wms/account-receivable-index.php
index 5cc3cb49..bf04bd39 100644
--- a/wms/account-receivable-index.php
+++ b/wms/account-receivable-index.php
@@ -39,6 +39,11 @@ LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo
LEFT JOIN comBusinessPartner AS c ON s.BizPartnerId=c.BizPartnerId
WHERE s.ModeId = 'M' AND (s.CurrentState=2 OR s.CurrentState=4) ";
+// T8 銷售訂單 作番金額
+$sql_contract_budget = "SELECT A.BillNo, A.OAmountWithTax,A.CU_MaterialId FROM salSalesOrderDetail AS A
+LEFT JOIN salSalesOrder AS B ON A.BillNo=B.BillNo
+WHERE B.ModeId='M' AND A.ItemType=1 ";
+
//作番大日程
$sql = "SELECT
tmp2.*,
@@ -88,6 +93,7 @@ if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) {
// $sql_received .= " AND (PersonId = '$user_id'";
$sql_opening .= " OR person_id = '$user_id'";
$sql .= " WHERE salesid = '$user_id'";
+ $sql_contract_budget .= " AND (PersonId = '$user_id'";
if (count($follower) > 0) {
$column_str = "('$user_id'" . ",'";
$column_str .= implode("','", $follower);
@@ -96,21 +102,58 @@ 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'];
+ };
+}
+
+/* 計算比例
+@param $facility_list array
+@param $contract_no string
+@param $contract_budget array
+return float */
+function get_ratio($facility_list, $contract_no, $contract_budget)
+{
+ $ratio = 0;
+ if (empty($facility_list)) {
+ return 0;
+ } else {
+ foreach ($facility_list as $every) {
+ if (isset($contract_budget[$contract_no][$every]) && isset($contract_budget[$contract_no]['total'])) {
+ $ratio += $contract_budget[$contract_no][$every] / $contract_budget[$contract_no]['total'];
+ }
+ }
+ return $ratio;
+ }
+}
// 合約收款階段內容分類
$sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天');
@@ -152,6 +195,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_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;
@@ -337,7 +381,7 @@ 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);
@@ -345,6 +389,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;
//二次款
@@ -354,6 +399,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['second'][6] = $month;
if ($today > $contractday) {
$arrayData[$wip['contractno']]['second_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['second_list'], $wip['facilityno']);
$facility_status = $wip['facilityno'] . " (出貨後10天" . $arrayData[$wip['contractno']]['second'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
//貨抵工地款
@@ -365,6 +411,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['arrive'][2] = strval(date('Ymd', $contractday));
if ($today > $contractday) {
$arrayData[$wip['contractno']]['arrive_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['arrive_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['arrive'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (貨抵工地後90天" . $arrayData[$wip['contractno']]['arrive'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -377,6 +424,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['tryrun'][2] = strval(date('Ymd', $contractday));
if ($today > $contractday) {
$arrayData[$wip['contractno']]['tryrun_num'] += 1;
+ array_push($arrayData[$wip['contractno']]['tryrun_list'], $wip['facilityno']);
$arrayData[$wip['contractno']]['tryrun'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (試車後90天" . $arrayData[$wip['contractno']]['tryrun'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -389,6 +437,8 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['delivery'][2] = strval(date('Ymd', $contractday));
if ($today > $contractday) {
$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']]['delivery'][2] = strval(date('Y-m-d', $contractday));
$facility_status = $wip['facilityno'] . " (交車後270天" . $arrayData[$wip['contractno']]['delivery'][2] . "已過)
";
$arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = $facility_status;
@@ -406,6 +456,7 @@ foreach ($wipwhole_array as $wip) {
$arrayData[$wip['contractno']]['facilities'] .= $facility_status;
} else {
$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));
@@ -419,10 +470,15 @@ foreach ($wipwhole_array as $wip) {
$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']);
@@ -430,6 +486,8 @@ foreach ($wipwhole_array as $wip) {
$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));
@@ -439,7 +497,10 @@ foreach ($wipwhole_array as $wip) {
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);
@@ -510,11 +571,17 @@ foreach ($wipwhole_array as $wip) {
$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'])));
@@ -591,10 +658,15 @@ foreach ($wipwhole_array as $wip) {
$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'])));
@@ -649,9 +721,13 @@ foreach ($wipwhole_array as $wip) {
$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);
@@ -698,8 +774,11 @@ foreach ($wipwhole_array as $wip) {
$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']);
@@ -728,9 +807,12 @@ foreach ($wipwhole_array as $wip) {
$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'] . "預計出貨日)
";
@@ -745,33 +827,66 @@ foreach ($wipwhole_array as $wip) {
}
}
}
+// 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) {
- $value['receivable_budget'] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']) + ($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']));
- $value['sign'][3] = $value['sign'][1] * ($value['sign_num'] / $value['total_facility_num']);
- $value['second'][3] = $value['second'][1] * ($value['second_num'] / $value['total_facility_num']);
- $value['arrive'][3] = $value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num']);
- $value['install'][3] = $value['install'][1] * ($value['install_num'] / $value['total_facility_num']);
- $value['tryrun'][3] = $value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num']);
- $value['check'][3] = $value['check'][1] * ($value['check_num'] / $value['total_facility_num']);
- $value['delivery'][3] = $value['delivery'][1] * ($value['delivery_num'] / $value['total_facility_num']);
- $value['final'][3] = $value['final'][1] * ($value['delivery_num'] / $value['total_facility_num']);
+ $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 催收次數
// 計算每台作番金額與各階段應收金額
foreach ($value['facility'] as &$val) {
-
foreach ($contractstage as $stage) {
if (isset($value[$stage][0]) && !empty($value[$stage][0])) {
$val[$stage][0] = $value[$stage][0];
- $val[$stage][1] = $value[$stage][1] / $value['total_facility_num'];
+ if (isset($contract_budget[$value[10]]['total']) && isset($contract_budget[$value[10]][$val['no']])) {
+ $ratio = $contract_budget[$value[10]][$val['no']] / $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];
@@ -850,6 +965,284 @@ foreach ($received_array as $received) {
}
}
+//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 4 已收金額 5 催收金額 6 已開發票金額 7 未開發票金額 min 最早應收月份 max 最晚應收月份
+foreach ($arrayData as $key => &$data) {
+ $tmp_data = $data['received_budget'];
+ $tmp_invoice = $data['invoice_budget'];
+
+ if ($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];
+ } else {
+ $data['sign'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['sign'][5] = $data['sign'][3] - $data['sign'][4];
+ } else {
+ $data['sign'][4] = 0;
+ $data['sign'][5] = $data['sign'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['second'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['second'][5] = $data['second'][3] - $data['second'][4];
+ } else {
+ $data['second'][4] = 0;
+ $data['second'][5] = $data['second'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['arrive'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['arrive'][5] = $data['arrive'][3] - $data['arrive'][4];
+ } else {
+ $data['arrive'][4] = 0;
+ $data['arrive'][5] = $data['arrive'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['install'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['install'][5] = $data['install'][3] - $data['install'][4];
+ } else {
+ $data['install'][4] = 0;
+ $data['install'][5] = $data['install'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['tryrun'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['tryrun'][5] = $data['tryrun'][3] - $data['tryrun'][4];
+ } else {
+ $data['tryrun'][4] = 0;
+ $data['tryrun'][5] = $data['tryrun'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['check'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['check'][5] = $data['check'][3] - $data['check'][4];
+ } else {
+ $data['check'][4] = 0;
+ $data['check'][5] = $data['check'][3];
+ }
+ 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 ($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];
+ } else {
+ $data['delivery'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['delivery'][5] = $data['delivery'][3] - $data['delivery'][4];
+ } else {
+ $data['delivery'][4] = 0;
+ $data['delivery'][5] = $data['delivery'][3];
+ }
+ 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;
+ }
+ $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;
+ }
+
+ if ($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];
+ } else {
+ $data['final'][4] = $tmp_data;
+ $tmp_data = 0;
+ }
+ $data['final'][5] = $data['final'][3] - $data['final'][4];
+ } else {
+ $data['final'][4] = 0;
+ $data['final'][5] = $data['final'][3];
+ }
+ 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;
+ }
+}
//產生excel的array
$excel_aray = array();
@@ -859,6 +1252,7 @@ $facility_array = array();
$facility_boga_array = array();
$facility_exclude_boga_array = array();
foreach ($arrayData as $key => $value) {
+
$value['sign'][3] = (isset($value['sign'][3])) ? $value['sign'][3] : 0;
$value['second'][3] = (isset($value['second'][3])) ? $value['second'][3] : 0;
$value['arrive'][3] = (isset($value['arrive'][3])) ? $value['arrive'][3] : 0;
@@ -871,50 +1265,51 @@ foreach ($arrayData as $key => $value) {
foreach ($contractstage as $i) {
$value[$i]['max'] = (empty($value[$i]['max']) || is_null($value[$i]['max'])) ? 0 : $value[$i]['max'];
$value[$i]['min'] = (empty($value[$i]['min']) || is_null($value[$i]['min'])) ? 0 : $value[$i]['min'];
+ $value[$i][4] = (isset($value[$i][4])) ? $value[$i][4] : 0;
+ $value[$i][5] = (isset($value[$i][5])) ? $value[$i][5] : 0;
};
if ($value['sign'][0] == "寶佳出貨前30天") {
$boga_array[$key] = [
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
- $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'],
- $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'],
- $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'],
- $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'],
- $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'],
- $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'],
- $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'],
- $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'],
+ $value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'],
+ $value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'],
+ $value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'],
+ $value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'],
+ $value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'],
+ $value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'],
+ $value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'],
+ $value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'],
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
} else {
$exclude_boga_array[$key] = [
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
- $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'],
- $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'],
- $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'],
- $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'],
- $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'],
- $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'],
- $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'],
- $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'],
+ $value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'],
+ $value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'],
+ $value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'],
+ $value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'],
+ $value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'],
+ $value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'],
+ $value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'],
+ $value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'],
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
}
-
-
$excel_aray[$key] = [
$key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6],
- $value['sign'][1], $value['sign'][3], $value['sign']['max'], $value['sign']['min'],
- $value['second'][1], $value['second'][3], $value['second']['max'], $value['second']['min'],
- $value['arrive'][1], $value['arrive'][3], $value['arrive']['max'], $value['arrive']['min'],
- $value['install'][1], $value['install'][3], $value['install']['max'], $value['install']['min'],
- $value['tryrun'][1], $value['tryrun'][3], $value['tryrun']['max'], $value['tryrun']['min'],
- $value['check'][1], $value['check'][3], $value['check']['max'], $value['check']['min'],
- $value['delivery'][1], $value['delivery'][3], $value['delivery']['max'], $value['delivery']['min'],
- $value['final'][1], $value['final'][3], $value['final']['max'], $value['final']['min'],
+ $value['sign'][1], $value['sign'][3], $value['sign'][6], $value['sign'][7], $value['sign'][4], $value['sign'][5], $value['sign']['max'], $value['sign']['min'],
+ $value['second'][1], $value['second'][3], $value['second'][6], $value['second'][7], $value['second'][4], $value['second'][5], $value['second']['max'], $value['second']['min'],
+ $value['arrive'][1], $value['arrive'][3], $value['arrive'][6], $value['arrive'][7], $value['arrive'][4], $value['arrive'][5], $value['arrive']['max'], $value['arrive']['min'],
+ $value['install'][1], $value['install'][3], $value['install'][6], $value['install'][7], $value['install'][4], $value['install'][5], $value['install']['max'], $value['install']['min'],
+ $value['tryrun'][1], $value['tryrun'][3], $value['tryrun'][6], $value['tryrun'][7], $value['tryrun'][4], $value['tryrun'][5], $value['tryrun']['max'], $value['tryrun']['min'],
+ $value['check'][1], $value['check'][3], $value['check'][6], $value['check'][7], $value['check'][4], $value['check'][5], $value['check']['max'], $value['check']['min'],
+ $value['delivery'][1], $value['delivery'][3], $value['delivery'][6], $value['delivery'][7], $value['delivery'][4], $value['delivery'][5], $value['delivery']['max'], $value['delivery']['min'],
+ $value['final'][1], $value['final'][3], $value['final'][6], $value['final'][7], $value['final'][4], $value['final'][5], $value['final']['max'], $value['final']['min'],
$value['total_budget'], $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], $value['total_facility_num'], str_replace('
', '; ', $value['facilities'])
];
+
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份
//[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數
foreach ($value['facility'] as $valkey => $val) {
@@ -969,8 +1364,7 @@ foreach ($arrayData as $key => $value) {
}
}
-
-$data = json_encode($excel_aray);
+$total_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);
@@ -1028,7 +1422,7 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
-
+
@@ -1177,18 +1571,14 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
document.body.removeChild(link);
}
}
-
- // xhr.send(JSON.stringify({
- // Bill: = $data ?>
- // })
- // );
xhr.send(JSON.stringify({
- Bill: = $data ?>
+ Bill: = $total_data ?>
}));
}
function bogaData() {
+ console.log(= $boga_data ?>);
var xhr = new XMLHttpRequest();
var url = window.location.origin + "/wms/account-receivable-excel.php?type=boga&= $token_link ?>";
xhr.open('POST', url, true);
@@ -1217,12 +1607,10 @@ $facility_exclude_boga_data = json_encode($facility_exclude_boga_array);
if (content == 'AllData') {
var BillData = = $facility_data ?>;
var filename = "作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
- }
- else if(content == 'ExcludeData') {
+ } else if (content == 'ExcludeData') {
var BillData = = $facility_exclude_boga_data ?>;
var filename = "不含寶佳作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
- }
- else if(content == 'BogaData'){
+ } else if (content == 'BogaData') {
var BillData = = $facility_boga_data ?>;
var filename = "寶佳作番應收帳款" + "= date('Y-m-d-Hm') ?>" + ".xlsx";
}
diff --git a/wms/account-receivable-invoice.php b/wms/account-receivable-invoice.php
new file mode 100644
index 00000000..b3d9bbc7
--- /dev/null
+++ b/wms/account-receivable-invoice.php
@@ -0,0 +1 @@
+