diff --git a/src/com/rjconsultores/ventaboletos/dao/ConferenciaComissaoDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConferenciaComissaoDAO.java index 1297e20a8..3fc1a85fe 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ConferenciaComissaoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ConferenciaComissaoDAO.java @@ -45,4 +45,8 @@ public interface ConferenciaComissaoDAO extends GenericDAO { public List carregarLogConferencia(Long conferenciaId) throws BusinessException; + public boolean isBilhetesSemConferencia(Conferencia conferencia) throws BusinessException; + + public boolean isEventosFinanceirosSemConferencia(Conferencia conferencia) throws BusinessException; + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConferenciaComissaoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConferenciaComissaoHibernateDAO.java index a4de2601b..16f143694 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConferenciaComissaoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConferenciaComissaoHibernateDAO.java @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -43,6 +44,7 @@ import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.ConferenciaComissaoVO; import com.rjconsultores.ventaboletos.vo.comissao.DiaConferenciaComissaoVO; import com.rjconsultores.ventaboletos.vo.comissao.EventosFinanceirosVO; +import com.rjconsultores.ventaboletos.vo.comissao.FormapagoVO; import com.rjconsultores.ventaboletos.vo.comissao.LogConferenciaVO; import com.rjconsultores.ventaboletos.vo.comissao.OcdVO; @@ -396,10 +398,12 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO lsBoletoComissao = new ArrayList(); + List auxLsBoletoComissao = qr.list(); + for (BoletoComissao boletoComissao : auxLsBoletoComissao) { + if(boletoComissao.getFormapagos() == null) { + boletoComissao.setFormapagos(new HashSet()); + } + + if(lsBoletoComissao.contains(boletoComissao)) { + BoletoComissao aux = lsBoletoComissao.get(lsBoletoComissao.indexOf(boletoComissao)); + aux.getFormapagos().add(new FormapagoVO(boletoComissao.getFormapagoId(), boletoComissao.getDescpago(), boletoComissao.getIndconferenciafisicacomissao())); + lsBoletoComissao.set(lsBoletoComissao.indexOf(boletoComissao), aux); + } else { + boletoComissao.getFormapagos().add(new FormapagoVO(boletoComissao.getFormapagoId(), boletoComissao.getDescpago(), boletoComissao.getIndconferenciafisicacomissao())); + lsBoletoComissao.add(boletoComissao); + } + } + + return lsBoletoComissao; } catch (Exception e) { log.error(e.getMessage(), e); throw new BusinessException(e.getMessage(), e); @@ -748,4 +778,93 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO parametros = carregarParametros(null, conferencia.getEmpresa(), conferencia.getPuntoVenta()); + + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT B.BOLETO_ID AS \"boletoId\" ") + .append("FROM BOLETO B ") + .append("LEFT JOIN LOG_CONFERENCIA LOG ON LOG.BOLETO_ID = B.BOLETO_ID ") + .append("INNER JOIN BOLETO_FORMAPAGO BF ON BF.BOLETO_ID = B.BOLETO_ID ") + .append("INNER JOIN FORMA_PAGO FP ON FP.FORMAPAGO_ID = BF.FORMAPAGO_ID ") + .append("WHERE B.ACTIVO = 1 ") + .append("AND (LOG.LOGCONFERENCIA_ID IS NULL OR LOG.ACTIVO = 0) ") + .append("AND FP.INDCONFERENCIAFISICACOMISSAO = 1 ") + .append("AND TO_DATE(B.FECHORVENTA,'DD/MM/YY') = :datamovimento ") + .append("AND B.TIPOVENTA_ID IN (:tipoVenta) ") + .append("AND ( ") + .append(" (B.INDSTATUSBOLETO = 'V' AND B.MOTIVOCANCELACION_ID IS NULL) ") + .append(" OR ") + .append(" (B.INDSTATUSBOLETO = 'C' AND B.MOTIVOCANCELACION_ID IN (:motivocancelacionId)) ") + .append(" ) "); + + parametros.put("datamovimento", conferencia.getDatamovimento()); + parametros.put("tipoVenta", Arrays.asList(Constantes.TPV_BOLETO_REMOTO,Constantes.TPV_MANUAL,Constantes.TPV_DIRECTO_NORMAL)); + parametros.put("motivocancelacionId", Arrays.asList(Constantes.MVO_CANCEL_CANCELACION,Constantes.MVO_CANCEL_DEVOLUCAO)); + + if(parametros.containsKey("empresaId")) { + sQuery.append("AND B.EMPRESACORRIDA_ID = :empresaId "); + } + + if(parametros.containsKey("puntoventaId")) { + sQuery.append("AND B.PUNTOVENTA_ID = :puntoventaId "); + } + + log.info(sQuery.toString()); + + Query qr = getSession().createSQLQuery(sQuery.toString()) + .addScalar("boletoId", Hibernate.LONG) + .setResultTransformer(Transformers.aliasToBean(BoletoComissao.class)); + setParametros(qr, parametros); + + return !qr.list().isEmpty(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new BusinessException(e.getMessage(), e); + } + } + + @Override + @SuppressWarnings("deprecation") + public boolean isEventosFinanceirosSemConferencia(Conferencia conferencia) throws BusinessException { + try { + Map parametros = carregarParametros(null, conferencia.getEmpresa(), conferencia.getPuntoVenta()); + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT DISTINCT EE.EVENTOEXTRA_ID AS \"eventoextraId\" ") + .append("FROM EVENTO_EXTRA EE ") + .append("JOIN TIPO_EVENTO_EXTRA TEE ON EE.TIPOEVENTOEXTRA_ID = TEE.TIPOEVENTOEXTRA_ID ") + .append("LEFT JOIN LOG_CONFERENCIA LOG ON LOG.EVENTOEXTRA_ID = EE.EVENTOEXTRA_ID ") + .append("LEFT JOIN FORMA_PAGO FP ON FP.FORMAPAGO_ID = EE.FORMAPAGO_ID ") + .append("WHERE EE.ACTIVO = 1 ") + .append("AND (LOG.LOGCONFERENCIA_ID IS NULL OR LOG.ACTIVO = 0) ") + .append("AND FP.INDCONFERENCIAFISICACOMISSAO = 1 ") + .append("AND TO_DATE(EE.FECHORINGRESO,'DD/MM/YY') = :datamovimento "); + + parametros.put("datamovimento", conferencia.getDatamovimento()); + + if(parametros.containsKey("empresaId")) { + sQuery.append("AND EE.EMPRESA_ID = :empresaId "); + } + + if(parametros.containsKey("puntoventaId")) { + sQuery.append("AND EE.PUNTOVENTA_ID = :puntoventaId "); + } + + log.info(sQuery.toString()); + + Query qr = getSession().createSQLQuery(sQuery.toString()) + .addScalar("eventoextraId", Hibernate.LONG) + .setResultTransformer(Transformers.aliasToBean(EventosFinanceirosVO.class)); + setParametros(qr, parametros); + + return !qr.list().isEmpty(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new BusinessException(e.getMessage(), e); + } + } + } diff --git a/src/com/rjconsultores/ventaboletos/entidad/FormaPago.java b/src/com/rjconsultores/ventaboletos/entidad/FormaPago.java index dd6adb1b2..b37922c08 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/FormaPago.java +++ b/src/com/rjconsultores/ventaboletos/entidad/FormaPago.java @@ -57,6 +57,8 @@ public class FormaPago implements Serializable { private List configRestriccionPagoList; @OneToMany(mappedBy = "formaPago") private List pricingFormapagoList; + @Column(name = "INDCONFERENCIAFISICACOMISSAO") + private Boolean indconferenciafisicacomissao; public FormaPago() { } @@ -194,4 +196,12 @@ public class FormaPago implements Serializable { public void setImpfiscal(Boolean impfiscal) { this.impfiscal = impfiscal; } + + public Boolean getIndconferenciafisicacomissao() { + return indconferenciafisicacomissao; + } + + public void setIndconferenciafisicacomissao(Boolean indconferenciafisicacomissao) { + this.indconferenciafisicacomissao = indconferenciafisicacomissao; + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/TipoEventoExtra.java b/src/com/rjconsultores/ventaboletos/entidad/TipoEventoExtra.java index faf2f8f00..e40e814be 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/TipoEventoExtra.java +++ b/src/com/rjconsultores/ventaboletos/entidad/TipoEventoExtra.java @@ -85,6 +85,9 @@ public class TipoEventoExtra implements Serializable { private String natureza; @Column(name = "CONTACONTABIL") private String contaContabil; + + @Column(name = "INDCONFERENCIAFISICACOMISSAO") + private Boolean indconferenciafisicacomissao; // @Column(name = "FORMAPAGO_ID") // private Integer formapagoId; @@ -328,6 +331,13 @@ public class TipoEventoExtra implements Serializable { public void setContaContabil(String contaContabil) { this.contaContabil = contaContabil; } - + + public Boolean getIndconferenciafisicacomissao() { + return indconferenciafisicacomissao; + } + + public void setIndconferenciafisicacomissao(Boolean indconferenciafisicacomissao) { + this.indconferenciafisicacomissao = indconferenciafisicacomissao; + } } diff --git a/src/com/rjconsultores/ventaboletos/service/ConferenciaComissaoService.java b/src/com/rjconsultores/ventaboletos/service/ConferenciaComissaoService.java index 2cd82d949..80787792c 100644 --- a/src/com/rjconsultores/ventaboletos/service/ConferenciaComissaoService.java +++ b/src/com/rjconsultores/ventaboletos/service/ConferenciaComissaoService.java @@ -42,5 +42,9 @@ public interface ConferenciaComissaoService extends GenericService formapagos; private BigDecimal icmsBase; public Integer getEmpresaId() { @@ -217,6 +224,75 @@ public class BoletoComissao { } return ""; } + + public String getDescFormapagos() { + StringBuilder sFormapagos = new StringBuilder(); + for (FormapagoVO formapago : formapagos) { + if(sFormapagos.length() > 0) { + sFormapagos.append(", "); + } + sFormapagos.append(formapago.getDescpago()); + } + + return sFormapagos.toString(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((boletoId == null) ? 0 : boletoId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BoletoComissao other = (BoletoComissao) obj; + if (boletoId == null) { + if (other.boletoId != null) + return false; + } else if (!boletoId.equals(other.boletoId)) + return false; + return true; + } + + public Integer getFormapagoId() { + return formapagoId; + } + + public void setFormapagoId(Integer formapagoId) { + this.formapagoId = formapagoId; + } + + public String getDescpago() { + return descpago; + } + + public void setDescpago(String descpago) { + this.descpago = descpago; + } + + public Boolean getIndconferenciafisicacomissao() { + return indconferenciafisicacomissao; + } + + public void setIndconferenciafisicacomissao(Boolean indconferenciafisicacomissao) { + this.indconferenciafisicacomissao = indconferenciafisicacomissao; + } + + public Set getFormapagos() { + return formapagos; + } + + public void setFormapagos(Set formapagos) { + this.formapagos = formapagos; + } public BigDecimal getIcmsBase() { return icmsBase; diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/EventosFinanceirosVO.java b/src/com/rjconsultores/ventaboletos/vo/comissao/EventosFinanceirosVO.java index fae334f9f..55bf80fc3 100644 --- a/src/com/rjconsultores/ventaboletos/vo/comissao/EventosFinanceirosVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/EventosFinanceirosVO.java @@ -14,6 +14,9 @@ public class EventosFinanceirosVO { private String desctipoevento; private String descinfo; private Integer status; + private Integer formapagoId; + private String descpago; + private Boolean indconferenciafisicacomissao; public Long getEventoextraId() { return eventoextraId; @@ -79,4 +82,28 @@ public class EventosFinanceirosVO { return ""; } + public Integer getFormapagoId() { + return formapagoId; + } + + public void setFormapagoId(Integer formapagoId) { + this.formapagoId = formapagoId; + } + + public String getDescpago() { + return descpago; + } + + public void setDescpago(String descpago) { + this.descpago = descpago; + } + + public Boolean getIndconferenciafisicacomissao() { + return indconferenciafisicacomissao; + } + + public void setIndconferenciafisicacomissao(Boolean indconferenciafisicacomissao) { + this.indconferenciafisicacomissao = indconferenciafisicacomissao; + } + } diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/FormapagoVO.java b/src/com/rjconsultores/ventaboletos/vo/comissao/FormapagoVO.java new file mode 100644 index 000000000..8fa376dc4 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/FormapagoVO.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos.vo.comissao; + +public class FormapagoVO { + + private Integer formapagoId; + private String descpago; + private Boolean indconferenciafisicacomissao; + + public FormapagoVO() { + super(); + } + + public FormapagoVO(Integer formapagoId, String descpago, Boolean indconferenciafisicacomissao) { + this(); + this.formapagoId = formapagoId; + this.descpago = descpago; + this.indconferenciafisicacomissao = indconferenciafisicacomissao; + } + + public Integer getFormapagoId() { + return formapagoId; + } + + public void setFormapagoId(Integer formapagoId) { + this.formapagoId = formapagoId; + } + + public String getDescpago() { + return descpago; + } + + public void setDescpago(String descpago) { + this.descpago = descpago; + } + + public Boolean getIndconferenciafisicacomissao() { + return indconferenciafisicacomissao; + } + + public void setIndconferenciafisicacomissao(Boolean indconferenciafisicacomissao) { + this.indconferenciafisicacomissao = indconferenciafisicacomissao; + } + +}