- 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.catalog.Location;
|
||||||
import com.arrebol.taxiservicios.model.core.User;
|
import com.arrebol.taxiservicios.model.core.User;
|
||||||
import com.arrebol.taxiservicios.model.enums.GenericEnumType;
|
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.PagosPoliza;
|
||||||
import com.crov.prase.model.prase.Poliza;
|
import com.crov.prase.model.prase.Poliza;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -18,6 +19,8 @@ import java.util.Calendar;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import javax.persistence.NoResultException;
|
||||||
|
import javax.persistence.TypedQuery;
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
import javax.persistence.criteria.Predicate;
|
import javax.persistence.criteria.Predicate;
|
||||||
@ -34,137 +37,253 @@ import org.hibernate.Transaction;
|
|||||||
*/
|
*/
|
||||||
public class PagosPolizaController extends ConnectionManager implements Serializable {
|
public class PagosPolizaController extends ConnectionManager implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -8772793021819350069L;
|
private static final long serialVersionUID = -8772793021819350069L;
|
||||||
final Logger logger = LogManager.getLogger(getClass());
|
final Logger logger = LogManager.getLogger(getClass());
|
||||||
|
|
||||||
public List<PagosPoliza> fillPagosPolizaByPoliza(Poliza poliza) {
|
public List<PagosPoliza> fillPagosPolizaByPoliza(Poliza poliza) {
|
||||||
logger.info("fillPagosPolizaByPoliza");
|
logger.info("fillPagosPolizaByPoliza");
|
||||||
List<PagosPoliza> resultList = null;
|
List<PagosPoliza> resultList = null;
|
||||||
Transaction transaction = null;
|
Transaction transaction = null;
|
||||||
try {
|
try {
|
||||||
logger.info("Searching pagos for poliza..");
|
logger.info("Searching pagos for poliza..");
|
||||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||||
transaction = session.beginTransaction();
|
transaction = session.beginTransaction();
|
||||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||||
|
|
||||||
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
||||||
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
||||||
|
|
||||||
Predicate criterio1 = builder.equal(root.get("poliza"), poliza);
|
Predicate criterio1 = builder.equal(root.get("poliza"), poliza);
|
||||||
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
||||||
criteria.where(builder.and(criterio1, criterio2));
|
criteria.where(builder.and(criterio1, criterio2));
|
||||||
criteria.orderBy(builder.asc(root.get("fechaAPagar")));
|
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()));
|
logger.info("Total of pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
} catch (HibernateException e) {
|
} catch (HibernateException e) {
|
||||||
logger.error("Pagos cannot be loaded ");
|
logger.error("Pagos cannot be loaded ");
|
||||||
rollback(transaction);
|
rollback(transaction);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Method fillPagosPolizaByPoliza ", e);
|
logger.error("Method fillPagosPolizaByPoliza ", e);
|
||||||
rollback(transaction);
|
rollback(transaction);
|
||||||
}
|
}
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PagosPoliza> fillPagosPolizaFechaAPagarByLocationFechaInicioAndFechaFin(Location location, Date startDate, Date endDate) {
|
public List<PagosPoliza> fillPagosPolizaFechaAPagarByLocationFechaInicioAndFechaFin(Location location, Date startDate, Date endDate) {
|
||||||
logger.info("fillPagosPolizaByPoliza");
|
logger.info("fillPagosPolizaByPoliza");
|
||||||
List<PagosPoliza> resultList = null;
|
List<PagosPoliza> resultList = null;
|
||||||
Transaction transaction = null;
|
Transaction transaction = null;
|
||||||
try {
|
try {
|
||||||
logger.info("Searching pagos for poliza..");
|
logger.info("Searching pagos for poliza..");
|
||||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||||
transaction = session.beginTransaction();
|
transaction = session.beginTransaction();
|
||||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||||
|
|
||||||
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
CriteriaQuery<PagosPoliza> criteria = builder.createQuery(PagosPoliza.class);
|
||||||
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
Root<PagosPoliza> root = criteria.from(PagosPoliza.class);
|
||||||
|
|
||||||
LocalDate localStartDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
LocalDate localStartDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
LocalDate localEndDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
LocalDate localEndDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
|
|
||||||
Predicate criterio1 = builder.equal(root.get("poliza").get("location"), location);
|
Predicate criterio1 = builder.equal(root.get("poliza").get("location"), location);
|
||||||
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
Predicate criterio2 = builder.equal(root.get("estatusActivo"), GenericEnumType.ENABLED);
|
||||||
Predicate criterio3 = builder.equal(root.get("pagoEstatus"), GenericEnumType.DISABLED);
|
Predicate criterio3 = builder.equal(root.get("pagoEstatus"), GenericEnumType.DISABLED);
|
||||||
Predicate startDatePredicate = builder.greaterThanOrEqualTo(root.get("fechaAPagar").as(LocalDate.class), localStartDate);
|
Predicate startDatePredicate = builder.greaterThanOrEqualTo(root.get("fechaAPagar").as(LocalDate.class), localStartDate);
|
||||||
Predicate endDatePredicate = builder.lessThanOrEqualTo(root.get("fechaAPagar").as(LocalDate.class), localEndDate);
|
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, startDatePredicate, endDatePredicate));
|
||||||
criteria.orderBy(builder.asc(root.get("fechaAPagar")));
|
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()));
|
logger.info("Total of pagos found: " + (null == resultList ? -1 : resultList.size()));
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
} catch (HibernateException e) {
|
} catch (HibernateException e) {
|
||||||
logger.error("Pagos cannot be loaded ");
|
logger.error("Pagos cannot be loaded ");
|
||||||
rollback(transaction);
|
rollback(transaction);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Method fillPagosPolizaByPoliza ", e);
|
logger.error("Method fillPagosPolizaByPoliza ", e);
|
||||||
rollback(transaction);
|
rollback(transaction);
|
||||||
}
|
}
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PagosPoliza fillFoliosByPagos(String abreviacionFolio) {
|
public PagosPoliza fillFoliosByPagos(String abreviacionFolio) {
|
||||||
PagosPoliza result = null;
|
PagosPoliza result = null;
|
||||||
Transaction transaction = null;
|
Transaction transaction = null;
|
||||||
try {
|
try {
|
||||||
logger.info("Search last generated folio..");
|
logger.info("Search last generated folio..");
|
||||||
|
|
||||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||||
transaction = session.beginTransaction();
|
transaction = session.beginTransaction();
|
||||||
|
|
||||||
String query = "SELECT tap FROM PagosPoliza tap "
|
String query = "SELECT tap FROM PagosPoliza tap "
|
||||||
+ "WHERE tap.folio LIKE '" + abreviacionFolio + "%' "
|
+ "WHERE tap.folio LIKE '" + abreviacionFolio + "%' "
|
||||||
+ "ORDER BY "
|
+ "ORDER BY "
|
||||||
+ "SUBSTRING_INDEX(tap.folio, '-', 1) DESC, "
|
+ "SUBSTRING_INDEX(tap.folio, '-', 1) DESC, "
|
||||||
+ "SUBSTRING_INDEX(SUBSTRING_INDEX(tap.folio, '-', -2), '-', -6) DESC ";
|
+ "SUBSTRING_INDEX(SUBSTRING_INDEX(tap.folio, '-', -2), '-', -6) DESC ";
|
||||||
|
|
||||||
result = (PagosPoliza) session.createQuery(query).setMaxResults(1).uniqueResult();
|
result = (PagosPoliza) session.createQuery(query).setMaxResults(1).uniqueResult();
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
} catch (HibernateException e) {
|
} catch (HibernateException e) {
|
||||||
logger.error("Search for the last generated folio " + e);
|
logger.error("Search for the last generated folio " + e);
|
||||||
rollback(transaction);
|
rollback(transaction);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Method fillFoliosByPagos() " + e);
|
logger.error("Method fillFoliosByPagos() " + e);
|
||||||
rollback(transaction);
|
rollback(transaction);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean updatePago(PagosPoliza pago, User user) {
|
|
||||||
logger.info("addPagos");
|
|
||||||
boolean success = false;
|
|
||||||
Transaction transaction = null;
|
|
||||||
|
|
||||||
try {
|
public boolean updatePago(PagosPoliza pago, User user) {
|
||||||
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
logger.info("addPagos");
|
||||||
transaction = session.beginTransaction();
|
boolean success = false;
|
||||||
|
Transaction transaction = null;
|
||||||
|
|
||||||
pago.setLastUpdatedOn(correcciónDeHr(new Date(), -7));
|
try {
|
||||||
pago.setLastUpdatedBy(user);
|
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
|
||||||
session.update(pago);
|
transaction = session.beginTransaction();
|
||||||
transaction.commit();
|
|
||||||
|
|
||||||
success = true;
|
pago.setLastUpdatedOn(correcciónDeHr(new Date(), -7));
|
||||||
} catch (HibernateException e) {
|
pago.setLastUpdatedBy(user);
|
||||||
logger.error("Venta can not be added ", e);
|
session.update(pago);
|
||||||
rollback(transaction);
|
transaction.commit();
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("Method addVenta() ", e);
|
|
||||||
rollback(transaction);
|
|
||||||
}
|
|
||||||
return success;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date correcciónDeHr(Date fecha, int horas) {
|
success = true;
|
||||||
Calendar calendar = Calendar.getInstance();
|
} catch (HibernateException e) {
|
||||||
calendar.setTime(fecha);
|
logger.error("Venta can not be added ", e);
|
||||||
calendar.add(Calendar.HOUR_OF_DAY, horas);
|
rollback(transaction);
|
||||||
Date nuevaFecha = calendar.getTime();
|
} catch (Exception e) {
|
||||||
return nuevaFecha;
|
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")
|
@Column(name = "folio")
|
||||||
private String folio;
|
private String folio;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY, optional = true)
|
||||||
|
@JoinColumn(
|
||||||
|
name = "cobro",
|
||||||
|
referencedColumnName = "id",
|
||||||
|
nullable = true
|
||||||
|
)
|
||||||
|
private User cobro;
|
||||||
|
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
@Column(name = "metodo_pago", nullable = true)
|
@Column(name = "metodo_pago", nullable = true)
|
||||||
private MetodoPago metodoPago;
|
private MetodoPago metodoPago;
|
||||||
@ -184,4 +192,12 @@ public class DetellePagoPoliza implements Serializable {
|
|||||||
this.lastUpdatedBy = lastUpdatedBy;
|
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.arrebol.taxiservicios.model.enums.PolizaEstatus;
|
||||||
import com.crov.prase.controller.prase.PagosPolizaController;
|
import com.crov.prase.controller.prase.PagosPolizaController;
|
||||||
import com.crov.prase.controller.prase.PolizaController;
|
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.PagosPoliza;
|
||||||
import com.crov.prase.model.prase.Poliza;
|
import com.crov.prase.model.prase.Poliza;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -32,305 +33,349 @@ import org.apache.logging.log4j.Logger;
|
|||||||
@ViewScoped
|
@ViewScoped
|
||||||
public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
|
public class PagosPolizasBean extends TaxiGenericBean implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -136031528440947006L;
|
private static final long serialVersionUID = -136031528440947006L;
|
||||||
final Logger logger = LogManager.getLogger(PolizaBean.class);
|
final Logger logger = LogManager.getLogger(PolizaBean.class);
|
||||||
|
|
||||||
private PolizaController polizaController;
|
private PolizaController polizaController;
|
||||||
private PagosPolizaController pagosPolizaController;
|
private PagosPolizaController pagosPolizaController;
|
||||||
private GenericValidationController genericController;
|
private GenericValidationController genericController;
|
||||||
|
|
||||||
private List<Poliza> poliza;
|
private List<Poliza> poliza;
|
||||||
private Poliza selectedPoliza;
|
private Poliza selectedPoliza;
|
||||||
private List<PagosPoliza> listPagosPolizas;
|
private List<PagosPoliza> listPagosPolizas;
|
||||||
private PagosPoliza selectedPago;
|
private PagosPoliza selectedPago;
|
||||||
private String pagoSiguiente;
|
private List<DetellePagoPoliza> listDetallePagosPolizas;
|
||||||
private Double cantidadAPagar;
|
private DetellePagoPoliza selectedDetellePago;
|
||||||
private Boolean pagoExitoso;
|
private String pagoSiguiente;
|
||||||
private String imagen;
|
private Double cantidadAPagar;
|
||||||
private String metodoPago;
|
private Boolean pagoExitoso;
|
||||||
|
private String imagen;
|
||||||
|
private String metodoPago;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
logger.info("init");
|
logger.info("init");
|
||||||
try {
|
try {
|
||||||
loadBundlePropertyFile();
|
loadBundlePropertyFile();
|
||||||
setPolizaController(new PolizaController());
|
setPolizaController(new PolizaController());
|
||||||
setPagosPolizaController(new PagosPolizaController());
|
setPagosPolizaController(new PagosPolizaController());
|
||||||
setGenericController(new GenericValidationController());
|
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();
|
cargarPolizas();
|
||||||
} catch (Exception e) {
|
showMessage(FacesMessage.SEVERITY_INFO, "Pago realizado", "El pago se realizó correctamente");
|
||||||
logger.error(e);
|
} 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() {
|
private boolean actualizarAbono(PagosPoliza pagoA, Double montoPagado, String metodoDePago) {
|
||||||
logger.info("cargarPagosPoliza()");
|
try {
|
||||||
try {
|
setImagen("images/prase_logo.jpeg");
|
||||||
// se caga la lista de pagos
|
// se optiene el folio consecutivo
|
||||||
setListPagosPolizas(getPagosPolizaController().fillPagosPolizaByPoliza(getSelectedPoliza()));
|
String folio = obtenerFolio("A-PRASE");
|
||||||
// se encuentra el siguiente pago a realizar
|
if (folio != null) {
|
||||||
String idSiguinetePago = "";
|
// se genera el detalle pago
|
||||||
for (PagosPoliza pa : getListPagosPolizas()) {
|
DetellePagoPoliza detalle = new DetellePagoPoliza();
|
||||||
if (pa.getPagoEstatus().equals(GenericEnumType.DISABLED)) {
|
detalle.setPagoPoliza(pagoA);
|
||||||
idSiguinetePago = pa.getId();
|
detalle.setEstatusActivo(GenericEnumType.ENABLED);
|
||||||
break;
|
detalle.setFechaPago(correcciónDeHr(new Date(), -7));
|
||||||
}
|
detalle.setCantidadPagada(montoPagado);
|
||||||
}
|
detalle.setCobro(getLoggedUser());
|
||||||
setPagoSiguiente(idSiguinetePago);
|
detalle.setFolio(folio);
|
||||||
} catch (Exception e) {
|
detalle.setMetodoPago(MetodoPago.valueOf(metodoDePago));
|
||||||
logger.error("cargarPagosPoliza(): " + e);
|
getPagosPolizaController().createDetellePago(detalle, getLoggedUser());
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// 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 {
|
} else {
|
||||||
showMessage(FacesMessage.SEVERITY_WARN, "Error", "Solo puede pagar el pago consecutivo");
|
pagoA.setPagoEstatus(GenericEnumType.INCOMPLETE);
|
||||||
}
|
}
|
||||||
|
getPagosPolizaController().updatePago(pagoA, getLoggedUser());
|
||||||
|
|
||||||
} catch (Exception e) {
|
// se actuliza la venta
|
||||||
showMessage(FacesMessage.SEVERITY_INFO, "Error", "Ocurrió un error al realizar el pago");
|
pagoA.getPoliza().setCantidadPagada(pagoA.getPoliza().getCantidadPagada() + detalle.getCantidadPagada());
|
||||||
logger.error("pagar(): " + e);
|
pagoA.getPoliza().setLastUpdatedBy(getLoggedUser());
|
||||||
}
|
pagoA.getPoliza().setLastUpdatedOn(new Date());
|
||||||
}
|
//se valida si la venta ya fue liquidada
|
||||||
|
double cantidadPa = pagoA.getPoliza().getCantidadPagada();
|
||||||
private String obtenerFolio(String ab) {
|
double costoTotal = pagoA.getPoliza().getAmount();
|
||||||
logger.info("Obteniendo último folio ");
|
if (Math.abs(cantidadPa - costoTotal) < 0.10) {
|
||||||
try {
|
pagoA.getPoliza().setEstatus(PolizaEstatus.LIQUIDADO);
|
||||||
// Se cargan los abonos para validar el folio
|
pagoA.getPoliza().setCantidadPagada(pagoA.getPoliza().getAmount());
|
||||||
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
|
getPolizaController().update(pagoA.getPoliza());
|
||||||
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 void reimprimirTicket() {
|
logger.info("El pago se realizó correctamente");
|
||||||
setPagoExitoso(true);
|
return true;
|
||||||
try {
|
} else {
|
||||||
setImagen("images/prase_logo.jpeg");
|
logger.error("Ocurrió un error al generar el folio");
|
||||||
} catch (Exception e) {
|
return false;
|
||||||
logger.error("Error al definir el logo para el tiked " + e);
|
}
|
||||||
}
|
} catch (Exception e) {
|
||||||
}
|
logger.error("actualizarAbono(): " + e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Date correcciónDeHr(Date fecha, int horas) {
|
public void limpiarDetallePago() {
|
||||||
Calendar calendar = Calendar.getInstance();
|
setSelectedDetellePago(null);
|
||||||
calendar.setTime(fecha);
|
setPagoExitoso(false);
|
||||||
calendar.add(Calendar.HOUR_OF_DAY, horas);
|
}
|
||||||
Date nuevaFecha = calendar.getTime();
|
|
||||||
return nuevaFecha;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String validarColores(String estatus) {
|
private String obtenerFolio(String ab) {
|
||||||
// Validadar color
|
logger.info("Obteniendo último folio ");
|
||||||
if (estatus.equals("LIQUIDADO")) {
|
try {
|
||||||
return "bgVerde";
|
// Se cargan los abonos para validar el folio
|
||||||
} else {
|
String abreviacion = ab;
|
||||||
return "";
|
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() {
|
public void cargarDetalles() {
|
||||||
return polizaController;
|
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) {
|
public void reimprimirTicket() {
|
||||||
this.polizaController = polizaController;
|
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() {
|
private Date correcciónDeHr(Date fecha, int horas) {
|
||||||
return poliza;
|
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) {
|
public String validarColores(String estatus) {
|
||||||
this.poliza = poliza;
|
// Validadar color
|
||||||
}
|
if (estatus.equals("LIQUIDADO")) {
|
||||||
|
return "bgVerde";
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Poliza getSelectedPoliza() {
|
public PolizaController getPolizaController() {
|
||||||
return selectedPoliza;
|
return polizaController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSelectedPoliza(Poliza selectedPoliza) {
|
public void setPolizaController(PolizaController polizaController) {
|
||||||
this.selectedPoliza = selectedPoliza;
|
this.polizaController = polizaController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PagosPoliza> getListPagosPolizas() {
|
public List<Poliza> getPoliza() {
|
||||||
return listPagosPolizas;
|
return poliza;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setListPagosPolizas(List<PagosPoliza> listPagosPolizas) {
|
public void setPoliza(List<Poliza> poliza) {
|
||||||
this.listPagosPolizas = listPagosPolizas;
|
this.poliza = poliza;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PagosPoliza getSelectedPago() {
|
public Poliza getSelectedPoliza() {
|
||||||
return selectedPago;
|
return selectedPoliza;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSelectedPago(PagosPoliza selectedPago) {
|
public void setSelectedPoliza(Poliza selectedPoliza) {
|
||||||
this.selectedPago = selectedPago;
|
this.selectedPoliza = selectedPoliza;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PagosPolizaController getPagosPolizaController() {
|
public List<PagosPoliza> getListPagosPolizas() {
|
||||||
return pagosPolizaController;
|
return listPagosPolizas;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPagosPolizaController(PagosPolizaController pagosPolizaController) {
|
public void setListPagosPolizas(List<PagosPoliza> listPagosPolizas) {
|
||||||
this.pagosPolizaController = pagosPolizaController;
|
this.listPagosPolizas = listPagosPolizas;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPagoSiguiente() {
|
public PagosPoliza getSelectedPago() {
|
||||||
return pagoSiguiente;
|
return selectedPago;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPagoSiguiente(String pagoSiguiente) {
|
public void setSelectedPago(PagosPoliza selectedPago) {
|
||||||
this.pagoSiguiente = pagoSiguiente;
|
this.selectedPago = selectedPago;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Double getCantidadAPagar() {
|
public PagosPolizaController getPagosPolizaController() {
|
||||||
return cantidadAPagar;
|
return pagosPolizaController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCantidadAPagar(Double cantidadAPagar) {
|
public void setPagosPolizaController(PagosPolizaController pagosPolizaController) {
|
||||||
this.cantidadAPagar = cantidadAPagar;
|
this.pagosPolizaController = pagosPolizaController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GenericValidationController getGenericController() {
|
public String getPagoSiguiente() {
|
||||||
return genericController;
|
return pagoSiguiente;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGenericController(GenericValidationController genericController) {
|
public void setPagoSiguiente(String pagoSiguiente) {
|
||||||
this.genericController = genericController;
|
this.pagoSiguiente = pagoSiguiente;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean getPagoExitoso() {
|
public Double getCantidadAPagar() {
|
||||||
return pagoExitoso;
|
return cantidadAPagar;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPagoExitoso(Boolean pagoExitoso) {
|
public void setCantidadAPagar(Double cantidadAPagar) {
|
||||||
this.pagoExitoso = pagoExitoso;
|
this.cantidadAPagar = cantidadAPagar;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getImagen() {
|
public GenericValidationController getGenericController() {
|
||||||
return imagen;
|
return genericController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImagen(String imagen) {
|
public void setGenericController(GenericValidationController genericController) {
|
||||||
this.imagen = imagen;
|
this.genericController = genericController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMetodoPago() {
|
public Boolean getPagoExitoso() {
|
||||||
return metodoPago;
|
return pagoExitoso;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMetodoPago(String metodoPago) {
|
public void setPagoExitoso(Boolean pagoExitoso) {
|
||||||
this.metodoPago = metodoPago;
|
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: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}" />
|
<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
|
<p:commandButton
|
||||||
process="@this"
|
process="@this"
|
||||||
@ -198,9 +260,8 @@
|
|||||||
oncomplete="PF('printer').show()"
|
oncomplete="PF('printer').show()"
|
||||||
update="formTicket"
|
update="formTicket"
|
||||||
style="margin-top: 0.5em; background-color: #E6702E"
|
style="margin-top: 0.5em; background-color: #E6702E"
|
||||||
action="#{pagosPolizasBean.reimprimirTicket()}"
|
action="#{pagosPolizasBean.reimprimirTicket()}">
|
||||||
rendered="#{pago.pagoEstatus=='ENABLED'}">
|
<f:setPropertyActionListener value="#{detallePago}" target="#{pagosPolizasBean.selectedDetellePago}"/>
|
||||||
<f:setPropertyActionListener value="#{pago}" target="#{pagosPolizasBean.selectedPago}"/>
|
|
||||||
</p:commandButton>
|
</p:commandButton>
|
||||||
|
|
||||||
</p:column>
|
</p:column>
|
||||||
@ -216,14 +277,14 @@
|
|||||||
<p:ajax event="close" update="pagarDialog" />
|
<p:ajax event="close" update="pagarDialog" />
|
||||||
<p:outputPanel style="margin-top: 1em" >
|
<p:outputPanel style="margin-top: 1em" >
|
||||||
|
|
||||||
<h:panelGroup id="panel" >
|
<h:panelGroup id="panel" style="margin-top: 2em; margin-bottom: 2em">
|
||||||
<div class="ui-g-12">
|
|
||||||
<h:panelGroup styleClass="md-inputfield" >
|
<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>
|
<label>Cantidad a pagar</label>
|
||||||
<p:message for="canridadPagada" display="text"/>
|
<p:message for="canridadPagada" display="text"/>
|
||||||
</h:panelGroup>
|
</h:panelGroup>
|
||||||
</div>
|
|
||||||
</h:panelGroup>
|
</h:panelGroup>
|
||||||
|
|
||||||
<h:panelGroup styleClass="md-inputfield" style="margin-top: 2em; margin-bottom: 2em" >
|
<h:panelGroup styleClass="md-inputfield" style="margin-top: 2em; margin-bottom: 2em" >
|
||||||
@ -242,33 +303,34 @@
|
|||||||
<p:message for="metodoPagoSlct" display="text"/>
|
<p:message for="metodoPagoSlct" display="text"/>
|
||||||
</h:panelGroup>
|
</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:outputPanel>
|
||||||
</p:dialog>
|
</p:dialog>
|
||||||
</h:form>
|
</h:form>
|
||||||
|
|
||||||
<h:form id="formTicket">
|
<h:form id="formTicket">
|
||||||
<p:dialog header="Vista previa del ticket" widgetVar="printer" minHeight="40" width="350" showEffect="fade" id="printer">
|
<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: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"/>
|
<p:graphicImage name="#{pagosPolizasBean.imagen}" style="width: 110px; height: 100px; display: block; margin-left: auto; margin-right: auto;" library="serenity-layout"/>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<p><strong>Folio: </strong>
|
<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>
|
||||||
<p><strong>Poliza: </strong>
|
<p><strong>Poliza: </strong>
|
||||||
<h:outputText value="#{pagosPolizasBean.selectedPoliza.folio}" style="margin-right: 5em" />
|
<h:outputText value="#{pagosPolizasBean.selectedPoliza.folio}" style="margin-right: 5em" />
|
||||||
</p>
|
</p>
|
||||||
<p><strong>Fecha: </strong>
|
<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"/>
|
<f:convertDateTime type="date" locale="es" timeZone="GMT-6" pattern="dd - MMMM - yyyy"/>
|
||||||
</h:outputText>
|
</h:outputText>
|
||||||
</p>
|
</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="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.selectedPago.cantidadPagada}" ><f:convertNumber currencySymbol="$" groupingUsed="true" maxFractionDigits="2" type="currency" locale="en" /></h:outputText></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.selectedPoliza.amount - pagosPolizasBean.selectedPoliza.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.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="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.selectedPago.metodoPago.type}" ></h:outputText></p>
|
<p><strong><h:outputText value="MÉTODO DE PAGO: " /></strong> <h:outputText value="#{pagosPolizasBean.selectedDetellePago.metodoPago.type}" ></h:outputText></p>
|
||||||
</div>
|
</div>
|
||||||
<p><center><strong><h:outputText value="#{pagosPolizasBean.loggedUser.location.businessName}" /><br/> AGRADECE SU PREFERENCIA </strong></center></p>
|
<p><center><strong><h:outputText value="#{pagosPolizasBean.loggedUser.location.businessName}" /><br/> AGRADECE SU PREFERENCIA </strong></center></p>
|
||||||
<p>
|
<p>
|
||||||
|
Loading…
Reference in New Issue
Block a user