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.
 
 
 
 
 
 

121 lines
5.0 KiB

<?php
include "./header.php";
require_once dirname(__DIR__) . '/common/composer/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Font;
header('Content-Type: application/json');
$type = $_GET['type'];
$array_data = array();
$Bill = json_decode(file_get_contents("php://input"), true);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
if ($type == 'newContract') {
$sheet->mergeCells('A1:X1');
$sheet->setTitle('新梯催收統整');
$sheet->setCellValue('A1', '新梯催收統整');
$sheet->getStyle('A1')->getFont()->setBold(true);
$sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->getStyle('A1')->getFont()->setSize(14);
$sheet->getRowDimension('1')->setRowHeight(38);
$colomnHeader = [
'合約號', '客戶名稱','部門','營業員', '合約金額', '台數', '作番狀態', '催收金額', '訂金催收金額', '訂金催收次數', '二次款催收金額', '二次款催收次數',
'貨抵工地款催收金額', '貨抵工地款催收次數',
'安裝款催收金額', '安裝款催收次數',
'試車款催收金額', '試車款催收次數',
'官檢驗收催收金額', '官檢驗收催收次數',
'交車款催收金額', '交車款催收次數',
'尾款催收金額', '尾款催收次數'
];
// file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE));
$sheet->fromArray($colomnHeader, NULL, 'A2');
$rowIndex = 3;
foreach ($Bill as $key => $value) {
$sheet->fromArray($value, 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'
];
foreach ($column as $col) {
if ($col == 'G') {
$sheet->getColumnDimension('G')->setWidth(35);
$sheet->getStyle('G')->getAlignment()->setWrapText(true);
} else {
// $sheet->getColumnDimension($col)->setAutoSize(true);
$sheet->getColumnDimension($col)->setWidth(10);
$sheet->getStyle($col)->getAlignment()->setWrapText(true);
}
}
$rowIndex++;
}
$writer = new Xlsx($spreadsheet);
$excelFileName = 'account-receivable-contract.xlsx';
} elseif ($type == 'maintainance') {
$sheet->mergeCells('A1:H1');
$sheet->setTitle('保養催收統整');
$sheet->setCellValue('A1', '保養催收統整');
$sheet->getStyle('A1')->getFont()->setBold(true);
$sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->getStyle('A1')->getFont()->setSize(14);
$sheet->getRowDimension('1')->setRowHeight(38);
$colomnHeader = [
'合約號','序號','作番號','部門','契約員','客戶','金額','催收次數'
];
// file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE));
$sheet->fromArray($colomnHeader, NULL, 'A2');
$rowIndex = 3;
foreach ($Bill as $key => $value) {
$sheet->fromArray($value, NULL, 'A' . $rowIndex);
$column = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'
];
$rowIndex++;
}
$writer = new Xlsx($spreadsheet);
$excelFileName = 'account-receivable-contract.xlsx';
}elseif ($type == 'renovate') {
$sheet->mergeCells('A1:K1');
$sheet->setTitle('汰改催收統整');
$sheet->setCellValue('A1', '汰改催收統整');
$sheet->getStyle('A1')->getFont()->setBold(true);
$sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->getStyle('A1')->getFont()->setSize(14);
$sheet->getRowDimension('1')->setRowHeight(38);
$colomnHeader = [
'合約號','作番號','部門','營業員','客戶','收款階段名稱','應收日期','金額','已收金額','催收金額','催收次數'
];
// file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE));
$sheet->fromArray($colomnHeader, NULL, 'A2');
$rowIndex = 3;
foreach ($Bill as $key => $value) {
$sheet->fromArray($value, NULL, 'A' . $rowIndex);
$column = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I','J','K'
];
$rowIndex++;
}
$writer = new Xlsx($spreadsheet);
$excelFileName = 'account-receivable-renovate.xlsx';
}
$writer->save($excelFileName);
echo $excelFileName;
?>
<!-- <script>
window.location.href = "account-receivable-index.php?<?= $token_link ?>";
</script> -->