<?php
require_once 'includes/auth.php';
require_once 'config/database.php';
require_once 'includes/functions.php';

$projet_id = filter_input(INPUT_GET, 'projet_id', FILTER_VALIDATE_INT);
if (!$projet_id) {
    header('Location: dashboard.php');
    exit;
}

$pdo = getPDO();

// Récupérer le projet
$stmt = $pdo->prepare("SELECT * FROM projets WHERE id = ?");
$stmt->execute([$projet_id]);
$projet = $stmt->fetch();
if (!$projet) {
    header('Location: dashboard.php');
    exit;
}

$show_deleted = filter_input(INPUT_GET, 'deleted', FILTER_VALIDATE_BOOLEAN) ? true : false;
$filter_signed = $_GET['signed'] ?? ''; // 'oui', 'non' ou ''

$sql_where = $show_deleted ? "f.deleted_at IS NOT NULL" : "f.deleted_at IS NULL";
$sql_where .= " AND d.projet_id = :projet_id";

if ($filter_signed === 'oui') {
    $sql_where .= " AND f.signature_responsable IS NOT NULL";
} elseif ($filter_signed === 'non') {
    $sql_where .= " AND f.signature_responsable IS NULL";
}

$sql = "SELECT f.*, sd.nom as sous_dossier_nom, d.nom as dossier_nom,
               u.nom as createur_nom, ud.nom as deleted_by_nom
        FROM fiches f
        JOIN sous_dossiers sd ON f.sous_dossier_id = sd.id
        JOIN dossiers d ON sd.dossier_id = d.id
        LEFT JOIN users u ON f.createur_id = u.id
        LEFT JOIN users ud ON f.deleted_by = ud.id
        WHERE $sql_where
        ORDER BY f.date_creation DESC";

$stmt = $pdo->prepare($sql);
$stmt->execute(['projet_id' => $projet_id]);
$fiches = $stmt->fetchAll();

$is_admin = in_array($_SESSION['user_role'], ['superadmin','admin']);
$user_signature = $_SESSION['user_signature'] ?? null;

require_once 'includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4 flex-wrap gap-2">
    <div>
        <a href="dashboard.php" class="btn btn-outline-secondary me-2">
            <i class="fas fa-arrow-left me-1"></i> Retour au tableau de bord
        </a>
        <?php if ($is_admin): ?>
            <a href="admin/index.php" class="btn btn-outline-primary">
                <i class="fas fa-tachometer-alt me-1"></i> Espace admin
            </a>
        <?php endif; ?>
    </div>
    <div>
        <a href="?projet_id=<?= $projet_id ?>&deleted=<?= $show_deleted ? 0 : 1 ?>" class="btn btn-outline-secondary me-2">
            <i class="fas <?= $show_deleted ? 'fa-arrow-left' : 'fa-trash-alt' ?>"></i>
            <?= $show_deleted ? 'Fiches actives' : 'Voir corbeille' ?>
        </a>
        <a href="export_csv.php?projet_id=<?= $projet_id ?>&deleted=<?= $show_deleted ? 1 : 0 ?>" class="btn btn-success">CSV</a>
        <a href="export_pdf.php?projet_id=<?= $projet_id ?>&deleted=<?= $show_deleted ? 1 : 0 ?>" class="btn btn-danger">PDF</a>
    </div>
</div>

<h1><i class="fas fa-chart-pie me-2"></i>Récapitulatif - <?= htmlspecialchars($projet['nom']) ?></h1>

<!-- Filtre par signature -->
<?php if (!$show_deleted): ?>
<div class="card mb-3">
    <div class="card-body py-2">
        <form method="get" class="row g-2 align-items-center">
            <input type="hidden" name="projet_id" value="<?= $projet_id ?>">
            <div class="col-auto">
                <label class="form-label mb-0">Signature responsable :</label>
            </div>
            <div class="col-auto">
                <select name="signed" class="form-select form-select-sm" onchange="this.form.submit()">
                    <option value="" <?= $filter_signed === '' ? 'selected' : '' ?>>Toutes</option>
                    <option value="oui" <?= $filter_signed === 'oui' ? 'selected' : '' ?>>Signées</option>
                    <option value="non" <?= $filter_signed === 'non' ? 'selected' : '' ?>>Non signées</option>
                </select>
            </div>
            <div class="col-auto">
                <a href="?projet_id=<?= $projet_id ?>" class="btn btn-sm btn-secondary">Réinitialiser</a>
            </div>
        </form>
    </div>
</div>
<?php endif; ?>

<?php if (empty($fiches)): ?>
    <div class="alert alert-info"><?= $show_deleted ? 'Corbeille vide' : 'Aucune fiche pour ce projet.' ?></div>
<?php else: ?>
    <div class="table-responsive">
        <table class="table table-striped table-hover" id="tableRecap">
            <thead class="table-dark">
                <tr>
                    <th class="nosort" style="width:30px;"><input type="checkbox" id="selectAllCheckboxHeader"></th>
                    <th>N° Fiche</th>
                    <th>Titre</th>
                    <th>Dossier</th>
                    <th>Sous-dossier</th>
                    <th>Zone</th>
                    <th>Type</th>
                    <th>Description des réserves</th>
                    <th>Statut</th>
                    <th>Créateur</th>
                    <th>Date création</th>
                    <?php if ($show_deleted): ?>
                        <th>Supprimé par</th>
                        <th>Date suppression</th>
                    <?php endif; ?>
                    <th>PDF</th>
                    <th>Signature resp.</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($fiches as $fiche): ?>
                <?php
                $signature_responsable = $fiche['signature_responsable'] ?? null;
                $signature_date = $fiche['signature_responsable_date'] ?? null;
                $is_signed = !empty($signature_responsable) && file_exists($signature_responsable);
                ?>
                <tr data-id="<?= $fiche['id'] ?>" class="<?= $is_signed ? 'table-success' : '' ?>">
                    <td class="text-center"><input type="checkbox" class="row-selector" value="<?= $fiche['id'] ?>"></td>
                    <td><code><?= htmlspecialchars($fiche['numero_fiche']) ?></code></td>
                    <td><?= htmlspecialchars($fiche['titre']) ?></td>
                    <td><?= htmlspecialchars($fiche['dossier_nom']) ?></td>
                    <td><?= htmlspecialchars($fiche['sous_dossier_nom']) ?></td>
                    <td><?= htmlspecialchars($fiche['zone'] ?? '') ?></td>
                    <td><span class="badge <?= $fiche['type_reserve']=='sans_reserve'?'bg-success':'bg-danger' ?>"><?= $fiche['type_reserve'] == 'sans_reserve' ? 'Sans réserve' : 'Avec réserve' ?></span></td>
                    <td><?= nl2br(htmlspecialchars($fiche['description_reserve'] ?? '')) ?></td>
                    <td><span class="badge <?= match($fiche['statut']){'brouillon'=>'bg-secondary','soumis'=>'bg-warning','valide'=>'bg-success'} ?>"><?= $fiche['statut'] ?></span></td>
                    <td><?= htmlspecialchars($fiche['createur_nom'] ?? '') ?></td>
                    <td><?= date('d/m/Y', strtotime($fiche['date_creation'])) ?></td>
                    <?php if ($show_deleted): ?>
                        <td><?= htmlspecialchars($fiche['deleted_by_nom'] ?? '') ?></td>
                        <td><?= $fiche['deleted_at'] ? date('d/m/Y H:i', strtotime($fiche['deleted_at'])) : '' ?></td>
                    <?php endif; ?>
                    <td class="text-center">
                        <?php if ($fiche['pdf_path']): ?>
                            <a href="<?= htmlspecialchars($fiche['pdf_path']) ?>" target="_blank"><i class="fas fa-file-pdf text-danger fa-lg"></i></a>
                        <?php else: ?>
                            <i class="fas fa-times text-muted"></i>
                        <?php endif; ?>
                    </td>
                    <td class="text-center signature-cell" data-toggle="tooltip" title="<?= $is_signed && $signature_date ? 'Signée le ' . date('d/m/Y H:i', strtotime($signature_date)) : 'Non signée' ?>">
                        <?php if ($is_signed): ?>
                            <img src="<?= htmlspecialchars($signature_responsable) ?>" alt="Signature" style="max-height: 30px; border: 1px solid #ccc; border-radius: 3px; padding: 2px;" class="signature-thumb">
                        <?php else: ?>
                            <i class="fas fa-times-circle text-danger" title="Non signée"></i>
                        <?php endif; ?>
                    </td>
                    <td class="text-center">
                        <div class="btn-group btn-group-sm" role="group">
                            <a href="fiche_view.php?id=<?= $fiche['id'] ?>" class="btn btn-info" title="Voir"><i class="fas fa-eye"></i></a>
                            <?php if (!$show_deleted && ($is_admin || $_SESSION['user_id'] == $fiche['createur_id'])): ?>
                                <a href="fiche_edit.php?id=<?= $fiche['id'] ?>" class="btn btn-warning" title="Modifier"><i class="fas fa-edit"></i></a>
                                <a href="fiche_delete.php?id=<?= $fiche['id'] ?>&action=soft" class="btn btn-danger" onclick="return confirm('Déplacer vers la corbeille ?')" title="Corbeille"><i class="fas fa-trash"></i></a>
                            <?php endif; ?>
                            <?php if ($show_deleted && $is_admin): ?>
                                <a href="fiche_delete.php?id=<?= $fiche['id'] ?>&action=restore" class="btn btn-success" title="Restaurer"><i class="fas fa-undo"></i></a>
                                <a href="fiche_delete.php?id=<?= $fiche['id'] ?>&action=definitive" class="btn btn-danger" onclick="return confirm('Suppression définitive ?')" title="Supprimer définitivement"><i class="fas fa-trash-alt"></i></a>
                            <?php endif; ?>
                            <?php if ($is_admin && !$is_signed && $user_signature && !$show_deleted): ?>
                                <button class="btn btn-sm btn-outline-primary signer-btn" data-id="<?= $fiche['id'] ?>" title="Signer en tant que responsable">
                                    <i class="fas fa-pen"></i>
                                </button>
                            <?php endif; ?>
                        </div>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>

    <!-- Bouton "Signer toutes les fiches non signées" pour les admins -->
    <?php if ($is_admin && !$show_deleted && $user_signature): ?>
        <div class="mt-3 text-end">
            <button id="signAllBtn" class="btn btn-primary">
                <i class="fas fa-pen-fancy me-2"></i>Signer toutes les fiches non signées
            </button>
        </div>
    <?php endif; ?>

    <!-- Actions groupées pour les administrateurs -->
    <?php if ($is_admin && !$show_deleted && !empty($fiches)): ?>
        <div class="card mt-4">
            <div class="card-header bg-primary text-white">
                <i class="fas fa-tasks me-2"></i>Actions groupées (administrateur)
            </div>
            <div class="card-body">
                <div class="row align-items-end">
                    <div class="col-md-4">
                        <label class="form-label">Action groupée</label>
                        <select id="bulkAction" class="form-select">
                            <option value="">-- Choisir une action --</option>
                            <option value="sign">Signer sélectionnées</option>
                            <option value="delete">Déplacer vers corbeille</option>
                            <option value="export">Exporter sélectionnées (CSV)</option>
                        </select>
                    </div>
                    <div class="col-md-2">
                        <button type="button" class="btn btn-primary" onclick="executerActionGroup()">
                            <i class="fas fa-play"></i> Exécuter
                        </button>
                    </div>
                    <div class="col-md-6">
                        <div class="form-check">
                            <input class="form-check-input" type="checkbox" id="selectAllCheckbox">
                            <label class="form-check-label" for="selectAllCheckbox">
                                Tout sélectionner (cette page)
                            </label>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    <?php endif; ?>
<?php endif; ?>

<script>
$(document).ready(function() {
    var table = $('#tableRecap').DataTable({
        language: { url: '//cdn.datatables.net/plug-ins/1.13.4/i18n/fr-FR.json' },
        order: [[9, 'desc']],
        pageLength: 25,
        responsive: true,
        columnDefs: [
            { orderable: false, targets: 'nosort' },
            { orderable: false, targets: 0 } // première colonne (checkbox)
        ]
    });

    // Tooltips
    $('[data-toggle="tooltip"]').tooltip();

    // Gestion de la sélection globale (en-tête)
    $('#selectAllCheckboxHeader, #selectAllCheckbox').on('change', function() {
        var isChecked = $(this).prop('checked');
        $('.row-selector').prop('checked', isChecked);
    });

    // Mise à jour de la case "Tout sélectionner" quand une case individuelle change
    $(document).on('change', '.row-selector', function() {
        var allChecked = $('.row-selector:checked').length === $('.row-selector').length;
        $('#selectAllCheckboxHeader, #selectAllCheckbox').prop('checked', allChecked);
    });

    // Signature individuelle
    $('.signer-btn').click(function() {
        var btn = $(this);
        var id = btn.data('id');
        if (confirm('Signer cette fiche en tant que responsable hiérarchique ?')) {
            $.post('ajax_signer_fiche.php', { id: id }, function(data) {
                if (data.success) {
                    var row = btn.closest('tr');
                    row.find('.signature-cell').html('<img src="<?= $user_signature ?>" alt="Signature" style="max-height:30px; border:1px solid #ccc; border-radius:3px; padding:2px;" class="signature-thumb">');
                    row.addClass('table-success');
                    btn.remove();
                    alert('Fiche signée avec succès.');
                } else {
                    alert('Erreur : ' + data.error);
                }
            }, 'json').fail(function() {
                alert('Erreur réseau ou serveur.');
            });
        }
    });

    // Signer toutes les fiches non signées
    $('#signAllBtn').click(function() {
        if (confirm('Voulez-vous signer TOUTES les fiches non signées de ce projet ?')) {
            $.post('ajax_signer_all.php', { projet_id: <?= $projet_id ?> }, function(data) {
                if (data.success) {
                    location.reload();
                } else {
                    alert('Erreur : ' + data.error);
                }
            }, 'json').fail(function() {
                alert('Erreur réseau ou serveur.');
            });
        }
    });
});

function executerActionGroup() {
    var action = $('#bulkAction').val();
    if (!action) {
        alert("Veuillez choisir une action.");
        return;
    }
    var selectedIds = [];
    $('.row-selector:checked').each(function() {
        selectedIds.push($(this).val());
    });
    if (selectedIds.length === 0) {
        alert("Aucune fiche sélectionnée.");
        return;
    }
    if (action === 'sign') {
        if (confirm("Signer " + selectedIds.length + " fiche(s) ?")) {
            $.post('ajax_signer_multiple.php', { ids: selectedIds }, function(data) {
                if (data.success) {
                    location.reload();
                } else {
                    alert('Erreur : ' + data.error);
                }
            }, 'json').fail(function() {
                alert('Erreur réseau ou serveur.');
            });
        }
    } else if (action === 'delete') {
        if (confirm("Déplacer " + selectedIds.length + " fiche(s) vers la corbeille ?")) {
            $.post('ajax_delete_multiple.php', { ids: selectedIds }, function(data) {
                if (data.success) {
                    location.reload();
                } else {
                    alert('Erreur : ' + data.error);
                }
            }, 'json').fail(function() {
                alert('Erreur réseau ou serveur.');
            });
        }
    } else if (action === 'export') {
        window.location.href = 'export_selected_csv.php?ids=' + selectedIds.join(',');
    }
}
</script>

<style>
.signature-thumb {
    transition: transform 0.2s;
    cursor: pointer;
}
.signature-thumb:hover {
    transform: scale(3);
    box-shadow: 0 0 5px rgba(0,0,0,0.3);
    z-index: 100;
    position: relative;
}
</style>

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