У меня есть дата, я получаю значения, вставленные из каждой строки, затем перебираю эту коллекцию, если у меня возникают проблемы, я просто выкидываю RollBackException, проблема в том, что если я получаю это исключение, я не хочу его обновлятьИнформация о таблице данных Я хочу остаться с предыдущими значениями или не обновлять компонент данных, если у меня нет исключения, хорошо обновите таблицу правильно, вот мой код:
<p:dataTable value="#{creditoController.ordenes}" var="orden"
selectionMode="single" clickSelect="true" id="items"
emptyMessage="No info."
rendered="#{creditoController.mostrarInfoCliente}"
selection="#{creditoController.selectedOrden}"
rowSelectListener="#{creditoController.onRowSelectNavigate}">
<p:column>
<f:facet name="header">Fecha</f:facet>
<h:outputText value="#{orden.fechaFacturacion}">
<f:convertDateTime pattern="dd-MM-yyyy" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">No. Factura</f:facet>
<h:outputText value="#{orden.numeroFactura}">
<f:convertDateTime pattern="dd-MM-yyyy" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">Valor Factura</f:facet>
<h:outputText value="#{orden.monto}" />
</p:column>
<p:column>
<f:facet name="header">Cancelado</f:facet>
<h:outputText value="#{orden.totalCancelado}" />
</p:column>
<p:column>
<f:facet name="header">Por Pagar</f:facet>
<h:outputText value="#{orden.monto - orden.totalCancelado}" />
</p:column>
<p:column>
<f:facet name="header">Tipo de Pago</f:facet>
<h:selectOneRadio value="#{orden.tipoCancelacion}"
rendered="#{orden.monto - orden.totalCancelado > 0}">
<f:selectItem itemLabel="Total" itemValue="T" />
<f:selectItem itemLabel="Abono" itemValue="A" />
</h:selectOneRadio>
</p:column>
<p:column>
<f:facet name="header">Valor a Pagar</f:facet>
<p:inputText value="#{orden.valorAPagar}" size="6"
rendered="#{orden.monto - orden.totalCancelado > 0}" />
</p:column>
</p:dataTable>
Иэто моя командная кнопка:
for (Orden o : ordenes) {
if (null != o.getTipoCancelacion()) {
HistorialPagos hp = new HistorialPagos();
if ("T".equals(o.getTipoCancelacion())) {
hp.setValor(o.getMonto());
o.setTotalCancelado(o.getMonto());
} else {
if (o.getValorAPagar() + o.getTotalCancelado() < o
.getMonto()) {
hp.setValor(o.getValorAPagar());
o.setTotalCancelado(o.getTotalCancelado()
+ o.getValorAPagar());
} else {
throw new RollbackException(
"El valor a pagar es mayor al valor adeudado, para la factura "
+ o.getNumeroFactura() + ".");
}
}
hp.setNumeroFactura(o.getNumeroFactura());
hp.setTipoPago(o.getTipoCancelacion());
hp.setFecha(new Date());
historialEJB.create(hp);
}
update(o);
}
Большое спасибо за любую рекомендацию.