- AGREGAR DETALLES DE ABONOS PARA PODER GENERAR SUB ABONOS
This commit is contained in:
parent
2112b251d4
commit
97d6613040
@ -9,6 +9,7 @@ import com.arrebol.taxiservicios.controller.util.HibernateUtil;
|
||||
import com.arrebol.taxiservicios.model.catalog.Location;
|
||||
import com.arrebol.taxiservicios.model.core.User;
|
||||
import com.arrebol.taxiservicios.model.enums.GenericEnumType;
|
||||
import com.crov.prase.model.prase.DetellePagoPoliza;
|
||||
import com.crov.prase.model.prase.PagosPoliza;
|
||||
import com.crov.prase.model.prase.Poliza;
|
||||
import java.io.Serializable;
|
||||
@ -18,6 +19,8 @@ import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Predicate;
|
||||
@ -34,137 +37,253 @@ import org.hibernate.Transaction;
|
||||
*/
|
||||
public class PagosPolizaController extends ConnectionManager implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8772793021819350069L;
|
||||
final Logger logger = LogManager.getLogger(getClass());
|
||||
private static final long serialVersionUID = -8772793021819350069L;
|
||||
final Logger logger = LogManager.getLogger(getClass());
|
||||
|
||||
public List<PagosPoliza> fillPagosPolizaByPoliza(Poliza poliza) {
|
||||
logger.info("fillPagosPolizaByPoliza");
|
||||
List<PagosPoliza> resultList = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Searching pagos for poliza..");
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
public List<PagosPoliza> fillPagosPolizaByPoliza(Poliza poliza) {
|
||||
logger.info("fillPagosPolizaByPoliza");
|
||||
List<PagosPoliza> resultList = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Searching pagos for poliza..");
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
|
||||
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
||||
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
||||
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
||||
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
||||
|
||||
Predicate criterio1 = builder.equal(root.get("poliza"), poliza);
|
||||
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
||||
criteria.where(builder.and(criterio1, criterio2));
|
||||
criteria.orderBy(builder.asc(root.get("fechaAPagar")));
|
||||
Predicate criterio1 = builder.equal(root.get("poliza"), poliza);
|
||||
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
||||
criteria.where(builder.and(criterio1, criterio2));
|
||||
criteria.orderBy(builder.asc(root.get("fechaAPagar")));
|
||||
|
||||
resultList = session.createQuery(criteria).getResultList();
|
||||
resultList = session.createQuery(criteria).getResultList();
|
||||
|
||||
logger.info("Total of pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Pagos cannot be loaded ");
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillPagosPolizaByPoliza ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
logger.info("Total of pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Pagos cannot be loaded ");
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillPagosPolizaByPoliza ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public List<PagosPoliza> fillPagosPolizaFechaAPagarByLocationFechaInicioAndFechaFin(Location location, Date startDate, Date endDate) {
|
||||
logger.info("fillPagosPolizaByPoliza");
|
||||
List<PagosPoliza> resultList = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Searching pagos for poliza..");
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
public List<PagosPoliza> fillPagosPolizaFechaAPagarByLocationFechaInicioAndFechaFin(Location location, Date startDate, Date endDate) {
|
||||
logger.info("fillPagosPolizaByPoliza");
|
||||
List<PagosPoliza> resultList = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Searching pagos for poliza..");
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
|
||||
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
||||
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
||||
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
||||
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
||||
|
||||
LocalDate localStartDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
LocalDate localEndDate = endDate.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 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.orderBy(builder.asc(root.get("fechaAPagar")));
|
||||
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 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.orderBy(builder.asc(root.get("fechaAPagar")));
|
||||
|
||||
resultList = session.createQuery(criteria).getResultList();
|
||||
resultList = session.createQuery(criteria).getResultList();
|
||||
|
||||
logger.info("Total of pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Pagos cannot be loaded ");
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillPagosPolizaByPoliza ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
logger.info("Total of pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Pagos cannot be loaded ");
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillPagosPolizaByPoliza ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public PagosPoliza fillFoliosByPagos(String abreviacionFolio) {
|
||||
PagosPoliza result = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Search last generated folio..");
|
||||
public PagosPoliza fillFoliosByPagos(String abreviacionFolio) {
|
||||
PagosPoliza result = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Search last generated folio..");
|
||||
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
|
||||
String query = "SELECT tap FROM PagosPoliza tap "
|
||||
+ "WHERE tap.folio LIKE '" + abreviacionFolio + "%' "
|
||||
+ "ORDER BY "
|
||||
+ "SUBSTRING_INDEX(tap.folio, '-', 1) DESC, "
|
||||
+ "SUBSTRING_INDEX(SUBSTRING_INDEX(tap.folio, '-', -2), '-', -6) DESC ";
|
||||
String query = "SELECT tap FROM PagosPoliza tap "
|
||||
+ "WHERE tap.folio LIKE '" + abreviacionFolio + "%' "
|
||||
+ "ORDER BY "
|
||||
+ "SUBSTRING_INDEX(tap.folio, '-', 1) DESC, "
|
||||
+ "SUBSTRING_INDEX(SUBSTRING_INDEX(tap.folio, '-', -2), '-', -6) DESC ";
|
||||
|
||||
result = (PagosPoliza) session.createQuery(query).setMaxResults(1).uniqueResult();
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Search for the last generated folio " + e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillFoliosByPagos() " + e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean updatePago(PagosPoliza pago, User user) {
|
||||
logger.info("addPagos");
|
||||
boolean success = false;
|
||||
Transaction transaction = null;
|
||||
result = (PagosPoliza) session.createQuery(query).setMaxResults(1).uniqueResult();
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Search for the last generated folio " + e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillFoliosByPagos() " + e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
try {
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
public boolean updatePago(PagosPoliza pago, User user) {
|
||||
logger.info("addPagos");
|
||||
boolean success = false;
|
||||
Transaction transaction = null;
|
||||
|
||||
pago.setLastUpdatedOn(correcciónDeHr(new Date(), -7));
|
||||
pago.setLastUpdatedBy(user);
|
||||
session.update(pago);
|
||||
transaction.commit();
|
||||
try {
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
|
||||
success = true;
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Venta can not be added ", e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method addVenta() ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
pago.setLastUpdatedOn(correcciónDeHr(new Date(), -7));
|
||||
pago.setLastUpdatedBy(user);
|
||||
session.update(pago);
|
||||
transaction.commit();
|
||||
|
||||
private Date correcciónDeHr(Date fecha, int horas) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(fecha);
|
||||
calendar.add(Calendar.HOUR_OF_DAY, horas);
|
||||
Date nuevaFecha = calendar.getTime();
|
||||
return nuevaFecha;
|
||||
}
|
||||
success = true;
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Venta can not be added ", e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method addVenta() ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
public boolean createDetellePago(DetellePagoPoliza dpago, User user) {
|
||||
logger.info("createDetellePago");
|
||||
boolean success = false;
|
||||
Transaction transaction = null;
|
||||
|
||||
try {
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
dpago.setId(UUID.randomUUID().toString());
|
||||
dpago.setCreatedOn(correcciónDeHr(new Date(), -7));
|
||||
dpago.setCreatedBy(user);
|
||||
session.save(dpago);
|
||||
transaction.commit();
|
||||
|
||||
success = true;
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Detalle pago can not be added ", e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method createDetellePago() ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
public boolean updateDetellePago(DetellePagoPoliza dpago, User user) {
|
||||
logger.info("createDetellePago");
|
||||
boolean success = false;
|
||||
Transaction transaction = null;
|
||||
|
||||
try {
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
dpago.setLastUpdatedOn(correcciónDeHr(new Date(), -7));
|
||||
dpago.setLastUpdatedBy(user);
|
||||
session.update(dpago);
|
||||
transaction.commit();
|
||||
|
||||
success = true;
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Detalle pago can not be added ", e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method createDetellePago() ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
public DetellePagoPoliza getUltimoDetalleByPago(String idPago) {
|
||||
logger.info("getUltimoDetalleByPago");
|
||||
|
||||
DetellePagoPoliza result = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
|
||||
CriteriaQuery<DetellePagoPoliza> criteria = builder.createQuery(DetellePagoPoliza.class);
|
||||
Root<DetellePagoPoliza> root = criteria.from(DetellePagoPoliza.class);
|
||||
|
||||
criteria.where(builder.equal(root.get("pagoPoliza").get("id"), idPago));
|
||||
criteria.orderBy(builder.desc(root.get("createdOn")));
|
||||
|
||||
TypedQuery<DetellePagoPoliza> query = session.createQuery(criteria);
|
||||
query.setMaxResults(1);
|
||||
result = query.getSingleResult();
|
||||
|
||||
transaction.commit();
|
||||
} catch (NoResultException e) {
|
||||
logger.info("No se encontró detalle para el pago: " + idPago);
|
||||
rollback(transaction);
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Error al obtener el detalle del pago " + idPago, e);
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Error en getUltimoDetalleByPago(" + idPago + ")", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<DetellePagoPoliza> fillDetellePagoPolizaByPago(String idPago) {
|
||||
logger.info("fillDetellePagoPolizaByPago");
|
||||
List<DetellePagoPoliza> resultList = null;
|
||||
Transaction transaction = null;
|
||||
try {
|
||||
logger.info("Searching detalles pagos for poliza..");
|
||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||
transaction = session.beginTransaction();
|
||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||
|
||||
CriteriaQuery<DetellePagoPoliza> criteria = builder.createQuery(DetellePagoPoliza.class);
|
||||
Root<DetellePagoPoliza> root = criteria.from(DetellePagoPoliza.class);
|
||||
|
||||
Predicate criterio1 = builder.equal(root.get("pagoPoliza").get("id"), idPago);
|
||||
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
||||
|
||||
criteria.where(builder.and(criterio1, criterio2));
|
||||
criteria.orderBy(builder.asc(root.get("createdOn")));
|
||||
|
||||
resultList = session.createQuery(criteria).getResultList();
|
||||
|
||||
logger.info("Total of detalles pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||
transaction.commit();
|
||||
} catch (HibernateException e) {
|
||||
logger.error("Detalles pagos cannot be loaded ");
|
||||
rollback(transaction);
|
||||
} catch (Exception e) {
|
||||
logger.error("Method fillDetellePagoPolizaByPago ", e);
|
||||
rollback(transaction);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
private Date correcciónDeHr(Date fecha, int horas) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(fecha);
|
||||
calendar.add(Calendar.HOUR_OF_DAY, horas);
|
||||
Date nuevaFecha = calendar.getTime();
|
||||
return nuevaFecha;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -61,6 +61,14 @@ public class DetellePagoPoliza implements Serializable {
|
||||
@Column(name = "folio")
|
||||
private String folio;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true)
|
||||
@JoinColumn(
|
||||
name = "cobro",
|
||||
referencedColumnName = "id",
|
||||
nullable = true
|
||||
)
|
||||
private User cobro;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "metodo_pago", nullable = true)
|
||||
private MetodoPago metodoPago;
|
||||
@ -184,4 +192,12 @@ public class DetellePagoPoliza implements Serializable {
|
||||
this.lastUpdatedBy = lastUpdatedBy;
|
||||
}
|
||||
|
||||
public User getCobro() {
|
||||
return cobro;
|
||||
}
|
||||
|
||||
public void setCobro(User cobro) {
|
||||
this.cobro = cobro;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import com.arrebol.taxiservicios.model.enums.MetodoPago;
|
||||
import com.arrebol.taxiservicios.model.enums.PolizaEstatus;
|
||||
import com.crov.prase.controller.prase.PagosPolizaController;
|
||||
import com.crov.prase.controller.prase.PolizaController;
|
||||
import com.crov.prase.model.prase.DetellePagoPoliza;
|
||||
import com.crov.prase.model.prase.PagosPoliza;
|
||||
import com.crov.prase.model.prase.Poliza;
|
||||
import java.io.Serializable;
|
||||
@ -32,305 +33,349 @@ import org.apache.logging.log4j.Logger;
|
||||
@ViewScoped
|
||||
public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -136031528440947006L;
|
||||
final Logger logger = LogManager.getLogger(PolizaBean.class);
|
||||
private static final long serialVersionUID = -136031528440947006L;
|
||||
final Logger logger = LogManager.getLogger(PolizaBean.class);
|
||||
|
||||
private PolizaController polizaController;
|
||||
private PagosPolizaController pagosPolizaController;
|
||||
private GenericValidationController genericController;
|
||||
private PolizaController polizaController;
|
||||
private PagosPolizaController pagosPolizaController;
|
||||
private GenericValidationController genericController;
|
||||
|
||||
private List<Poliza> poliza;
|
||||
private Poliza selectedPoliza;
|
||||
private List<PagosPoliza> listPagosPolizas;
|
||||
private PagosPoliza selectedPago;
|
||||
private String pagoSiguiente;
|
||||
private Double cantidadAPagar;
|
||||
private Boolean pagoExitoso;
|
||||
private String imagen;
|
||||
private String metodoPago;
|
||||
private List<Poliza> poliza;
|
||||
private Poliza selectedPoliza;
|
||||
private List<PagosPoliza> listPagosPolizas;
|
||||
private PagosPoliza selectedPago;
|
||||
private List<DetellePagoPoliza> listDetallePagosPolizas;
|
||||
private DetellePagoPoliza selectedDetellePago;
|
||||
private String pagoSiguiente;
|
||||
private Double cantidadAPagar;
|
||||
private Boolean pagoExitoso;
|
||||
private String imagen;
|
||||
private String metodoPago;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
logger.info("init");
|
||||
try {
|
||||
loadBundlePropertyFile();
|
||||
setPolizaController(new PolizaController());
|
||||
setPagosPolizaController(new PagosPolizaController());
|
||||
setGenericController(new GenericValidationController());
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
logger.info("init");
|
||||
try {
|
||||
loadBundlePropertyFile();
|
||||
setPolizaController(new PolizaController());
|
||||
setPagosPolizaController(new PagosPolizaController());
|
||||
setGenericController(new GenericValidationController());
|
||||
cargarPolizas();
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void cargarPolizas() {
|
||||
logger.info("cargarPolizas()");
|
||||
setPoliza(getPolizaController().findActive(getLoggedUser().getLocation()));
|
||||
}
|
||||
|
||||
public void cargarPagosPoliza() {
|
||||
logger.info("cargarPagosPoliza()");
|
||||
try {
|
||||
// se caga la lista de pagos
|
||||
setListPagosPolizas(getPagosPolizaController().fillPagosPolizaByPoliza(getSelectedPoliza()));
|
||||
// se encuentra el siguiente pago a realizar
|
||||
String idSiguinetePago = "";
|
||||
for (PagosPoliza pa : getListPagosPolizas()) {
|
||||
if (pa.getPagoEstatus().equals(GenericEnumType.DISABLED) || pa.getPagoEstatus().equals(GenericEnumType.INCOMPLETE)) {
|
||||
idSiguinetePago = pa.getId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
setPagoSiguiente(idSiguinetePago);
|
||||
} catch (Exception e) {
|
||||
logger.error("cargarPagosPoliza(): " + e);
|
||||
}
|
||||
}
|
||||
|
||||
public void cargarPago() {
|
||||
setCantidadAPagar(getSelectedPago().getDiferenciaPago());
|
||||
}
|
||||
|
||||
public void pagar() {
|
||||
logger.info("pagar()");
|
||||
setPagoExitoso(false);
|
||||
|
||||
if (getGenericController().existClosingDayByCreatedOn(new Date(), getLoggedUser())) {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "Error", "No se puede hacer ninguna acción si existe un corte del día");
|
||||
return;
|
||||
}
|
||||
|
||||
if (getGenericController().existStableGeneralBoxByCurdate(getLoggedUser())) {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "Dia cerrado", "No se puede hacer ninguna acción porque ya existe un cuadre de caja chica del día");
|
||||
return;
|
||||
}
|
||||
|
||||
if (getCantidadAPagar() > (getSelectedPago().getPago() - getSelectedPago().getCantidadPagada())) {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "ERROR", "La cantidad a pagar no puede ser mayor al pago restante del abono");
|
||||
return;
|
||||
}
|
||||
|
||||
// se valida el pago realizado sea el siguiente según el consecutivo
|
||||
if (getSelectedPago().getId().equals(getPagoSiguiente())) {
|
||||
// se actuliza el pago
|
||||
if (actualizarAbono(getSelectedPago(), getCantidadAPagar(), getMetodoPago())) {
|
||||
// se actualiza la lista de pagos y polizas
|
||||
setPagoExitoso(true);
|
||||
// se carga el ultimo detalle para el tiked
|
||||
setSelectedDetellePago(getPagosPolizaController().getUltimoDetalleByPago(getSelectedPago().getId()));
|
||||
cargarPagosPoliza();
|
||||
cargarDetalles();
|
||||
cargarPolizas();
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
}
|
||||
}
|
||||
showMessage(FacesMessage.SEVERITY_INFO, "Pago realizado", "El pago se realizó correctamente");
|
||||
} else {
|
||||
showMessage(FacesMessage.SEVERITY_ERROR, "Error", "Ocurrió un error al realizar el pago");
|
||||
}
|
||||
} else {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "Error", "Solo puede pagar el pago consecutivo");
|
||||
}
|
||||
|
||||
public void cargarPolizas() {
|
||||
logger.info("cargarPolizas()");
|
||||
setPoliza(getPolizaController().findActive(getLoggedUser().getLocation()));
|
||||
}
|
||||
}
|
||||
|
||||
public void cargarPagosPoliza() {
|
||||
logger.info("cargarPagosPoliza()");
|
||||
try {
|
||||
// se caga la lista de pagos
|
||||
setListPagosPolizas(getPagosPolizaController().fillPagosPolizaByPoliza(getSelectedPoliza()));
|
||||
// se encuentra el siguiente pago a realizar
|
||||
String idSiguinetePago = "";
|
||||
for (PagosPoliza pa : getListPagosPolizas()) {
|
||||
if (pa.getPagoEstatus().equals(GenericEnumType.DISABLED)) {
|
||||
idSiguinetePago = pa.getId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
setPagoSiguiente(idSiguinetePago);
|
||||
} catch (Exception e) {
|
||||
logger.error("cargarPagosPoliza(): " + e);
|
||||
}
|
||||
}
|
||||
|
||||
public void cargarPago() {
|
||||
setCantidadAPagar(getSelectedPago().getPago());
|
||||
}
|
||||
|
||||
public void pagar() {
|
||||
logger.info("pagar()");
|
||||
try {
|
||||
|
||||
setPagoExitoso(false);
|
||||
|
||||
if (getGenericController().existClosingDayByCreatedOn(new Date(), getLoggedUser())) {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "Error", "No se puede hacer ninguna acción si existe un corte del día");
|
||||
return;
|
||||
}
|
||||
|
||||
if (getGenericController().existStableGeneralBoxByCurdate(getLoggedUser())) {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "Dia cerrado", "No se puede hacer ninguna acción porque ya existe un cuadre de caja chica del día");
|
||||
return;
|
||||
}
|
||||
|
||||
// se valida el pago realizado sea el siguiente según el consecutivo
|
||||
if (getSelectedPago().getId().equals(getPagoSiguiente())) {
|
||||
setImagen("images/prase_logo.jpeg");
|
||||
|
||||
// se optiene el folio consecutivo
|
||||
String folio = obtenerFolio("A-PRASE");
|
||||
if (folio != null) {
|
||||
// se actualiza el pago
|
||||
getSelectedPago().setPagoEstatus(GenericEnumType.ENABLED);
|
||||
getSelectedPago().setFolio(folio);
|
||||
getSelectedPago().setFechaPago(correcciónDeHr(new Date(), -7));
|
||||
getSelectedPago().setCobro(getLoggedUser());
|
||||
getSelectedPago().setCantidadPagada(getSelectedPago().getPago());
|
||||
getSelectedPago().setDiferenciaPago(0.0);
|
||||
switch (getMetodoPago()) {
|
||||
case "EFECTIVO":
|
||||
getSelectedPago().setMetodoPago(MetodoPago.EFECTIVO);
|
||||
break;
|
||||
case "TARJETA":
|
||||
getSelectedPago().setMetodoPago(MetodoPago.TARJETA);
|
||||
break;
|
||||
case "DEPOSITO":
|
||||
getSelectedPago().setMetodoPago(MetodoPago.DEPOSITO);
|
||||
break;
|
||||
case "TRASFERENCIA":
|
||||
getSelectedPago().setMetodoPago(MetodoPago.TRASFERENCIA);
|
||||
break;
|
||||
default:
|
||||
getSelectedPago().setMetodoPago(MetodoPago.EFECTIVO);
|
||||
}
|
||||
getPagosPolizaController().updatePago(getSelectedPago(), getLoggedUser());
|
||||
|
||||
// se actuliza la venta
|
||||
getSelectedPoliza().setCantidadPagada(getSelectedPoliza().getCantidadPagada() + getSelectedPago().getPago());
|
||||
getSelectedPoliza().setLastUpdatedBy(getLoggedUser());
|
||||
getSelectedPoliza().setLastUpdatedOn(new Date());
|
||||
//se valida si la venta ya fue liquidada
|
||||
double cantidadPa = getSelectedPoliza().getCantidadPagada();
|
||||
double costoTotal = getSelectedPoliza().getAmount();
|
||||
double tolerancia = 0.001;
|
||||
if (Math.abs(cantidadPa - costoTotal) < tolerancia) {
|
||||
getSelectedPoliza().setEstatus(PolizaEstatus.LIQUIDADO);
|
||||
}
|
||||
getPolizaController().update(getSelectedPoliza());
|
||||
|
||||
// se actualiza la lista de pagos y polizas
|
||||
cargarPagosPoliza();
|
||||
cargarPolizas();
|
||||
setPagoExitoso(true);
|
||||
logger.info("El pago se realizó correctamente");
|
||||
showMessage(FacesMessage.SEVERITY_INFO, "Pago realizado", "El pago se realizó correctamente");
|
||||
} else {
|
||||
logger.error("Ocurrió un error al generar el folio");
|
||||
showMessage(FacesMessage.SEVERITY_INFO, "Error", "Ocurrió un error al generar el folio");
|
||||
}
|
||||
private boolean actualizarAbono(PagosPoliza pagoA, Double montoPagado, String metodoDePago) {
|
||||
try {
|
||||
setImagen("images/prase_logo.jpeg");
|
||||
// se optiene el folio consecutivo
|
||||
String folio = obtenerFolio("A-PRASE");
|
||||
if (folio != null) {
|
||||
// se genera el detalle pago
|
||||
DetellePagoPoliza detalle = new DetellePagoPoliza();
|
||||
detalle.setPagoPoliza(pagoA);
|
||||
detalle.setEstatusActivo(GenericEnumType.ENABLED);
|
||||
detalle.setFechaPago(correcciónDeHr(new Date(), -7));
|
||||
detalle.setCantidadPagada(montoPagado);
|
||||
detalle.setCobro(getLoggedUser());
|
||||
detalle.setFolio(folio);
|
||||
detalle.setMetodoPago(MetodoPago.valueOf(metodoDePago));
|
||||
getPagosPolizaController().createDetellePago(detalle, getLoggedUser());
|
||||
|
||||
// se actualisa el pago pricipal
|
||||
pagoA.setCantidadPagada(pagoA.getCantidadPagada() + detalle.getCantidadPagada());
|
||||
pagoA.setDiferenciaPago(pagoA.getPago() - pagoA.getCantidadPagada());
|
||||
if (Math.abs(pagoA.getDiferenciaPago()) < 0.01) {
|
||||
pagoA.setPagoEstatus(GenericEnumType.ENABLED);
|
||||
pagoA.setCantidadPagada(pagoA.getPago());
|
||||
pagoA.setDiferenciaPago(0.0);
|
||||
} else {
|
||||
showMessage(FacesMessage.SEVERITY_WARN, "Error", "Solo puede pagar el pago consecutivo");
|
||||
pagoA.setPagoEstatus(GenericEnumType.INCOMPLETE);
|
||||
}
|
||||
getPagosPolizaController().updatePago(pagoA, getLoggedUser());
|
||||
|
||||
} catch (Exception e) {
|
||||
showMessage(FacesMessage.SEVERITY_INFO, "Error", "Ocurrió un error al realizar el pago");
|
||||
logger.error("pagar(): " + e);
|
||||
}
|
||||
}
|
||||
|
||||
private String obtenerFolio(String ab) {
|
||||
logger.info("Obteniendo último folio ");
|
||||
try {
|
||||
// Se cargan los abonos para validar el folio
|
||||
String abreviacion = ab;
|
||||
PagosPoliza ultimoFolio = getPagosPolizaController().fillFoliosByPagos(abreviacion);
|
||||
// Se valida si ya existen folios registrados para el proyecto y se le asigna el último encontrado
|
||||
int consecutivo = 0;
|
||||
if (ultimoFolio != null) {
|
||||
String folior = ultimoFolio.getFolio();
|
||||
// Dividir el folio en partes utilizando el guion como separador
|
||||
String[] partes = folior.split("-");
|
||||
// Obtener la parte del consecutivo
|
||||
String consecutivoParte = partes[2];
|
||||
// Convertir el consecutivo a un entero
|
||||
consecutivo = Integer.parseInt(consecutivoParte);
|
||||
// se actuliza la venta
|
||||
pagoA.getPoliza().setCantidadPagada(pagoA.getPoliza().getCantidadPagada() + detalle.getCantidadPagada());
|
||||
pagoA.getPoliza().setLastUpdatedBy(getLoggedUser());
|
||||
pagoA.getPoliza().setLastUpdatedOn(new Date());
|
||||
//se valida si la venta ya fue liquidada
|
||||
double cantidadPa = pagoA.getPoliza().getCantidadPagada();
|
||||
double costoTotal = pagoA.getPoliza().getAmount();
|
||||
if (Math.abs(cantidadPa - costoTotal) < 0.10) {
|
||||
pagoA.getPoliza().setEstatus(PolizaEstatus.LIQUIDADO);
|
||||
pagoA.getPoliza().setCantidadPagada(pagoA.getPoliza().getAmount());
|
||||
}
|
||||
// se formatea el consecutivo
|
||||
String numeroFormateado = String.format("%06d", consecutivo + 1);
|
||||
String folio;
|
||||
// Se obtiene el año actual
|
||||
Calendar calendario = Calendar.getInstance();
|
||||
int ano = calendario.get(Calendar.YEAR);
|
||||
String anoActual = String.valueOf(ano);
|
||||
// Se valida si se creara el primer folio
|
||||
if (consecutivo == 0) {
|
||||
folio = abreviacion + "-" + "000001" + "-" + anoActual;
|
||||
} else {
|
||||
folio = abreviacion + "-" + numeroFormateado + "-" + anoActual;
|
||||
}
|
||||
return folio;
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("Ocurrió un erro al obtener el último folio ");
|
||||
showMessage(FacesMessage.SEVERITY_ERROR, "Error", "Ocurrió un error al generar el folio");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
getPolizaController().update(pagoA.getPoliza());
|
||||
|
||||
public void reimprimirTicket() {
|
||||
setPagoExitoso(true);
|
||||
try {
|
||||
setImagen("images/prase_logo.jpeg");
|
||||
} catch (Exception e) {
|
||||
logger.error("Error al definir el logo para el tiked " + e);
|
||||
}
|
||||
}
|
||||
logger.info("El pago se realizó correctamente");
|
||||
return true;
|
||||
} else {
|
||||
logger.error("Ocurrió un error al generar el folio");
|
||||
return false;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("actualizarAbono(): " + e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private Date correcciónDeHr(Date fecha, int horas) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(fecha);
|
||||
calendar.add(Calendar.HOUR_OF_DAY, horas);
|
||||
Date nuevaFecha = calendar.getTime();
|
||||
return nuevaFecha;
|
||||
}
|
||||
public void limpiarDetallePago() {
|
||||
setSelectedDetellePago(null);
|
||||
setPagoExitoso(false);
|
||||
}
|
||||
|
||||
public String validarColores(String estatus) {
|
||||
// Validadar color
|
||||
if (estatus.equals("LIQUIDADO")) {
|
||||
return "bgVerde";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
private String obtenerFolio(String ab) {
|
||||
logger.info("Obteniendo último folio ");
|
||||
try {
|
||||
// Se cargan los abonos para validar el folio
|
||||
String abreviacion = ab;
|
||||
PagosPoliza ultimoFolio = getPagosPolizaController().fillFoliosByPagos(abreviacion);
|
||||
// Se valida si ya existen folios registrados para el proyecto y se le asigna el último encontrado
|
||||
int consecutivo = 0;
|
||||
if (ultimoFolio != null) {
|
||||
String folior = ultimoFolio.getFolio();
|
||||
// Dividir el folio en partes utilizando el guion como separador
|
||||
String[] partes = folior.split("-");
|
||||
// Obtener la parte del consecutivo
|
||||
String consecutivoParte = partes[2];
|
||||
// Convertir el consecutivo a un entero
|
||||
consecutivo = Integer.parseInt(consecutivoParte);
|
||||
}
|
||||
// se formatea el consecutivo
|
||||
String numeroFormateado = String.format("%06d", consecutivo + 1);
|
||||
String folio;
|
||||
// Se obtiene el año actual
|
||||
Calendar calendario = Calendar.getInstance();
|
||||
int ano = calendario.get(Calendar.YEAR);
|
||||
String anoActual = String.valueOf(ano);
|
||||
// Se valida si se creara el primer folio
|
||||
if (consecutivo == 0) {
|
||||
folio = abreviacion + "-" + "000001" + "-" + anoActual;
|
||||
} else {
|
||||
folio = abreviacion + "-" + numeroFormateado + "-" + anoActual;
|
||||
}
|
||||
return folio;
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("Ocurrió un erro al obtener el último folio ");
|
||||
showMessage(FacesMessage.SEVERITY_ERROR, "Error", "Ocurrió un error al generar el folio");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public PolizaController getPolizaController() {
|
||||
return polizaController;
|
||||
}
|
||||
public void cargarDetalles() {
|
||||
try {
|
||||
setListDetallePagosPolizas(getPagosPolizaController().fillDetellePagoPolizaByPago(getSelectedPago().getId()));
|
||||
} catch (Exception e) {
|
||||
logger.error("cargarDetalles(): " + e);
|
||||
showMessage(FacesMessage.SEVERITY_ERROR, "Error", "Ocurrió un error al tratar de cargar los detalles de pago");
|
||||
}
|
||||
}
|
||||
|
||||
public void setPolizaController(PolizaController polizaController) {
|
||||
this.polizaController = polizaController;
|
||||
}
|
||||
public void reimprimirTicket() {
|
||||
setPagoExitoso(true);
|
||||
try {
|
||||
setImagen("images/prase_logo.jpeg");
|
||||
} catch (Exception e) {
|
||||
logger.error("Error al definir el logo para el tiked " + e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Poliza> getPoliza() {
|
||||
return poliza;
|
||||
}
|
||||
private Date correcciónDeHr(Date fecha, int horas) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(fecha);
|
||||
calendar.add(Calendar.HOUR_OF_DAY, horas);
|
||||
Date nuevaFecha = calendar.getTime();
|
||||
return nuevaFecha;
|
||||
}
|
||||
|
||||
public void setPoliza(List<Poliza> poliza) {
|
||||
this.poliza = poliza;
|
||||
}
|
||||
public String validarColores(String estatus) {
|
||||
// Validadar color
|
||||
if (estatus.equals("LIQUIDADO")) {
|
||||
return "bgVerde";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public Poliza getSelectedPoliza() {
|
||||
return selectedPoliza;
|
||||
}
|
||||
public PolizaController getPolizaController() {
|
||||
return polizaController;
|
||||
}
|
||||
|
||||
public void setSelectedPoliza(Poliza selectedPoliza) {
|
||||
this.selectedPoliza = selectedPoliza;
|
||||
}
|
||||
public void setPolizaController(PolizaController polizaController) {
|
||||
this.polizaController = polizaController;
|
||||
}
|
||||
|
||||
public List<PagosPoliza> getListPagosPolizas() {
|
||||
return listPagosPolizas;
|
||||
}
|
||||
public List<Poliza> getPoliza() {
|
||||
return poliza;
|
||||
}
|
||||
|
||||
public void setListPagosPolizas(List<PagosPoliza> listPagosPolizas) {
|
||||
this.listPagosPolizas = listPagosPolizas;
|
||||
}
|
||||
public void setPoliza(List<Poliza> poliza) {
|
||||
this.poliza = poliza;
|
||||
}
|
||||
|
||||
public PagosPoliza getSelectedPago() {
|
||||
return selectedPago;
|
||||
}
|
||||
public Poliza getSelectedPoliza() {
|
||||
return selectedPoliza;
|
||||
}
|
||||
|
||||
public void setSelectedPago(PagosPoliza selectedPago) {
|
||||
this.selectedPago = selectedPago;
|
||||
}
|
||||
public void setSelectedPoliza(Poliza selectedPoliza) {
|
||||
this.selectedPoliza = selectedPoliza;
|
||||
}
|
||||
|
||||
public PagosPolizaController getPagosPolizaController() {
|
||||
return pagosPolizaController;
|
||||
}
|
||||
public List<PagosPoliza> getListPagosPolizas() {
|
||||
return listPagosPolizas;
|
||||
}
|
||||
|
||||
public void setPagosPolizaController(PagosPolizaController pagosPolizaController) {
|
||||
this.pagosPolizaController = pagosPolizaController;
|
||||
}
|
||||
public void setListPagosPolizas(List<PagosPoliza> listPagosPolizas) {
|
||||
this.listPagosPolizas = listPagosPolizas;
|
||||
}
|
||||
|
||||
public String getPagoSiguiente() {
|
||||
return pagoSiguiente;
|
||||
}
|
||||
public PagosPoliza getSelectedPago() {
|
||||
return selectedPago;
|
||||
}
|
||||
|
||||
public void setPagoSiguiente(String pagoSiguiente) {
|
||||
this.pagoSiguiente = pagoSiguiente;
|
||||
}
|
||||
public void setSelectedPago(PagosPoliza selectedPago) {
|
||||
this.selectedPago = selectedPago;
|
||||
}
|
||||
|
||||
public Double getCantidadAPagar() {
|
||||
return cantidadAPagar;
|
||||
}
|
||||
public PagosPolizaController getPagosPolizaController() {
|
||||
return pagosPolizaController;
|
||||
}
|
||||
|
||||
public void setCantidadAPagar(Double cantidadAPagar) {
|
||||
this.cantidadAPagar = cantidadAPagar;
|
||||
}
|
||||
public void setPagosPolizaController(PagosPolizaController pagosPolizaController) {
|
||||
this.pagosPolizaController = pagosPolizaController;
|
||||
}
|
||||
|
||||
public GenericValidationController getGenericController() {
|
||||
return genericController;
|
||||
}
|
||||
public String getPagoSiguiente() {
|
||||
return pagoSiguiente;
|
||||
}
|
||||
|
||||
public void setGenericController(GenericValidationController genericController) {
|
||||
this.genericController = genericController;
|
||||
}
|
||||
public void setPagoSiguiente(String pagoSiguiente) {
|
||||
this.pagoSiguiente = pagoSiguiente;
|
||||
}
|
||||
|
||||
public Boolean getPagoExitoso() {
|
||||
return pagoExitoso;
|
||||
}
|
||||
public Double getCantidadAPagar() {
|
||||
return cantidadAPagar;
|
||||
}
|
||||
|
||||
public void setPagoExitoso(Boolean pagoExitoso) {
|
||||
this.pagoExitoso = pagoExitoso;
|
||||
}
|
||||
public void setCantidadAPagar(Double cantidadAPagar) {
|
||||
this.cantidadAPagar = cantidadAPagar;
|
||||
}
|
||||
|
||||
public String getImagen() {
|
||||
return imagen;
|
||||
}
|
||||
public GenericValidationController getGenericController() {
|
||||
return genericController;
|
||||
}
|
||||
|
||||
public void setImagen(String imagen) {
|
||||
this.imagen = imagen;
|
||||
}
|
||||
public void setGenericController(GenericValidationController genericController) {
|
||||
this.genericController = genericController;
|
||||
}
|
||||
|
||||
public String getMetodoPago() {
|
||||
return metodoPago;
|
||||
}
|
||||
public Boolean getPagoExitoso() {
|
||||
return pagoExitoso;
|
||||
}
|
||||
|
||||
public void setMetodoPago(String metodoPago) {
|
||||
this.metodoPago = metodoPago;
|
||||
}
|
||||
public void setPagoExitoso(Boolean pagoExitoso) {
|
||||
this.pagoExitoso = pagoExitoso;
|
||||
}
|
||||
|
||||
public String getImagen() {
|
||||
return imagen;
|
||||
}
|
||||
|
||||
public void setImagen(String imagen) {
|
||||
this.imagen = imagen;
|
||||
}
|
||||
|
||||
public String getMetodoPago() {
|
||||
return metodoPago;
|
||||
}
|
||||
|
||||
public void setMetodoPago(String metodoPago) {
|
||||
this.metodoPago = metodoPago;
|
||||
}
|
||||
|
||||
public DetellePagoPoliza getSelectedDetellePago() {
|
||||
return selectedDetellePago;
|
||||
}
|
||||
|
||||
public void setSelectedDetellePago(DetellePagoPoliza selectedDetellePago) {
|
||||
this.selectedDetellePago = selectedDetellePago;
|
||||
}
|
||||
|
||||
public List<DetellePagoPoliza> getListDetallePagosPolizas() {
|
||||
return listDetallePagosPolizas;
|
||||
}
|
||||
|
||||
public void setListDetallePagosPolizas(List<DetellePagoPoliza> listDetallePagosPolizas) {
|
||||
this.listDetallePagosPolizas = listDetallePagosPolizas;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -187,9 +187,71 @@
|
||||
|
||||
<p:column headerText="Acciones">
|
||||
|
||||
<p:commandButton title="Pagar" value="Pagar" update="pagarForm" oncomplete="PF('pagarDialog').show()" action="#{pagosPolizasBean.cargarPago()}" rendered="#{pago.pagoEstatus eq 'DISABLED' and pago.id eq pagosPolizasBean.pagoSiguiente}" >
|
||||
<p:commandButton title="Pagar" value="Pagar" update="pagarForm" oncomplete="PF('pagarDialog').show()" action="#{pagosPolizasBean.cargarPago()}" rendered="#{(pago.pagoEstatus eq 'DISABLED' or pago.pagoEstatus eq 'INCOMPLETE' )and pago.id eq pagosPolizasBean.pagoSiguiente}" >
|
||||
<f:setPropertyActionListener value="#{pago}" target="#{pagosPolizasBean.selectedPago}" />
|
||||
</p:commandButton>
|
||||
</p:commandButton>
|
||||
|
||||
|
||||
<p:commandButton
|
||||
process="@this"
|
||||
value="Detalles"
|
||||
title="Detalles"
|
||||
oncomplete="PF('detallePagosDialog').show()"
|
||||
update="detallePagosForm"
|
||||
style="margin-top: 0.5em; background-color: #E6702E"
|
||||
action="#{pagosPolizasBean.cargarDetalles()}"
|
||||
rendered="#{pago.pagoEstatus=='ENABLED' or pago.pagoEstatus=='INCOMPLETE'}">
|
||||
<f:setPropertyActionListener value="#{pago}" target="#{pagosPolizasBean.selectedPago}"/>
|
||||
</p:commandButton>
|
||||
|
||||
</p:column>
|
||||
|
||||
</p:dataTable>
|
||||
|
||||
</p:outputPanel>
|
||||
</p:dialog>
|
||||
</h:form>
|
||||
|
||||
<h:form id="detallePagosForm">
|
||||
<p:dialog widgetVar="detallePagosDialog" id="detallePagosDialog" style="max-height: 45em; overflow-y: scroll;" width="95em" header="detallePagos" modal="true" >
|
||||
<p:outputPanel style="padding-top: 2em">
|
||||
|
||||
<p:dataTable widgetVar="dtdetallePagos" id="dtdetallePagos" value="#{pagosPolizasBean.listDetallePagosPolizas}" var="detallePago" draggableRows="true" draggableColumns="true" style="margin-bottom:20px; text-align: center" reflow="true" rowsPerPageTemplate="5,10,25,50,100" emptyMessage="No hay registros"
|
||||
rowKey="#{detallePago.id}" selection="#{pagosPolizasBean.selectedDetellePago}" editable="true" selectionMode="single" paginator="true" rows="10" paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">
|
||||
<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="dtdetallePagos" trigger="toggler" />
|
||||
<p:outputPanel>
|
||||
<h:outputText value="#{i18n['general.search']}: " />
|
||||
<p:inputText id="globalFilter" onkeyup="PF('dtdetallePagos').filter()" style="width:150px;color: #000000;"/>
|
||||
</p:outputPanel>
|
||||
</f:facet>
|
||||
|
||||
<p:column headerText="Metodo pago" sortBy="#{detallePago.metodoPago}" filterBy="#{detallePago.metodoPago}">
|
||||
<h:outputText value="#{detallePago.metodoPago}" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Folio" sortBy="#{detallePago.folio}" filterBy="#{detallePago.folio}">
|
||||
<h:outputText value="#{detallePago.folio}" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Cantidad pagada" sortBy="#{detallePago.cantidadPagada}" filterBy="#{detallePago.cantidadPagada}">
|
||||
<h:outputText value="#{detallePago.cantidadPagada}" >
|
||||
<f:convertNumber currencySymbol="$" groupingUsed="true" maxFractionDigits="2" type="currency" locale="en" />
|
||||
</h:outputText>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Fecha de pago" sortBy="#{detallePago.fechaPago}" filterBy="#{detallePago.fechaPago}">
|
||||
<h:outputText value="#{detallePago.fechaPago}" >
|
||||
<f:convertDateTime pattern="dd/MM/yyyy" />
|
||||
</h:outputText>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Usuario cobro" sortBy="#{detallePago.cobro.person.firstName} #{detallePago.cobro.person.secondName} #{detallePago.cobro.person.lastName} #{detallePago.cobro.person.middleName}" filterBy="#{detallePago.cobro.person.firstName} #{detallePago.cobro.person.secondName} #{detallePago.cobro.person.lastName} #{detallePago.cobro.person.middleName}">
|
||||
<h:outputText value="#{detallePago.cobro.person.firstName} #{detallePago.cobro.person.secondName} #{detallePago.cobro.person.lastName} #{detallePago.cobro.person.middleName}" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Acciones">
|
||||
|
||||
<p:commandButton
|
||||
process="@this"
|
||||
@ -198,9 +260,8 @@
|
||||
oncomplete="PF('printer').show()"
|
||||
update="formTicket"
|
||||
style="margin-top: 0.5em; background-color: #E6702E"
|
||||
action="#{pagosPolizasBean.reimprimirTicket()}"
|
||||
rendered="#{pago.pagoEstatus=='ENABLED'}">
|
||||
<f:setPropertyActionListener value="#{pago}" target="#{pagosPolizasBean.selectedPago}"/>
|
||||
action="#{pagosPolizasBean.reimprimirTicket()}">
|
||||
<f:setPropertyActionListener value="#{detallePago}" target="#{pagosPolizasBean.selectedDetellePago}"/>
|
||||
</p:commandButton>
|
||||
|
||||
</p:column>
|
||||
@ -216,14 +277,14 @@
|
||||
<p:ajax event="close" update="pagarDialog" />
|
||||
<p:outputPanel style="margin-top: 1em" >
|
||||
|
||||
<h:panelGroup id="panel" >
|
||||
<div class="ui-g-12">
|
||||
<h:panelGroup id="panel" style="margin-top: 2em; margin-bottom: 2em">
|
||||
|
||||
<h:panelGroup styleClass="md-inputfield" >
|
||||
<p:inputNumber id="canridadPagada" value="#{pagosPolizasBean.cantidadAPagar}" emptyValue="zero" minValue="0" decimalPlaces="2" autocomplete="on" required="true" requiredMessage="El nomero de pagos es obligatorio" style="width: 100%;" disabled="true" />
|
||||
<p:inputNumber id="canridadPagada" value="#{pagosPolizasBean.cantidadAPagar}" minValue="0" decimalPlaces="2" autocomplete="off" required="true" requiredMessage="El nomero de pagos es obligatorio" style="width: 100%;" />
|
||||
<label>Cantidad a pagar</label>
|
||||
<p:message for="canridadPagada" display="text"/>
|
||||
</h:panelGroup>
|
||||
</div>
|
||||
|
||||
</h:panelGroup>
|
||||
|
||||
<h:panelGroup styleClass="md-inputfield" style="margin-top: 2em; margin-bottom: 2em" >
|
||||
@ -242,33 +303,34 @@
|
||||
<p:message for="metodoPagoSlct" 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'}" oncomplete="PF('printer').show()" />
|
||||
<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>
|
||||
</p:dialog>
|
||||
</h:form>
|
||||
|
||||
<h:form id="formTicket">
|
||||
<p:dialog header="Vista previa del ticket" widgetVar="printer" minHeight="40" width="350" showEffect="fade" id="printer">
|
||||
<p:outputPanel id="pnlPrint" class="no-page-break scrollable-panel" rendered="#{pagosPolizasBean.pagoExitoso}">
|
||||
<p:dialog header="Vista previa del ticket" widgetVar="printer" minHeight="40" width="350" showEffect="fade" id="printer">
|
||||
<p:ajax event="close" update="printer" listener="#{pagosPolizasBean.limpiarDetallePago()}" />
|
||||
<p:outputPanel id="pnlPrint" class="no-page-break scrollable-panel" rendered="#{pagosPolizasBean.pagoExitoso}">
|
||||
<p:graphicImage name="#{pagosPolizasBean.imagen}" style="width: 110px; height: 100px; display: block; margin-left: auto; margin-right: auto;" library="serenity-layout"/>
|
||||
<div class="details">
|
||||
<p><strong>Folio: </strong>
|
||||
<h:outputText value="#{pagosPolizasBean.selectedPago.folio}" style="margin-right: 5em" />
|
||||
<h:outputText value="#{pagosPolizasBean.selectedDetellePago.folio}" style="margin-right: 5em" />
|
||||
</p>
|
||||
<p><strong>Poliza: </strong>
|
||||
<h:outputText value="#{pagosPolizasBean.selectedPoliza.folio}" style="margin-right: 5em" />
|
||||
</p>
|
||||
<p><strong>Fecha: </strong>
|
||||
<h:outputText value="#{pagosPolizasBean.selectedPago.fechaPago}" style="margin-right: 5em">
|
||||
<h:outputText value="#{pagosPolizasBean.selectedDetellePago.fechaPago}" style="margin-right: 5em">
|
||||
<f:convertDateTime type="date" locale="es" timeZone="GMT-6" pattern="dd - MMMM - yyyy"/>
|
||||
</h:outputText>
|
||||
</p>
|
||||
<p><strong><h:outputText value="CLIENTE: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedPago.poliza.customer.firstName} #{pagosPolizasBean.selectedPago.poliza.customer.secondName} #{pagosPolizasBean.selectedPago.poliza.customer.lastName}" /></p>
|
||||
<p><strong><h:outputText value="PAGO: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedPago.cantidadPagada}" ><f:convertNumber currencySymbol="$" groupingUsed="true" maxFractionDigits="2" type="currency" locale="en" /></h:outputText></p>
|
||||
<p><strong><h:outputText value="PAGO RESTANTE: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedPoliza.amount - pagosPolizasBean.selectedPoliza.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.selectedPago.cobro.person.firstName} #{pagosPolizasBean.selectedPago.cobro.person.secondName} #{pagosPolizasBean.selectedPago.cobro.person.lastName} #{pagosPolizasBean.selectedPago.cobro.person.middleName}"/></p>
|
||||
<p><strong><h:outputText value="MÉTODO DE PAGO: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedPago.metodoPago.type}" ></h:outputText></p>
|
||||
<p><strong><h:outputText value="CLIENTE: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedDetellePago.pagoPoliza.poliza.customer.firstName} #{pagosPolizasBean.selectedDetellePago.pagoPoliza.poliza.customer.secondName} #{pagosPolizasBean.selectedDetellePago.pagoPoliza.poliza.customer.lastName}" /></p>
|
||||
<p><strong><h:outputText value="PAGO: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedDetellePago.cantidadPagada}" ><f:convertNumber currencySymbol="$" groupingUsed="true" maxFractionDigits="2" type="currency" locale="en" /></h:outputText></p>
|
||||
<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>
|
||||
</div>
|
||||
<p><center><strong><h:outputText value="#{pagosPolizasBean.loggedUser.location.businessName}" /><br/> AGRADECE SU PREFERENCIA </strong></center></p>
|
||||
<p>
|
||||
|
Loading…
Reference in New Issue
Block a user