From 0b2b7e507cbee8813b2664fe05332810df541ab0 Mon Sep 17 00:00:00 2001 From: gleimar Date: Fri, 12 Sep 2014 20:17:00 +0000 Subject: [PATCH] gerar p2 e f2 [bug#5610] git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@37946 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/FiscalDAO.java | 12 ++ .../dao/hibernate/FiscalHibernateDAO.java | 134 ++++++++++++++++++ .../utilerias/ApplicationProperties.java | 4 + .../utilerias/UtileriasFiscal.java | 3 + 4 files changed, 153 insertions(+) create mode 100644 src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java create mode 100644 src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java diff --git a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java new file mode 100644 index 000000000..b16fe4c98 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java @@ -0,0 +1,12 @@ +package com.rjconsultores.ventaboletos.dao; + +import java.util.Date; +import java.util.List; + +import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; + +public interface FiscalDAO { + + public int gerarRegistroP2_F2(List lsEsquemaCorrida, Date dataDe, Date dataAte); + +} diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java new file mode 100644 index 000000000..5f9ea74e0 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -0,0 +1,134 @@ +package com.rjconsultores.ventaboletos.dao.hibernate; + +import java.util.Date; +import java.util.List; + +import org.hibernate.Query; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import com.rjconsultores.ventaboletos.dao.FiscalDAO; +import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; + +@Repository("fiscalDAO") +public class FiscalHibernateDAO extends GenericHibernateDAO implements FiscalDAO { + + @Autowired + public FiscalHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { + setSessionFactory(factory); + } + + + private int gerarRegistroP2(List 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 "); + + + 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(); + } + + private Integer[] getIdsCorrida(List 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 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); + + 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(); + } + + + @Override + @Transactional + public int gerarRegistroP2_F2(List lsEsquemaCorrida, Date dataDe, Date dataAte) { + int gerarRegistroP2 = this.gerarRegistroP2(lsEsquemaCorrida, dataDe, dataAte); + int gerarRegistroF2 = this.gerarRegistroF2(lsEsquemaCorrida, dataDe, dataAte); + return gerarRegistroP2+gerarRegistroF2; + } +} diff --git a/src/com/rjconsultores/ventaboletos/utilerias/ApplicationProperties.java b/src/com/rjconsultores/ventaboletos/utilerias/ApplicationProperties.java index b746fe1cb..deca2381f 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/ApplicationProperties.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/ApplicationProperties.java @@ -127,5 +127,9 @@ public class ApplicationProperties { String property = p.getProperty("contrasena.validaComplejidad", "0"); return property.equals("1"); } + public boolean pafActivo() { + String property = p.getProperty("paf.activo", "0"); + return property.equals("1"); + } } diff --git a/src/com/rjconsultores/ventaboletos/utilerias/UtileriasFiscal.java b/src/com/rjconsultores/ventaboletos/utilerias/UtileriasFiscal.java index 667e36471..2ffa44b52 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/UtileriasFiscal.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/UtileriasFiscal.java @@ -16,4 +16,7 @@ public class UtileriasFiscal { return codProduto; } + public static void main(String args[]){ + System.out.println(defineCodigoProduto(5410, 3603, 1)); + } } \ No newline at end of file