<?php
session_start();

if (!isset($_SESSION['id_user']) || !isset($_SESSION['role'])) {
    echo "<script>
        alert('Akses ditolak. Silakan login.');
        window.location.href = 'login.php';
    </script>";
    exit;
}

// ✅ Hanya Admin
if (strtolower($_SESSION['role']) !== 'admin') {
    echo "<script>
        alert('Akses hanya untuk admin.');
        window.location.href = 'index.php';
    </script>";
    exit;
}

include 'koneksi.php';

// ✅ Start Transaction
mysqli_begin_transaction($conn);

try {
    $id_user = $_SESSION['id_user'];
    $tanggal_mulai = date("Y-m-d");
    $status = 'Berjalan';

    // Ambil nama dan jabatan dari tabel users
    $query_user = "SELECT name, jabatan FROM users WHERE id_user = ?";
    $stmt_user = mysqli_prepare($conn, $query_user);
    mysqli_stmt_bind_param($stmt_user, "i", $id_user);
    mysqli_stmt_execute($stmt_user);
    mysqli_stmt_bind_result($stmt_user, $name, $jabatan);
    mysqli_stmt_fetch($stmt_user);
    mysqli_stmt_close($stmt_user);

    // Insert ke produksi_master termasuk name & jabatan
    $query_master = "INSERT INTO produksi_master (tanggal_mulai, status, id_user, name, jabatan) VALUES (?, ?, ?, ?, ?)";
    $stmt_master = mysqli_prepare($conn, $query_master);
    mysqli_stmt_bind_param($stmt_master, "ssiss", $tanggal_mulai, $status, $id_user, $name, $jabatan);
    mysqli_stmt_execute($stmt_master);

    $id_produksi = mysqli_insert_id($conn);

    // ✅ Generate kode_produksi PR-<id_produksi>
    $kode_produksi = "PR-" . $id_produksi;
    $update_kode = "UPDATE produksi_master SET kode_produksi = ? WHERE id_produksi = ?";
    $stmt_update_kode = mysqli_prepare($conn, $update_kode);
    mysqli_stmt_bind_param($stmt_update_kode, "si", $kode_produksi, $id_produksi);
    mysqli_stmt_execute($stmt_update_kode);

    // 💥 Insert penerimaan_pucuk
    $kode_penerimaan = "PC-$id_produksi-1";
    $query_penerimaan = "INSERT INTO penerimaan_pucuk (id_produksi, kode_penerimaan) VALUES (?, ?)";
    $stmt_penerimaan = mysqli_prepare($conn, $query_penerimaan);
    mysqli_stmt_bind_param($stmt_penerimaan, "is", $id_produksi, $kode_penerimaan);
    mysqli_stmt_execute($stmt_penerimaan);

    $id_penerimaan = mysqli_insert_id($conn);

    // 💥 Insert pelayuan
    $kode_pelayuan = "PL-$id_produksi-$id_penerimaan";
    $query_pelayuan = "INSERT INTO pelayuan (id_produksi, id_penerimaan, kode_pelayuan) VALUES (?, ?, ?)";
    $stmt_pelayuan = mysqli_prepare($conn, $query_pelayuan);
    mysqli_stmt_bind_param($stmt_pelayuan, "iis", $id_produksi, $id_penerimaan, $kode_pelayuan);
    mysqli_stmt_execute($stmt_pelayuan);

    $id_pelayuan = mysqli_insert_id($conn);

    // 💥 Insert penggilingan
    $kode_penggilingan = "PG-$id_produksi-$id_pelayuan";
    $query_penggilingan = "INSERT INTO penggilingan (id_produksi, id_pelayuan, kode_penggilingan) VALUES (?, ?, ?)";
    $stmt_penggilingan = mysqli_prepare($conn, $query_penggilingan);
    mysqli_stmt_bind_param($stmt_penggilingan, "iis", $id_produksi, $id_pelayuan, $kode_penggilingan);
    mysqli_stmt_execute($stmt_penggilingan);

    $id_penggilingan = mysqli_insert_id($conn);

    // 💥 Insert oksidasi
    $kode_oksidasi = "OE-$id_produksi-$id_penggilingan";
    $query_oksidasi = "INSERT INTO oksidasi (id_produksi, id_penggilingan, kode_oksidasi) VALUES (?, ?, ?)";
    $stmt_oksidasi = mysqli_prepare($conn, $query_oksidasi);
    mysqli_stmt_bind_param($stmt_oksidasi, "iis", $id_produksi, $id_penggilingan, $kode_oksidasi);
    mysqli_stmt_execute($stmt_oksidasi);

    $id_oksidasi = mysqli_insert_id($conn);

    // 💥 Insert pengeringan
    $kode_pengeringan = "PE-$id_produksi-$id_oksidasi";
    $query_pengeringan = "INSERT INTO pengeringan (id_produksi, id_oksidasi, kode_pengeringan) VALUES (?, ?, ?)";
    $stmt_pengeringan = mysqli_prepare($conn, $query_pengeringan);
    mysqli_stmt_bind_param($stmt_pengeringan, "iis", $id_produksi, $id_oksidasi, $kode_pengeringan);
    mysqli_stmt_execute($stmt_pengeringan);

    $id_pengeringan = mysqli_insert_id($conn);

    // 💥 Insert sortasi
    $kode_sortasi = "SO-$id_produksi-$id_pengeringan";
    $query_sortasi = "INSERT INTO sortasi (id_produksi, id_pengeringan, kode_sortasi) VALUES (?, ?, ?)";
    $stmt_sortasi = mysqli_prepare($conn, $query_sortasi);
    mysqli_stmt_bind_param($stmt_sortasi, "iis", $id_produksi, $id_pengeringan, $kode_sortasi);
    mysqli_stmt_execute($stmt_sortasi);

    $id_sortasi = mysqli_insert_id($conn);

    // 💥 Insert pengepakan
    $kode_pengepakan = "PN-$id_produksi-$id_sortasi";
    $query_pengepakan = "INSERT INTO pengepakan (id_produksi, id_sortasi, kode_pengepakan) VALUES (?, ?, ?)";
    $stmt_pengepakan = mysqli_prepare($conn, $query_pengepakan);
    mysqli_stmt_bind_param($stmt_pengepakan, "iis", $id_produksi, $id_sortasi, $kode_pengepakan);
    mysqli_stmt_execute($stmt_pengepakan);

    // ✅ Commit transaksi
    mysqli_commit($conn);

    // ✅ Tutup semua statement
    mysqli_stmt_close($stmt_master);
    mysqli_stmt_close($stmt_update_kode);
    mysqli_stmt_close($stmt_penerimaan);
    mysqli_stmt_close($stmt_pelayuan);
    mysqli_stmt_close($stmt_penggilingan);
    mysqli_stmt_close($stmt_oksidasi);
    mysqli_stmt_close($stmt_pengeringan);
    mysqli_stmt_close($stmt_sortasi);
    mysqli_stmt_close($stmt_pengepakan);

    echo "<script>
        alert('Produksi baru berhasil dibuat!');
        window.location.href = 'index.php?success=1';
    </script>";
    exit;

} catch (Exception $e) {
    mysqli_rollback($conn); // ❌ Rollback kalau error
    echo "<script>
        alert('Gagal membuat produksi baru: " . mysqli_real_escape_string($conn, $e->getMessage()) . "');
        window.location.href = 'index.php';
    </script>";
    exit;
}
?>
