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
master
gleimar 2014-09-12 20:17:00 +00:00
parent 98938d3130
commit 0b2b7e507c
4 changed files with 153 additions and 0 deletions

View File

@ -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<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte);
}

View File

@ -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<String,String> implements FiscalDAO {
@Autowired
public FiscalHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
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 ");
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<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);
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<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
int gerarRegistroP2 = this.gerarRegistroP2(lsEsquemaCorrida, dataDe, dataAte);
int gerarRegistroF2 = this.gerarRegistroF2(lsEsquemaCorrida, dataDe, dataAte);
return gerarRegistroP2+gerarRegistroF2;
}
}

View File

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

View File

@ -16,4 +16,7 @@ public class UtileriasFiscal {
return codProduto;
}
public static void main(String args[]){
System.out.println(defineCodigoProduto(5410, 3603, 1));
}
}