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
master
thiago.clemente 2019-10-07 13:13:28 +00:00
parent e312e8a666
commit 01f87ded8f
5 changed files with 260 additions and 0 deletions

View File

@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.rjconsultores.ventaboletos.entidad.Caja; import com.rjconsultores.ventaboletos.entidad.Caja;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.exception.BusinessException; 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.CajaVO;
import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO;
import com.rjconsultores.ventaboletos.vo.caja.VendaEmbarcadaVO; import com.rjconsultores.ventaboletos.vo.caja.VendaEmbarcadaVO;
import com.rjconsultores.ventaboletos.vo.cashmonitor.RelatorioVendaCartaoCashMonitorVO;
public interface CajaDAO { public interface CajaDAO {
public List<CajaVO> buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); public List<CajaVO> 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 Integer atualizaCajasIntegracaoTotvs(Marca marca, Date dataIncial, Date dataFinal, PuntoVenta puntoVenta) throws BusinessException;
public List<RelatorioVendaCartaoCashMonitorVO> buscarVendaCartaoCashMonitor(Date dataIncial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta);
} }

View File

@ -1,6 +1,7 @@
package com.rjconsultores.ventaboletos.dao.hibernate; package com.rjconsultores.ventaboletos.dao.hibernate;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; 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.CajaDAO;
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
import com.rjconsultores.ventaboletos.entidad.Caja; import com.rjconsultores.ventaboletos.entidad.Caja;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.enums.TipoFormapago; 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.DadosBancarioVO;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.NotaCreditoVendaPacoteVO; import com.rjconsultores.ventaboletos.vo.busquedapacotes.NotaCreditoVendaPacoteVO;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosDadosBancarioResultTransformer; 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.CajaCerradoVO;
import com.rjconsultores.ventaboletos.vo.caja.CajaDetalleVO; import com.rjconsultores.ventaboletos.vo.caja.CajaDetalleVO;
import com.rjconsultores.ventaboletos.vo.caja.CajaVO; 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.ReceitaDespesaVO;
import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO;
import com.rjconsultores.ventaboletos.vo.caja.VendaEmbarcadaVO; import com.rjconsultores.ventaboletos.vo.caja.VendaEmbarcadaVO;
import com.rjconsultores.ventaboletos.vo.cashmonitor.RelatorioVendaCartaoCashMonitorVO;
@Repository("cajaDAO") @Repository("cajaDAO")
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@ -641,4 +645,60 @@ public class CajaHibernateDAO extends GenericHibernateDAO<Object, Long> implemen
return result; return result;
} }
@Override
public List<RelatorioVendaCartaoCashMonitorVO> 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();
}
} }

View File

@ -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();
}
}

View File

@ -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<String, Object> row = new HashMap<String, Object>();
for (int index = 0; index < aliases.length; index++) {
row.put(aliases[index], data[index]);
}
return row;
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<RelatorioVendaCartaoCashMonitorVO> transformList(List mapList) {
List<RelatorioVendaCartaoCashMonitorVO> listaVO = new ArrayList<RelatorioVendaCartaoCashMonitorVO>();
for (Object object : mapList) {
Map<String, Object> tupleMap = (Map<String, Object>) 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;
}
}

View File

@ -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";
}
}
}
}