- DASHBOARD - PAGOS DE POLIZAS PROXIMAS A VENCER - QUE NO MUESTRE CANCELADAS

- DASHBOARD - POLIZAS PROXIMAS A VENCER - QUE NO MUESTRE CANCELADAS
- DASHBOARD - CUANDO UNA POLIZA SE VENCE Y NO SE PAGA YA NO SE VUELVE A MOSTRAR COMO DEUDORA
- CAJA GENERAL - INICIOS - AGREGAR NOMBRE EN LA TABLA DE USUARIO CREACION
This commit is contained in:
Brayan.Gonzalez 2025-04-21 11:29:47 -06:00
parent 45f688afde
commit bf281bef70
3 changed files with 237 additions and 229 deletions

View File

@ -91,15 +91,18 @@ public class PagosPolizaController extends ConnectionManager implements Serializ
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
LocalDate localHoy = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate localStartDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate localEndDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Predicate criterio1 = builder.equal(root.get("poliza").get("location"), location);
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
Predicate criterio3 = builder.equal(root.get("pagoEstatus"), GenericEnumType.DISABLED);
Predicate criterio4 = builder.notEqual(root.get("poliza").get("estatus"), PolizaEstatus.CANCELADO);
Predicate criterio5 = builder.greaterThanOrEqualTo(root.get("poliza").get("endDate").as(LocalDate.class), localHoy);
Predicate startDatePredicate = builder.greaterThanOrEqualTo(root.get("fechaAPagar").as(LocalDate.class), localStartDate);
Predicate endDatePredicate = builder.lessThanOrEqualTo(root.get("fechaAPagar").as(LocalDate.class), localEndDate);
criteria.where(builder.and(criterio1, criterio2, criterio3, startDatePredicate, endDatePredicate));
criteria.where(builder.and(criterio1, criterio2, criterio3, criterio4, criterio5, startDatePredicate, endDatePredicate));
criteria.orderBy(builder.asc(root.get("fechaAPagar")));
resultList = session.createQuery(criteria).getResultList();

View File

@ -12,6 +12,7 @@ import com.arrebol.taxiservicios.controller.util.HibernateUtil;
import com.arrebol.taxiservicios.model.catalog.Location;
import com.arrebol.taxiservicios.model.core.Address;
import com.arrebol.taxiservicios.model.core.User;
import com.arrebol.taxiservicios.model.enums.PolizaEstatus;
import com.crov.prase.model.prase.DetellePagoPoliza;
import com.crov.prase.model.prase.PagosPoliza;
import com.crov.prase.model.prase.Poliza;
@ -374,11 +375,12 @@ public class PolizaController extends ConnectionManager implements Serializable
LocalDate localEndDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Predicate criterio = builder.equal(root.get("active"), Boolean.TRUE);
Predicate criterio2 = builder.equal(root.get("location"), location);
Predicate criterio2 = builder.notEqual(root.get("estatus"), PolizaEstatus.CANCELADO);
Predicate criterio3 = builder.equal(root.get("location"), location);
Predicate startDatePredicate = builder.greaterThanOrEqualTo(root.get("endDate").as(LocalDate.class), localStartDate);
Predicate endDatePredicate = builder.lessThanOrEqualTo(root.get("endDate").as(LocalDate.class), localEndDate);
query.where(builder.and(criterio, criterio2, startDatePredicate, endDatePredicate));
query.where(builder.and(criterio, criterio2, criterio3, startDatePredicate, endDatePredicate));
query.orderBy(builder.asc(root.get("createdOn")));
results = session.createQuery(query).getResultList();

View File

@ -21,249 +21,252 @@
</ui:define>
<ui:define name="content">
<div class="card">
<div class="ui-g dashboard" id="divExpenseInicio" >
<h:form id="formExpenseInicio">
<div class="card">
<div class="ui-g dashboard" id="divExpenseInicio" >
<h:form id="formExpenseInicio">
<p:growl id="msgsExpenseIncio" showDetail="true"/>
<p:panelGrid columns="3" layout="grid" styleClass="ui-panelgrid-blank form-group">
<p:growl id="msgsExpenseIncio" showDetail="true"/>
<h:panelGroup styleClass="md-inputfield" id="startDate2Pnl">
<p:calendar id="startDate2" value="#{managerExpense.startDate}"
required="true" requiredMessage="#{i18n['empty.start.date']}"
style="text-transform: capitalize;" readonlyInput="true"
maxdate="#{managerExpense.today}"
locale="es" navigator="true" pattern="dd - MMMM - yyyy"/>
<label>#{i18n['start.date']}</label>
<p:message for="startDate2" display="text"/>
</h:panelGroup>
<p:panelGrid columns="3" layout="grid" styleClass="ui-panelgrid-blank form-group">
<h:panelGroup styleClass="md-inputfield" id="endDate2Pnl">
<p:calendar id="endDate2" value="#{managerExpense.endDate}"
style="text-transform: capitalize;" readonlyInput="true"
requiredMessage="Fecha final requerida"
maxdate="#{managerExpense.today}"
locale="es" navigator="true" pattern="dd - MMMM - yyyy"/>
<label>#{i18n['end.date']}</label>
<p:message for="endDate2" display="text"/>
</h:panelGroup>
<h:panelGroup styleClass="md-inputfield" id="startDate2Pnl">
<p:calendar id="startDate2" value="#{managerExpense.startDate}"
required="true" requiredMessage="#{i18n['empty.start.date']}"
style="text-transform: capitalize;" readonlyInput="true"
maxdate="#{managerExpense.today}"
locale="es" navigator="true" pattern="dd - MMMM - yyyy"/>
<label>#{i18n['start.date']}</label>
<p:message for="startDate2" display="text"/>
</h:panelGroup>
<h:panelGroup styleClass="md-inputfield" id="buttonPnl">
<p:commandButton
action="#{managerExpense.fillExpenseIniciosDataTableBetweenDates()}"
icon="ui-icon-sync"
style="margin-right:20px;"
title="Buscar ingresos/egresos por fecha"
update="msgsExpenseIncio, dtExpenseInicioDtb">
</p:commandButton>
</h:panelGroup>
<h:panelGroup styleClass="md-inputfield" id="endDate2Pnl">
<p:calendar id="endDate2" value="#{managerExpense.endDate}"
style="text-transform: capitalize;" readonlyInput="true"
requiredMessage="Fecha final requerida"
maxdate="#{managerExpense.today}"
locale="es" navigator="true" pattern="dd - MMMM - yyyy"/>
<label>#{i18n['end.date']}</label>
<p:message for="endDate2" display="text"/>
</h:panelGroup>
</p:panelGrid>
<h:panelGroup styleClass="md-inputfield" id="buttonPnl">
<p:commandButton
action="#{managerExpense.fillExpenseIniciosDataTableBetweenDates()}"
icon="ui-icon-sync"
style="margin-right:20px;"
title="Buscar ingresos/egresos por fecha"
update="msgsExpenseIncio, dtExpenseInicioDtb">
</p:commandButton>
</h:panelGroup>
<p:dataTable widgetVar="dtExpenseInicioDtb" id="dtExpenseInicioDtb"
var="expense" draggableRows="true"
draggableColumns="true"
value="#{managerExpense.expenseInicios}"
style="margin-bottom:20px" reflow="true"
rowsPerPageTemplate="5,10,25,50,100"
emptyMessage="#{i18n['menu.admin.expense.datatable.empty']}"
rowKey="#{expense.id}"
rowStyleClass="#{expense.status eq 'PENDING' ? 'datatableRowLittle' : null}"
selection="#{managerExpense.selectedExpenseInicio}"
editable="true" selectionMode="single"
paginator="true" rows="10"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">
</p:panelGrid>
<f:facet name="header">
<p:commandButton id="toggler"
type="button"
value="Columnas"
style="float:left;"
styleClass="amber-btn flat"
icon="ui-icon-calendar"/>
<p:columnToggler datasource="dtExpenseInicioDtb"
trigger="toggler" />
<p:commandButton type="button"
value="#{i18n['button.add']}"
styleClass="amber-btn flat"
style="float: right;"
icon="ui-icon-plus"
onclick="PF('dlgInicio2').show();"
rendered="#{loginBean.isUserInRole('admin.start.add')}"/>
<p:dataTable widgetVar="dtExpenseInicioDtb" id="dtExpenseInicioDtb"
var="expense" draggableRows="true"
draggableColumns="true"
value="#{managerExpense.expenseInicios}"
style="margin-bottom:20px" reflow="true"
rowsPerPageTemplate="5,10,25,50,100"
emptyMessage="#{i18n['menu.admin.expense.datatable.empty']}"
rowKey="#{expense.id}"
rowStyleClass="#{expense.status eq 'PENDING' ? 'datatableRowLittle' : null}"
selection="#{managerExpense.selectedExpenseInicio}"
editable="true" selectionMode="single"
paginator="true" rows="10"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">
<p:outputPanel>
<h:outputText value="#{i18n['general.search']}: " />
<p:inputText id="globalFilter" onkeyup="PF('dtExpenseInicioDtb').filter()" style="width:150px;color: #000000;"/>
</p:outputPanel>
</f:facet>
<f:facet name="header">
<p:commandButton id="toggler"
type="button"
value="Columnas"
style="float:left;"
styleClass="amber-btn flat"
icon="ui-icon-calendar"/>
<p:columnToggler datasource="dtExpenseInicioDtb"
trigger="toggler" />
<p:commandButton type="button"
value="#{i18n['button.add']}"
styleClass="amber-btn flat"
style="float: right;"
icon="ui-icon-plus"
onclick="PF('dlgInicio2').show();"
rendered="#{loginBean.isUserInRole('admin.start.add')}"/>
<p:column headerText="#{i18n['menu.admin.expense.column.payment']}" sortBy="#{expense.payment}" filterBy="#{expense.payment}">
<h:outputText value="#{expense.payment}">
<f:convertNumber pattern="¤#,##0.00" locale="en_US" currencySymbol="$" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.paymentDate']}" sortBy="#{expense.paymentDate}" filterBy="#{expense.paymentDate}">
<h:outputText value="#{expense.paymentDate}">
<f:convertDateTime type="date" locale="es" pattern="dd - MMMM - yyyy"/>
</h:outputText>
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.type']}" sortBy="#{expense.type.getType()}" filterBy="#{expense.type.getType()}">
<h:outputText value="#{expense.type.getType()}" />
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.status']}" sortBy="#{expense.status.getStatus()}" filterBy="#{expense.status.getStatus()}">
<h:outputText value="#{expense.status.getStatus()}" />
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.description']}" sortBy="#{expense.description}" filterBy="#{expense.description}">
<h:outputText value="#{expense.description}" />
</p:column>
<p:column headerText="#{i18n.user}" sortBy="#{expense.lastUpdatedBy.person.firstName} #{expense.lastUpdatedBy.person.lastName} #{expense.lastUpdatedBy.person.middleName}" filterBy="#{expense.lastUpdatedBy.person.firstName} #{expense.lastUpdatedBy.person.lastName} #{expense.lastUpdatedBy.person.middleName}">
<h:outputText value="#{expense.lastUpdatedBy.person.firstName} #{expense.lastUpdatedBy.person.lastName} #{expense.lastUpdatedBy.person.middleName}" />
</p:column>
<p:column headerText="Locación" sortBy="#{expense.location.name}" filterBy="#{expense.location.name}">
<h:outputText value="#{expense.location.name}" />
</p:column>
<p:column headerText="Acción" style="text-align: center">
<p:commandButton
icon="ui-icon-close"
class="ui-button-icon-only red-btn"
title="Eliminar"
id="ctxMenuItem3"
rendered="#{loginBean.isUserInRole('admin.start.delete') and expense.getAction(managerExpense.lastStableGeneralBox) and !managerExpense.hayCuadre}"
update="confirmForm:globalConfirmMsg"
onclick="PF('deleteEventBitacoraInicio').show();">
<f:setPropertyActionListener value="#{expense}" target="#{managerExpense.selectedExpenseInicio}" />
<p:confirm message="¿Estas seguro de querer borrar el inicio?"
<p:outputPanel>
<h:outputText value="#{i18n['general.search']}: " />
<p:inputText id="globalFilter" onkeyup="PF('dtExpenseInicioDtb').filter()" style="width:150px;color: #000000;"/>
</p:outputPanel>
</f:facet>
<p:column headerText="#{i18n['menu.admin.expense.column.payment']}" sortBy="#{expense.payment}" filterBy="#{expense.payment}">
<h:outputText value="#{expense.payment}">
<f:convertNumber pattern="¤#,##0.00" locale="en_US" currencySymbol="$" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.paymentDate']}" sortBy="#{expense.paymentDate}" filterBy="#{expense.paymentDate}">
<h:outputText value="#{expense.paymentDate}">
<f:convertDateTime type="date" locale="es" pattern="dd - MMMM - yyyy"/>
</h:outputText>
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.type']}" sortBy="#{expense.type.getType()}" filterBy="#{expense.type.getType()}">
<h:outputText value="#{expense.type.getType()}" />
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.status']}" sortBy="#{expense.status.getStatus()}" filterBy="#{expense.status.getStatus()}">
<h:outputText value="#{expense.status.getStatus()}" />
</p:column>
<p:column headerText="#{i18n['menu.admin.expense.column.description']}" sortBy="#{expense.description}" filterBy="#{expense.description}">
<h:outputText value="#{expense.description}" />
</p:column>
<p:column headerText="Creado por" sortBy="#{expense.createdBy.person.firstName} #{expense.createdBy.person.lastName} #{expense.createdBy.person.middleName}" filterBy="#{expense.createdBy.person.firstName} #{expense.createdBy.person.lastName} #{expense.createdBy.person.middleName}">
<h:outputText value="#{expense.createdBy.person.firstName} #{expense.createdBy.person.lastName} #{expense.createdBy.person.middleName}" />
</p:column>
<p:column headerText="Modificado por" sortBy="#{expense.lastUpdatedBy.person.firstName} #{expense.lastUpdatedBy.person.lastName} #{expense.lastUpdatedBy.person.middleName}" filterBy="#{expense.lastUpdatedBy.person.firstName} #{expense.lastUpdatedBy.person.lastName} #{expense.lastUpdatedBy.person.middleName}">
<h:outputText value="#{expense.lastUpdatedBy.person.firstName} #{expense.lastUpdatedBy.person.lastName} #{expense.lastUpdatedBy.person.middleName}" />
</p:column>
<p:column headerText="Locación" sortBy="#{expense.location.name}" filterBy="#{expense.location.name}">
<h:outputText value="#{expense.location.name}" />
</p:column>
<p:column headerText="Acción" style="text-align: center">
<p:commandButton
icon="ui-icon-close"
class="ui-button-icon-only red-btn"
title="Eliminar"
id="ctxMenuItem3"
rendered="#{loginBean.isUserInRole('admin.start.delete') and expense.getAction(managerExpense.lastStableGeneralBox) and !managerExpense.hayCuadre}"
update="confirmForm:globalConfirmMsg"
onclick="PF('deleteEventBitacoraInicio').show();">
<f:setPropertyActionListener value="#{expense}" target="#{managerExpense.selectedExpenseInicio}" />
<p:confirm message="¿Estas seguro de querer borrar el inicio?"
header="Eliminar inicio"
icon="ui-icon-delete"/>
</p:commandButton>
</p:column>
</p:dataTable>
</p:commandButton>
</p:column>
</h:form>
</p:dataTable>
<h:form id="bitacoraFormInicio" rendered="#{loginBean.isUserInRole('admin.start.delete')}">
<p:growl id="msgsDialogBitacoraInicio" showDetail="true"/>
<p:dialog widgetVar="deleteEventBitacoraInicio" width="30%"
id="deleteEventBitacoraInicio"
header="Eliminar inicio"
modal="true" responsive="true"
showEffect="clip" hideEffect="clip">
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:inputText id="commentsBitacora"
value="#{managerExpense.commentsBitacora}"
autocomplete="off" style="width: 100%;">
</p:inputText>
<label>Comentarios</label>
<p:message for="commentsBitacora" display="text"/>
</h:panelGroup>
<br></br>
<div class="ui-g-12">
<p:commandButton id="addButtonBitacora"
value="#{i18n['button.save']}"
actionListener="#{managerExpense.deleteInicioRow()}"
oncomplete="deleteEventBitacoraInicio(xhr, status, args)"
update=":formExpenseInicio:dtExpenseInicioDtb
msgsDialogBitacoraInicio
deleteEventBitacoraInicio"/>
</div>
</p:dialog>
</h:form>
</h:form>
<h:form id="expenseInicioForm">
<p:growl id="msgsInicioDialog" showDetail="true"/>
<p:dialog widgetVar="dlgInicio2" width="30%" id="expenseInicioDialog"
header="Agregar inicio"
modal="true" responsive="true"
showEffect="clip" hideEffect="clip">
<br></br>
<h:panelGroup id="paymentPnlGrp" styleClass="md-inputfield">
<p:inputNumber id="payment"
style="width: 100%"
decimalPlaces="2"
decimalSeparator="."
thousandSeparator=","
symbol="$"
minValue="0"
required="true"
requiredMessage="Monto inicio requerido"
value="#{managerExpense.addInicioExpense.payment}">
</p:inputNumber>
<label>Monto inicio</label>
<p:message for="payment" display="text"/>
</h:panelGroup>
<br></br>
<h:panelGroup styleClass="md-inputfield">
<p:calendar id="paymentDate"
value="#{managerExpense.addInicioExpense.paymentDate}"
readonlyInput="true"
navigator="true"
locale="es"
pattern="dd - MMMM - yyyy"
required="true"
requiredMessage="#{i18n['require.msg.expense.paymentDate.empty']}"
style="width: 100%;">
</p:calendar>
<label>#{i18n['menu.admin.expense.column.paymentDate']}</label>
<p:message for="paymentDate" display="text"/>
</h:panelGroup>
<br></br>
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:selectOneMenu style="width:100%" value="#{managerExpense.tipo}">
<f:selectItem itemLabel="Inicio" itemValue="INICIO" />
</p:selectOneMenu>
</h:panelGroup>
<br></br>
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:selectOneMenu id="usrInicio" style="width:100%"
value="#{managerExpense.userInicioId}"
filter="true"
filterMatchMode="contains"
validator="selectOneMenuValidator"
validatorMessage="#{i18n['select.user']}">
<f:selectItem itemLabel="Selecciona un usuario.."
itemValue="N/A" />
<f:selectItems value="#{managerExpense.usersInicio}"
var="usr"
itemLabel="#{usr.person.firstName} #{usr.person.secondName} #{usr.person.lastName} #{usr.person.middleName}"
itemValue="#{usr.id}" />
</p:selectOneMenu>
<p:message for="usrInicio" display="text"/>
</h:panelGroup>
<br></br>
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:inputText id="description"
value="#{managerExpense.addInicioExpense.description}"
autocomplete="off" style="width: 100%;">
</p:inputText>
<label>#{i18n['menu.admin.expense.column.description']}</label>
<p:message for="description" display="text"/>
</h:panelGroup>
<br></br>
<div class="ui-g-12">
<p:commandButton id="addButton"
value="#{i18n['button.save']}"
actionListener="#{managerExpense.addInicioRow}"
style="width: 100%"
oncomplete="validPopupResponse(xhr, status, args)"
update=":formExpenseInicio:dtExpenseInicioDtb,
,msgsInicioDialog,expenseInicioDialog"/>
</div>
</p:dialog>
<h:form id="bitacoraFormInicio" rendered="#{loginBean.isUserInRole('admin.start.delete')}">
<p:growl id="msgsDialogBitacoraInicio" showDetail="true"/>
<p:dialog widgetVar="deleteEventBitacoraInicio" width="30%"
id="deleteEventBitacoraInicio"
header="Eliminar inicio"
modal="true" responsive="true"
showEffect="clip" hideEffect="clip">
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:inputText id="commentsBitacora"
value="#{managerExpense.commentsBitacora}"
autocomplete="off" style="width: 100%;">
</p:inputText>
<label>Comentarios</label>
<p:message for="commentsBitacora" display="text"/>
</h:panelGroup>
<br></br>
<div class="ui-g-12">
<p:commandButton id="addButtonBitacora"
value="#{i18n['button.save']}"
actionListener="#{managerExpense.deleteInicioRow()}"
oncomplete="deleteEventBitacoraInicio(xhr, status, args)"
update=":formExpenseInicio:dtExpenseInicioDtb
msgsDialogBitacoraInicio
deleteEventBitacoraInicio"/>
</div>
</p:dialog>
</h:form>
</h:form>
</div>
<h:form id="expenseInicioForm">
<p:growl id="msgsInicioDialog" showDetail="true"/>
<p:dialog widgetVar="dlgInicio2" width="30%" id="expenseInicioDialog"
header="Agregar inicio"
modal="true" responsive="true"
showEffect="clip" hideEffect="clip">
<br></br>
<h:panelGroup id="paymentPnlGrp" styleClass="md-inputfield">
<p:inputNumber id="payment"
style="width: 100%"
decimalPlaces="2"
decimalSeparator="."
thousandSeparator=","
symbol="$"
minValue="0"
required="true"
requiredMessage="Monto inicio requerido"
value="#{managerExpense.addInicioExpense.payment}">
</p:inputNumber>
<label>Monto inicio</label>
<p:message for="payment" display="text"/>
</h:panelGroup>
<br></br>
<h:panelGroup styleClass="md-inputfield">
<p:calendar id="paymentDate"
value="#{managerExpense.addInicioExpense.paymentDate}"
readonlyInput="true"
navigator="true"
locale="es"
pattern="dd - MMMM - yyyy"
required="true"
requiredMessage="#{i18n['require.msg.expense.paymentDate.empty']}"
style="width: 100%;">
</p:calendar>
<label>#{i18n['menu.admin.expense.column.paymentDate']}</label>
<p:message for="paymentDate" display="text"/>
</h:panelGroup>
<br></br>
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:selectOneMenu style="width:100%" value="#{managerExpense.tipo}">
<f:selectItem itemLabel="Inicio" itemValue="INICIO" />
</p:selectOneMenu>
</h:panelGroup>
<br></br>
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:selectOneMenu id="usrInicio" style="width:100%"
value="#{managerExpense.userInicioId}"
filter="true"
filterMatchMode="contains"
validator="selectOneMenuValidator"
validatorMessage="#{i18n['select.user']}">
<f:selectItem itemLabel="Selecciona un usuario.."
itemValue="N/A" />
<f:selectItems value="#{managerExpense.usersInicio}"
var="usr"
itemLabel="#{usr.person.firstName} #{usr.person.secondName} #{usr.person.lastName} #{usr.person.middleName}"
itemValue="#{usr.id}" />
</p:selectOneMenu>
<p:message for="usrInicio" display="text"/>
</h:panelGroup>
<br></br>
<br></br>
<h:panelGroup styleClass="md-inputfield" >
<p:inputText id="description"
value="#{managerExpense.addInicioExpense.description}"
autocomplete="off" style="width: 100%;">
</p:inputText>
<label>#{i18n['menu.admin.expense.column.description']}</label>
<p:message for="description" display="text"/>
</h:panelGroup>
<br></br>
<div class="ui-g-12">
<p:commandButton id="addButton"
value="#{i18n['button.save']}"
actionListener="#{managerExpense.addInicioRow}"
style="width: 100%"
oncomplete="validPopupResponse(xhr, status, args)"
update=":formExpenseInicio:dtExpenseInicioDtb,
,msgsInicioDialog,expenseInicioDialog"/>
</div>
</p:dialog>
</h:form>
</div>
</div>
<!-- Popup -->
<h:form id="confirmForm">