diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index d4691b1f3..a9a67b0cf 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -96,82 +96,88 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO StringBuilder sql = new StringBuilder(); sql.append("select distinct "); - sql.append(" r4.numserie20 as numImpressora, "); - sql.append(" coalesce(r4.coo, b.numfoliopreimpreso) as coo, "); - sql.append(" b.boleto_id as boletoId, "); - sql.append(" e.empresa_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.codibge as origenUf, "); - sql.append(" cd.codibge as destinoId, "); - sql.append(" ed.codibge 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(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as numImpressora, "); + sql.append(" (case when r4.caja_id is null then '000001' else r4.coo end) as coo, "); + sql.append(" r4.imptotalliquido as valorTotal, "); + sql.append(" to_char(b.feccreacion, 'yyyymmdd') as dataEmissao, "); + sql.append(" r4.cpfcnpjcliente as cnpjCliente, "); + sql.append(" b.caja_id as boletoId, "); + sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as origenId, "); + sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as origenUf, "); + sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as destinoId, "); + sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as destinoUf, "); + sql.append(" imp.numcnpj as cnpjImpressora, "); + sql.append(" imp.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(" imp.modelo as modeloImpressora, "); + sql.append(" b.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(imp.numcnpj, ' / - . ', ' ') as cnpjEcf, "); + sql.append(" coalesce(ei.icms, eos.icms) as impostoEstado, "); + sql.append(" case when b.indstatusboleto = 'V' or b.motivocancelacion_id is null THEN 'N' ELSE 'C' END status, "); + sql.append(" r4.indcancelamento AS indcancelamento "); + if (isBoletoHist) - sql.append("from boleto_hist b "); + sql.append("from caja_hist b "); else - sql.append("from boleto b "); + sql.append("from caja b "); - sql.append(" inner join marca m on m.marca_id = b.marca_id "); - sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); - 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(" 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 e.empresa_id = ? "); - sql.append(isEstadoTodos(estadoId) ? "" : " AND eo.estado_id = ? "); - sql.append(" AND b.tipoventa_id = 3 "); - sql.append(" AND (b.preciopagado > 0 OR b.importetaxaembarque > 0 OR b.importepedagio > 0) "); + sql.append(" left join fiscal_r4 r4 on r4.caja_id = b.caja_id "); + sql.append(" left join fiscal_r5 r5 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo and r4.datamov = r5.datamov and r4.contador = r5.contador "); + sql.append(" left join fiscal_impressora imp on imp.numserie = b.serieimpfiscal "); + sql.append(" left join fiscal_r2 r2 on r2.numserie20 = imp.numserie20 and r2.datamov = to_char(b.feccreacion, 'YYYYMMDD') "); + sql.append(" left join clase_servicio cs on cs.claseservicio_id = b.claseservicio_id "); + sql.append(" join marca m on b.marca_id = m.marca_id "); + sql.append(" join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" join aidf a on a.aidf_id = b.aidf_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id "); + sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); + sql.append(" join estado ee on ee.estado_id = ce.estado_id "); + sql.append(" join parada po on po.parada_id = b.origen_id "); + sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); + sql.append(" join estado eo on eo.estado_id = co.estado_id "); + sql.append(" join parada pd on pd.parada_id = b.destino_id "); + sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); + sql.append(" join estado ed on ed.estado_id = cd.estado_id "); + sql.append(" left join alias_servico s on s.origen_id = b.origen_id "); + sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); + sql.append(" and s.ruta_id = b.ruta_id "); + sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id "); + sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id "); + sql.append(" left join estado eos on eos.estado_id = cos.estado_id "); + sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id "); + sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id "); + sql.append(" left join estado eds on eds.estado_id = cds.estado_id "); + sql.append(" left join estado ae on ae.estado_id = a.estado_id "); + sql.append(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); + sql.append(" and ie.estado_id = coalesce(ae.estado_id, eos.estado_id) and ie.activo = 1 "); + sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); + sql.append(" join estado eie on eie.estado_id = cie.estado_id "); + sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id "); + sql.append(" and ei.estado_id = coalesce(ae.estado_id, eos.estado_id) and ei.activo = 1 "); + sql.append("where ((b.tipoventa_id = 3 and b.indstatusboleto = 'V' and b.indreimpresion = 0) "); + sql.append(" or (a.aidftipo_id = 2 and b.indstatusboleto = 'E')) "); + sql.append(" and (b.motivocancelacion_id is null or b.motivocancelacion_id <> 35) "); + sql.append(" and b.indcancelacion = 0 "); + sql.append(" and b.feccreacion >= to_date(:DATE_INICIO,'DD/MM/YYYY HH24:MI:SS') and b.feccreacion <= to_date(:DATE_FIM,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and b.empresacorrida_id = ? "); + sql.append(isEstadoTodos(estadoId) ? "" : " and coalesce(ae.estado_id, eos.estado_id) = ? "); sql.append("ORDER BY dataEmissao, coo, modeloImpressora "); List listManuais = new ArrayList(); stmt = connection.prepareStatement(sql.toString()); stmt.setFetchSize(100); - stmt.setTimestamp(1, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); - stmt.setTimestamp(2, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00"); + stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59"); stmt.setInt(3, empresaId); if (!isEstadoTodos(estadoId)) @@ -559,7 +565,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, cajb.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 caj.fechorventa BETWEEN :DATE_INICIO AND :DATE_FIM "); + sql.append(" WHERE caj.feccreacion >= to_date(:DATE_INICIO,'DD/MM/YYYY HH24:MI:SS') and caj.feccreacion <= to_date(:DATE_FIM,'DD/MM/YYYY HH24:MI:SS') "); sql.append(" and me.empresa_id = :EMPRESA_ID "); sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID "); sql.append(" and caj.motivocancelacion_id IN (31,32,10,37,99,36) "); @@ -576,172 +582,73 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO private String sqlFiscaisECF(boolean isEstadoTodos, boolean isBoletoHist) { StringBuilder sql = new StringBuilder(); - 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.codibge AS origenUf, "); - sql.append(" cd.codibge AS destinoId, "); - sql.append(" ed.codibge 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 "); + sql.append("select distinct "); + sql.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as numImpressora, "); + sql.append(" (case when r4.caja_id is null then '000001' else r4.coo end) as coo, "); + sql.append(" r4.imptotalliquido as valorTotal, "); + sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dataEmissao, "); + sql.append(" r4.cpfcnpjcliente as cnpjCliente, "); + sql.append(" c.caja_id as boletoId, "); + sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as origenId, "); + sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as origenUf, "); + sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as destinoId, "); + sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as destinoUf, "); + sql.append(" imp.numcnpj as cnpjImpressora, "); + sql.append(" imp.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(" imp.modelo as modeloImpressora, "); + sql.append(" c.usuario_id as numCaixa, "); + sql.append(" c.preciopagado as importetarifa, "); + sql.append(" c.importetaxaembarque as importetaxaembarque, "); + sql.append(" c.importepedagio as importepedagio, "); + sql.append(" c.importeseguro as importeseguro, "); + sql.append(" cs.descclase AS claseServicio, "); + sql.append(" translate(imp.numcnpj, ' / - . ', ' ') as cnpjEcf, "); + sql.append(" (case when s.aliasorigen_id is null then ei.icms else eis.icms end) as impostoEstado, "); + sql.append(" 'N' as status, "); + sql.append(" r4.indcancelamento AS indcancelamento "); if (isBoletoHist) - sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id "); + sql.append(" from caja_hist c "); 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 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 :STR_INICIO AND :STR_FIM "); - sql.append(" AND m.empresa_id = :EMPRESA_ID "); - sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID "); - 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.codibge AS origenUf, "); - sql.append(" cd.codibge AS destinoId, "); - sql.append(" ed.codibge 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 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 :STR_INICIO AND :STR_FIM "); - sql.append(" AND m.empresa_id = :EMPRESA_ID "); - sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :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"); - + sql.append(" from caja c "); + + sql.append(" join ruta r on r.ruta_id = c.ruta_id "); + sql.append(" join parada po on po.parada_id = c.origen_id "); + sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); + sql.append(" join estado eo on eo.estado_id = co.estado_id "); + sql.append(" join parada pd on pd.parada_id = c.destino_id "); + sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); + sql.append(" join estado ed on ed.estado_id = cd.estado_id "); + sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id "); + sql.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal "); + sql.append(" left join clase_servicio cs on cs.claseservicio_id = c.claseservicio_id "); + sql.append(" left join estado e on e.estado_id = imp.estadolocal_id "); + sql.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.ruta_id "); + sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id "); + sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id "); + sql.append(" left join estado eos on eos.estado_id = cos.estado_id "); + sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id "); + sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id "); + sql.append(" left join estado eds on eds.estado_id = cds.estado_id "); + sql.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id "); + sql.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id "); + sql.append(" left join fiscal_r5 r5 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo and r4.datamov = r5.datamov and r4.contador = r5.contador "); + sql.append(" left join fiscal_r2 r2 on r2.numserie20 = imp.numserie20 and r2.datamov = to_char(c.feccreacion, 'YYYYMMDD') "); + sql.append(" where c.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 "); + sql.append(" and coalesce(case when s.aliasorigen_id is null then ei.activo else eis.activo end, 0) = 1 "); + sql.append(" and c.serieimpfiscal is not null "); + sql.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1)) "); + sql.append(" and (coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0)) > 0 "); + sql.append(" and ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) > 0 "); + sql.append(" and c.feccreacion >= to_date(:DATE_INICIO,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= to_date(:DATE_FIM,'DD/MM/YYYY HH24:MI:SS') "); + sql.append(" and c.empresacorrida_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " and ((case when s.aliasorigen_id is null then eo.estado_id else eos.estado_id end) = :ESTADO_ID )"); + sql.append("order by dataEmissao, numImpressora, coo, numItem"); return sql.toString(); } @@ -952,7 +859,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection, boolean isBoletoHist) throws SQLException { if (isNormal) { - return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECF(isEstadoTodos(estadoId), isBoletoHist), false); + return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECF(isEstadoTodos(estadoId), isBoletoHist), true); } else if (isCancelados) { return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFCancelados(isEstadoTodos(estadoId), isBoletoHist), true); @@ -979,8 +886,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO stmt.setInt("EMPRESA_ID", empresaId); if (isDate) { - stmt.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); - stmt.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + stmt.setString("DATE_INICIO", DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00"); + stmt.setString("DATE_FIM", DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59"); } else { stmt.setString("STR_INICIO", DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); stmt.setString("STR_FIM", DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); @@ -3026,6 +2933,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } @Override + @Deprecated public List buscarRegistroRMDSeqTipoBPS(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List listaBPS = new ArrayList(); @@ -3504,7 +3412,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO PreparedStatement pstmt = null; try { sb.append(" update caja set rmd_id = ").append(rmdId).append(", "); - sb.append(" foliormd = ").append(folio).append(", "); + sb.append(" foliormd = ").append(folio).append(" "); sb.append(" where caja_id in ( ").append(bs).append(" ) "); pstmt = connection.prepareStatement(sb.toString()); pstmt.executeUpdate(); @@ -3818,11 +3726,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" join estado eie on eie.estado_id = cie.estado_id "); sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id "); sql.append(" and ei.estado_id = coalesce(ae.estado_id, eos.estado_id) and ei.activo = 1 "); - sql.append("where b.tipoventa_id = 3 "); + sql.append("where ((b.tipoventa_id = 3 and b.indstatusboleto = 'V' and b.indreimpresion = 0) "); + sql.append(" or (a.aidftipo_id = 2 and b.indstatusboleto = 'E')) "); sql.append(" and (b.motivocancelacion_id is null or b.motivocancelacion_id <> 35) "); sql.append(" and b.indcancelacion = 0 "); - sql.append(" and b.preciopagado > 0 "); - sql.append(" and b.indstatusboleto = 'V' and b.indreimpresion = 0 "); sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); sql.append(" and coalesce(ae.cveestado, eos.cveestado) = :CVEESTADO ");