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); + +?> + + +
+
+ + + +
+
+
+
+ + + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $value) { + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
合約號部門經理營業員客戶名稱簽約款應收簽約金額簽約最小催收次數簽約最大催收次數二次款應收二次金額二次最小催收次數二次最大催收次數貨抵工地款應收貨抵工地金額貨抵工地最小催收次數貨抵工地最大催收次數安裝款應收安裝金額安裝最小催收次數安裝最大催收次數試車款應收試車金額試車最小催收次數試車最大催收次數官檢款應收官檢金額官檢最小催收次數官檢最大催收次數移交款應收移交金額移交最小催收次數移交最大催收次數尾款應收尾款金額尾款最小催收次數尾款最大催收次數合約總金額目前應收已開發票金額已收金額收款狀態
+
+ $table = ""; //[stage] 0 款名 1金額 2 應收款日期 diff --git a/wms/account-receivable-test.php b/wms/account-receivable-test.php index 1831bdb6..a9291781 100644 --- a/wms/account-receivable-test.php +++ b/wms/account-receivable-test.php @@ -9,24 +9,36 @@ // echo $test; include './header.php'; -$sql = "SELECT -salOrderStagePay.BillNo, -salOrderStagePay.PayStage -FROM salOrderStagePay -LEFT JOIN salSalesOrder -ON salSalesOrder.BillNo = salOrderStagePay.BillNo WHERE salSalesOrder.ModeId = 'M' AND (salSalesOrder.CurrentState=2 OR salSalesOrder.CurrentState=4) "; -$query = $conn->query($sql); -$contracts = array(); -foreach ($query as $row) { - if (!array_key_exists($row['BillNo'], $contracts)) { - $contracts[$row['BillNo']] = [$row['BillNo'], $row['PayStage']]; - }else{ - array_push($contracts[$row['BillNo']], $row['PayStage']); - } -} -foreach($contracts as $contract){ - foreach($contract as $con){ - echo $con.";"; - } - echo "
"; -} +// $sql = "SELECT +// salOrderStagePay.BillNo, +// salOrderStagePay.PayStage +// FROM salOrderStagePay +// LEFT JOIN salSalesOrder +// ON salSalesOrder.BillNo = salOrderStagePay.BillNo WHERE salSalesOrder.ModeId = 'M' AND (salSalesOrder.CurrentState=2 OR salSalesOrder.CurrentState=4) "; +// $query = $conn->query($sql); +// $contracts = array(); +// foreach ($query as $row) { +// if (!array_key_exists($row['BillNo'], $contracts)) { +// $contracts[$row['BillNo']] = [$row['BillNo'], $row['PayStage']]; +// }else{ +// array_push($contracts[$row['BillNo']], $row['PayStage']); +// } +// } +// foreach($contracts as $contract){ +// foreach($contract as $con){ +// echo $con.";"; +// } +// echo "
"; +// } + +//只有一個作番的銷售訂單 +// $sql = "select salSalesOrderDetail.BillNo,count(salSalesOrderDetail.MaterialId) AS number from salSalesOrderDetail +// LEFT JOIN salSalesOrder ON salSalesOrder.BillNo=salSalesOrderDetail.BillNo +// where salSalesOrderDetail.ItemType=0 AND salSalesOrder.ModeId='M' +// group by salSalesOrderDetail.BillNo ORDER BY number"; +// $query = $conn->query($sql); +// foreach($query as $row){ +// if($row['number']==1){ +// echo $row['BillNo']."
"; +// } +// }