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