- CAMBIO EN METODO DE PAGO CON "TARJETA"

This commit is contained in:
Brayan.Gonzalez 2025-05-07 13:00:41 -06:00
parent 3e839c5f81
commit 1fbca6e5ff
4 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,34 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.arrebol.taxiservicios.model.enums;
/**
*
* @author Oscar
*/
public enum TipoTarjeta {
CREDITO("CREDITO") {
@Override
public String toString() {
return "Credito";
}
},
DEBITO("DEBITO") {
@Override
public String toString() {
return "Debito";
}
};
private final String type;
private TipoTarjeta(String type) {
this.type = type;
}
public String getType() {
return type;
}
}

View File

@ -8,6 +8,7 @@ import com.arrebol.taxiservicios.model.core.User;
import com.arrebol.taxiservicios.model.enums.GenericEnumType;
import com.arrebol.taxiservicios.model.enums.MetodoPago;
import com.arrebol.taxiservicios.model.enums.TipoAbono;
import com.arrebol.taxiservicios.model.enums.TipoTarjeta;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
@ -60,6 +61,10 @@ public class DetellePagoPoliza implements Serializable {
@Column(name = "tipo_pago", nullable = false)
private TipoAbono tipoPago;
@Enumerated(EnumType.STRING)
@Column(name = "tipo_tarjeta", nullable = true)
private TipoTarjeta tipoTarjeta;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "fecha_pago")
private Date fechaPago;
@ -241,4 +246,12 @@ public class DetellePagoPoliza implements Serializable {
this.tipoPago = tipoPago;
}
public TipoTarjeta getTipoTarjeta() {
return tipoTarjeta;
}
public void setTipoTarjeta(TipoTarjeta tipoTarjeta) {
this.tipoTarjeta = tipoTarjeta;
}
}

View File

@ -11,6 +11,7 @@ import com.arrebol.taxiservicios.model.enums.GenericEnumType;
import com.arrebol.taxiservicios.model.enums.MetodoPago;
import com.arrebol.taxiservicios.model.enums.PolizaEstatus;
import com.arrebol.taxiservicios.model.enums.TipoAbono;
import com.arrebol.taxiservicios.model.enums.TipoTarjeta;
import com.crov.prase.controller.prase.PagosPolizaController;
import com.crov.prase.controller.prase.PolizaController;
import com.crov.prase.model.prase.DetellePagoPoliza;
@ -58,6 +59,7 @@ public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
private Boolean pagoExitoso;
private String imagen;
private String metodoPago;
private String tipoTargeta;
private HistorialAbonoMultiple selectedHistorialAbonoMultiple;
private String comentarioDevolucionPago;
@ -105,6 +107,11 @@ public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
setCantidadAPagar(getSelectedPago().getDiferenciaPago());
setSelectedDetellePago(null);
setMetodoPago("");
setTipoTargeta("0");
}
public void limpiarTipoPago() {
setTipoTargeta("0");
}
public void pagarMultiple() {
@ -160,6 +167,11 @@ public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
return;
}
if (getMetodoPago().equals("TARJETA") && getTipoTargeta().equals("0")) {
showMessage(FacesMessage.SEVERITY_WARN, "ERROR", "Si selecciono el método de pago con TARJETA, debe de seleccionar el TIPO DE TARJETA ");
return;
}
// se valida el pago realizado sea el siguiente según el consecutivo
if (getSelectedPago().getId().equals(getPagoSiguiente())) {
// se actuliza el pago
@ -197,6 +209,7 @@ public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
detalle.setCobro(getLoggedUser());
detalle.setFolio(folio);
detalle.setMetodoPago(MetodoPago.valueOf(metodoDePago));
detalle.setTipoTarjeta(detalle.getMetodoPago().equals(MetodoPago.TARJETA) ? TipoTarjeta.valueOf(getTipoTargeta()) : null);
getPagosPolizaController().createDetellePago(detalle, getLoggedUser());
// se actualisa el pago pricipal
@ -521,4 +534,12 @@ public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
this.detallePagoDisponibleParaDevocion = detallePagoDisponibleParaDevocion;
}
public String getTipoTargeta() {
return tipoTargeta;
}
public void setTipoTargeta(String tipoTargeta) {
this.tipoTargeta = tipoTargeta;
}
}

View File

@ -344,10 +344,24 @@
<f:selectItem itemLabel="Tarjeta" itemValue="TARJETA" />
<f:selectItem itemLabel="Deposito" itemValue="DEPOSITO" />
<f:selectItem itemLabel="Trasferencia" itemValue="TRASFERENCIA" />
<p:ajax update="tipoTargeta" listener="#{pagosPolizasBean.limpiarTipoPago()}" />
</p:selectOneMenu>
<p:message for="metodoPagoSlct" display="text"/>
</h:panelGroup>
<h:panelGroup id="tipoTargeta" styleClass="md-inputfield" style="margin-top: 2em; margin-bottom: 2em" >
<p:selectOneMenu
id="tipoTargetaSlct"
style="width:100%"
value="#{pagosPolizasBean.tipoTargeta}"
rendered="#{pagosPolizasBean.metodoPago eq 'TARJETA'}">
<f:selectItem itemLabel="Selecione el tipo de tarjeta" itemValue="0" />
<f:selectItem itemLabel="Credito" itemValue="CREDITO" />
<f:selectItem itemLabel="Debito" itemValue="DEBITO" />
</p:selectOneMenu>
<p:message for="tipoTargetaSlct" display="text"/>
</h:panelGroup>
<p:commandButton id="addButton1" value="Pagar" actionListener="#{pagosPolizasBean.pagar()}" update="form, pagosForm:dtPagos, pagarForm, formTicket, pagarDialog" rendered="#{pagosPolizasBean.selectedPago.pagoEstatus eq 'DISABLED' or pagosPolizasBean.selectedPago.pagoEstatus=='INCOMPLETE'}" oncomplete="PF('printer').show()" />
</p:outputPanel>
@ -434,6 +448,7 @@
<p><strong><h:outputText value="PAGO RESTANTE: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedDetellePago.pagoPoliza.poliza.amount - pagosPolizasBean.selectedDetellePago.pagoPoliza.poliza.cantidadPagada}" ><f:convertNumber currencySymbol="$" groupingUsed="true" maxFractionDigits="2" type="currency" locale="en" /></h:outputText></p>
<p><strong><h:outputText value="COBRO: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedDetellePago.cobro.person.firstName} #{pagosPolizasBean.selectedDetellePago.cobro.person.secondName} #{pagosPolizasBean.selectedDetellePago.cobro.person.lastName} #{pagosPolizasBean.selectedDetellePago.cobro.person.middleName}"/></p>
<p><strong><h:outputText value="MÉTODO DE PAGO: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedDetellePago.metodoPago.type}" ></h:outputText></p>
<p><strong><h:outputText rendered="#{pagosPolizasBean.selectedDetellePago.metodoPago eq 'TARJETA'}" value="TIPO DE TARJETA: " /></strong> <h:outputText rendered="#{pagosPolizasBean.selectedDetellePago.metodoPago eq 'TARJETA'}" value="#{pagosPolizasBean.selectedDetellePago.tipoTarjeta.type}" ></h:outputText></p>
</div>
<p><center><strong><h:outputText value="#{pagosPolizasBean.loggedUser.location.businessName}" /><br/> AGRADECE SU PREFERENCIA </strong></center></p>
<p>