julio 2017-07-20 17:50:10 +00:00
parent 0e6e2a079e
commit 62386d7235
1 changed files with 165 additions and 55 deletions

View File

@ -576,69 +576,175 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
}
private String sqlFiscaisECF(boolean isEstadoTodos, boolean isBoletoHist) {
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.datamov as dataEmissao, ");
sql.append(" r4.cpfcnpjcliente as cnpjCliente, ");
sql.append(" b.boleto_id as boletoId, ");
sql.append(" m.empresa_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(" r4.indcancelamento as indcancelamento ");
sql.append("SELECT numImpressora, ");
sql.append(" coo, ");
sql.append(" valorTotal, ");
sql.append(" dataEmissao, ");
sql.append(" cnpjCliente, ");
sql.append(" boletoId, ");
sql.append(" empresaId, ");
sql.append(" origenId, ");
sql.append(" origenUf, ");
sql.append(" destinoId, ");
sql.append(" destinoUf, ");
sql.append(" cnpjImpressora, ");
sql.append(" numpdv, ");
sql.append(" repTributado, ");
sql.append(" valorItem, ");
sql.append(" tipoPassagem, ");
sql.append(" numItem, ");
sql.append(" tipoPassagem, ");
sql.append(" numItem, ");
sql.append(" codProduto, ");
sql.append(" modeloImpressora, ");
sql.append(" numCaixa, ");
sql.append(" importetarifa, ");
sql.append(" importetaxaembarque, ");
sql.append(" importepedagio, ");
sql.append(" importeseguro, ");
sql.append(" claseServicio, ");
sql.append(" cnpjEcf, ");
sql.append(" impostoEstado, ");
sql.append(" status, ");
sql.append(" indcancelamento ");
sql.append(" ");
sql.append("FROM (SELECT r4.numserie20 AS numImpressora, ");
sql.append(" r4.coo AS coo, ");
sql.append(" r4.imptotalliquido AS valorTotal, ");
sql.append(" r4.datamov AS dataEmissao, ");
sql.append(" r4.cpfcnpjcliente AS cnpjCliente, ");
sql.append(" b.boleto_id AS boletoId, ");
sql.append(" m.empresa_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(" r4.indcancelamento AS indcancelamento ");
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(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 ");
sql.append(" AND r4.coo = r5.coo ");
sql.append(" AND r4.datamov = r5.datamov ");
sql.append(" AND r4.contador = r5.contador ");
sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
if (isBoletoHist)
sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id ");
else
sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id ");
sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_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 m.empresa_id = ? ");
// sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id and fi.numserie = b.serieimpfiscal ");
sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_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 ");
sql.append(" AND ase.ruta_id = b.ruta_id ");
sql.append(" AND ase.activo = 1 ");
sql.append(" 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 ");
sql.append(" 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 m.empresa_id = ? ");
sql.append(isEstadoTodos ? "" : " AND eo.estado_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(" ORDER BY r4.datamov, ");
sql.append(" r4.numserie20, ");
sql.append(" r4.coo, ");
sql.append(" r5.numitem ");
sql.append(" AND (r4.indcancelamento = 'N') ");
sql.append(" ");
sql.append(" union all ");
sql.append(" ");
sql.append(" SELECT r4.numserie20 AS numImpressora, ");
sql.append(" r4.coo AS coo, ");
sql.append(" r4.imptotalliquido AS valorTotal, ");
sql.append(" r4.datamov AS dataEmissao, ");
sql.append(" r4.cpfcnpjcliente AS cnpjCliente, ");
sql.append(" b.boleto_id AS boletoId, ");
sql.append(" m.empresa_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(" r4.indcancelamento AS indcancelamento ");
sql.append(" FROM fiscal_r4 r4 ");
sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 ");
sql.append(" AND r4.coo = r5.coo ");
sql.append(" AND r4.datamov = r5.datamov ");
sql.append(" AND r4.contador = r5.contador ");
sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
if (isBoletoHist)
sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id ");
else
sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id ");
// sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id ");
sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_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 ");
sql.append(" AND ase.ruta_id = b.ruta_id ");
sql.append(" AND ase.activo = 1 ");
sql.append(" 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 ");
sql.append(" 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 m.empresa_id = ? ");
sql.append(isEstadoTodos ? "" : " AND eo.estado_id = ? ");
sql.append(" and (r4.indcancelamento = 'S' ");
sql.append(" AND exists (SELECT r3.numserie20 ");
sql.append(" FROM fiscal_r3 r3 ");
sql.append(" WHERE r3.numserie20 = r4.numserie20 ");
sql.append(" AND r3.datamov = r4.datamov ");
sql.append(" AND r3.totparcial = 'Can-T'))) QY ");
sql.append("ORDER BY QY.dataEmissao, ");
sql.append(" QY.numImpressora, ");
sql.append(" QY.coo, ");
sql.append(" QY.numItem;");
return sql.toString();
}
@ -883,6 +989,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (!isEstadoTodos(estadoId))
stmt.setInt(4, estadoId);
stmt.setTimestamp(4, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime()));
stmt.setTimestamp(5, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime()));
stmt.setInt(6, empresaId);
List<ImportacionFiscalVO> list = new ArrayList<ImportacionFiscalVO>();
ImportacionFiscalVO fiscal = null;
String codProduto = null;