<?php
/**
 * Kullanıcı Paneli - Ödeme Dekontu İletme Sayfası
 * Konum: /magaza/kullanici/odeme-ilet.php
 */
require_once '../includes/db.php';
require_once '../includes/functions.php';

// Güvenlik: Giriş kontrolü (Eğer ghost registration ile otomatik giriş yapıldıysa $_SESSION dolu olacaktır)
if (!isset($_SESSION['user_id'])) {
    header("Location: ../giris.php");
    exit;
}

$mesaj = '';
$siparis_no = isset($_GET['siparis_no']) ? trim($_GET['siparis_no']) : '';

// 1. Siparişi ve Ödeme Yöntemini Doğrula
$stmt = $db->prepare("
    SELECT o.id, o.order_number, p.payment_method, p.status as payment_status 
    FROM orders o 
    JOIN payments p ON p.order_id = o.id 
    WHERE o.order_number = ? AND o.user_id = ?
");
$stmt->execute([$siparis_no, $_SESSION['user_id']]);
$siparis = $stmt->fetch();

if (!$siparis || $siparis['payment_method'] !== 'bank_transfer') {
    die("<div class='alert alert-danger m-5'>Geçersiz sipariş veya bu işlem için uygun olmayan ödeme yöntemi.</div>");
}

// 2. Dekont Yükleme İşlemi (POST)
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['dekont'])) {
    $dosya = $_FILES['dekont'];
    $uzanti = strtolower(pathinfo($dosya['name'], PATHINFO_EXTENSION));
    $izin_verilenler = ['jpg', 'jpeg', 'png', 'pdf'];

    if (!in_array($uzanti, $izin_verilenler)) {
        $mesaj = "<div class='alert alert-danger shadow-sm fw-bold'><i class='bi bi-x-circle me-2'></i>Hata: Sadece JPG, PNG veya PDF dosyaları kabul edilir.</div>";
    } elseif ($dosya['size'] > 5 * 1024 * 1024) { // 5MB Limit
        $mesaj = "<div class='alert alert-danger shadow-sm fw-bold'><i class='bi bi-exclamation-triangle me-2'></i>Hata: Dosya boyutu 5MB'dan büyük olamaz.</div>";
    } else {
        // Klasör kontrolü
        $yukleme_dizini = "../uploads/receipts/";
        if (!is_dir($yukleme_dizini)) mkdir($yukleme_dizini, 0777, true);

        $yeni_dosya_adi = "dekont_" . $siparis['order_number'] . "_" . time() . "." . $uzanti;
        $hedef_yol = $yukleme_dizini . $yeni_dosya_adi;

        if (move_uploaded_file($dosya['tmp_name'], $hedef_yol)) {
            $db_yolu = "uploads/receipts/" . $yeni_dosya_adi;
            
            // Veritabanını Güncelle
            $up_stmt = $db->prepare("UPDATE payments SET receipt_file_path = ?, status = 'pending' WHERE order_id = ?");
            $up_stmt->execute([$db_yolu, $siparis['id']]);

            $mesaj = "<div class='alert alert-success shadow-sm rounded-4 border-0 p-4'>
                        <h5 class='fw-bold mb-2'><i class='bi bi-check-circle-fill me-2'></i>Dekontunuz İletildi!</h5>
                        <p class='mb-0'>Ödemeniz finans birimimizce kontrol edildikten sonra siparişiniz onaylanacaktır. Teşekkür ederiz.</p>
                      </div>";
        }
    }
}

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

<main class="container py-5 text-dark">
    <div class="row justify-content-center">
        <div class="col-md-7 col-lg-5">
            <h2 class="fw-bold mb-4"><i class="bi bi-file-earmark-pdf text-primary me-2"></i>Ödeme Bildirimi</h2>
            
            <?= $mesaj ?>

            <?php if (empty($mesaj) || strpos($mesaj, 'alert-danger') !== false): ?>
            <div class="card shadow-sm border-0 rounded-4 overflow-hidden">
                <div class="card-header bg-dark text-white py-3">
                    <h6 class="mb-0 fw-bold small text-uppercase">Sipariş: #<?= htmlspecialchars($siparis['order_number']) ?></h6>
                </div>
                <div class="card-body p-4">
                    <form action="" method="POST" enctype="multipart/form-data">
                        <div class="mb-4 text-center">
                            <p class="text-muted small">Lütfen yaptığınız ödemeye ait ATM fişi fotoğrafını veya dijital dekontu seçiniz.</p>
                            <label for="dekontInput" class="btn btn-outline-primary btn-lg w-100 border-2 py-4 border-dashed" style="border-style: dashed !important;">
                                <i class="bi bi-cloud-arrow-up fs-1 d-block mb-2"></i>
                                <span class="fw-bold">Dekont Dosyasını Seç</span>
                                <input type="file" name="dekont" id="dekontInput" class="d-none" accept=".jpg,.jpeg,.png,.pdf" required onchange="updateFileName(this)">
                            </label>
                            <div id="fileName" class="mt-2 fw-bold text-success small"></div>
                        </div>

                        <div class="p-3 bg-light rounded border mb-4 small text-secondary">
                            <i class="bi bi-shield-check text-success me-1"></i> Finans birimimiz incelemeyi genellikle <b>1 saat</b> içerisinde tamamlar.
                        </div>

                        <button type="submit" class="btn btn-primary btn-lg w-100 fw-bold shadow-sm rounded-pill py-3">
                            BİLDİRİMİ GÖNDER
                        </button>
                        <a href="abonelikler.php" class="btn btn-link w-100 mt-3 text-decoration-none text-muted small">İptal ve Geri Dön</a>
                    </form>
                </div>
            </div>
            <?php endif; ?>
        </div>
    </div>
</main>

<script>
function updateFileName(input) {
    const fileNameDisplay = document.getElementById('fileName');
    if (input.files.length > 0) {
        fileNameDisplay.innerHTML = '<i class="bi bi-file-earmark-check me-1"></i> Seçilen Dosya: ' + input.files[0].name;
    }
}
</script>

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