Ajouts de la maquette web sur le nouveau git (suite au bug de l'ancien répertoire git
This commit is contained in:
		
							
								
								
									
										402
									
								
								MaquetteWEB/html/VACATAIRE/paiements.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										402
									
								
								MaquetteWEB/html/VACATAIRE/paiements.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,402 @@
 | 
			
		||||
<!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">
 | 
			
		||||
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
 | 
			
		||||
    <link rel="stylesheet" href="../../css/VACATAIRE/paiements.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
    <div class="header">
 | 
			
		||||
        <!-- Logo pour retourner à l'accueil -->
 | 
			
		||||
        <div class="logo-container">
 | 
			
		||||
            <img src="../../media/img/logoWhite.png" alt="Logo Accueil">
 | 
			
		||||
        </div>
 | 
			
		||||
        
 | 
			
		||||
        <!-- Catégories dans le header -->
 | 
			
		||||
        <div class="categories">
 | 
			
		||||
            <a href="./vacataire.html">Accueil</a>
 | 
			
		||||
            <a href="./mes-heures.html">Heures</a>
 | 
			
		||||
            <a href="./paiements.html">Paiements</a>
 | 
			
		||||
            <a href="./mes-informations.html">Mes informations et documents</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    
 | 
			
		||||
        <!-- Section utilisateur avec déconnexion -->
 | 
			
		||||
        <div class="user-section">
 | 
			
		||||
            <div class="user-name">
 | 
			
		||||
                Maxime MENAULT
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="logout-container">
 | 
			
		||||
                <a href="../../index.html" title="Se déconnecter">
 | 
			
		||||
                    <img src="../../media/img/LogOutWhite.png" alt="Logo Déconnexion">
 | 
			
		||||
                </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>20h</td>
 | 
			
		||||
                        <td>870,00</td>
 | 
			
		||||
                        <td>700,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>25h</td>
 | 
			
		||||
                        <td>1 087,50</td>
 | 
			
		||||
                        <td>875,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>22h</td>
 | 
			
		||||
                        <td>957,00</td>
 | 
			
		||||
                        <td>760,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>20h</td>
 | 
			
		||||
                        <td>870,00</td>
 | 
			
		||||
                        <td>700,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>18h</td>
 | 
			
		||||
                        <td>783,00</td>
 | 
			
		||||
                        <td>625,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>20h</td>
 | 
			
		||||
                        <td>870,00</td>
 | 
			
		||||
                        <td>700,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>22h</td>
 | 
			
		||||
                        <td>957,00</td>
 | 
			
		||||
                        <td>760,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 (20h 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>© 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: [870, 1087.5, 957, 870, 783, 870, 957],
 | 
			
		||||
            borderColor: 'rgba(75, 192, 192, 1)',
 | 
			
		||||
            backgroundColor: 'rgba(75, 192, 192, 0.2)',
 | 
			
		||||
            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));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
		Reference in New Issue
	
	Block a user