<?php
// user/donasi/buat.php
$pageTitle = 'Buat Donasi';
require_once '../../includes/config.php';
require_once '../../includes/database.php';
require_once '../../includes/functions.php';
require_once '../../includes/auth.php';

// Mulai session jika belum dimulai
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

// Cek apakah user sudah login dan role-nya donatur
if (!isset($_SESSION['user_id']) || !isset($_SESSION['role']) || $_SESSION['role'] != 'donatur') {
    // Redirect ke halaman login jika belum login atau bukan donatur
    setFlash('login_required', 'Anda harus login sebagai donatur untuk mengakses halaman ini', 'danger');
    header('Location: ' . SITE_URL . '/auth/login.php');
    exit;
}

$user_id = $_SESSION['user_id'];
$db = dbConnect();

// Jika ada parameter kampanye_id, ambil data kampanye tersebut
$kampanye_id = isset($_GET['kampanye_id']) ? (int) $_GET['kampanye_id'] : 0;
$selected_kampanye = null;

if ($kampanye_id > 0) {
    $db->query("SELECT * FROM kampanye WHERE id = :id AND status = 'aktif'");
    $db->bind(':id', $kampanye_id);
    $selected_kampanye = $db->single();
    
    if (!$selected_kampanye) {
        setFlash('donasi', 'Kampanye tidak ditemukan atau tidak aktif', 'danger');
        header('Location: ' . SITE_URL . '/user/donasi/buat.php');
        exit;
    }
}

// Ambil semua kampanye aktif
$db->query("SELECT k.*, 
            (SELECT SUM(d.jumlah) FROM donasi d WHERE d.kampanye_id = k.id AND d.status = 'diverifikasi') as total_terkumpul 
            FROM kampanye k 
            WHERE k.status = 'aktif' 
            ORDER BY k.created_at DESC");
$kampanye_list = $db->resultSet();

// Proses form donasi
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Validasi input
    $kampanye_id = isset($_POST['kampanye_id']) ? (int) $_POST['kampanye_id'] : 0;
    $jumlah = isset($_POST['jumlah']) ? str_replace(['.', ','], '', $_POST['jumlah']) : 0; // Remove formatting
    $metode_pembayaran = isset($_POST['metode_pembayaran']) ? sanitize($_POST['metode_pembayaran']) : '';
    $is_anonim = isset($_POST['is_anonim']) ? 1 : 0;
    $keterangan = isset($_POST['keterangan']) ? sanitize($_POST['keterangan']) : '';
    
    // Validasi donasi otomatis
    $is_otomatis = isset($_POST['is_otomatis']) ? 1 : 0;
    $frekuensi_otomatis = '';
    $tanggal_otomatis = null;
    
    if ($is_otomatis) {
        $frekuensi_otomatis = isset($_POST['frekuensi_otomatis']) ? sanitize($_POST['frekuensi_otomatis']) : '';
        $tanggal_otomatis = isset($_POST['tanggal_otomatis']) ? $_POST['tanggal_otomatis'] : '';
    }
    
    $errors = [];
    
    if ($kampanye_id <= 0) {
        $errors[] = 'Silakan pilih kampanye';
    }
    
    if ($jumlah <= 0) {
        $errors[] = 'Jumlah donasi harus lebih dari 0';
    }
    
    if (empty($metode_pembayaran)) {
        $errors[] = 'Metode pembayaran harus dipilih';
    }
    
    if ($is_otomatis) {
        if (empty($frekuensi_otomatis)) {
            $errors[] = 'Frekuensi donasi otomatis harus dipilih';
        }
        
        if (empty($tanggal_otomatis)) {
            $errors[] = 'Tanggal donasi otomatis harus dipilih';
        }
    }
    
    // Cek kampanye valid
    if ($kampanye_id > 0) {
        $db->query("SELECT * FROM kampanye WHERE id = :id AND status = 'aktif'");
        $db->bind(':id', $kampanye_id);
        $kampanye = $db->single();
        
        if (!$kampanye) {
            $errors[] = 'Kampanye tidak ditemukan atau tidak aktif';
        }
    }
    
    if (empty($errors)) {
        // Insert donasi
        $db->query("INSERT INTO donasi (kampanye_id, user_id, jumlah, metode_pembayaran, keterangan, is_anonim, is_otomatis, frekuensi_otomatis, tanggal_otomatis) 
                   VALUES (:kampanye_id, :user_id, :jumlah, :metode_pembayaran, :keterangan, :is_anonim, :is_otomatis, :frekuensi_otomatis, :tanggal_otomatis)");
        $db->bind(':kampanye_id', $kampanye_id);
        $db->bind(':user_id', $user_id);
        $db->bind(':jumlah', $jumlah);
        $db->bind(':metode_pembayaran', $metode_pembayaran);
        $db->bind(':keterangan', $keterangan);
        $db->bind(':is_anonim', $is_anonim);
        $db->bind(':is_otomatis', $is_otomatis);
        $db->bind(':frekuensi_otomatis', $frekuensi_otomatis);
        $db->bind(':tanggal_otomatis', $tanggal_otomatis);
        
        if ($db->execute()) {
            $donasi_id = $db->lastInsertId();
            
            // Log aktivitas
$auth = new Auth();
$auth->logActivity($_SESSION['user_id'], 'Membuat donasi baru', 'donasi', $donasi_id, 'User membuat donasi baru untuk kampanye: ' . $kampanye->judul);            
            
            
            // // Buat notifikasi untuk bendahara
            // $db->query("SELECT id FROM users WHERE role = 'bendahara'");
            // $bendahara = $db->resultSet();
            // foreach ($bendahara as $user) {
            //     createNotification(
            //         $user->id,
            //         'Donasi Baru',
            //         'Ada donasi baru sebesar ' . rupiah($jumlah) . ' untuk kampanye "' . $kampanye->judul . '"',
            //         SITE_URL . '/bendahara/donasi/detail.php?id=' . $donasi_id
            //     );
            // }
            
            // Redirect ke halaman upload bukti
            setFlash('donasi', 'Donasi berhasil dibuat. Silakan lakukan pembayaran dan upload bukti transfer.', 'success');
            header('Location: ' . SITE_URL . '/user/donasi/upload-bukti.php?id=' . $donasi_id);
            exit;
        } else {
            setFlash('donasi', 'Gagal membuat donasi', 'danger');
        }
    } else {
        // Gabungkan semua error
        $error_message = implode('<br>', $errors);
        setFlash('donasi', $error_message, 'danger');
    }
}

// Ambil rekening bank yayasan
$db->query("SELECT rekening_bank FROM profil_yayasan LIMIT 1");
$yayasan = $db->single();
$rekening_bank = $yayasan ? nl2br($yayasan->rekening_bank) : 'Rekening bank belum tersedia';

// Include header
require_once '../../includes/header.php';
?>

<!-- Sidebar & Content -->
<div class="container-fluid">
    <div class="row">
        <!-- Sidebar -->
        <nav id="sidebar" class="col-md-3 col-lg-2 d-md-block bg-light sidebar collapse">
            <div class="position-sticky pt-3">
                <ul class="nav flex-column">
                    <li class="nav-item">
                        <a class="nav-link" href="<?= SITE_URL ?>/user/dashboard.php">
                            <i class="fas fa-tachometer-alt me-2"></i>
                            Dashboard
                        </a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="<?= SITE_URL ?>/user/donasi/index.php">
                            <i class="fas fa-donate me-2"></i>
                            Donasi Saya
                        </a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link active" href="<?= SITE_URL ?>/user/donasi/buat.php">
                            <i class="fas fa-hand-holding-heart me-2"></i>
                            Buat Donasi
                        </a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="<?= SITE_URL ?>/user/profil/index.php">
                            <i class="fas fa-user-circle me-2"></i>
                            Profil Saya
                        </a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="<?= SITE_URL ?>/auth/logout.php">
                            <i class="fas fa-sign-out-alt me-2"></i>
                            Logout
                        </a>
                    </li>
                </ul>
                
                <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted">
                    <span>Pintasan</span>
                </h6>
                <ul class="nav flex-column mb-2">
                    <li class="nav-item">
                        <a class="nav-link" href="<?= SITE_URL ?>" target="_blank">
                            <i class="fas fa-external-link-alt me-2"></i>
                            Lihat Website
                        </a>
                    </li>
                </ul>
            </div>
        </nav>

        <!-- Content Area -->
        <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
            <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
                <h1 class="h2">Buat Donasi</h1>
                <div class="btn-toolbar mb-2 mb-md-0">
                    <a href="<?= SITE_URL ?>/user/donasi/index.php" class="btn btn-sm btn-outline-secondary">
                        <i class="fas fa-arrow-left me-1"></i> Kembali
                    </a>
                </div>
            </div>

            <?php flash(); ?>

            <div class="row">
                <!-- Form Donasi -->
                <div class="col-md-7 mb-4">
                    <div class="card">
                        <div class="card-header bg-light">
                            <h5 class="mb-0">Form Donasi</h5>
                        </div>
                        <div class="card-body">
                            <form action="" method="post" id="donasi-form">
                                <!-- Pilih Kampanye -->
                                <div class="mb-3">
                                    <label for="kampanye_id" class="form-label">Pilih Kampanye</label>
                                    <select class="form-select" id="kampanye_id" name="kampanye_id" required>
                                        <option value="">-- Pilih Kampanye --</option>
                                        <?php foreach ($kampanye_list as $kampanye): ?>
                                            <?php 
                                            $total_terkumpul = $kampanye->total_terkumpul ?? 0;
                                            $persentase = hitungPersentase($total_terkumpul, $kampanye->target_donasi);
                                            ?>
                                            <option value="<?= $kampanye->id ?>" <?= ($kampanye_id == $kampanye->id) ? 'selected' : '' ?>>
                                                <?= $kampanye->judul ?> (<?= $persentase ?>% terkumpul)
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                                
                                <!-- Jumlah Donasi -->
                                <div class="mb-3">
                                    <label for="jumlah" class="form-label">Jumlah Donasi</label>
                                    <div class="input-group">
                                        <span class="input-group-text">Rp</span>
                                        <input type="text" class="form-control rupiah-input" id="jumlah" name="jumlah" placeholder="Masukkan jumlah donasi" required>
                                    </div>
                                    <small class="text-muted">Minimal donasi Rp 10.000</small>
                                </div>
                                
                                <!-- Metode Pembayaran -->
                                <div class="mb-3">
                                    <label for="metode_pembayaran" class="form-label">Metode Pembayaran</label>
                                    <select class="form-select" id="metode_pembayaran" name="metode_pembayaran" required>
                                        <option value="">-- Pilih Metode Pembayaran --</option>
                                        <option value="transfer bank">Transfer Bank</option>
                                    </select>
                                </div>
                                
                                <!-- Keterangan -->
                                <div class="mb-3">
                                    <label for="keterangan" class="form-label">Keterangan (opsional)</label>
                                    <textarea class="form-control" id="keterangan" name="keterangan" rows="3" placeholder="Tambahkan pesan atau keterangan untuk donasi ini"></textarea>
                                </div>
                                
                                <!-- Donasi Anonim -->
                                <div class="mb-3 form-check">
                                    <input type="checkbox" class="form-check-input" id="is_anonim" name="is_anonim">
                                    <label class="form-check-label" for="is_anonim">Donasi sebagai Anonim</label>
                                    <small class="d-block text-muted">Nama Anda tidak akan ditampilkan di halaman kampanye</small>
                                </div>
                                
                                <!-- Donasi Otomatis -->
                                <div class="mb-3 form-check">
                                    <input type="checkbox" class="form-check-input" id="donasi_otomatis" name="is_otomatis">
                                    <label class="form-check-label" for="donasi_otomatis">Donasi Otomatis</label>
                                    <small class="d-block text-muted">Pengaturan donasi secara rutin</small>
                                </div>
                                
                                <!-- Opsi Donasi Otomatis -->
                                <div id="opsi-donasi-otomatis" style="display: none;">
                                    <div class="card bg-light mb-3">
                                        <div class="card-body">
                                            <h6 class="card-title">Pengaturan Donasi Otomatis</h6>
                                            
                                            <div class="mb-3">
                                                <label for="frekuensi_otomatis" class="form-label">Frekuensi</label>
                                                <select class="form-select" id="frekuensi_otomatis" name="frekuensi_otomatis">
                                                    <option value="">-- Pilih Frekuensi --</option>
                                                    <option value="bulanan">Bulanan</option>
                                                    <option value="mingguan">Mingguan</option>
                                                </select>
                                            </div>
                                            
                                            <div class="mb-3">
                                                <label for="tanggal_otomatis" class="form-label">Tanggal Mulai</label>
                                                <input type="date" class="form-control" id="tanggal_otomatis" name="tanggal_otomatis" min="<?= date('Y-m-d') ?>">
                                            </div>
                                            
                                            <div class="alert alert-info mb-0">
                                                <small>
                                                    <i class="fas fa-info-circle me-1"></i> Donasi otomatis akan dijalankan pada tanggal yang dipilih. Anda akan mendapatkan notifikasi untuk melakukan pembayaran setiap periode.
                                                </small>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                
                                <button type="submit" class="btn btn-success">Donasi Sekarang</button>
                            </form>
                        </div>
                    </div>
                </div>
                
                <!-- Informasi Rekening -->
                <div class="col-md-5 mb-4">
                    <div class="card mb-4">
                        <div class="card-header bg-light">
                            <h5 class="mb-0">Informasi Rekening</h5>
                        </div>
                        <div class="card-body">
                            <div class="alert alert-info">
                                <p class="mb-0"><i class="fas fa-info-circle me-2"></i> Silakan transfer donasi Anda ke rekening berikut:</p>
                            </div>
                            
                            <div class="bg-light p-3 rounded">
                                <?= $rekening_bank ?>
                            </div>
                            
                            <div class="alert alert-warning mt-3">
                                <p class="mb-0"><i class="fas fa-exclamation-triangle me-2"></i> Setelah melakukan pembayaran, jangan lupa untuk upload bukti transfer.</p>
                            </div>
                        </div>
                    </div>
                    
                    <?php if ($selected_kampanye): ?>
                        <div class="card">
                            <div class="card-header bg-light">
                                <h5 class="mb-0">Detail Kampanye</h5>
                            </div>
                            <div class="card-body">
                                <h5><?= $selected_kampanye->judul ?></h5>
                                
                                <?php
                                $db->query("SELECT SUM(jumlah) as total FROM donasi WHERE kampanye_id = :id AND status = 'diverifikasi'");
                                $db->bind(':id', $selected_kampanye->id);
                                $total_terkumpul = $db->single()->total ?? 0;
                                $persentase = hitungPersentase($total_terkumpul, $selected_kampanye->target_donasi);
                                ?>
                                
                                <div class="progress my-3" style="height: 10px;">
                                    <div class="progress-bar bg-success" role="progressbar" style="width: <?= $persentase ?>%;" aria-valuenow="<?= $persentase ?>" aria-valuemin="0" aria-valuemax="100"></div>
                                </div>
                                
                                <div class="d-flex justify-content-between mb-3">
                                    <span>Terkumpul: <?= rupiah($total_terkumpul) ?></span>
                                    <span>Target: <?= rupiah($selected_kampanye->target_donasi) ?></span>
                                </div>
                                
                                <div class="mb-3">
                                    <p><?= potongTeks($selected_kampanye->deskripsi, 200) ?></p>
                                </div>
                                
                                <div class="d-flex justify-content-between">
                                    <span><i class="far fa-calendar-alt me-1"></i> Berakhir: <?= date('d/m/Y', strtotime($selected_kampanye->tanggal_selesai)) ?></span>
                                </div>
                            </div>
                        </div>
                    <?php endif; ?>
                </div>
            </div>
        </main>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Format input rupiah
    const rupiahInputs = document.querySelectorAll('.rupiah-input');
    rupiahInputs.forEach(function(input) {
        input.addEventListener('keyup', function(e) {
            // Skip for arrow keys
            if(e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowLeft' || e.key === 'ArrowRight') {
                return;
            }
            
            // Remove all non-digit characters
            let value = this.value.replace(/\D/g, '');
            
            // Format the value
            if (value !== '') {
                value = parseInt(value, 10).toLocaleString('id-ID');
            }
            
            // Update the value
            this.value = value;
        });
        
        // On form submit, remove the formatting
        input.form.addEventListener('submit', function() {
            input.value = input.value.replace(/\D/g, '');
        });
    });
    
    // Donasi otomatis form toggle
    const otomatisCheckbox = document.getElementById('donasi_otomatis');
    const otomatisOptions = document.getElementById('opsi-donasi-otomatis');
    
    if (otomatisCheckbox && otomatisOptions) {
        otomatisCheckbox.addEventListener('change', function() {
            if (this.checked) {
                otomatisOptions.style.display = 'block';
            } else {
                otomatisOptions.style.display = 'none';
            }
        });
        
        // Initial state
        otomatisOptions.style.display = otomatisCheckbox.checked ? 'block' : 'none';
    }
});
</script>

<?php require_once '../../includes/footer.php'; ?>