<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Suivi des Paiements</title>
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    <link rel="icon" href="../../media/img/logoIcon.ico" type="image/x-icon" />
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <link rel="stylesheet" href="../../css/PROF/paiements.css">
</head>
<body>

    <!-- Header -->
    <div class="header w3-bar w3-card-4 w3-dark-blue">
        <!-- Logo pour retourner à l'accueil -->
        <div class="logo-container w3-bar-item">
            <img src="../../media/img/logoWhite.png" alt="Logo Accueil" class="w3-image" style="width:150px; height:40px;">
        </div>
    
        <!-- Bouton burger pour petit écran -->
        <a href="javascript:void(0)" class="w3-bar-item w3-button w3-hide-large w3-right w3-padding-16" onclick="toggleMenu()">☰</a>
    
        <!-- Catégories dans le header -->
        <div id="menu" class="categories w3-hide-small w3-hide-medium w3-bar-item">
            <a href="./enseignant_permanent.html" class="w3-bar-item w3-button">Accueil</a>
            <a href="./mes-heures.html" class="w3-bar-item w3-button">Heures</a>
            <a href="./paiements.html" class="w3-bar-item w3-button">Paiements</a>
            <a href="./mes-informations.html" class="w3-bar-item w3-button">Mes informations et documents</a>
        </div>
    
        <!-- Section utilisateur avec déconnexion -->
        <div class="user-section w3-right w3-hide-small w3-hide-medium">
            <div class="user-name">
                Denis MONNERAT
            </div>
            <div class="logout-container w3-bar-item">
                <a href="./notifications.html" title="Notifications">
                    <img src="../../media/img/notifs.png" alt="Logo notification" style="width:24px; height:24px;">
                </a>
                <a href="./settings.html" title="Paramètres">
                    <img src="../../media/img/settings.png" alt="Logo paramètres" style="width:24px; height:24px;">
                </a>
                <a href="../../index.html" title="Se déconnecter">
                    <img src="../../media/img/LogOutWhite.png" alt="Logo Déconnexion" style="width:24px; height:24px;">
                </a>
            </div>
        </div>
    
        <!-- Menu mobile caché au départ -->
        <div id="mobileMenu" class="w3-bar-block w3-hide w3-hide-large w3-dark-blue">
            <a href="./enseignant_permanent.html" class="w3-bar-item w3-button">Accueil</a>
            <a href="./mes-heures.html" class="w3-bar-item w3-button">Heures</a>
            <a href="./paiements.html" class="w3-bar-item w3-button">Paiements</a>
            <a href="./mes-informations.html" class="w3-bar-item w3-button">Mes informations et documents</a>
    
            <!-- Section utilisateur pour mobile -->
            <div class="w3-bar-item w3-border-top w3-margin-top">
                <div class="user-name">Denis MONNERAT</div>
                <a href="./notifications.html" title="Notifications">
                    <img src="../../media/img/notifs.png" alt="Logo notification" style="width:24px; height:24px;">
                </a>
                <a href="./settings.html" title="Paramètres">
                    <img src="../../media/img/settings.png" alt="Logo paramètres" style="width:24px; height:24px;">
                </a>
                <a href="../../index.html" title="Se déconnecter">
                    <img src="../../media/img/LogOutWhite.png" alt="Logo Déconnexion" style="width:24px; height:24px;">
                </a>
            </div>
        </div>
    </div>

<div class="dashboard-container">
    <!-- Historique des paiements -->
    <div class="section-header">
        <h2>Historique des Paiements</h2>
    </div>
    <div class="card">
        <div class="table-container">
            <table>
                <thead>
                    <tr>
                        <th data-sort="periode">Période</th>
                        <th data-sort="heuresPayees">Heures Payées</th>
                        <th data-sort="montantBrut">Montant Brut (€)</th>
                        <th data-sort="montantNet">Montant Net (€)</th>
                        <th data-sort="datePaiement">Date de Paiement</th>
                        <th data-sort="modePaiement">Mode de Paiement</th>
                        <th data-sort="compteBancaire">Compte Bancaire</th>
                        <th data-sort="statut">Statut</th>
                        <th>Bulletin de Paie</th>
                    </tr>
                </thead>                
                <tbody>
                    <tr>
                        <td>Février 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/03/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-valide">Validé</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                    <tr>
                        <td>Mars 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/04/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-valide">Validé</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                    <tr>
                        <td>Avril 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/05/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-valide">Validé</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                    <tr>
                        <td>Mai 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/06/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-valide">Validé</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                    <tr>
                        <td>Juin 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/07/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-valide">Validé</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                    <tr>
                        <td>Septembre 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/10/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-valide">Validé</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                    <tr>
                        <td>Octobre 2024</td>
                        <td>35h</td>
                        <td>3500,00</td>
                        <td>2722,00</td>
                        <td>01/11/2024</td>
                        <td>Virement Bancaire</td>
                        <td>Compte XXXXXX1234</td>
                        <td class="status-attente">En attente</td>
                        <td><a href="https://ensap.gouv.fr" target="_blank" class="btn">Voir Bulletin</a></td>
                    </tr>
                </tbody>
            </table>
        </div>
        <p><strong>Prochain paiement prévu :</strong> Novembre 2024 (35h restantes)</p>
    </div>

    <!-- Graphique des paiements (brut) -->
    <div class="section-header">
        <h2>Évolution de vos Paiements</h2>
    </div>
    <div class="card">
        <div class="chart-container">
            <canvas id="paymentChart"></canvas>
        </div>
    </div>

    <!-- Formulaire pour signaler un problème -->
<!-- Formulaire pour signaler un problème -->
<div class="section-header">
    <h2>Signaler un problème de paye</h2>
</div>
<div class="card contact-form">
    <h3>Formulaire de signalement</h3>
    <form id="contactForm">
        <label for="probleme">Sélectionnez un problème :</label>
        <select id="probleme" required>
            <option value="">-- Sélectionner un problème --</option>
            <option value="noPayment">Je n'ai pas reçu de paiement</option>
            <option value="wrongAmount">Le montant de mon salaire est inférieur à ce qui était prévu.</option>
            <option value="duplicatePayment">J'ai reçu un paiement en double</option>
            <option value="latePayment">Mon paiement est en retard</option>
            <option value="unjustifiedWithholding">Il y a une retenue sur mon paiement que je ne comprends pas</option>
            <option value="technicalIssue">J'ai des difficultés à accéder à mes bulletins de salaire en ligne</option>
        </select>

        <!-- Champs supplémentaires qui s'affichent selon le problème -->
        <div id="detailsSupplementaires" style="display: none;">
            <!-- Champ pour sélectionner le mois -->
            <div id="moisEnQuestion" style="display:none;">
                <label for="mois">Sélectionner le mois :</label>
                <select id="mois">
                    <option value="">-- Sélectionner le mois --</option>
                    <option value="fevrier">Février 2024</option>
                    <option value="mars">Mars 2024</option>
                    <option value="avril">Avril 2024</option>
                    <option value="mai">Mai 2024</option>
                    <option value="juin">Juin 2024</option>
                    <option value="septembre">Septembre 2024</option>
                    <option value="octobre">Octobre 2024</option>
                </select>
            </div>

            <!-- Champ pour indiquer le montant reçu -->
            <div id="montantRecuSupplementaire" style="display:none;">
                <label for="montantRecu">Montant reçu (€) :</label>
                <input type="number" id="montantRecu" placeholder="Montant reçu" />
            </div>

            <!-- Champ pour indiquer le montant attendu -->
            <div id="montantAttendu" style="display:none;">
                <label for="montantAttenduInput">Montant attendu (€) :</label>
                <input type="number" id="montantAttenduInput" placeholder="Montant attendu" />
            </div>
        </div>
        <button type="submit">Envoyer</button>
    </form>
</div>


</div>

<div class="footer">
    <p>&copy; 2024 IUT de Fontainebleau. Tous droits réservés | 
        <a href="html/mentions_legales.html">Mentions légales</a>
    </p>
</div>

<!-- Popup de confirmation -->
<div class="popup" id="popup">
    <img src="https://img.icons8.com/ios-filled/50/155724/checkmark.png" alt="Coche">
    <h4>Message envoyé</h4>
    <p>Votre message a été transmis à la direction. Un email de confirmation vous a été envoyé.</p>
    <button onclick="fermerPopup()">Fermer</button>
</div>

<!-- Script pour gérer le formulaire et le popup -->
<script>
document.getElementById('probleme').addEventListener('change', function() {
    var detailsSupplementaires = document.getElementById('detailsSupplementaires');
    var montantRecuSupplementaire = document.getElementById('montantRecuSupplementaire');
    var moisEnQuestion = document.getElementById('moisEnQuestion'); // Champ pour sélectionner le mois
    var montantAttendu = document.getElementById('montantAttendu'); // Champ pour indiquer le montant attendu

    // Masquer tous les champs au départ
    detailsSupplementaires.style.display = 'none';
    montantRecuSupplementaire.style.display = 'none';
    moisEnQuestion.style.display = 'none'; 
    montantAttendu.style.display = 'none';

    // Afficher les champs en fonction du problème sélectionné
    switch (this.value) {
        case 'noPayment':
            detailsSupplementaires.style.display = 'block';
            moisEnQuestion.style.display = 'block'; // Afficher le champ pour sélectionner le mois
            break;
        case 'wrongAmount':
            detailsSupplementaires.style.display = 'block';
            montantRecuSupplementaire.style.display = 'block'; // Afficher le montant
            moisEnQuestion.style.display = 'block'; // Afficher le champ pour sélectionner le mois
            break;
        case 'duplicatePayment':
            detailsSupplementaires.style.display = 'block';
            moisEnQuestion.style.display = 'block'; // Afficher le champ pour sélectionner le mois
            montantAttendu.style.display = 'block'; // Afficher le champ pour le montant attendu
            break;
        case 'latePayment':
            detailsSupplementaires.style.display = 'block';
            moisEnQuestion.style.display = 'block'; // Afficher le champ pour sélectionner le mois
            break;
        case 'unjustifiedWithholding':
            detailsSupplementaires.style.display = 'block';
            break;
        case 'technicalIssue':
            detailsSupplementaires.style.display = 'block';
            break;
        default:
            // Aucune action si aucune valeur valide n'est sélectionnée
            break;
    }
});

document.getElementById('contactForm').addEventListener('submit', function(event) {
    event.preventDefault();
    // Afficher le popup de confirmation
    document.getElementById('popup').style.display = 'block';
});

function fermerPopup() {
    document.getElementById('popup').style.display = 'none';
    // Réinitialiser le formulaire après soumission
    document.getElementById('contactForm').reset();
    document.getElementById('detailsSupplementaires').style.display = 'none';
}

// Configuration du graphique Chart.js
const ctx = document.getElementById('paymentChart').getContext('2d');
const paymentChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: ['Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Septembre', 'Octobre'],
        datasets: [{
            label: 'Montant Brut (€)',
            data: [3500, 3500, 3500, 3500, 3500, 3500, 3500],
            backgroundColor: 'rgba(204, 153, 0, 0.60)', // Jaune très sombre, pas transparent
            borderColor: 'rgba(178, 128, 0, 1)', // Jaune plus foncé pour la bordure
            fill: true,
            tension: 0.3,
        }]
    },
    options: {
        responsive: true,
        scales: {
            y: {
                beginAtZero: true
            }
        },
        plugins: {
            legend: {
                display: true,
                position: 'top',
            }
        }
    }
});

document.querySelectorAll('th[data-sort]').forEach(function (header) {
    header.addEventListener('click', function () {
        const table = header.closest('table');
        const tbody = table.querySelector('tbody');
        const rowsArray = Array.from(tbody.querySelectorAll('tr'));
        const index = Array.from(header.parentElement.children).indexOf(header);
        let order = header.dataset.order || 1;

        // Retirer les classes de tri des autres colonnes
        document.querySelectorAll('th[data-sort]').forEach(function (th) {
            th.classList.remove('ascending', 'descending');
        });

        // Appliquer la classe de tri
        if (order == 1) {
            header.classList.add('ascending');
            header.dataset.order = -1;  // Inverser l'ordre pour la prochaine fois
        } else {
            header.classList.add('descending');
            header.dataset.order = 1;  // Réinitialiser pour la prochaine fois
        }

        // Trier les lignes du tableau
        rowsArray.sort(function (rowA, rowB) {
            let cellA = rowA.children[index].innerText.trim();
            let cellB = rowB.children[index].innerText.trim();

            // Gérer les périodes (mois)
            if (header.dataset.sort === 'periode') {
                cellA = moisToNumero(cellA);
                cellB = moisToNumero(cellB);
            }

            // Gérer les montants numériques avec des virgules
            else if (!isNaN(cellA.replace(',', '.')) && !isNaN(cellB.replace(',', '.'))) {
                return (parseFloat(cellA.replace(',', '.')) - parseFloat(cellB.replace(',', '.'))) * order;
            }

            // Gérer les dates
            else if (isDate(cellA) && isDate(cellB)) {
                return (new Date(cellA) - new Date(cellB)) * order;
            }

            // Gérer les textes (par défaut)
            else {
                return cellA.localeCompare(cellB) * order;
            }

            return (cellA - cellB) * order;
        });

        // Réorganiser les lignes dans le tableau
        rowsArray.forEach(function (row) {
            tbody.appendChild(row);
        });
    });
});

// Fonction pour convertir les mois en numéros pour faciliter le tri
function moisToNumero(mois) {
    const moisIndex = {
        "Janvier": 1,
        "Février": 2,
        "Mars": 3,
        "Avril": 4,
        "Mai": 5,
        "Juin": 6,
        "Juillet": 7,
        "Août": 8,
        "Septembre": 9,
        "Octobre": 10,
        "Novembre": 11,
        "Décembre": 12
    };

    // Extraire le mois et l'année du texte (ex: "Février 2024")
    const [moisNom, annee] = mois.split(' ');
    return new Date(annee, moisIndex[moisNom] - 1); // Créer un objet Date
}

// Fonction pour vérifier si un texte est une date valide
function isDate(dateString) {
    return !isNaN(Date.parse(dateString));
}

function toggleMenu() {
            var x = document.getElementById("mobileMenu");
            if (x.className.indexOf("w3-show") == -1) {
                x.className += " w3-show";
            } else {
                x.className = x.className.replace(" w3-show", "");
            }
}

</script>

</body>
</html>