Add remaining project files (exclude ignored folders)
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
require '../vendor/autoload.php'; // Pastikan path ini sesuai dengan autoload.php Anda
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||||
|
||||
// Koneksi ke database
|
||||
include '../config/connect.php';
|
||||
|
||||
// Ambil parameter dari request
|
||||
$search = isset($_GET['search']) ? $_GET['search'] : '';
|
||||
$startDate = isset($_GET['start_date']) ? $_GET['start_date']. ' 00:00:00' : '';
|
||||
$endDate = isset($_GET['end_date']) ? $_GET['end_date']. ' 23:59:59' : '';
|
||||
$id_data_server = isset($_GET['ids']) ? $_GET['ids'] : '';
|
||||
|
||||
// Siapkan query SQL
|
||||
$query = "SELECT nama_server, start_time, keterangan, pemasukan, pengeluaran, status, metode_pembayaran, nama_user, nama FROM v_transaksi WHERE 1=1 AND id_data_server IN ($id_data_server)";
|
||||
|
||||
// Tambahkan kondisi pencarian
|
||||
if (!empty($search)) {
|
||||
$query .= " AND (nama_server LIKE :search OR keterangan LIKE :search OR metode_pembayaran LIKE :search OR status LIKE :search)";
|
||||
}
|
||||
|
||||
// Tambahkan kondisi untuk filter tanggal
|
||||
if (!empty($startDate)) {
|
||||
$query .= " AND start_time >= :startDate";
|
||||
}
|
||||
if (!empty($endDate)) {
|
||||
$query .= " AND start_time <= :endDate";
|
||||
}
|
||||
|
||||
// Siapkan pernyataan
|
||||
$stmt = $pdo->prepare($query);
|
||||
|
||||
// Bind parameter pencarian
|
||||
if (!empty($search)) {
|
||||
$stmt->bindValue(':search', '%' . $search . '%', PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
// Bind parameter filter tanggal
|
||||
if (!empty($startDate)) {
|
||||
$stmt->bindValue(':startDate', $startDate, PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($endDate)) {
|
||||
$stmt->bindValue(':endDate', $endDate, PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
$stmt->execute();
|
||||
|
||||
// Ambil data
|
||||
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Buat Spreadsheet
|
||||
$spreadsheet = new Spreadsheet();
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
// Set header
|
||||
$sheet->setCellValue('A1', 'Nama Server')
|
||||
->setCellValue('B1', 'User_Input')
|
||||
->setCellValue('C1', 'Start Time')
|
||||
->setCellValue('D1', 'Keterangan')
|
||||
->setCellValue('E1', 'Pelanggan')
|
||||
->setCellValue('F1', 'Kas Masuk')
|
||||
->setCellValue('G1', 'Kas Keluar')
|
||||
->setCellValue('H1', 'Status')
|
||||
->setCellValue('I1', 'Metode Pembayaran');
|
||||
|
||||
// Isi data
|
||||
$row = 2; // Mulai dari baris kedua
|
||||
foreach ($data as $item) {
|
||||
$sheet->setCellValue('A' . $row, $item['nama_server'])
|
||||
->setCellValue('B' . $row, $item['nama_user'])
|
||||
->setCellValue('C' . $row, $item['start_time'])
|
||||
->setCellValue('D' . $row, $item['keterangan'])
|
||||
->setCellValue('E' . $row, $item['nama'])
|
||||
->setCellValue('F' . $row, $item['pemasukan'])
|
||||
->setCellValue('G' . $row, $item['pengeluaran'])
|
||||
->setCellValue('H' . $row, $item['status'])
|
||||
->setCellValue('I' . $row, $item['metode_pembayaran']);
|
||||
$row++;
|
||||
}
|
||||
|
||||
// Set header untuk download
|
||||
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
||||
header('Content-Disposition: attachment;filename="data_export.xlsx"');
|
||||
header('Cache-Control: max-age=0');
|
||||
|
||||
// Tulis file
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
$writer->save('php://output');
|
||||
exit;
|
||||
?>
|
||||
Reference in New Issue
Block a user