Files
unionflow-client-quarkus-pr…/target/classes/META-INF/resources/pages/secure/adhesion/history.xhtml

260 lines
15 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="#{adhesionsBean}"/>
<ui:define name="title">Historique des Adhésions - UnionFlow</ui:define>
<ui:define name="content">
<!-- En-tête -->
<ui:include src="/templates/components/layout/page-header.xhtml">
<ui:param name="icon" value="pi pi-history text-blue-500" />
<ui:param name="title" value="Historique des Adhésions" />
<ui:param name="description" value="Consultation de l'historique complet des adhésions" />
<ui:define name="actions">
<h:form id="formActionsHistory">
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Exporter" />
<ui:param name="icon" value="pi pi-download" />
<ui:param name="outlined" value="true" />
</ui:include>
<ui:include src="/templates/components/buttons/button-icon.xhtml">
<ui:param name="icon" value="pi pi-refresh" />
<ui:param name="action" value="#{adhesionsBean.actualiser}" />
<ui:param name="update" value="@form" />
<ui:param name="title" value="Actualiser" />
<ui:param name="rounded" value="true" />
<ui:param name="text" value="false" />
<ui:param name="styleClass" value="ui-button-outlined ui-button-secondary" />
</ui:include>
</div>
</h:form>
</ui:define>
</ui:include>
<!-- Filtres d'historique -->
<div class="card">
<h:form id="formFiltresHistory">
<h5>Filtres de Recherche</h5>
<div class="grid">
<div class="col-12 md:col-3">
<ui:include src="/templates/components/forms/form-field-calendar.xhtml">
<ui:param name="id" value="dateDebut" />
<ui:param name="label" value="Date début" />
<ui:param name="value" value="#{adhesionsBean.filtres.dateDebut}" />
</ui:include>
</div>
<div class="col-12 md:col-3">
<ui:include src="/templates/components/forms/form-field-calendar.xhtml">
<ui:param name="id" value="dateFin" />
<ui:param name="label" value="Date fin" />
<ui:param name="value" value="#{adhesionsBean.filtres.dateFin}" />
</ui:include>
</div>
<div class="col-12 md:col-3">
<ui:include src="/templates/components/forms/form-field-select.xhtml">
<ui:param name="id" value="statutHistory" />
<ui:param name="label" value="Statut" />
<ui:param name="value" value="#{adhesionsBean.filtres.statut}" />
<ui:define name="items">
<f:selectItem itemLabel="Tous" itemValue="" />
<f:selectItem itemLabel="En attente" itemValue="EN_ATTENTE" />
<f:selectItem itemLabel="Approuvée" itemValue="APPROUVEE" />
<f:selectItem itemLabel="Rejetée" itemValue="REJETEE" />
<f:selectItem itemLabel="Payée" itemValue="PAYEE" />
<f:selectItem itemLabel="En paiement" itemValue="EN_PAIEMENT" />
<f:selectItem itemLabel="Annulée" itemValue="ANNULEE" />
</ui:define>
</ui:include>
</div>
<div class="col-12 md:col-3">
<div class="field">
<p:outputLabel />
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-primary.xhtml">
<ui:param name="value" value="Rechercher" />
<ui:param name="icon" value="pi pi-search" />
<ui:param name="action" value="#{adhesionsBean.rechercher}" />
<ui:param name="update" value=":formHistory" />
</ui:include>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Réinitialiser" />
<ui:param name="icon" value="pi pi-times" />
<ui:param name="action" value="#{adhesionsBean.reinitialiserFiltres}" />
<ui:param name="update" value="@form :formHistory" />
<ui:param name="outlined" value="true" />
</ui:include>
</div>
</div>
</div>
</div>
</h:form>
</div>
<!-- Tableau d'historique -->
<div class="card">
<h:form id="formHistory">
<h5>Historique des Adhésions</h5>
<p:dataTable id="dtHistory"
value="#{adhesionsBean.adhesionsFiltrees}"
var="adhesion"
paginator="true"
rows="20"
rowsPerPageTemplate="10,20,50,100"
sortMode="multiple"
emptyMessage="Aucune adhésion trouvée">
<f:facet name="header">
<div class="flex align-items-center justify-content-between">
<span>Historique (#{adhesionsBean.adhesionsFiltrees.size()} adhésion(s))</span>
</div>
</f:facet>
<p:column headerText="Date" sortBy="#{adhesion.dateDemande}" style="width:120px">
<h:outputText value="#{adhesion.dateDemandeFormatee}" />
</p:column>
<p:column headerText="Référence" sortBy="#{adhesion.numeroReference}" style="width:150px">
<h:outputText value="#{adhesion.numeroReference}" />
</p:column>
<p:column headerText="Membre" sortBy="#{adhesion.nomMembre}">
<div>
<div class="font-medium">#{adhesion.nomMembre}</div>
<div class="text-600 text-sm">#{adhesion.numeroMembre}</div>
</div>
</p:column>
<p:column headerText="Organisation" sortBy="#{adhesion.nomOrganisation}">
<h:outputText value="#{adhesion.nomOrganisation}" />
</p:column>
<p:column headerText="Frais" sortBy="#{adhesion.fraisAdhesion}" style="width:120px">
<h:outputText value="#{adhesion.fraisAdhesionFormatte}" styleClass="font-bold" />
</p:column>
<p:column headerText="Statut" sortBy="#{adhesion.statut}" style="width:150px">
<p:tag value="#{adhesion.statutLibelle}"
severity="#{adhesion.statutSeverity}"
icon="#{adhesion.statutIcon}" />
</p:column>
<p:column headerText="Date Approbation" sortBy="#{adhesion.dateApprobation}" style="width:150px">
<h:outputText value="#{adhesion.dateApprobationFormatee}" />
</p:column>
<p:column headerText="Date Paiement" sortBy="#{adhesion.datePaiement}" style="width:150px">
<h:outputText value="#{adhesion.datePaiementFormatee}" />
</p:column>
<p:column headerText="Actions" style="width:100px">
<p:commandButton icon="pi pi-eye"
title="Voir les détails"
styleClass="p-button-rounded p-button-text p-button-info"
action="#{adhesionsBean.selectionnerAdhesion(adhesion)}"
update=":formDetailsAdhesion"
oncomplete="PF('dlgDetailsAdhesion').show();" />
</p:column>
</p:dataTable>
</h:form>
</div>
<!-- Dialog Détails Adhésion -->
<p:dialog header="Détails de l'Adhésion" widgetVar="dlgDetailsAdhesion" modal="true" width="600" resizable="false">
<h:form id="formDetailsAdhesion">
<div class="ui-fluid">
<div class="grid">
<div class="col-12 md:col-6">
<div class="field">
<label class="font-medium">Référence</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.numeroReference}</p>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-medium">Statut</label>
<p:tag value="#{adhesionsBean.adhesionSelectionnee.statutLibelle}"
severity="#{adhesionsBean.adhesionSelectionnee.statutSeverity}" />
</div>
</div>
<div class="col-12">
<div class="field">
<label class="font-medium">Membre</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.nomMembre}</p>
<p class="text-500 text-sm">N° #{adhesionsBean.adhesionSelectionnee.numeroMembre}</p>
</div>
</div>
<div class="col-12">
<div class="field">
<label class="font-medium">Organisation</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.nomOrganisation}</p>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-medium">Date de demande</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.dateDemandeFormatee}</p>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-medium">Frais d'adhésion</label>
<p class="text-600 font-bold">#{adhesionsBean.adhesionSelectionnee.fraisAdhesionFormatte}</p>
</div>
</div>
<div class="col-12 md:col-4">
<div class="field">
<label class="font-medium">Montant payé</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.montantPayeFormatte}</p>
</div>
</div>
<div class="col-12 md:col-4">
<div class="field">
<label class="font-medium">Montant restant</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.montantRestantFormatte}</p>
</div>
</div>
<div class="col-12 md:col-4">
<div class="field">
<label class="font-medium">Date d'approbation</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.dateApprobationFormatee}</p>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-medium">Date de paiement</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.datePaiementFormatee}</p>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-medium">Méthode de paiement</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.methodePaiementLibelle}</p>
</div>
</div>
<div class="col-12" rendered="#{adhesionsBean.adhesionSelectionnee.observations != null}">
<div class="field">
<label class="font-medium">Observations</label>
<p class="text-600">#{adhesionsBean.adhesionSelectionnee.observations}</p>
</div>
</div>
<div class="col-12" rendered="#{adhesionsBean.adhesionSelectionnee.motifRejet != null}">
<div class="field">
<label class="font-medium">Motif de rejet</label>
<p class="text-600 text-red-500">#{adhesionsBean.adhesionSelectionnee.motifRejet}</p>
</div>
</div>
</div>
</div>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>