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

<?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>