You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
659 lines
20 KiB
659 lines
20 KiB
<?php
|
|
include("header.php");
|
|
|
|
$this_year = 2024;
|
|
|
|
function getMAdetails($conn, $this_year, $i)
|
|
{
|
|
$date = $this_year . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$sql = "
|
|
-- 全機汰改
|
|
SELECT
|
|
count(*)
|
|
FROM salSalesOrder AS sso
|
|
LEFT JOIN salSalesOrderDetail AS ssod
|
|
ON ssod.BillNo = sso.BillNo
|
|
WHERE ssod.MaterialId = 'A40010'
|
|
AND SUBSTRING(CONVERT(VARCHAR, sso.BillDate, 112), 1, 6) = '$date'
|
|
-- AND SUBSTR(sso.CustomerOrderDate, 1, 6) = '$date',
|
|
";
|
|
$result = $conn->query($sql);
|
|
foreach ($result as $row) {
|
|
return $row[0];
|
|
}
|
|
}
|
|
|
|
function getM1details($conn, $this_year, $i)
|
|
{
|
|
$date = $this_year . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$sql = "
|
|
-- M1汰改
|
|
SELECT
|
|
count(*)
|
|
FROM salSalesOrder AS sso
|
|
LEFT JOIN salSalesOrderDetail AS ssod
|
|
ON ssod.BillNo = sso.BillNo
|
|
where ssod.MaterialId = 'A40002'
|
|
AND SUBSTRING(CONVERT(VARCHAR, sso.BillDate, 112), 1, 6) = '$date'
|
|
-- AND SUBSTR(sso.CustomerOrderDate, 1, 6) = '$date',
|
|
";
|
|
$result = $conn->query($sql);
|
|
foreach ($result as $row) {
|
|
return $row[0];
|
|
}
|
|
}
|
|
|
|
function getM1Freedetails($conn, $this_year, $i)
|
|
{
|
|
$date = $this_year . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$sql = "
|
|
-- M1汰改送免費一年保養
|
|
SELECT
|
|
count(*)
|
|
FROM salSalesOrder AS sso
|
|
LEFT JOIN salSalesOrderDetail AS ssod
|
|
ON ssod.BillNo = sso.BillNo
|
|
where ssod.PresentSQty >0
|
|
AND SUBSTRING(CONVERT(VARCHAR, sso.BillDate, 112), 1, 6) = '$date'
|
|
-- AND SUBSTR(sso.CustomerOrderDate, 1, 6) = '$date',
|
|
";
|
|
$result = $conn->query($sql);
|
|
foreach ($result as $row) {
|
|
return $row[0];
|
|
}
|
|
}
|
|
|
|
function getMContractAllAmount($conn, $this_year, $i)
|
|
{
|
|
$date = $this_year . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$sql = "
|
|
SELECT
|
|
SUM(T.OAmountWithTax) AS OAmountWithTax
|
|
FROM(
|
|
-- 全機汰改
|
|
SELECT
|
|
SUM(ssod.OAmountWithTax) AS OAmountWithTax
|
|
FROM salSalesOrder AS sso
|
|
LEFT JOIN salSalesOrderDetail AS ssod
|
|
ON ssod.BillNo = sso.BillNo
|
|
WHERE ssod.MaterialId = 'A40010'
|
|
AND SUBSTRING(CONVERT(VARCHAR, sso.BillDate, 112), 1, 6) = '$date'
|
|
-- AND SUBSTR(sso.CustomerOrderDate, 1, 6) = '$date',
|
|
UNION ALL
|
|
-- M1汰改
|
|
SELECT
|
|
SUM(ssod.OAmountWithTax) AS OAmountWithTax
|
|
FROM salSalesOrder AS sso
|
|
LEFT JOIN salSalesOrderDetail AS ssod
|
|
ON ssod.BillNo = sso.BillNo
|
|
where ssod.MaterialId = 'A40002'
|
|
AND SUBSTRING(CONVERT(VARCHAR, sso.BillDate, 112), 1, 6) = '$date'
|
|
-- AND SUBSTR(sso.CustomerOrderDate, 1, 6) = '$date',
|
|
UNION ALL
|
|
-- M1汰改送免費一年保養
|
|
SELECT
|
|
SUM(ssod.OAmountWithTax) AS OAmountWithTax
|
|
FROM salSalesOrder AS sso
|
|
LEFT JOIN salSalesOrderDetail AS ssod
|
|
ON ssod.BillNo = sso.BillNo
|
|
where ssod.PresentSQty >0
|
|
AND SUBSTRING(CONVERT(VARCHAR, sso.BillDate, 112), 1, 6) = '$date'
|
|
-- AND SUBSTR(sso.CustomerOrderDate, 1, 6) = '$date',
|
|
) AS T
|
|
";
|
|
// echo "<pre>$sql</pre>";
|
|
$result = $conn->query($sql);
|
|
foreach ($result as $row) {
|
|
return $row[0];
|
|
}
|
|
}
|
|
|
|
function getMataincedetails($conn, $this_year, $i)
|
|
{
|
|
$date = $this_year . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$sql = "
|
|
-- 保養合約
|
|
SELECT
|
|
COUNT(sia_tmp.CU_MaterialId)
|
|
FROM(
|
|
SELECT
|
|
MIN(siam.BillDate) AS BillDate,
|
|
siad.CU_MaterialId
|
|
FROM salIncomeApplyMaster AS siam
|
|
LEFT JOIN salIncomeApplyDetail AS siad
|
|
ON siam.BillNo = siad.BillNo
|
|
GROUP BY siad.CU_MaterialId
|
|
)AS sia_tmp
|
|
WHERE 1=1
|
|
AND SUBSTRING(CONVERT(VARCHAR, sia_tmp.BillDate, 112), 1, 6) = '$date'
|
|
";
|
|
$result = $conn->query($sql);
|
|
foreach ($result as $row) {
|
|
return $row[0];
|
|
}
|
|
}
|
|
|
|
function getFixdetails($conn, $this_year, $i)
|
|
{
|
|
$date = $this_year . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$sql = "
|
|
SELECT
|
|
SUM(sia_tmp.OAmountWithTax) AS OAmountWithTax
|
|
FROM(
|
|
SELECT
|
|
sdlm.BillDate AS BillDate,
|
|
sdld.OAmountWithTax
|
|
FROM salDispatchListMaster AS sdlm
|
|
LEFT JOIN salDispatchListDetail AS sdld
|
|
ON sdlm.BillNo = sdld.BillNo
|
|
)AS sia_tmp
|
|
WHERE 1=1
|
|
AND SUBSTRING(CONVERT(VARCHAR, sia_tmp.BillDate, 112), 1, 6) = '$date'
|
|
";
|
|
// echo $sql;
|
|
$result = $conn->query($sql);
|
|
foreach ($result as $row) {
|
|
return $row[0];
|
|
}
|
|
}
|
|
?>
|
|
<table class="table table-striped table-bordered" style="width:98.5%;overflow-x:auto">
|
|
<thead>
|
|
<tr>
|
|
<th style='text-align:center;vertical-align:middle;' colspan='17'>
|
|
<h4><?php echo date("Y"); ?>年指標與實績</h4>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<th style='text-align:center;width:150px;vertical-align:middle;' colspan='2'>項目</th>
|
|
<th style='text-align:center;width:150px;vertical-align:middle;'><?php echo (date("Y") - 1); ?>年</th>
|
|
<th style='text-align:center;vertical-align:middle;'>月份</th>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td style='text-align:center;'>" . $i . "月</td>";
|
|
}
|
|
?>
|
|
<th style='text-align:center;vertical-align:middle;' rowspan='2'>累計</th>
|
|
</tr>
|
|
<tr>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="3">1</td>
|
|
<td rowspan="3">舊梯全汰改(台數)</td>
|
|
<td rowspan="3">
|
|
X/X
|
|
</td>
|
|
<td>預定</td>
|
|
<?php
|
|
$expected_a['2024'] = [
|
|
1 => 10,
|
|
2 => 20,
|
|
3 => 10,
|
|
4 => 26,
|
|
5 => 13,
|
|
6 => 26,
|
|
7 => 13,
|
|
8 => 26,
|
|
9 => 13,
|
|
10 => 26,
|
|
11 => 13,
|
|
12 => 14
|
|
];
|
|
$expected_a_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_a_count += $expected_a[$this_year][$i];
|
|
echo "<td>" . $expected_a[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_a_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>實際</td>
|
|
<?php
|
|
$real_a['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0
|
|
];
|
|
$real_a_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$real_a[$this_year][$i] = getMAdetails($conn, $this_year, $i);
|
|
$real_a_count += $real_a[$this_year][$i];
|
|
echo "<td>" . $real_a[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $real_a_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>達成率</td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td>" . round(($real_a[$this_year][$i] / $expected_a[$this_year][$i]) * 100, 2) . "%" . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo round(($real_a_count / $expected_a_count) * 100, 2) . "%"; ?></td>
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
<td rowspan="6">2</td>
|
|
<td rowspan="3">舊梯M1改(台數)</td>
|
|
<td rowspan="3">
|
|
X/X
|
|
</td>
|
|
<td>預定</td>
|
|
<?php
|
|
$expected_b['2024'] = [
|
|
1 => 15,
|
|
2 => 30,
|
|
3 => 15,
|
|
4 => 40,
|
|
5 => 20,
|
|
6 => 40,
|
|
7 => 20,
|
|
8 => 40,
|
|
9 => 20,
|
|
10 => 40,
|
|
11 => 20,
|
|
12 => 30
|
|
];
|
|
$expected_b_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_b_count += $expected_b[$this_year][$i];
|
|
echo "<td>" . $expected_b[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_b_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>實際</td>
|
|
<?php
|
|
$real_b['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0
|
|
];
|
|
$real_b_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$real_b[$this_year][$i] = getM1details($conn, $this_year, $i);
|
|
$real_b_count += $real_b[$this_year][$i];
|
|
echo "<td>" . $real_b[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $real_b_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>達成率</td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td>" . round(($real_b[$this_year][$i] / $expected_b[$this_year][$i]) * 100, 2) . "%" . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo round(($real_b_count / $expected_b_count) * 100, 2) . "%"; ?></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td rowspan="3">保養簽長約,免費M1</td>
|
|
<td rowspan="3">
|
|
X
|
|
</td>
|
|
<td>預定</td>
|
|
<?php
|
|
$expected_c['2024'] = [
|
|
1 => 18,
|
|
2 => 18,
|
|
3 => 19,
|
|
4 => 20,
|
|
5 => 20,
|
|
6 => 20,
|
|
7 => 20,
|
|
8 => 20,
|
|
9 => 20,
|
|
10 => 20,
|
|
11 => 20,
|
|
12 => 20
|
|
];
|
|
$expected_c_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_c_count += $expected_c[$this_year][$i];
|
|
echo "<td>" . $expected_c[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_c_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>實際</td>
|
|
<?php
|
|
$real_c['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0
|
|
];
|
|
$real_c_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$real_c[$this_year][$i] = getM1Freedetails($conn, $this_year, $i);
|
|
$real_c_count += $real_c[$this_year][$i];
|
|
echo "<td>" . $real_c[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $real_c_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>達成率</td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td>" . round(($real_c[$this_year][$i] / $expected_c[$this_year][$i]) * 100, 2) . "%" . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo round(($real_c_count / $expected_c_count) * 100, 2) . "%"; ?></td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td rowspan="3">3</td>
|
|
<td rowspan="3">汰改合計金額(千元)</td>
|
|
<td rowspan="3">
|
|
X
|
|
</td>
|
|
<td>預定</td>
|
|
<?php
|
|
$expected_d['2024'] = [
|
|
1 => 12650,
|
|
2 => 12650,
|
|
3 => 12650,
|
|
4 => 18150,
|
|
5 => 18150,
|
|
6 => 19800,
|
|
7 => 23650,
|
|
8 => 23650,
|
|
9 => 23650,
|
|
10 => 26400,
|
|
11 => 26400,
|
|
12 => 26400
|
|
];
|
|
$expected_d_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_d_count += $expected_d[$this_year][$i];
|
|
echo "<td>" . $expected_d[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_d_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>實際</td>
|
|
<?php
|
|
$real_d['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0
|
|
];
|
|
$real_d_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$real_d[$this_year][$i] = round(getMContractAllAmount($conn, $this_year, $i)/1000,0);
|
|
$real_d_count += $real_d[$this_year][$i];
|
|
echo "<td>" . $real_d[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $real_d_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>達成率</td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td>" . round(($real_d[$this_year][$i] / $expected_d[$this_year][$i]) * 100, 2) . "%" . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo round(($real_d_count / $expected_d_count) * 100, 2) . "%"; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="3">4</td>
|
|
<td rowspan="3">保養契約台數(台)</td>
|
|
<td rowspan="3">
|
|
X
|
|
</td>
|
|
<td>預定</td>
|
|
<?php
|
|
$expected_e['2024'] = [
|
|
1 => 192,
|
|
2 => 192,
|
|
3 => 192,
|
|
4 => 272,
|
|
5 => 272,
|
|
6 => 272,
|
|
7 => 272,
|
|
8 => 272,
|
|
9 => 272,
|
|
10 => 272,
|
|
11 => 272,
|
|
12 => 272
|
|
];
|
|
$expected_e_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_e_count += $expected_e[$this_year][$i];
|
|
echo "<td>" . $expected_e[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_e_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>實際</td>
|
|
<?php
|
|
$real_e['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0
|
|
];
|
|
$real_e_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$real_e[$this_year][$i] = getMataincedetails($conn, $this_year, $i, $real_e[$this_year]);
|
|
$real_e_count += $real_e[$this_year][$i];
|
|
echo "<td>" . $real_e[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $real_e_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>達成率</td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td>" . round(($real_e[$this_year][$i] / $expected_e[$this_year][$i]) * 100, 2) . "%" . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo round(($real_e_count / $expected_e_count) * 100, 2) . "%"; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="3">5</td>
|
|
<td rowspan="3">修理金額(千元)/台.年</td>
|
|
<td rowspan="3">
|
|
X
|
|
</td>
|
|
<td>預定</td>
|
|
<?php
|
|
$expected_f['2024'] = [
|
|
1 => 822,
|
|
2 => 957,
|
|
3 => 1092,
|
|
4 => 1227,
|
|
5 => 1362,
|
|
6 => 1497,
|
|
7 => 2162,
|
|
8 => 2297,
|
|
9 => 2432,
|
|
10 => 2567,
|
|
11 => 2702,
|
|
12 => 2838,
|
|
];
|
|
$expected_f_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_f_count += $expected_f[$this_year][$i];
|
|
echo "<td>" . $expected_f[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_f_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>實際</td>
|
|
<?php
|
|
$real_f['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0
|
|
];
|
|
$real_f_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$real_f[$this_year][$i] = round(getFixdetails($conn, $this_year, $i)/1000,0);
|
|
$real_f_count += $real_f[$this_year][$i];
|
|
echo "<td>" . $real_f[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $real_f_count; ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td>達成率</td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td>" . round(($real_f[$this_year][$i] / $expected_f[$this_year][$i]) * 100, 2) . "%" . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo round(($real_f_count / $expected_f_count) * 100, 2) . "%"; ?></td>
|
|
</tr>
|
|
|
|
<!-- <tr>
|
|
<td rowspan="2">6</td>
|
|
<td>併購</td>
|
|
<td>
|
|
X
|
|
</td>
|
|
<td></td>
|
|
<?php
|
|
$expected_f['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 1000,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0,
|
|
];
|
|
$expected_f_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_f_count += $expected_f[$this_year][$i];
|
|
echo "<td>" . $expected_f[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_f_count; ?></td>
|
|
</tr> -->
|
|
|
|
<!-- <tr>
|
|
<td>未續保流失台數</td>
|
|
<td>
|
|
X
|
|
</td>
|
|
<td>3</td>
|
|
<?php
|
|
$expected_g['2024'] = [
|
|
1 => 0,
|
|
2 => 0,
|
|
3 => 0,
|
|
4 => 0,
|
|
5 => 0,
|
|
6 => 0,
|
|
7 => 0,
|
|
8 => 0,
|
|
9 => 0,
|
|
10 => 0,
|
|
11 => 0,
|
|
12 => 0,
|
|
];
|
|
$expected_g_count = 0;
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
$expected_g_count += $expected_g[$this_year][$i];
|
|
echo "<td>" . $expected_g[$this_year][$i] . "</td>";
|
|
}
|
|
?>
|
|
<td><?php echo $expected_g_count; ?></td>
|
|
</tr> -->
|
|
|
|
<!-- <tr>
|
|
<td>7</td>
|
|
<td>目前累計台數(台)</td>
|
|
<td>
|
|
X
|
|
</td>
|
|
<td></td>
|
|
<?php
|
|
for ($i = 1; $i <= 12; $i++) {
|
|
echo "<td></td>";
|
|
}
|
|
?>
|
|
<td>sum</td>
|
|
</tr> -->
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
<?php
|
|
include("footer.php");
|
|
?>
|