109 lines
5.5 KiB
HTML
109 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
|
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
|
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
|
xmlns:p="http://primefaces.org/ui"
|
|
template="/templates/main-template.xhtml">
|
|
<ui:param name="page" value="#{cotisationsGestionBean}"/>
|
|
<ui:define name="title">Rappels de Cotisations - UnionFlow</ui:define>
|
|
<ui:define name="content">
|
|
<h:form id="formReminders">
|
|
<p:messages id="messages" showDetail="true" closable="true"/>
|
|
|
|
<!-- En-tête -->
|
|
<div class="card mb-3">
|
|
<div class="flex justify-content-between align-items-center flex-column md:flex-row">
|
|
<div>
|
|
<h3 class="m-0">
|
|
<i class="pi pi-bell text-primary mr-2"></i>
|
|
Rappels de Cotisations
|
|
</h3>
|
|
<p class="text-600 m-0 mt-2">
|
|
Gérez et envoyez les rappels de cotisations aux membres
|
|
</p>
|
|
</div>
|
|
<div class="flex gap-2 mt-2 md:mt-0">
|
|
<p:commandButton value="Envoyer rappels"
|
|
icon="pi pi-send"
|
|
styleClass="ui-button-success"
|
|
action="#{cotisationsGestionBean.envoyerRappelsGroupes}"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Statistiques -->
|
|
<div class="grid mb-3">
|
|
<div class="col-12 md:col-3">
|
|
<div class="card bg-orange-100 border-left-3 border-orange-500">
|
|
<div class="flex justify-content-between">
|
|
<div>
|
|
<div class="text-orange-900 font-bold text-2xl">#{cotisationsGestionBean.nombreMembresEnRetard}</div>
|
|
<div class="text-orange-700">En Retard</div>
|
|
</div>
|
|
<div class="bg-orange-500 text-white border-round text-center"
|
|
style="width: 3rem; height: 3rem; line-height: 3rem;">
|
|
<i class="pi pi-exclamation-triangle text-xl"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 md:col-3">
|
|
<div class="card bg-blue-100 border-left-3 border-blue-500">
|
|
<div class="flex justify-content-between">
|
|
<div>
|
|
<div class="text-blue-900 font-bold text-2xl">#{cotisationsGestionBean.nombreRappelsEnvoyes}</div>
|
|
<div class="text-blue-700">Rappels Envoyés</div>
|
|
</div>
|
|
<div class="bg-blue-500 text-white border-round text-center"
|
|
style="width: 3rem; height: 3rem; line-height: 3rem;">
|
|
<i class="pi pi-send text-xl"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Liste des membres en retard -->
|
|
<div class="card">
|
|
<h5 class="mb-3">Membres avec Cotisations en Retard</h5>
|
|
|
|
<p:dataTable id="dtRetard"
|
|
var="membre"
|
|
value="#{cotisationsGestionBean.membresEnRetard}"
|
|
paginator="true"
|
|
rows="10"
|
|
selection="#{cotisationsGestionBean.membresSelectionnes}"
|
|
selectionMode="multiple"
|
|
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
|
|
rowsPerPageTemplate="5,10,25">
|
|
|
|
<p:column selectionMode="multiple" style="width:50px"/>
|
|
|
|
<p:column headerText="Membre" sortBy="#{membre.nomComplet}">
|
|
<div>
|
|
<div class="font-medium">#{membre.nomComplet}</div>
|
|
<small class="text-600">#{membre.numeroMembre}</small>
|
|
</div>
|
|
</p:column>
|
|
|
|
<p:column headerText="Montant dû" sortBy="#{membre.montantDu}">
|
|
<div class="font-bold text-red-500">#{membre.montantDu} FCFA</div>
|
|
</p:column>
|
|
|
|
<p:column headerText="Jours de retard" sortBy="#{membre.joursRetard}">
|
|
<p:tag value="#{membre.joursRetard} jours" severity="danger"/>
|
|
</p:column>
|
|
|
|
<p:column headerText="Actions" style="width:150px">
|
|
<p:commandButton icon="pi pi-send"
|
|
styleClass="ui-button-rounded ui-button-text ui-button-primary"
|
|
action="#{cotisationsGestionBean.envoyerRappel(membre)}"
|
|
title="Envoyer rappel"/>
|
|
</p:column>
|
|
</p:dataTable>
|
|
</div>
|
|
</h:form>
|
|
</ui:define>
|
|
</ui:composition>
|