From 01f87ded8fe14b1640e8f743c0dacd0600fc16d6 Mon Sep 17 00:00:00 2001 From: "thiago.clemente" Date: Mon, 7 Oct 2019 13:13:28 +0000 Subject: [PATCH] fixes bug#15657 dev: qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@98108 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/CajaDAO.java | 4 + .../dao/hibernate/CajaHibernateDAO.java | 60 +++++++++ ...torioVendaCartaoCashMonitorModeloEnum.java | 21 +++ ...ndaCartaoCashMonitorResultTransformer.java | 53 ++++++++ .../RelatorioVendaCartaoCashMonitorVO.java | 122 ++++++++++++++++++ 5 files changed, 260 insertions(+) create mode 100644 src/com/rjconsultores/ventaboletos/enums/RelatorioVendaCartaoCashMonitorModeloEnum.java create mode 100644 src/com/rjconsultores/ventaboletos/vo/busquedapacotes/transformer/RelatorioVendaCartaoCashMonitorResultTransformer.java create mode 100644 src/com/rjconsultores/ventaboletos/vo/cashmonitor/RelatorioVendaCartaoCashMonitorVO.java diff --git a/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java index 93e73c4c0..67a92808a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import com.rjconsultores.ventaboletos.entidad.Caja; +import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.exception.BusinessException; @@ -16,6 +17,7 @@ import com.rjconsultores.ventaboletos.vo.caja.CajaDetalleVO; import com.rjconsultores.ventaboletos.vo.caja.CajaVO; import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; import com.rjconsultores.ventaboletos.vo.caja.VendaEmbarcadaVO; +import com.rjconsultores.ventaboletos.vo.cashmonitor.RelatorioVendaCartaoCashMonitorVO; public interface CajaDAO { public List buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); @@ -32,4 +34,6 @@ public interface CajaDAO { public Integer atualizaCajasIntegracaoTotvs(Marca marca, Date dataIncial, Date dataFinal, PuntoVenta puntoVenta) throws BusinessException; + public List buscarVendaCartaoCashMonitor(Date dataIncial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java index 4eac1b303..1a32f94b2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -28,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.CajaDAO; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.entidad.Caja; +import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.enums.TipoFormapago; @@ -40,6 +42,7 @@ import com.rjconsultores.ventaboletos.utilerias.OcdUtil; import com.rjconsultores.ventaboletos.vo.busquedapacotes.DadosBancarioVO; import com.rjconsultores.ventaboletos.vo.busquedapacotes.NotaCreditoVendaPacoteVO; import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosDadosBancarioResultTransformer; +import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.RelatorioVendaCartaoCashMonitorResultTransformer; import com.rjconsultores.ventaboletos.vo.caja.CajaCerradoVO; import com.rjconsultores.ventaboletos.vo.caja.CajaDetalleVO; import com.rjconsultores.ventaboletos.vo.caja.CajaVO; @@ -48,6 +51,7 @@ import com.rjconsultores.ventaboletos.vo.caja.PagamentoVO; import com.rjconsultores.ventaboletos.vo.caja.ReceitaDespesaVO; import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; import com.rjconsultores.ventaboletos.vo.caja.VendaEmbarcadaVO; +import com.rjconsultores.ventaboletos.vo.cashmonitor.RelatorioVendaCartaoCashMonitorVO; @Repository("cajaDAO") @SuppressWarnings("unchecked") @@ -641,4 +645,60 @@ public class CajaHibernateDAO extends GenericHibernateDAO implemen return result; } + @Override + public List buscarVendaCartaoCashMonitor(Date dataIncial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta) { + SimpleDateFormat formatadorData = new SimpleDateFormat("dd/MM/yyyy"); + + StringBuilder sql = new StringBuilder(); + sql.append("select to_char(ct.fecoperacion, 'dd/mm/yyyy') as data_transacao, "); + sql.append("pv.nombpuntoventa as loja, "); + sql.append("ct.nombtitular as adquirente, "); + sql.append("ct.nsu as nsu, "); + sql.append("ct.numautorizacion as autorizacao, "); + sql.append("sum(cfp.importe) as valor_bruto, "); + sql.append("fp.formapago_id as formapago_id, "); + sql.append("ct.tipotarjeta as bandeira, "); + sql.append("c.numoperacion as codigo_pedido, "); + sql.append("cfp.importe valor_parcela, "); + sql.append("count(ct.cajatarjeta_id) as parcelas "); + sql.append("from caja c "); + sql.append("inner join caja_formapago cfp on c.caja_id = cfp.caja_id and cfp.activo = 1 "); + sql.append("inner join marca ma on ma.marca_id = c.marca_id "); + sql.append("inner join forma_pago fp on cfp.formapago_id = fp.formapago_id "); + sql.append("inner join caja_det_pago cdp on c.caja_id = cdp.caja_id and cdp.cajaformapago_id = cfp.cajaformapago_id "); + sql.append("inner join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); + sql.append("inner join punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); + sql.append("where c.activo = 1 "); + sql.append("and c.indreimpresion = 0 "); + sql.append("and fp.formapago_id in (2, 3) "); // Débito e Crédito + sql.append("and ct.fecoperacion between to_date('" + formatadorData.format(dataIncial) + " 00:00', 'dd/mm/yyyy hh24:mi') and to_date('" + formatadorData.format(dataFinal) + " 23:59', 'dd/mm/yyyy hh24:mi') "); + + if (empresa!=null) { + sql.append(" and ma.empresa_id = " + empresa.getEmpresaId()); + } + + if (puntoVenta!=null) { + sql.append(" and c.puntoventa_id = " + puntoVenta.getPuntoventaId()); + } + + sql.append(" group by to_char(ct.fecoperacion, 'dd/mm/yyyy'), pv.nombpuntoventa, ct.nombtitular, ct.nsu, ct.numautorizacion, fp.formapago_id, ct.tipotarjeta, c.numoperacion, cfp.importe"); + sql.append(" order by 1, 2, 3, 4, 5"); + + SQLQuery query = getSession().createSQLQuery(sql.toString()) + .addScalar("data_transacao", StringType.INSTANCE) + .addScalar("loja", StringType.INSTANCE) + .addScalar("adquirente", StringType.INSTANCE) + .addScalar("nsu", StringType.INSTANCE) + .addScalar("autorizacao", StringType.INSTANCE) + .addScalar("valor_bruto", BigDecimalType.INSTANCE) + .addScalar("formapago_id", IntegerType.INSTANCE) + .addScalar("bandeira", StringType.INSTANCE) + .addScalar("codigo_pedido", StringType.INSTANCE) + .addScalar("valor_parcela", BigDecimalType.INSTANCE) + .addScalar("parcelas", IntegerType.INSTANCE); + + query.setResultTransformer(new RelatorioVendaCartaoCashMonitorResultTransformer()); + + return query.list(); + } } diff --git a/src/com/rjconsultores/ventaboletos/enums/RelatorioVendaCartaoCashMonitorModeloEnum.java b/src/com/rjconsultores/ventaboletos/enums/RelatorioVendaCartaoCashMonitorModeloEnum.java new file mode 100644 index 000000000..a2bd515be --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/enums/RelatorioVendaCartaoCashMonitorModeloEnum.java @@ -0,0 +1,21 @@ +package com.rjconsultores.ventaboletos.enums; + +public enum RelatorioVendaCartaoCashMonitorModeloEnum { + + COM_VALORES_TOTAIS_VENDAS("Com valores totais das vendas"), ABERTO_POR_PARCELAS("Aberto por parcelas"); + + private String descricao; + + private RelatorioVendaCartaoCashMonitorModeloEnum(String descricao) { + this.descricao = descricao; + } + + public String getDescricao() { + return descricao; + } + + @Override + public String toString() { + return getDescricao(); + } +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/vo/busquedapacotes/transformer/RelatorioVendaCartaoCashMonitorResultTransformer.java b/src/com/rjconsultores/ventaboletos/vo/busquedapacotes/transformer/RelatorioVendaCartaoCashMonitorResultTransformer.java new file mode 100644 index 000000000..47331b627 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/busquedapacotes/transformer/RelatorioVendaCartaoCashMonitorResultTransformer.java @@ -0,0 +1,53 @@ +package com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.hibernate.transform.ResultTransformer; + +import com.rjconsultores.ventaboletos.vo.cashmonitor.RelatorioVendaCartaoCashMonitorVO; + +public class RelatorioVendaCartaoCashMonitorResultTransformer implements ResultTransformer { + + private static final long serialVersionUID = 1L; + + @Override + public Object transformTuple(Object[] data, String[] aliases) { + Map row = new HashMap(); + + for (int index = 0; index < aliases.length; index++) { + row.put(aliases[index], data[index]); + } + + return row; + } + + @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) + public List transformList(List mapList) { + List listaVO = new ArrayList(); + + for (Object object : mapList) { + Map tupleMap = (Map) object; + RelatorioVendaCartaoCashMonitorVO vo = new RelatorioVendaCartaoCashMonitorVO(); + vo.setDataTransacao((String) tupleMap.get("data_transacao")); + vo.setLoja((String) tupleMap.get("loja")); + vo.setAdquirente((String) tupleMap.get("adquirente")); + vo.setNsu((String) tupleMap.get("nsu")); + vo.setAutorizacao((String) tupleMap.get("autorizacao")); + vo.setValorBruto((BigDecimal) tupleMap.get("valor_bruto")); + vo.setFormapago_id((Integer) tupleMap.get("formapago_id")); + vo.setBandeira((String) tupleMap.get("bandeira")); + vo.setCodigoPedido((String) tupleMap.get("codigo_pedido")); + vo.setValorParcela((BigDecimal) tupleMap.get("valor_parcela")); + vo.setParcelas((Integer) tupleMap.get("parcelas")); + + listaVO.add(vo); + } + + return listaVO; + } +} \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/vo/cashmonitor/RelatorioVendaCartaoCashMonitorVO.java b/src/com/rjconsultores/ventaboletos/vo/cashmonitor/RelatorioVendaCartaoCashMonitorVO.java new file mode 100644 index 000000000..5040e3d2f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/cashmonitor/RelatorioVendaCartaoCashMonitorVO.java @@ -0,0 +1,122 @@ +package com.rjconsultores.ventaboletos.vo.cashmonitor; + +import java.io.Serializable; +import java.math.BigDecimal; + +@SuppressWarnings("serial") +public class RelatorioVendaCartaoCashMonitorVO implements Serializable { + + private String dataTransacao; + private String loja; + private String adquirente; + private String nsu; + private String autorizacao; + private BigDecimal valorBruto; + private Integer formapago_id; + private String bandeira; + private String codigoPedido; + private BigDecimal valorParcela; + private Integer parcelas; + + public String getDataTransacao() { + return dataTransacao; + } + + public String getLoja() { + return loja; + } + + public String getAdquirente() { + return adquirente; + } + + public String getNsu() { + return nsu; + } + + public String getAutorizacao() { + return autorizacao; + } + + public BigDecimal getValorBruto() { + return valorBruto; + } + + public Integer getFormapago_id() { + return formapago_id; + } + + public String getBandeira() { + return bandeira; + } + + public String getCodigoPedido() { + return codigoPedido; + } + + public BigDecimal getValorParcela() { + return valorParcela; + } + + public Integer getParcelas() { + return parcelas; + } + + public void setDataTransacao(String dataTransacao) { + this.dataTransacao = dataTransacao; + } + + public void setLoja(String loja) { + this.loja = loja; + } + + public void setAdquirente(String adquirente) { + this.adquirente = adquirente; + } + + public void setNsu(String nsu) { + this.nsu = nsu; + } + + public void setAutorizacao(String autorizacao) { + this.autorizacao = autorizacao; + } + + public void setValorBruto(BigDecimal valorBruto) { + this.valorBruto = valorBruto; + } + + public void setFormapago_id(Integer formapago_id) { + this.formapago_id = formapago_id; + } + + public void setBandeira(String bandeira) { + this.bandeira = bandeira; + } + + public void setCodigoPedido(String codigoPedido) { + this.codigoPedido = codigoPedido; + } + + public void setValorParcela(BigDecimal valorParcela) { + this.valorParcela = valorParcela; + } + + public void setParcelas(Integer parcelas) { + this.parcelas = parcelas; + } + + public String getCondicaoVenda() { + // Espec01 - Relatorio de vendas de cartões.docx + // CONDICAO DE VENDA: débito/a vista/parcelada + if (getFormapago_id()==3) { + return "débito"; + } else { + if (getParcelas() == 1) { + return "a vista"; + } else { + return "parcelada"; + } + } + } +} \ No newline at end of file