Nettoyage des doublons pour éviter la redondance : Suppressions (liste.xhtml redondants avec écrans racine): - devis/liste.xhtml - employes/liste.xhtml - equipes/liste.xhtml - factures/liste.xhtml - maintenance/liste.xhtml - materiels/liste.xhtml - messages/liste.xhtml - notifications/liste.xhtml - planning/liste.xhtml - rapports/liste.xhtml - stock/liste.xhtml Suppressions (inconsistance nouveau/nouvelle): - equipes/nouvelle.xhtml - factures/nouvelle.xhtml Stratégie: - Un seul écran liste par module (racine) - Standardisation sur nouveau.xhtml Résultat: 163 écrans restants (vs 176 avant)
113 lines
6.7 KiB
HTML
113 lines
6.7 KiB
HTML
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
|
xmlns:h="http://java.sun.com/jsf/html"
|
|
xmlns:f="http://java.sun.com/jsf/core"
|
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
|
xmlns:p="http://primefaces.org/ui"
|
|
template="/WEB-INF/template.xhtml">
|
|
|
|
<ui:define name="title">Devis - BTP Xpress</ui:define>
|
|
|
|
<ui:define name="content">
|
|
<div class="layout-dashboard">
|
|
<div class="grid">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="flex align-items-center justify-content-between mb-3">
|
|
<h1>Gestion des Devis</h1>
|
|
<p:commandButton value="Nouveau devis" icon="pi pi-plus"
|
|
action="#{devisView.createNew()}"
|
|
styleClass="ui-button-primary"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<ui:include src="/WEB-INF/components/liste-filters.xhtml">
|
|
<ui:param name="formId" value="filtresForm"/>
|
|
<ui:param name="viewBean" value="#{devisView}"/>
|
|
<ui:param name="tableId" value="devisTable"/>
|
|
<ui:define name="filter-fields">
|
|
<div class="grid">
|
|
<div class="col-12 md:col-4">
|
|
<h:outputLabel for="filtreNumero" value="Numéro"/>
|
|
<p:inputText id="filtreNumero" value="#{devisView.filtreNumero}"
|
|
placeholder="Rechercher par numéro..." style="width: 100%;"/>
|
|
</div>
|
|
<div class="col-12 md:col-4">
|
|
<h:outputLabel for="filtreClient" value="Client"/>
|
|
<p:inputText id="filtreClient" value="#{devisView.filtreClient}"
|
|
placeholder="Rechercher par client..." style="width: 100%;"/>
|
|
</div>
|
|
<div class="col-12 md:col-4">
|
|
<h:outputLabel for="filtreStatut" value="Statut"/>
|
|
<p:selectOneMenu id="filtreStatut" value="#{devisView.filtreStatut}" style="width: 100%;">
|
|
<f:selectItem itemLabel="Tous" itemValue="TOUS"/>
|
|
<f:selectItem itemLabel="Brouillon" itemValue="BROUILLON"/>
|
|
<f:selectItem itemLabel="En attente" itemValue="EN_ATTENTE"/>
|
|
<f:selectItem itemLabel="Accepté" itemValue="ACCEPTE"/>
|
|
<f:selectItem itemLabel="Refusé" itemValue="REFUSE"/>
|
|
<f:selectItem itemLabel="Expiré" itemValue="EXPIRE"/>
|
|
</p:selectOneMenu>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<ui:include src="/WEB-INF/components/liste-table.xhtml">
|
|
<ui:param name="formId" value="devisForm"/>
|
|
<ui:param name="tableId" value="devisTable"/>
|
|
<ui:param name="viewBean" value="#{devisView}"/>
|
|
<ui:param name="var" value="devis"/>
|
|
<ui:param name="title" value="Liste des devis"/>
|
|
<ui:param name="createPath" value="/devis/nouveau"/>
|
|
<ui:define name="columns">
|
|
<p:column headerText="Numéro" sortBy="#{devis.numero}">
|
|
<h:outputText value="#{devis.numero}"/>
|
|
</p:column>
|
|
<p:column headerText="Objet" sortBy="#{devis.objet}">
|
|
<h:outputText value="#{devis.objet}"/>
|
|
</p:column>
|
|
<p:column headerText="Client" sortBy="#{devis.client}">
|
|
<h:outputText value="#{devis.client}"/>
|
|
</p:column>
|
|
<p:column headerText="Date émission" sortBy="#{devis.dateEmission}">
|
|
<h:outputText value="#{devis.dateEmission}">
|
|
<f:convertDateTime pattern="dd/MM/yyyy"/>
|
|
</h:outputText>
|
|
</p:column>
|
|
<p:column headerText="Date validité" sortBy="#{devis.dateValidite}">
|
|
<h:outputText value="#{devis.dateValidite}">
|
|
<f:convertDateTime pattern="dd/MM/yyyy"/>
|
|
</h:outputText>
|
|
</p:column>
|
|
<p:column headerText="Montant HT">
|
|
<h:outputText value="#{devis.montantHT}">
|
|
<f:converter converterId="fcfaConverter"/>
|
|
</h:outputText>
|
|
<h:outputText value=" Fcfa"/>
|
|
</p:column>
|
|
<p:column headerText="Montant TTC">
|
|
<h:outputText value="#{devis.montantTTC}">
|
|
<f:converter converterId="fcfaConverter"/>
|
|
</h:outputText>
|
|
<h:outputText value=" Fcfa"/>
|
|
</p:column>
|
|
<p:column headerText="Statut" sortBy="#{devis.statut}">
|
|
<p:tag value="#{devis.statut}"
|
|
severity="#{devis.statut == 'ACCEPTE' ? 'success' : (devis.statut == 'REFUSE' ? 'danger' : (devis.statut == 'EXPIRE' ? 'warning' : 'info'))}"/>
|
|
</p:column>
|
|
<p:column headerText="Actions" style="width: 150px;">
|
|
<p:commandButton icon="pi pi-eye" title="Voir les détails"
|
|
styleClass="ui-button-text"
|
|
action="#{devisView.viewDetails(devis.id)}"/>
|
|
</p:column>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:composition>
|