239 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Historique 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" />
<link rel="stylesheet" href="../../css/FINANCE/finance.css">
<style>
.dashboard-container {
margin-top: 20px;
}
.card {
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-bottom: 20px;
}
.filter-section {
margin-bottom: 20px;
}
.filter-input {
width: 300px;
}
.footer {
text-align: center;
padding: 10px 0;
background-color: #20195e;
color: white;
margin-top: 40px;
}
</style>
</head>
<body class="w3-light-grey">
<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="./finance.html" class="w3-bar-item w3-button">Accueil</a>
<a href="./paiements_en_attente.html" class="w3-bar-item w3-button">Paiements en attente</a>
<a href="./historique_paiements.html" class="w3-bar-item w3-button">Historique des paiements</a>
<a href="./budget.html" class="w3-bar-item w3-button">Budget</a>
<a href="./rapports_financiers.html" class="w3-bar-item w3-button">Rapports Financiers</a>
<a href="./mes_informations.html" class="w3-bar-item w3-button">Mes informations</a>
</div>
<!-- Section utilisateur avec déconnexion -->
<div class="user-section w3-right w3-hide-small w3-hide-medium">
<div class="user-name">
Jean DUPONT
</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="./finance.html" class="w3-bar-item w3-button">Accueil</a>
<a href="./paiements_en_attente.html" class="w3-bar-item w3-button">Paiements en attente</a>
<a href="./historique_paiements.html" class="w3-bar-item w3-button">Historique des paiements</a>
<a href="./budget.html" class="w3-bar-item w3-button">Budget</a>
<a href="./rapports_financiers.html" class="w3-bar-item w3-button">Rapports Financiers</a>
<a href="./mes_informations.html" class="w3-bar-item w3-button">Mes informations</a>
<!-- Section utilisateur pour mobile -->
<div class="w3-bar-item w3-border-top w3-margin-top">
<div class="user-name">Jean DUPONT</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 w3-container">
<div class="card w3-card">
<h2>Historique des paiements</h2>
<!-- Section de filtre -->
<div class="filter-section w3-margin-bottom">
<input type="text" id="nameFilter" class="filter-input w3-input w3-border" placeholder="Rechercher par nom..." oninput="filterTable()"><br>
<button class="w3-button w3-grey" onclick="filterByStatus('')">Tous</button>
<button class="w3-button w3-yellow" onclick="filterByStatus('En attente')">En attente</button>
<button class="w3-button w3-red" onclick="filterByStatus('Bloqué')">Bloqué</button>
<button class="w3-button w3-orange" onclick="filterByStatus('Annulé')">Annulé</button>
<button class="w3-button w3-blue" onclick="filterByStatus('Salaire payer')">Payé</button>
</div>
<!-- Tableau des paiements -->
<table class="w3-table w3-bordered w3-striped w3-white">
<thead>
<tr class="w3-light-grey">
<th>ID Paiement</th>
<th>Nom du Bénéficiaire</th>
<th>Montant (€)</th>
<th>Status</th>
</tr>
</thead>
<tbody id="paymentTableBody">
<tr>
<td>002</td>
<td>Maxime Menault</td>
<td>1200,00</td>
<td class="w3-red">Bloqué</td>
</tr>
<tr>
<td>003</td>
<td>Denis Monnerat</td>
<td>1800,00</td>
<td class="w3-blue">Salaire payer</td>
</tr>
<tr>
<td>004</td>
<td>Sophie Bernard</td>
<td>1350,00</td>
<td class="w3-orange">Annulé</td>
</tr>
<tr>
<td>005</td>
<td>Lucas Leroy</td>
<td>2000,00</td>
<td class="w3-red">Bloqué</td>
</tr>
<tr>
<td>006</td>
<td>Julie Robert</td>
<td>1600,00</td>
<td class="w3-blue">Salaire payer</td>
</tr>
<tr>
<td>007</td>
<td>Emilie Caron</td>
<td>1750,00</td>
<td class="w3-blue">Salaire payer</td>
</tr>
</tbody>
</table>
</div>
<button class="w3-button w3-green w3-margin-top" onclick="exportTableToCSV('historique_paiements.csv')">Exporter les données en CSV</button>
</div>
<div class="footer">
<p>&copy; 2024 IUT de Fontainebleau. Tous droits réservés |
<a href="../mentions_legales.html" class="w3-text-white">Mentions légales</a>
</p>
</div>
<script>
// Filtre par nom
function filterTable() {
const filter = document.getElementById("nameFilter").value.toLowerCase();
const rows = document.querySelectorAll("#paymentTableBody tr");
rows.forEach(row => {
const nameCell = row.cells[1].textContent.toLowerCase();
if (nameCell.includes(filter)) {
row.style.display = "";
} else {
row.style.display = "none";
}
});
}
// Filtre par statut
function filterByStatus(status) {
const rows = document.querySelectorAll("#paymentTableBody tr");
rows.forEach(row => {
const statusCell = row.cells[3].textContent;
if (status === "" || statusCell === status) {
row.style.display = "";
} else {
row.style.display = "none";
}
});
}
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", "");
}
}
function exportTableToCSV(filename) {
const rows = document.querySelectorAll("#paymentTableBody tr");
let csvContent = "ID Paiement,Nom du Bénéficiaire,Montant (€),Status\n"; // En-têtes du CSV
rows.forEach(row => {
const cols = row.querySelectorAll("td");
const data = Array.from(cols).map(col => col.textContent).join(","); // Récupérer le texte de chaque cellule
csvContent += data + "\n"; // Ajouter chaque ligne au contenu CSV
});
// Créer un lien pour le téléchargement
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement("a");
const url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", filename);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click(); // Simuler un clic pour démarrer le téléchargement
document.body.removeChild(link); // Retirer le lien du document
}
</script>
</body>
</html>