843 lines
54 KiB
Java
843 lines
54 KiB
Java
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||
|
||
import java.math.BigDecimal;
|
||
import java.sql.Connection;
|
||
import java.sql.PreparedStatement;
|
||
import java.sql.ResultSet;
|
||
import java.sql.SQLException;
|
||
import java.util.ArrayList;
|
||
import java.util.Date;
|
||
import java.util.List;
|
||
|
||
import org.springframework.stereotype.Repository;
|
||
|
||
import com.rjconsultores.ventaboletos.dao.FiscalDAO;
|
||
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||
import com.rjconsultores.ventaboletos.utilerias.StringHelper;
|
||
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionFiscalReducaoZVO;
|
||
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionFiscalVO;
|
||
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionManualFiscalVO;
|
||
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionNaoFiscalVO;
|
||
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ItemFiscalVO;
|
||
import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria;
|
||
|
||
@Repository("fiscalDAO")
|
||
public class FiscalHibernateDAO implements FiscalDAO {
|
||
|
||
// private static Logger log = Logger.getLogger(FiscalHibernateDAO.class);
|
||
|
||
public static final String DATE_FORMAT_FISCAL = "yyyyMMdd";
|
||
|
||
public FiscalHibernateDAO() {
|
||
|
||
}
|
||
|
||
@Override
|
||
public List<ImportacionManualFiscalVO> buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
|
||
PreparedStatement stmt = null;
|
||
ResultSet rset = null;
|
||
|
||
StringBuilder sql = new StringBuilder();
|
||
sql.append("select r4.numserie20 as numImpressora, ");
|
||
sql.append(" coalesce(r4.coo, b.numfoliopreimpreso) as coo, ");
|
||
sql.append(" b.boleto_id as boletoId, ");
|
||
sql.append(" b.marca_id as empresaId, ");
|
||
sql.append(" e.nombempresa as empresa, ");
|
||
sql.append(" to_char(b.fechorventa, 'yyyyMMdd') as dataEmissao, ");
|
||
sql.append(" b.preciopagado as valorTotal, ");
|
||
sql.append(" co.codibge as origenId, ");
|
||
sql.append(" eo.cveestado as origenUf, ");
|
||
sql.append(" cd.codibge as destinoId, ");
|
||
sql.append(" ed.cveestado as destinoUf, ");
|
||
sql.append(" r5.totparcial as repTributado, ");
|
||
sql.append(" b.preciopagado as valorItem, ");
|
||
sql.append(" r5.tipopassagem as tipoPassagem, ");
|
||
sql.append(" r5.numitem as numItem, ");
|
||
sql.append(" r5.codproduto as codProduto, ");
|
||
sql.append(" b.numseriepreimpresa as serie, ");
|
||
sql.append(" eio.icms as icms, ");
|
||
sql.append(" eio.porctributo as porctributo, ");
|
||
sql.append(" eo.estado_id as estadoIdOrigen, ");
|
||
sql.append(" ed.estado_id as estadoIdDestino, ");
|
||
sql.append(" subserie as subSerie, ");
|
||
sql.append(" docfiscal as aidf, ");
|
||
sql.append(" fi.numserie as numpdv,");
|
||
sql.append(" fi.modelo as modeloImpressora,");
|
||
sql.append(" r4.usuario_id as numCaixa,");
|
||
sql.append(" case b.importetaxaembarque when 0 then null else b.importetaxaembarque ");
|
||
sql.append(" end as importetaxaembarque, ");
|
||
sql.append(" case b.importepedagio when 0 then null else b.importepedagio ");
|
||
sql.append(" end as importepedagio, ");
|
||
sql.append(" case b.importeoutros when 0 then null else b.importeoutros ");
|
||
sql.append(" end as importeoutros, ");
|
||
sql.append(" case b.importeseguro when 0 then null else b.importeseguro ");
|
||
sql.append(" end as importeseguro, ");
|
||
sql.append(" case when b.indstatusboleto = 'V' or b.motivocancelacion_id is null THEN 'N' ELSE 'C' END status, ");
|
||
sql.append(" cs.descclase as claseServicio ");
|
||
sql.append("from boleto b ");
|
||
sql.append(" left join fiscal_r4 r4 on b.boleto_id = r4.boleto_id ");
|
||
sql.append(" left outer join fiscal_r5 r5 on r4.numserie20 = r5.numserie20 ");
|
||
sql.append(" and r4.coo = r5.coo ");
|
||
sql.append(" left outer join fiscal_impressora fi on fi.numserie20 = r4.numserie20 ");
|
||
sql.append(" inner join empresa e on e.empresa_id = b.marca_id ");
|
||
sql.append(" left join alias_servico ase ON ase.origen_id = b.origen_id ");
|
||
sql.append(" and ase.destino_id = b.destino_id and ase.ruta_id = b.ruta_id and ase.activo = 1 and ase.corrida_id is null ");
|
||
sql.append(" left join parada o on coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id ");
|
||
sql.append(" left join ciudad co on o.ciudad_id = co.ciudad_id ");
|
||
sql.append(" left join estado eo on co.estado_id = eo.estado_id ");
|
||
sql.append(" left join empresa_imposto eio on eo.estado_id = eio.estado_id ");
|
||
sql.append(" and eio.activo = 1 ");
|
||
sql.append(" and b.marca_id = eio.empresa_id ");
|
||
sql.append(" left join parada d on coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id ");
|
||
sql.append(" left join ciudad cd on d.ciudad_id = cd.ciudad_id ");
|
||
sql.append(" left join estado ed on cd.estado_id = ed.estado_id ");
|
||
sql.append(" left join aidf a on a.serie = b.numseriepreimpresa ");
|
||
sql.append(" and eo.estado_id = a.estado_id ");
|
||
sql.append(" and a.empresa_id = e.empresa_id ");
|
||
sql.append(" inner join clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id ");
|
||
sql.append("WHERE b.fechorventa BETWEEN ? AND ? ");
|
||
sql.append(" AND b.marca_id = ? ");
|
||
sql.append(" AND b.tipoventa_id = 3 ");
|
||
sql.append(" AND (b.preciopagado > 0 OR b.importetaxaembarque > 0 OR b.importepedagio > 0) ");
|
||
sql.append("GROUP BY r4.numserie20, ");
|
||
sql.append(" COALESCE(r4.coo, b.numfoliopreimpreso), ");
|
||
sql.append(" b.boleto_id, ");
|
||
sql.append(" b.marca_id, ");
|
||
sql.append(" e.nombempresa, ");
|
||
sql.append(" TO_CHAR(b.fechorventa, 'yyyyMMdd'), ");
|
||
sql.append(" b.preciopagado, ");
|
||
sql.append(" co.codibge, ");
|
||
sql.append(" cd.codibge, ");
|
||
sql.append(" r5.totparcial, ");
|
||
sql.append(" b.preciopagado, ");
|
||
sql.append(" r5.tipopassagem, ");
|
||
sql.append(" r5.numitem, ");
|
||
sql.append(" r5.codproduto, ");
|
||
sql.append(" b.numseriepreimpresa, ");
|
||
sql.append(" eio.icms, ");
|
||
sql.append(" eio.porctributo, ");
|
||
sql.append(" eo.estado_id, ");
|
||
sql.append(" ed.estado_id, ");
|
||
sql.append(" subserie, ");
|
||
sql.append(" docfiscal, ");
|
||
sql.append(" b.importetaxaembarque, ");
|
||
sql.append(" b.importepedagio, ");
|
||
sql.append(" b.importeoutros, ");
|
||
sql.append(" b.importeseguro, ");
|
||
sql.append(" fi.numserie, ");
|
||
sql.append(" fi.modelo, ");
|
||
sql.append(" r4.usuario_id, ");
|
||
sql.append(" eo.cveestado, ");
|
||
sql.append(" ed.cveestado, ");
|
||
sql.append(" b.motivocancelacion_id, ");
|
||
sql.append(" b.indstatusboleto, ");
|
||
sql.append(" cs.descclase ");
|
||
sql.append("ORDER BY dataEmissao, coo, modeloImpressora ");
|
||
|
||
List<ImportacionManualFiscalVO> listManuais = new ArrayList<ImportacionManualFiscalVO>();
|
||
|
||
stmt = connection.prepareStatement(sql.toString());
|
||
stmt.setFetchSize(100);
|
||
stmt.setTimestamp(1, new java.sql.Timestamp(inicio.getTime()));
|
||
stmt.setTimestamp(2, new java.sql.Timestamp(fim.getTime()));
|
||
|
||
if (empresaId != null) {
|
||
stmt.setInt(3, empresaId);
|
||
}
|
||
|
||
rset = stmt.executeQuery();
|
||
while (rset.next()) {
|
||
|
||
ImportacionManualFiscalVO item = new ImportacionManualFiscalVO();
|
||
|
||
item.setNumImpressora(rset.getString("numImpressora"));
|
||
item.setCoo(rset.getString("coo"));
|
||
item.setBoletoId(rset.getLong("boletoId"));
|
||
item.setEmpresaId(rset.getInt("empresaId"));
|
||
item.setDataEmissao(rset.getString("dataEmissao"));
|
||
item.setValorTotal(rset.getBigDecimal("valorTotal"));
|
||
item.setNumItem(rset.getString("numItem"));
|
||
item.setCodProduto(rset.getString("codProduto"));
|
||
item.setNumpdv(rset.getString("numpdv"));
|
||
item.setRepTributado(rset.getString("repTributado"));
|
||
item.setTipoPassagem(rset.getString("tipoPassagem"));
|
||
item.setValorItem(rset.getBigDecimal("valorItem"));
|
||
item.setOrigenId(rset.getInt("origenId"));
|
||
item.setOrigenUf(rset.getString("origenUf"));
|
||
item.setDestinoId(rset.getInt("destinoId"));
|
||
item.setDestinoUf(rset.getString("destinoUf"));
|
||
item.setModeloImpressora(rset.getString("modeloImpressora"));
|
||
item.setNumCaixa(rset.getString("numCaixa"));
|
||
item.setStatus(rset.getString("status"));
|
||
item.setSerie(rset.getString("serie"));
|
||
item.setIcms(rset.getBigDecimal("icms"));
|
||
item.setPorctributo(rset.getBigDecimal("porctributo"));
|
||
item.setEstadoIdOrigen(rset.getInt("estadoIdOrigen"));
|
||
item.setEstadoIdDestino(rset.getInt("estadoIdDestino"));
|
||
item.setImportetaxaembarque(rset.getBigDecimal("importetaxaembarque"));
|
||
item.setImportepedagio(rset.getBigDecimal("importepedagio"));
|
||
item.setImporteoutros(rset.getBigDecimal("importeoutros"));
|
||
item.setImporteseguro(rset.getBigDecimal("importeseguro"));
|
||
item.setSubSerie(rset.getString("subSerie"));
|
||
item.setAidf(rset.getString("aidf"));
|
||
item.setClaseServicio(rset.getString("claseServicio"));
|
||
|
||
listManuais.add(item);
|
||
}
|
||
|
||
return listManuais;
|
||
|
||
}
|
||
|
||
@Override
|
||
public List<ImportacionFiscalReducaoZVO> buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
|
||
PreparedStatement stmt = null;
|
||
ResultSet rset = null;
|
||
|
||
StringBuilder sql = new StringBuilder();
|
||
sql.append("SELECT r2.datamov AS datamov, ");
|
||
sql.append(" r2.numreducoes AS numreducoes, ");
|
||
sql.append(" r2.crz AS crz, ");
|
||
sql.append(" r2.numserie20 AS numserie20, ");
|
||
sql.append(" r2.coo AS coo, ");
|
||
sql.append(" r2.cooinicial AS cooinicial, ");
|
||
sql.append(" r2.coofinal AS coofinal, ");
|
||
sql.append(" r2.vendabrutadiaria AS vendabrutadiaria, ");
|
||
sql.append(" r2.datareducao AS datareducao, ");
|
||
sql.append(" r2.horareducao AS horareducao, ");
|
||
sql.append(" r3.totparcial AS aliquota, ");
|
||
sql.append(" r3.valoracumulado AS imposto, ");
|
||
sql.append(" ifi.numserie AS numpdv, ");
|
||
sql.append(" TRANSLATE(t2.cnpj, ' / - . ', ' ') AS cnpj,");
|
||
sql.append(" r2.totgeral AS gtFinal, ");
|
||
sql.append(" anterior.totgeral AS gtInicial ");
|
||
sql.append("FROM fiscal_r2 r2 ");
|
||
sql.append(" inner join fiscal_impressora ifi ");
|
||
sql.append(" ON ifi.numserie20 = r2.numserie20 ");
|
||
sql.append(" inner join fiscal_r3 r3 ");
|
||
sql.append(" ON r3.crz = r2.crz ");
|
||
sql.append(" AND r2.numserie20 = r3.numserie20 ");
|
||
sql.append(" AND r3.datamov = r2.datamov ");
|
||
sql.append(" AND r3.fiscalimpressora_id = ifi.fiscalimpressora_id ");
|
||
sql.append(" inner join fiscal_t2 t2 ");
|
||
sql.append(" ON ifi.fiscalimpressora_id = t2.fiscalimpressora_id ");
|
||
sql.append(" inner join empresa e ON (TRANSLATE(t2.cnpj, ' / - . ', ' ') = (TRANSLATE(e.cnpj, ' / - . ', ' ')) ) or ");
|
||
sql.append(" (TRANSLATE(t2.cnpj, ' / - . ', ' ') in ");
|
||
sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )), ");
|
||
sql.append(" (SELECT numserie20, crz, totgeral ");
|
||
sql.append(" FROM fiscal_r2) anterior ");
|
||
sql.append("WHERE r2.datamov BETWEEN ? AND ? ");
|
||
sql.append(" AND r2.activo = 1 ");
|
||
sql.append(" AND e.empresa_id = ? ");
|
||
sql.append(" AND r3.totparcial not in (");
|
||
sql.append("'" + SituacaoTributaria.NAO_FISCAL.getValue() + "'").append(")");
|
||
sql.append(" AND anterior.numserie20 = r2.numserie20 ");
|
||
sql.append(" AND anterior.crz = r2.crz - 1 ");
|
||
sql.append("GROUP BY r2.datamov, ");
|
||
sql.append(" r2.numreducoes, ");
|
||
sql.append(" r2.crz, ");
|
||
sql.append(" r2.numserie20, ");
|
||
sql.append(" r2.coo, ");
|
||
sql.append(" r2.cooinicial, ");
|
||
sql.append(" r2.coofinal, ");
|
||
sql.append(" r2.vendabrutadiaria, ");
|
||
sql.append(" r2.datareducao, ");
|
||
sql.append(" r2.horareducao, ");
|
||
sql.append(" r3.totparcial, ");
|
||
sql.append(" r3.valoracumulado, ");
|
||
sql.append(" ifi.numserie, ");
|
||
sql.append(" t2.cnpj, ");
|
||
sql.append(" r2.totgeral, ");
|
||
sql.append(" anterior.totgeral ");
|
||
sql.append("ORDER BY r2.datamov, ");
|
||
sql.append(" numserie20, ");
|
||
sql.append(" crz, ");
|
||
sql.append(" r2.numreducoes, ");
|
||
sql.append(" r3.totparcial");
|
||
|
||
List<ImportacionFiscalReducaoZVO> listRedZ = new ArrayList<ImportacionFiscalReducaoZVO>();
|
||
|
||
stmt = connection.prepareStatement(sql.toString());
|
||
stmt.setFetchSize(100);
|
||
stmt.setInt(1, empresaId);
|
||
stmt.setString(2, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL));
|
||
stmt.setString(3, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL));
|
||
stmt.setInt(4, empresaId);
|
||
|
||
rset = stmt.executeQuery();
|
||
while (rset.next()) {
|
||
|
||
ImportacionFiscalReducaoZVO item = new ImportacionFiscalReducaoZVO();
|
||
item.setDatamov(rset.getString("datamov"));
|
||
item.setNumreducoes(rset.getString("numreducoes"));
|
||
item.setCrz(rset.getString("crz"));
|
||
item.setNumserie20(rset.getString("numserie20"));
|
||
item.setCoo(rset.getString("coo"));
|
||
item.setCooinicial(rset.getString("cooinicial"));
|
||
item.setCoofinal(rset.getString("coofinal"));
|
||
item.setVendabrutadiaria(rset.getBigDecimal("vendabrutadiaria"));
|
||
item.setDatareducao(rset.getString("datareducao"));
|
||
item.setHorareducao(rset.getString("horareducao"));
|
||
item.setAliquota(rset.getString("aliquota"));
|
||
item.setImposto(rset.getBigDecimal("imposto"));
|
||
item.setNumpdv(rset.getString("numpdv"));
|
||
item.setCnpj(rset.getString("cnpj"));
|
||
item.setGtFinal(rset.getBigDecimal("gtFinal"));
|
||
item.setGtInicial(rset.getBigDecimal("gtInicial"));
|
||
|
||
listRedZ.add(item);
|
||
}
|
||
|
||
return listRedZ;
|
||
|
||
}
|
||
|
||
public String sqlFiscaisECFCancelados() {
|
||
|
||
StringBuilder sql = new StringBuilder();
|
||
sql.append("SELECT r4.numserie20 as numImpressora, ");
|
||
sql.append(" r4.coo as coo, ");
|
||
sql.append(" r4.imptotalliquido as valorTotal, ");
|
||
sql.append(" r4.datainicialemissao as dataEmissao, ");
|
||
sql.append(" r4.cpfcnpjcliente as cnpjCliente, ");
|
||
sql.append(" b.boleto_id as boletoId, ");
|
||
sql.append(" b.marca_id as empresaId, ");
|
||
sql.append(" co.codibge as origenId, ");
|
||
sql.append(" eo.cveestado as origenUf, ");
|
||
sql.append(" cd.codibge as destinoId, ");
|
||
sql.append(" ed.cveestado as destinoUf, ");
|
||
sql.append(" fi.numcnpj as cnpjImpressora, ");
|
||
sql.append(" fi.numserie as numpdv, ");
|
||
sql.append(" r5.totparcial as repTributado, ");
|
||
sql.append(" r5.imptotalliquido as valorItem, ");
|
||
sql.append(" r5.tipopassagem as tipoPassagem, ");
|
||
sql.append(" r5.numitem as numItem, ");
|
||
sql.append(" r5.codproduto as codProduto, ");
|
||
sql.append(" fi.modelo as modeloImpressora, ");
|
||
sql.append(" r4.usuario_id as numCaixa, ");
|
||
sql.append(" b.preciopagado as importetarifa, ");
|
||
sql.append(" b.importetaxaembarque as importetaxaembarque, ");
|
||
sql.append(" b.importepedagio as importepedagio, ");
|
||
sql.append(" b.importeseguro as importeseguro, ");
|
||
sql.append(" 'C' as status, ");
|
||
sql.append(" b.motivocancelacion_id as motivocancelacion, ");
|
||
sql.append(" ee.impingreso as valorMulta, ");
|
||
sql.append(" cs.descclase as claseServicio, ");
|
||
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf ");
|
||
sql.append(" FROM fiscal_r4 r4 ");
|
||
sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
|
||
sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador ");
|
||
sql.append(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
|
||
sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id ");
|
||
sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id ");
|
||
sql.append(" LEFT JOIN evento_extra ee on ee.boleto_id = b.boleto_id and ee.tipoeventoextra_id in (42) ");
|
||
sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id ");
|
||
sql.append(" and ase.destino_id = b.destino_id and ase.ruta_id = b.ruta_id and ase.activo = 1 and ase.corrida_id is null ");
|
||
sql.append(" INNER JOIN parada o ON coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id ");
|
||
sql.append(" INNER JOIN ciudad co ON o.ciudad_id = co.ciudad_id ");
|
||
sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id ");
|
||
sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id ");
|
||
sql.append(" INNER JOIN ciudad cd ON d.ciudad_id = cd.ciudad_id ");
|
||
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
|
||
sql.append(" WHERE r4.datamov BETWEEN ? AND ? ");
|
||
sql.append(" AND b.marca_id = ? ");
|
||
sql.append(" AND b.motivocancelacion_id in (31, 32, 10) ");
|
||
sql.append(" AND r4.indcancelamento = 'N' ");
|
||
sql.append(" GROUP BY r4.numserie20, ");
|
||
sql.append(" r4.coo, ");
|
||
sql.append(" r4.datainicialemissao, ");
|
||
sql.append(" r4.cpfcnpjcliente, ");
|
||
sql.append(" r4.imptotalliquido, ");
|
||
sql.append(" b.boleto_id, ");
|
||
sql.append(" b.marca_id, ");
|
||
sql.append(" co.codibge, ");
|
||
sql.append(" cd.codibge, ");
|
||
sql.append(" fi.numcnpj, ");
|
||
sql.append(" fi.numserie, ");
|
||
sql.append(" r5.impdesconto, ");
|
||
sql.append(" r5.totparcial, ");
|
||
sql.append(" r5.imptotalliquido, ");
|
||
sql.append(" r5.tipopassagem, ");
|
||
sql.append(" r5.numitem, ");
|
||
sql.append(" r5.codproduto, ");
|
||
sql.append(" fi.modelo, ");
|
||
sql.append(" r4.usuario_id, ");
|
||
sql.append(" eo.cveestado, ");
|
||
sql.append(" ed.cveestado, ");
|
||
sql.append(" b.motivocancelacion_id, ");
|
||
sql.append(" ee.impingreso, ");
|
||
sql.append(" b.preciopagado, ");
|
||
sql.append(" b.importetaxaembarque, ");
|
||
sql.append(" b.importepedagio, ");
|
||
sql.append(" b.importeseguro, ");
|
||
sql.append(" cs.descclase, ");
|
||
sql.append(" fi.numcnpj ");
|
||
sql.append(" ORDER BY r4.datainicialemissao, ");
|
||
sql.append(" r4.numserie20, ");
|
||
sql.append(" r4.coo, ");
|
||
sql.append(" r5.numitem ");
|
||
|
||
return sql.toString();
|
||
}
|
||
|
||
public String sqlFiscaisECF() {
|
||
|
||
StringBuilder sql = new StringBuilder();
|
||
sql.append("SELECT r4.numserie20 as numImpressora, ");
|
||
sql.append(" r4.coo as coo, ");
|
||
sql.append(" r4.imptotalliquido as valorTotal, ");
|
||
sql.append(" r4.datainicialemissao as dataEmissao, ");
|
||
sql.append(" r4.cpfcnpjcliente as cnpjCliente, ");
|
||
sql.append(" b.boleto_id as boletoId, ");
|
||
sql.append(" b.marca_id as empresaId, ");
|
||
sql.append(" co.codibge as origenId, ");
|
||
sql.append(" eo.cveestado as origenUf, ");
|
||
sql.append(" cd.codibge as destinoId, ");
|
||
sql.append(" ed.cveestado as destinoUf, ");
|
||
sql.append(" fi.numcnpj as cnpjImpressora, ");
|
||
sql.append(" fi.numserie as numpdv, ");
|
||
sql.append(" r5.totparcial as repTributado, ");
|
||
sql.append(" r5.imptotalliquido as valorItem, ");
|
||
sql.append(" r5.tipopassagem as tipoPassagem, ");
|
||
sql.append(" r5.numitem as numItem, ");
|
||
sql.append(" r5.codproduto as codProduto, ");
|
||
sql.append(" fi.modelo as modeloImpressora, ");
|
||
sql.append(" r4.usuario_id as numCaixa, ");
|
||
sql.append(" b.preciopagado as importetarifa, ");
|
||
sql.append(" b.importetaxaembarque as importetaxaembarque, ");
|
||
sql.append(" b.importepedagio as importepedagio, ");
|
||
sql.append(" b.importeseguro as importeseguro, ");
|
||
sql.append(" cs.descclase as claseServicio, ");
|
||
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf, ");
|
||
sql.append(" ei.icms as impostoEstado, ");
|
||
sql.append(" 'N' as status ");
|
||
sql.append(" FROM fiscal_r4 r4 ");
|
||
sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
|
||
sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador ");
|
||
sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
|
||
sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id ");
|
||
sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id ");
|
||
sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id ");
|
||
sql.append(" and ase.destino_id = b.destino_id and ase.ruta_id = b.ruta_id and ase.activo = 1 and ase.corrida_id is null ");
|
||
sql.append(" INNER JOIN parada o ON coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id ");
|
||
sql.append(" INNER JOIN ciudad co ON o.ciudad_id = co.ciudad_id ");
|
||
sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id ");
|
||
sql.append(" LEFT JOIN empresa_imposto ei ON ei.estado_id = eo.estado_id AND b.marca_id = ei.empresa_id ");
|
||
sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id ");
|
||
sql.append(" INNER JOIN ciudad cd ON d.ciudad_id = cd.ciudad_id ");
|
||
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
|
||
sql.append(" WHERE r4.datamov BETWEEN ? AND ? ");
|
||
sql.append(" AND b.marca_id = ? ");
|
||
sql.append(" AND (r4.indcancelamento = 'N' OR (r4.indcancelamento = 'S' AND ");
|
||
sql.append(" (SELECT r3.numserie20 FROM fiscal_r3 r3 ");
|
||
sql.append(" WHERE r3.numserie20 = r4.numserie20 AND r3.datamov = r4.datamov ");
|
||
sql.append(" AND r3.totparcial = 'Can-T') IS NULL) ) ");
|
||
sql.append(" GROUP BY r4.numserie20, ");
|
||
sql.append(" r4.coo, ");
|
||
sql.append(" r4.datainicialemissao, ");
|
||
sql.append(" r4.cpfcnpjcliente, ");
|
||
sql.append(" r4.imptotalliquido, ");
|
||
sql.append(" b.boleto_id, ");
|
||
sql.append(" b.marca_id, ");
|
||
sql.append(" co.codibge, ");
|
||
sql.append(" cd.codibge, ");
|
||
sql.append(" fi.numcnpj, ");
|
||
sql.append(" fi.numserie, ");
|
||
sql.append(" r5.impdesconto, ");
|
||
sql.append(" r5.totparcial, ");
|
||
sql.append(" r5.imptotalliquido, ");
|
||
sql.append(" r5.tipopassagem, ");
|
||
sql.append(" r5.numitem, ");
|
||
sql.append(" r5.codproduto, ");
|
||
sql.append(" fi.modelo, ");
|
||
sql.append(" r4.usuario_id, ");
|
||
sql.append(" eo.cveestado, ");
|
||
sql.append(" ed.cveestado, ");
|
||
sql.append(" b.preciopagado, ");
|
||
sql.append(" b.importetaxaembarque, ");
|
||
sql.append(" b.importepedagio, ");
|
||
sql.append(" b.importeseguro, ");
|
||
sql.append(" cs.descclase, ");
|
||
sql.append(" fi.numcnpj, ");
|
||
sql.append(" ei.icms ");
|
||
sql.append(" ORDER BY r4.datainicialemissao, ");
|
||
sql.append(" r4.numserie20, ");
|
||
sql.append(" r4.coo, ");
|
||
sql.append(" r5.numitem ");
|
||
return sql.toString();
|
||
}
|
||
|
||
public String sqlFiscaisECFPendencias(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
|
||
|
||
StringBuilder sql = new StringBuilder();
|
||
sql.append(" SELECT r4.numserie20 as numImpressora, ");
|
||
sql.append(" r4.coo as coo, ");
|
||
sql.append(" r4.imptotalliquido as valorTotal, ");
|
||
sql.append(" r4.datainicialemissao as dataEmissao, ");
|
||
sql.append(" r4.cpfcnpjcliente as cnpjCliente, ");
|
||
sql.append(" fi.numcnpj as cnpjImpressora, ");
|
||
sql.append(" fi.numserie as numpdv, ");
|
||
sql.append(" r5.totparcial as repTributado, ");
|
||
sql.append(" r5.imptotalliquido as valorItem, ");
|
||
sql.append(" r5.tipopassagem as tipoPassagem, ");
|
||
sql.append(" r5.numitem as numItem, ");
|
||
sql.append(" r5.codproduto as codProduto, ");
|
||
sql.append(" fi.modelo as modeloImpressora, ");
|
||
sql.append(" r4.usuario_id as numCaixa, ");
|
||
sql.append(" r5.impdesconto ");
|
||
sql.append(" FROM fiscal_r4 r4 ");
|
||
sql.append(" INNER JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
|
||
sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador ");
|
||
sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 AND fi.fiscalimpressora_id = r5.fiscalimpressora_id ");
|
||
sql.append(" WHERE r4.datamov BETWEEN ? AND ? ");
|
||
sql.append(" AND b.marca_id = ? ");
|
||
sql.append(" AND r5.impdesconto <> 0 ");
|
||
sql.append(" GROUP BY r4.numserie20, r4.coo, r4.datainicialemissao, r4.cpfcnpjcliente, ");
|
||
sql.append(" r4.imptotalliquido, fi.numcnpj, fi.numserie, r5.impdesconto, ");
|
||
sql.append(" r5.totparcial, r5.imptotalliquido, r5.tipopassagem, ");
|
||
sql.append(" r5.numitem, r5.codproduto, fi.modelo, r4.usuario_id ");
|
||
sql.append(" ORDER BY r4.datainicialemissao, r4.numserie20, r4.coo, r5.numitem ");
|
||
return sql.toString();
|
||
}
|
||
|
||
@Override
|
||
public List<ImportacionFiscalVO> buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException {
|
||
|
||
String sql = sqlFiscaisECF();
|
||
if (isCancelados) {
|
||
sql = sqlFiscaisECFCancelados();
|
||
|
||
} else if (isPendencias) {
|
||
sql = sqlFiscaisECFPendencias(inicio, fim, empresaId, connection);
|
||
}
|
||
|
||
PreparedStatement stmt = connection.prepareStatement(sql);
|
||
stmt.setFetchSize(100);
|
||
if (!isPendencias) {
|
||
stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL));
|
||
stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL));
|
||
stmt.setInt(3, empresaId);
|
||
}
|
||
|
||
List<ImportacionFiscalVO> list = new ArrayList<ImportacionFiscalVO>();
|
||
ImportacionFiscalVO fiscal = null;
|
||
String codProduto = null;
|
||
|
||
ResultSet rset = stmt.executeQuery();
|
||
while (rset.next()) {
|
||
|
||
ItemFiscalVO item = new ItemFiscalVO();
|
||
item.setNumImpressora(rset.getString("numImpressora"));
|
||
item.setCoo(rset.getString("coo"));
|
||
item.setBoletoId(rset.getLong("boletoId"));
|
||
item.setEmpresaId(rset.getInt("empresaId"));
|
||
item.setDataEmissao(rset.getString("dataEmissao"));
|
||
item.setCnpjCliente(rset.getString("cnpjCliente"));
|
||
item.setCnpjImpressora(rset.getString("cnpjImpressora"));
|
||
item.setOrigenId(rset.getInt("origenId"));
|
||
item.setOrigenUf(rset.getString("origenUf"));
|
||
item.setDestinoId(rset.getInt("destinoId"));
|
||
item.setDestinoUf(rset.getString("destinoUf"));
|
||
item.setNumpdv(rset.getString("numpdv"));
|
||
item.setNumItem(rset.getString("numItem"));
|
||
item.setCodProduto(rset.getString("codProduto"));
|
||
item.setRepTributado(rset.getString("repTributado"));
|
||
item.setTipoPassagem(rset.getString("tipoPassagem"));
|
||
item.setModeloImpressora(rset.getString("modeloImpressora"));
|
||
item.setNumCaixa(rset.getString("numCaixa"));
|
||
item.setStatus(rset.getString("status"));
|
||
item.setClaseServicio(rset.getString("claseServicio"));
|
||
|
||
if (isCancelados) {
|
||
item.setMotivocancelacion(rset.getInt("motivocancelacion"));
|
||
item.setValorMulta(rset.getBigDecimal("valorMulta"));
|
||
} else {
|
||
item.setImpostoEstado(rset.getBigDecimal("impostoEstado"));
|
||
}
|
||
|
||
// TODO: Estes atributos foram criados, por motivo de divergencia no valorTotal com o valor unitario na tabela FISCAL_R5
|
||
item.setValorTarifa(rset.getBigDecimal("importetarifa"));
|
||
item.setValorPedagio(rset.getBigDecimal("importepedagio"));
|
||
item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque"));
|
||
item.setValorSeguro(rset.getBigDecimal("importeseguro"));
|
||
|
||
ImportacionFiscalVO novoFiscal = item;
|
||
|
||
codProduto = item.getCodProduto();
|
||
if (codProduto != null) {
|
||
codProduto = codProduto.toString().replace("-", "").replace("TA", "").replace("TX", "").replace("PE", "").replace("SE", "");
|
||
} else {
|
||
String boleto = item.getBoletoId().toString();
|
||
codProduto = boleto.substring(boleto.length() - 8) + "F" + boleto.substring(boleto.length() - 2);
|
||
}
|
||
|
||
if (fiscal == null) {
|
||
fiscal = item;
|
||
} else if (!novoFiscal.equals(fiscal)) {
|
||
List<ItemFiscalVO> itensFiscais = validaItensFiscais(fiscal, codProduto);
|
||
fiscal.setItensFiscais(itensFiscais);
|
||
list.add(fiscal);
|
||
fiscal = item;
|
||
}
|
||
|
||
fiscal.getItensFiscais().add(item);
|
||
|
||
}
|
||
|
||
if (fiscal != null) {
|
||
List<ItemFiscalVO> itensFiscais = validaItensFiscais(fiscal, codProduto);
|
||
fiscal.setItensFiscais(itensFiscais);
|
||
list.add(fiscal);
|
||
}
|
||
|
||
return list;
|
||
}
|
||
|
||
private boolean validaValorExiste(BigDecimal valor) {
|
||
if (valor == null) {
|
||
return Boolean.FALSE;
|
||
} else if (valor.equals(BigDecimal.ZERO)) {
|
||
return Boolean.FALSE;
|
||
} else {
|
||
return Boolean.TRUE;
|
||
}
|
||
}
|
||
|
||
private List<ItemFiscalVO> validaItensFiscais(ImportacionFiscalVO fiscal, String codProduto) {
|
||
|
||
boolean temTarifa = validaValorExiste(fiscal.getValorTarifa());
|
||
boolean temPedagio = validaValorExiste(fiscal.getValorPedagio());
|
||
boolean temEmbarque = validaValorExiste(fiscal.getValorEmbarque());
|
||
boolean temSeguro = validaValorExiste(fiscal.getValorSeguro());
|
||
|
||
boolean tarifaCriada = false;
|
||
boolean pedagioCriada = false;
|
||
boolean embarqueCriada = false;
|
||
boolean seguroCriada = false;
|
||
|
||
boolean inconsistencia = false;
|
||
|
||
List<ItemFiscalVO> itensFiscais = new ArrayList<ItemFiscalVO>();
|
||
for (ItemFiscalVO item : fiscal.getItensFiscais()) {
|
||
|
||
String codigoProduto = item.getCodProduto();
|
||
if (codigoProduto != null) {
|
||
if (codigoProduto.indexOf("TA") >= 0)
|
||
tarifaCriada = true;
|
||
|
||
if (codigoProduto.indexOf("TX") >= 0)
|
||
embarqueCriada = true;
|
||
|
||
if (codigoProduto.indexOf("PE") >= 0)
|
||
pedagioCriada = true;
|
||
|
||
if (codigoProduto.indexOf("SE") >= 0)
|
||
seguroCriada = true;
|
||
} else {
|
||
inconsistencia = true;
|
||
break;
|
||
}
|
||
|
||
itensFiscais.add(item);
|
||
}
|
||
|
||
int numeroItem = 1;
|
||
if (temTarifa && !tarifaCriada) {
|
||
ItemFiscalVO novoTarifa = new ItemFiscalVO(fiscal);
|
||
novoTarifa.setCodProduto(codProduto + "-TA");
|
||
novoTarifa.setTipoPassagem("E");
|
||
novoTarifa.setValorItem(fiscal.getValorTarifa());
|
||
novoTarifa.setRepTributado("N1");
|
||
novoTarifa.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
|
||
novoTarifa.setInconsistencia(inconsistencia);
|
||
itensFiscais.add(novoTarifa);
|
||
}
|
||
|
||
if (temEmbarque && !embarqueCriada) {
|
||
ItemFiscalVO novoEmbarque = new ItemFiscalVO(fiscal);
|
||
novoEmbarque.setCodProduto(codProduto + "-TX");
|
||
novoEmbarque.setTipoPassagem("E");
|
||
novoEmbarque.setValorItem(fiscal.getValorEmbarque());
|
||
novoEmbarque.setRepTributado("N1");
|
||
novoEmbarque.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
|
||
novoEmbarque.setInconsistencia(inconsistencia);
|
||
itensFiscais.add(novoEmbarque);
|
||
}
|
||
|
||
if (temPedagio && !pedagioCriada) {
|
||
ItemFiscalVO novoPedagio = new ItemFiscalVO(fiscal);
|
||
novoPedagio.setCodProduto(codProduto + "-PE");
|
||
novoPedagio.setTipoPassagem("E");
|
||
novoPedagio.setValorItem(fiscal.getValorPedagio());
|
||
novoPedagio.setRepTributado("N1");
|
||
novoPedagio.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
|
||
novoPedagio.setInconsistencia(inconsistencia);
|
||
itensFiscais.add(novoPedagio);
|
||
}
|
||
|
||
if (temSeguro && !seguroCriada) {
|
||
ItemFiscalVO novoSeguro = new ItemFiscalVO(fiscal);
|
||
novoSeguro.setCodProduto(codProduto + "-SE");
|
||
novoSeguro.setTipoPassagem("E");
|
||
novoSeguro.setValorItem(fiscal.getValorSeguro());
|
||
novoSeguro.setRepTributado("N1");
|
||
novoSeguro.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
|
||
novoSeguro.setInconsistencia(inconsistencia);
|
||
itensFiscais.add(novoSeguro);
|
||
}
|
||
|
||
return itensFiscais;
|
||
}
|
||
|
||
private int gerarRegistroP2(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
|
||
Integer[] idsCorrida = getIdsCorrida(lsEsquemaCorrida);
|
||
|
||
StringBuilder sb = new StringBuilder("");
|
||
sb.append(" INSERT INTO FISCAL_P2 (CODPRODUTO,descricao,valorunitario_ta,valorunitario_tx,valorunitario_pe,valorunitario_ot,valorunitario_se,empresa_id,estado_origem,estado_aliascorrida,estado_aliasgeral) ");
|
||
sb.append(" ");
|
||
sb.append(" select DISTINCT ");
|
||
sb.append(" CODPRODUTO(t.origen_id , t.destino_id , rc.ruta_id) AS CODPRODUTO, ");
|
||
sb.append(" t.desctramo as descricao, ");
|
||
sb.append(" tr.precio as valorunitario_ta, ");
|
||
sb.append(" tr.importetaxaembarque as valorunitario_tx, ");
|
||
sb.append(" tr.importepedagio as valorunitario_pe, ");
|
||
sb.append(" tr.importeoutros as valorunitario_ot, ");
|
||
sb.append(" tr.importeseguro as valorunitario_se, ");
|
||
sb.append(" c.empresacorrida_id as empresa_id, ");
|
||
sb.append(" co.estado_id as estado_origem, ");
|
||
sb.append(" cas1.estado_id as estado_aliascorrida, ");
|
||
sb.append(" cas2.estado_id as estado_aliasgeral ");
|
||
sb.append(" ");
|
||
sb.append(" from ");
|
||
sb.append(" ruta_combinacion rc ");
|
||
sb.append(" inner join tramo t on t.tramo_id = rc.tramo_id ");
|
||
sb.append(" inner join parada po on po.parada_id = t.origen_id ");
|
||
sb.append(" inner join parada pd on pd.parada_id = t.destino_id ");
|
||
sb.append(" inner join corrida c on c.ruta_id = rc.ruta_id ");
|
||
sb.append(" inner join corrida_tramo cto on cto.corrida_id = c.corrida_id and cto.feccorrida = c.feccorrida and t.origen_id = cto.origen_id ");
|
||
sb.append(" inner join corrida_tramo ctd on ctd.corrida_id = c.corrida_id and ctd.feccorrida = c.feccorrida and t.destino_id = ctd.destino_id ");
|
||
sb.append(" inner join tarifa tr on tr.ruta_id = rc.ruta_id and tr.origen_id = t.origen_id and tr.destino_id = t.destino_id ");
|
||
sb.append(" inner join vigencia_tarifa vt on vt.vigenciatarifa_id = tr.vigenciatarifa_id ");
|
||
sb.append(" inner join ciudad co on co.ciudad_id = po.ciudad_id ");
|
||
sb.append(" left join alias_servico as1 on as1.corrida_id = as1.corrida_id and as1.origen_id = t.origen_id and as1.destino_id = t.destino_id and as1.ruta_id = rc.ruta_id ");
|
||
sb.append(" left join parada pas1 on pas1.parada_id = as1.aliasorigen_id ");
|
||
sb.append(" left join ciudad cas1 on cas1.ciudad_id = pas1.ciudad_id ");
|
||
sb.append(" left join alias_servico as2 on as2.corrida_id is null and as2.origen_id = t.origen_id and as2.destino_id = t.destino_id and as2.ruta_id = rc.ruta_id ");
|
||
sb.append(" left join parada pas2 on pas2.parada_id = as2.aliasorigen_id ");
|
||
sb.append(" left join ciudad cas2 on cas2.ciudad_id = pas2.ciudad_id ");
|
||
sb.append(" where ");
|
||
sb.append(" rc.activo = 1 ");
|
||
sb.append(" and cto.activo = 1 ");
|
||
sb.append(" and ctd.activo = 1 ");
|
||
sb.append(" and tr.activo = 1 ");
|
||
sb.append(" and cto.fechorsalida between vt.feciniciovigencia and vt.fecfinvigencia ");
|
||
sb.append(" and c.feccorrida between :datIni and :datFim ");
|
||
sb.append(" and c.corrida_id in (:corridaId) ");
|
||
sb.append(" and ROWNUM < 2 ");
|
||
|
||
// FIXME - Implementar a inser<65><72>o na base de dados. Aten<65><6E>o para checar se tem q ficar em transa<73><61>o ou n<>o
|
||
// Query query = getSession().createSQLQuery(sb.toString());
|
||
// query.setParameterList("corridaId", idsCorrida);
|
||
// query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
|
||
// query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
|
||
|
||
// return query.executeUpdate();
|
||
|
||
return 0;
|
||
}
|
||
|
||
private Integer[] getIdsCorrida(List<EsquemaCorrida> lsEsquemaCorrida) {
|
||
Integer[] idsCorrida = new Integer[lsEsquemaCorrida.size()];
|
||
int i = 0;
|
||
for (EsquemaCorrida ec : lsEsquemaCorrida) {
|
||
idsCorrida[i] = ec.getNumCorrida();
|
||
i++;
|
||
}
|
||
return idsCorrida;
|
||
}
|
||
|
||
private int gerarRegistroF2(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
|
||
StringBuilder sb = new StringBuilder("");
|
||
sb.append(" INSERT INTO FISCAL_F2 (cnpj, codigo_local_emissao,identificacao_linha, descricao_linha, data_partida, hora_partida, codigo_tipo_viagem) ");
|
||
sb.append(" select distinct oc.cnpj, t.origen_id as codigo_local_emissao, r.prefixo as identificacao_linha, r.descruta as descricao_linha, to_char(cto.fechorsalida, 'YYYYMMdd') as data_partida, to_char(cto.fechorsalida, 'hh24miss') as hora_partida, (case nvl(c.tiposervicio_id, 0) when 2 then '01' else '00' end) as codigo_tipo_viagem ");
|
||
sb.append(" from ");
|
||
sb.append(" ruta_combinacion rc ");
|
||
sb.append(" inner join ruta r on r.ruta_id = rc.ruta_id ");
|
||
sb.append(" inner join orgao_concedente oc on oc.orgaoconcedente_id = r.orgaoconcedente_id ");
|
||
sb.append(" inner join tramo t on t.tramo_id = rc.tramo_id ");
|
||
sb.append(" inner join parada po on po.parada_id = t.origen_id ");
|
||
sb.append(" inner join parada pd on pd.parada_id = t.destino_id ");
|
||
sb.append(" inner join corrida c on c.ruta_id = rc.ruta_id ");
|
||
sb.append(" inner join corrida_tramo cto on cto.corrida_id = c.corrida_id and cto.feccorrida = c.feccorrida and t.origen_id = cto.origen_id ");
|
||
sb.append(" inner join corrida_tramo ctd on ctd.corrida_id = c.corrida_id and ctd.feccorrida = c.feccorrida and t.destino_id = ctd.destino_id ");
|
||
sb.append(" inner join tarifa tr on tr.ruta_id = rc.ruta_id and tr.origen_id = t.origen_id and tr.destino_id = t.destino_id ");
|
||
sb.append(" inner join vigencia_tarifa vt on vt.vigenciatarifa_id = tr.vigenciatarifa_id ");
|
||
sb.append(" inner join punto_venta pv on pv.empresa_id = c.empresacorrida_id ");
|
||
sb.append(" where ");
|
||
sb.append(" rc.activo = 1 ");
|
||
sb.append(" and cto.activo = 1 ");
|
||
sb.append(" and ctd.activo = 1 ");
|
||
sb.append(" and cto.fechorsalida between vt.feciniciovigencia and vt.fecfinvigencia ");
|
||
sb.append(" and c.feccorrida between :datIni and :datFim ");
|
||
sb.append(" and c.corrida_id in (:corridaId) ");
|
||
sb.append(" and ROWNUM < 2 ");
|
||
|
||
Integer[] idsCorrida = getIdsCorrida(lsEsquemaCorrida);
|
||
// FIXME - Implementar a inser<65><72>o na base de dados. Aten<65><6E>o para checar se tem q ficar em transa<73><61>o ou n<>o
|
||
// Query query = getSession().createSQLQuery(sb.toString());
|
||
// query.setParameterList("corridaId", idsCorrida);
|
||
// query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
|
||
// query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
|
||
//
|
||
// return query.executeUpdate();
|
||
|
||
return 0;
|
||
}
|
||
|
||
@Override
|
||
public int gerarRegistroP2_F2(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
|
||
int gerarRegistroP2 = this.gerarRegistroP2(lsEsquemaCorrida, dataDe, dataAte);
|
||
int gerarRegistroF2 = this.gerarRegistroF2(lsEsquemaCorrida, dataDe, dataAte);
|
||
return gerarRegistroP2 + gerarRegistroF2;
|
||
}
|
||
|
||
@Override
|
||
public List<ImportacionNaoFiscalVO> buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
|
||
PreparedStatement stmt = null;
|
||
ResultSet rset = null;
|
||
|
||
StringBuilder sQuery = new StringBuilder();
|
||
sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ")
|
||
.append(" TRUNC(CD.FECHORVTA) AS FECHORVTA, SUM(CD.PRECIO) AS TOTAL ")
|
||
.append("FROM TIPO_EVENTO_EXTRA TEE ")
|
||
.append("LEFT JOIN EVENTO_EXTRA EE ON TEE.TIPOEVENTOEXTRA_ID = EE.TIPOEVENTOEXTRA_ID ")
|
||
.append("LEFT JOIN CAJA_DIVERSOS CD ON EE.EVENTOEXTRA_ID = CD.EVENTOEXTRA_ID ")
|
||
.append("WHERE TEE.ACTIVO = 1 ")
|
||
.append("AND EE.EMPRESA_ID = ? ")
|
||
.append("AND TRUNC(CD.FECHORVTA) BETWEEN ? AND ? ")
|
||
.append("GROUP BY TEE.TIPOEVENTOEXTRA_ID, TEE.DESCTIPOEVENTO, TRUNC(CD.FECHORVTA) ")
|
||
.append("ORDER BY TRUNC(CD.FECHORVTA), TEE.DESCTIPOEVENTO ");
|
||
|
||
stmt = connection.prepareStatement(sQuery.toString());
|
||
stmt.setInt(1, empresaId);
|
||
stmt.setDate(2, new java.sql.Date(inicio.getTime()));
|
||
stmt.setDate(3, new java.sql.Date(fim.getTime()));
|
||
|
||
rset = stmt.executeQuery();
|
||
List<ImportacionNaoFiscalVO> importacionNaoFiscalVOs = new ArrayList<ImportacionNaoFiscalVO>();
|
||
while (rset.next()) {
|
||
ImportacionNaoFiscalVO importacionNaoFiscal = new ImportacionNaoFiscalVO();
|
||
importacionNaoFiscal.setTipoeventoextraId(rset.getInt("TIPOEVENTOEXTRAID"));
|
||
importacionNaoFiscal.setDesctipoevento(rset.getString("DESCTIPOEVENTO"));
|
||
importacionNaoFiscal.setFechorvta(rset.getDate("FECHORVTA"));
|
||
importacionNaoFiscal.setTotal(rset.getBigDecimal("TOTAL"));
|
||
|
||
importacionNaoFiscalVOs.add(importacionNaoFiscal);
|
||
}
|
||
|
||
return importacionNaoFiscalVOs;
|
||
|
||
}
|
||
}
|