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.
154 lines
6.1 KiB
154 lines
6.1 KiB
<?php
|
|
include "./header.php";
|
|
require_once dirname(__DIR__) . '/common/composer/vendor/autoload.php';
|
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
|
|
|
$sql = "SELECT *
|
|
FROM (
|
|
SELECT
|
|
A.BillNo,
|
|
A.ProjectId,
|
|
B.BizPartnerId,
|
|
B.PersonId,
|
|
A.MaterialId,
|
|
A.CU_MaterialId,
|
|
A.SPrice,
|
|
A.OAmount,
|
|
B.ModeId
|
|
FROM
|
|
salSalesOrderDetail AS A
|
|
LEFT JOIN salSalesOrder AS B ON A.BillNo = B.BillNo
|
|
WHERE
|
|
B.ModeId = 'M'
|
|
AND A.ItemType = 1
|
|
) AS temp1
|
|
LEFT JOIN (
|
|
SELECT
|
|
Q.BizPartnerId,
|
|
Q.BizPartnerName,
|
|
Q.PersonId,
|
|
comGroupPerson.PersonName,
|
|
Q.ModeId
|
|
FROM (
|
|
SELECT
|
|
X.BizPartnerId,
|
|
X.PersonId,
|
|
X.ModeId,
|
|
Y.BizPartnerName
|
|
FROM
|
|
salSalesOrder AS X
|
|
LEFT JOIN comBusinessPartner AS Y ON X.BizPartnerId = Y.BizPartnerId
|
|
) AS Q
|
|
LEFT JOIN comGroupPerson ON Q.PersonID = comGroupPerson.PersonId
|
|
) AS temp2 ON temp1.BizPartnerId = temp2.BizPartnerId;
|
|
";
|
|
|
|
$array = array();
|
|
$query = $conn->query($sql);
|
|
// 合約號 客戶 營業員 合約含稅總金額 合約未稅總金額 [作番號 含稅金額 未稅金額 ]
|
|
foreach ($query as $row) {
|
|
if (!isset($array[$row['BillNo']])) {
|
|
$array[$row['BillNo']] = [$row['BillNo'], $row['BizPartnerName'], $row['PersonName'], 0, 0];
|
|
$array[$row['BillNo']][$row['CU_MaterialId']] = [$row['CU_MaterialId'], $row['SPrice'], $row['OAmount']];
|
|
} else {
|
|
if (isset($array[$row['BillNo']][$row['CU_MaterialId']])) {
|
|
|
|
$array[$row['BillNo']][$row['CU_MaterialId']][1] += $row['SPrice'];
|
|
$array[$row['BillNo']][$row['CU_MaterialId']][2] += $row['OAmount'];
|
|
} else {
|
|
$array[$row['BillNo']][$row['CU_MaterialId']] = [$row['CU_MaterialId'], $row['SPrice'], $row['OAmount']];
|
|
}
|
|
}
|
|
$array[$row['BillNo']][3] += $row['SPrice'];
|
|
$array[$row['BillNo']][4] += $row['OAmount'];
|
|
}
|
|
|
|
$print = array();
|
|
foreach ($array as $key => $ray) {
|
|
$print[$ray[0]] = [$ray[0], $ray[1], $ray[2], $ray[3], $ray[4]];
|
|
foreach ($ray as $key2 => $ray2) {
|
|
if ($key2 !== 0 && $key2 !== 1 && $key2 !== 2 && $key2 !== 3 && $key2 !== 4) {
|
|
array_push($print[$ray[0]], $ray2[0], $ray2[1], $ray2[2]);
|
|
}
|
|
}
|
|
}
|
|
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$colomnHeader = [
|
|
'合約號', '客戶', '營業員', '合約含稅總金額', '合約未稅總金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額',
|
|
'作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額'
|
|
];
|
|
$sheet->fromArray($colomnHeader, NULL, 'A1');
|
|
$rowIndex = 2;
|
|
foreach ($print as $key => $pri) {
|
|
$sheet->fromArray([$pri], NULL, 'A' . $rowIndex);
|
|
$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',
|
|
'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', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CQ', 'CR', 'CS', 'CT', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ'
|
|
];
|
|
foreach ($column as $col) {
|
|
$sheet->getColumnDimension($col)->setAutoSize(true);
|
|
}
|
|
$rowIndex++;
|
|
}
|
|
$writer = new Xlsx($spreadsheet);
|
|
$excelFileName = 'facility-price.xlsx';
|
|
$writer->save($excelFileName);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// foreach($array as $ray){
|
|
// print_r($ray);
|
|
// echo "<br>";
|
|
// }
|
|
$data = json_encode($array);
|
|
?>
|
|
<button type="button" onclick="downloadData()" class="btn btn-warning btn-lg pull-right"><span class="glyphicon glyphicon-download-alt"></span></button>
|
|
|
|
<script>
|
|
function downloadData() {
|
|
var link = document.createElement('a');
|
|
console.log(window.location.origin + "/wms/facility-price.xlsx");
|
|
link.setAttribute('href', window.location.origin + "/wms/facility-price.xlsx");
|
|
link.setAttribute('download', '合約作番價格總表.xlsx');
|
|
link.style.display = 'none';
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
}
|
|
|
|
|
|
function test() {
|
|
var Data = <?= $data ?>;
|
|
var form = document.createElement("form");
|
|
form.method = 'POST';
|
|
form.action = "facility-price-download.php?<?= $token_link ?>";
|
|
var input = document.createElement("input");
|
|
input.type = "hidden";
|
|
input.name = "data";
|
|
input.value = JSON.stringify(Data);
|
|
form.appendChild(input);
|
|
document.body.appendChild(form);
|
|
form.submit();
|
|
|
|
}
|
|
</script>
|