package com.rjconsultores.ventaboletos.dao.sqlbuilder.impl; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.constantes.TipoSeguro; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.dao.util.DBUtil; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.enums.TipoFormapago; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.utilerias.CustomEnum; public class SQLBuilderOracle implements SQLBuilder { private static final Integer SELECAO_TODOS = -1; private static final Integer HORAS_NO_DIA = Integer.valueOf(24); private static final Integer RED_PAGO_FORMAPAGO_ID = Integer.valueOf(95); private static final String RED_PAGO_EMISSOR_TARJETA = "RDP"; private static final String RED_PAGO_FORMA_PAGO = "CR"; private static final Integer DER_PR = 2; @Override public String getSQLGerarTabelaZerada(final Integer codRuta, final Integer usuarioId,final Integer orgaoConcedenteId, final List idsEmpresas){ StringBuilder sb = new StringBuilder(); sb.append("INSERT "); sb.append("INTO "); sb.append(" TARIFA_OFICIAL "); sb.append(" ( "); sb.append(" TARIFAOFICIAL_ID, "); sb.append(" PRECIO, "); sb.append(" PRECIOORIGINAL, "); sb.append(" TRAMO_ID, "); sb.append(" MARCA_ID, "); sb.append(" CLASESERVICIO_ID, "); sb.append(" PRECIOREDABIERTO, "); sb.append(" MONEDA_ID, "); sb.append(" VIGENCIATARIFA_ID, "); sb.append(" STATUSTARIFA, "); sb.append(" IMPORTETAXAEMBARQUE, "); sb.append(" IMPORTEPEDAGIO, "); sb.append(" IMPORTEOUTROS, "); sb.append(" IMPORTESEGURO, "); sb.append(" ORGAOCONCEDENTE_ID, "); sb.append(" RUTA_ID, "); sb.append(" ACTIVO, "); sb.append(" FECMODIF, "); sb.append(" USUARIO_ID, "); sb.append(" ORIGEN_ID, "); sb.append(" DESTINO_ID "); sb.append(" ) "); sb.append(" select "); sb.append(" "); sb.append(" TARIFA_OFICIAL_SEQ.NEXTVAL, "); sb.append(" 0, "); sb.append(" 0, "); sb.append(" t.tramo_id, "); sb.append(" mc.marca_id, "); sb.append(" r.CLASESERVICIO_ID, "); sb.append(" null, "); sb.append(" m.moneda_id, "); sb.append(" null, "); sb.append(" 'A', "); sb.append(" null, "); sb.append(" null, "); sb.append(" null, "); sb.append(" null, "); sb.append(" oc.orgaoconcedente_id, "); sb.append(" r.ruta_id, "); sb.append(" 1, "); sb.append(" ").append(DBUtil.getInstance().dbSysdate()).append(", "); sb.append(" ").append(usuarioId).append(", "); sb.append(" po.parada_id, "); sb.append(" pd.parada_id "); sb.append(" "); 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 ruta_empresa re on r.ruta_id = re.ruta_id "); sb.append(" inner join marca ma on ma.empresa_id = re.empresa_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 ciudad c on c.ciudad_id = po.ciudad_id "); sb.append(" inner join estado e on e.estado_id = c.estado_id "); sb.append(" inner join MARCA_CLASESERVICIO mc on "); sb.append(" mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id, "); sb.append(" moneda m "); sb.append(" "); sb.append("where "); sb.append(" rc.activo = 1 "); if (codRuta != null) { sb.append(" and r.ruta_id = ").append(codRuta); } sb.append(" and r.activo = 1 "); sb.append(" and mc.marca_id <> -1 "); sb.append(" and mc.activo = 1 "); sb.append(" and re.activo = 1 "); if (idsEmpresas != null) { sb.append(" and re.empresa_id in ( ").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1)).append(" ) "); } sb.append(" and m.moneda_id = 1 "); if (orgaoConcedenteId != null) { sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedenteId); } sb.append(" and "); sb.append(" (t.tramo_id, "); sb.append(" mc.marca_id, "); sb.append(" r.CLASESERVICIO_ID, "); sb.append(" m.moneda_id, "); sb.append(" oc.orgaoconcedente_id, r.ruta_id) "); sb.append(" not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID, "); sb.append(" tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id "); sb.append(" from tarifa_oficial tao where tao.activo = 1) "); return sb.toString(); } @Override public String getSQLGerarTarifaOficialArtesp(final Integer codRuta, final Integer usuarioId, final Integer orgaoConcedenteId, final List idsEmpresas) { StringBuilder sb = new StringBuilder(); sb.append(" INSERT "); sb.append(" INTO "); sb.append(" TARIFA_OFICIAL "); sb.append(" ( "); sb.append(" TARIFAOFICIAL_ID, "); sb.append(" PRECIO, "); sb.append(" PRECIOORIGINAL, "); sb.append(" TRAMO_ID, "); sb.append(" MARCA_ID, "); sb.append(" CLASESERVICIO_ID, "); sb.append(" PRECIOREDABIERTO, "); sb.append(" MONEDA_ID, "); sb.append(" VIGENCIATARIFA_ID, "); sb.append(" STATUSTARIFA, "); sb.append(" IMPORTETAXAEMBARQUE, "); sb.append(" IMPORTEPEDAGIO, "); sb.append(" IMPORTEOUTROS, "); sb.append(" IMPORTESEGURO, "); sb.append(" ORGAOCONCEDENTE_ID, "); sb.append(" RUTA_ID, "); sb.append(" ACTIVO, "); sb.append(" FECMODIF, "); sb.append(" USUARIO_ID, "); sb.append(" ORIGEN_ID, "); sb.append(" DESTINO_ID "); sb.append(" ) "); sb.append(" select "); sb.append(" "); sb.append(" TARIFA_OFICIAL_SEQ.NEXTVAL, "); sb.append(" ROUND( "); sb.append(" ("); sb.append(" "); sb.append(" case ( coalesce((select min( tkm.valortaxa ) from Tarifa_km tkm where tkm.kmate >= t.cantkmreal and r.CLASESERVICIO_ID = tkm.CLASESERVICIO_ID and tkm.activo = 1) , 0 )) when 0 then"); sb.append(" (select max( tkm.valortaxa ) from Tarifa_km tkm where tkm.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tkm.activo = 1)"); sb.append(" else"); sb.append(" (select min( tkm.valortaxa ) from Tarifa_km tkm where tkm.kmate >= t.cantkmreal and r.CLASESERVICIO_ID = tkm.CLASESERVICIO_ID and tkm.activo = 1) end"); sb.append(" ) "); sb.append(" ,2), "); sb.append(" ROUND( "); sb.append(" ("); sb.append(" "); sb.append(" case ( coalesce((select min( tkm.valortaxa ) from Tarifa_km tkm where tkm.kmate >= t.cantkmreal and r.CLASESERVICIO_ID = tkm.CLASESERVICIO_ID and tkm.activo = 1) , 0 )) when 0 then"); sb.append(" (select max( tkm.valortaxa ) from Tarifa_km tkm where tkm.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tkm.activo = 1)"); sb.append(" else"); sb.append(" (select min( tkm.valortaxa ) from Tarifa_km tkm where tkm.kmate >= t.cantkmreal and r.CLASESERVICIO_ID = tkm.CLASESERVICIO_ID and tkm.activo = 1) end"); sb.append(" ) "); sb.append(" ,2), "); sb.append(" t.tramo_id, "); sb.append(" mc.marca_id, "); sb.append(" r.CLASESERVICIO_ID, "); sb.append(" null, "); sb.append(" m.moneda_id, "); sb.append(" null, "); sb.append(" 'A', "); sb.append(" null, "); sb.append(" null, "); sb.append(" null, "); sb.append(" null, "); sb.append(" oc.orgaoconcedente_id, "); sb.append(" r.ruta_id, "); sb.append(" 1, "); sb.append(" ").append(DBUtil.getInstance().dbSysdate()).append(", "); sb.append(" ").append(usuarioId).append(", "); sb.append(" po.parada_id, "); sb.append(" pd.parada_id "); sb.append(" "); 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 ruta_empresa re on r.ruta_id = re.ruta_id "); sb.append(" inner join marca ma on ma.empresa_id = re.empresa_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 and t.activo =1");//adicionei isso t.activo =1"); 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 ciudad c on c.ciudad_id = po.ciudad_id "); sb.append(" inner join estado e on e.estado_id = c.estado_id "); sb.append(" inner join MARCA_CLASESERVICIO mc on "); sb.append(" mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id, "); sb.append(" moneda m "); sb.append(" "); sb.append("where "); sb.append(" rc.activo = 1 "); if (codRuta != null) { sb.append(" and r.ruta_id = ").append(codRuta); } sb.append(" and r.activo = 1 "); sb.append(" and mc.marca_id <> -1 "); sb.append(" and mc.activo = 1 "); sb.append(" and re.activo = 1 "); sb.append(" and r.orgaoconcedente_id = 21 "); if (idsEmpresas != null) { sb.append(" and re.empresa_id in ( ").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1)).append(" ) "); } sb.append(" and m.moneda_id = 1 "); if (orgaoConcedenteId != null) { sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedenteId); } sb.append(" and "); sb.append(" (t.tramo_id, "); sb.append(" mc.marca_id, "); sb.append(" r.CLASESERVICIO_ID, "); sb.append(" m.moneda_id, "); sb.append(" oc.orgaoconcedente_id, r.ruta_id) "); sb.append(" not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID, "); sb.append(" tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id "); sb.append(" from tarifa_oficial tao where tao.activo = 1) "); return sb.toString(); } @Override public String getSQLGerarTarifaOficial(final Integer codRuta, final Integer usuarioId, final OrgaoConcedente orgaoConcedente, final List idsEmpresas) { StringBuilder sb = new StringBuilder(); sb.append(" INSERT "); sb.append(" INTO "); sb.append(" TARIFA_OFICIAL "); sb.append(" ( "); sb.append(" TARIFAOFICIAL_ID, "); sb.append(" PRECIO, "); sb.append(" PRECIOORIGINAL, "); sb.append(" TRAMO_ID, "); sb.append(" MARCA_ID, "); sb.append(" CLASESERVICIO_ID, "); sb.append(" PRECIOREDABIERTO, "); sb.append(" MONEDA_ID, "); sb.append(" VIGENCIATARIFA_ID, "); sb.append(" STATUSTARIFA, "); sb.append(" IMPORTETAXAEMBARQUE, "); sb.append(" IMPORTEPEDAGIO, "); sb.append(" IMPORTEOUTROS, "); sb.append(" IMPORTESEGURO, "); sb.append(" ORGAOCONCEDENTE_ID, "); sb.append(" RUTA_ID, "); sb.append(" ACTIVO, "); sb.append(" FECMODIF, "); sb.append(" USUARIO_ID, "); sb.append(" ORIGEN_ID, "); sb.append(" DESTINO_ID "); sb.append(" ) "); sb.append(" select "); sb.append(" "); sb.append(" TARIFA_OFICIAL_SEQ.NEXTVAL, "); //>> SE ORGAO FOR DER-PR E SE O COEFICIENTE DA CLASSE NAO ESTA NULL sb.append(" CASE R.ORGAOCONCEDENTE_ID WHEN "+DER_PR+" THEN CASE WHEN cl.COEFICIENTETARIFA IS NOT NULL THEN " ); sb.append(" trunc(((coalesce(ct1.coeficiente,0) + oc.coeficientetarifa / ((POWER(COALESCE(tc.kmcoeficiente1,0) + 350,0.27)*16160 )) ) * COALESCE(tc.kmcoeficiente1,0)) * cl.COEFICIENTETARIFA " ); sb.append(" + ((coalesce(ct2.coeficiente,0) + oc.coeficientetarifa / ((POWER(COALESCE(tc.kmcoeficiente2,0) + 350,0.27)*13470 )) ) * COALESCE(tc.kmcoeficiente2,0)) * cl.COEFICIENTETARIFA,2) " ); sb.append(" ELSE " ); //< COEFICIENTE DA CLASSE ESTA NULL sb.append(" ROUND( "); sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + "); sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + "); sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * "); if (orgaoConcedente != null && orgaoConcedente.getIndUtilizaICMS() != null && orgaoConcedente.getIndUtilizaICMS()) { sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2) "); } else { sb.append(" 1, 2 ) "); } // sb.append(" end else " ); //< ORGAO NAO EH DER-PR sb.append(" ROUND( "); sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + "); sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + "); sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * "); if (orgaoConcedente != null && orgaoConcedente.getIndUtilizaICMS() != null && orgaoConcedente.getIndUtilizaICMS()) { sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2) "); } else { sb.append(" 1, 2 ) "); } sb.append(" end , " ); // //>> SE ORGAO FOR DER-PR E SE O COEFICIENTE DA CLASSE NAO ESTA NULL sb.append(" CASE R.ORGAOCONCEDENTE_ID WHEN "+DER_PR+" THEN CASE WHEN cl.COEFICIENTETARIFA IS NOT NULL THEN " ); sb.append(" trunc(((coalesce(ct1.coeficiente,0) + oc.coeficientetarifa / ((POWER(COALESCE(tc.kmcoeficiente1,0) + 350,0.27)*16160 )) ) * COALESCE(tc.kmcoeficiente1,0)) * cl.COEFICIENTETARIFA " ); sb.append(" + ((coalesce(ct2.coeficiente,0) + oc.coeficientetarifa / ((POWER(COALESCE(tc.kmcoeficiente2,0) + 350,0.27)*13470 )) ) * COALESCE(tc.kmcoeficiente2,0)) * cl.COEFICIENTETARIFA,2) " ); sb.append(" ELSE " ); //< COEFICIENTE DA CLASSE ESTA NULL sb.append(" ROUND( "); sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + "); sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + "); sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * "); if (orgaoConcedente != null && orgaoConcedente.getIndUtilizaICMS() != null && orgaoConcedente.getIndUtilizaICMS()) { sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2) "); } else { sb.append(" 1, 2 ) "); } // sb.append(" end else " ); //< ORGAO NAO EH DER-PR sb.append(" ROUND( "); sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + "); sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + "); sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * "); if (orgaoConcedente != null && orgaoConcedente.getIndUtilizaICMS() != null && orgaoConcedente.getIndUtilizaICMS()) { sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2) "); } else { sb.append(" 1, 2 ) "); } sb.append(" end , " ); // sb.append(" t.tramo_id, "); sb.append(" mc.marca_id, "); sb.append(" r.CLASESERVICIO_ID, "); sb.append(" null, "); sb.append(" m.moneda_id, "); sb.append(" null, "); sb.append(" 'A', "); sb.append(" null, "); sb.append(" null, "); sb.append(" null, "); sb.append(" null, "); sb.append(" oc.orgaoconcedente_id, "); sb.append(" r.ruta_id, "); sb.append(" 1, "); sb.append(" ").append(DBUtil.getInstance().dbSysdate()).append(", "); sb.append(" ").append(usuarioId).append(", "); sb.append(" po.parada_id, "); sb.append(" pd.parada_id "); sb.append(" "); 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 ruta_empresa re on r.ruta_id = re.ruta_id "); sb.append(" inner join marca ma on ma.empresa_id = re.empresa_id "); sb.append(" inner join orgao_tramo tc on tc.tramo_id = rc.tramo_id "); sb.append(" and tc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tc.activo =1 "); sb.append(" inner join orgao_concedente oc on "); sb.append(" oc.orgaoconcedente_id = tc.orgaoconcedente_id "); sb.append(" and oc.orgaoconcedente_id =r.orgaoconcedente_id "); sb.append(" inner join coeficiente_tarifa ct1 on ct1.coeficientetarifa_id = tc.coeficientetarifa1_id "); sb.append(" left join coeficiente_tarifa ct2 on ct2.coeficientetarifa_id = tc.coeficientetarifa2_id "); sb.append(" left join coeficiente_tarifa ct3 on ct3.coeficientetarifa_id = tc.coeficientetarifa3_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 ciudad c on c.ciudad_id = po.ciudad_id "); sb.append(" inner join estado e on e.estado_id = c.estado_id "); sb.append(" inner join MARCA_CLASESERVICIO mc on "); sb.append(" mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id "); sb.append(" inner join CLASE_SERVICIO cl on cl.claseservicio_id = r.CLASESERVICIO_ID, "); sb.append(" moneda m "); sb.append(" "); sb.append("where "); sb.append(" rc.activo = 1 "); if (codRuta != null) { sb.append(" and r.ruta_id = ").append(codRuta); } sb.append(" and r.activo = 1 "); sb.append(" and tc.activo = 1 "); sb.append(" and mc.marca_id <> -1 "); sb.append(" and mc.activo = 1 "); sb.append(" and re.activo = 1 "); sb.append(" and r.orgaoconcedente_id <> 21 "); if(ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.CRIAR_TARIFA_APENAS_TRECHO_VENDIDO.getDescricao())){ sb.append(" and rc.indventa = 1 "); } if (idsEmpresas != null) { sb.append(" and re.empresa_id in ( ").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1)).append(" ) "); } sb.append(" and m.moneda_id = 1 "); if (orgaoConcedente != null && orgaoConcedente.getOrgaoConcedenteId() != null && orgaoConcedente.getOrgaoConcedenteId() != SELECAO_TODOS) { sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedente.getOrgaoConcedenteId()); } sb.append(" and "); sb.append(" (t.tramo_id, "); sb.append(" mc.marca_id, "); sb.append(" r.CLASESERVICIO_ID, "); sb.append(" m.moneda_id, "); sb.append(" oc.orgaoconcedente_id, r.ruta_id) "); sb.append(" not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID, "); sb.append(" tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id "); sb.append(" from tarifa_oficial tao where tao.activo = 1) "); return sb.toString(); } @Override public String getSQLAtualizarTarifaOficial(final Integer rutaId, final Integer usuarioId, final OrgaoConcedente orgaoConcedente) { StringBuilder sb = new StringBuilder(""); sb.append("UPDATE TARIFA_OFICIAL SET PRECIO = "); sb.append("( "); sb.append("select "); sb.append(" "); sb.append(" ROUND( "); sb.append(" (coalesce(ct1.coeficiente,0) * coalesce(tc.kmcoeficiente1,0) + "); sb.append(" coalesce(ct2.coeficiente,0) * coalesce(tc.kmcoeficiente2,0) + "); sb.append(" coalesce(ct3.coeficiente,0) * coalesce(tc.kmcoeficiente3,0)) * "); sb.append(" case when e.icms is null then 1 else (1/(1-e.icms/100)) end ,2)"); sb.append(" "); 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_tramo tc on "); sb.append(" tc.tramo_id = rc.tramo_id and tc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and tc.activo =1 "); sb.append(" inner join orgao_concedente oc on "); sb.append(" oc.orgaoconcedente_id = tc.orgaoconcedente_id "); sb.append(" and oc.orgaoconcedente_id =r.orgaoconcedente_id "); sb.append(" inner join coeficiente_tarifa ct1 on ct1.coeficientetarifa_id = tc.coeficientetarifa1_id "); sb.append(" left join coeficiente_tarifa ct2 on ct2.coeficientetarifa_id = tc.coeficientetarifa2_id "); sb.append(" left join coeficiente_tarifa ct3 on ct3.coeficientetarifa_id = tc.coeficientetarifa3_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 ciudad c on c.ciudad_id = po.ciudad_id "); sb.append(" inner join estado e on e.estado_id = c.estado_id "); sb.append(" inner join MARCA_CLASESERVICIO mc on mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID, "); sb.append(" moneda m "); sb.append(" "); sb.append("where "); sb.append(" rc.activo = 1 "); sb.append(" and r.activo = 1 "); sb.append(" and mc.marca_id <> -1 "); sb.append(" and tc.activo = 1 "); sb.append(" and m.moneda_id = 1 "); if (orgaoConcedente != null && orgaoConcedente.getOrgaoConcedenteId() != null) { sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedente.getOrgaoConcedenteId()); } sb.append(" and t.tramo_id = TARIFA_OFICIAL.tramo_id "); sb.append(" and mc.marca_id = TARIFA_OFICIAL.marca_id "); sb.append(" and r.CLASESERVICIO_ID = TARIFA_OFICIAL.CLASESERVICIO_ID "); sb.append(" and m.moneda_id = TARIFA_OFICIAL.moneda_id "); sb.append(" and oc.orgaoconcedente_id = TARIFA_OFICIAL.orgaoconcedente_id "); sb.append(" and r.ruta_id = TARIFA_OFICIAL.ruta_id "); sb.append(") "); sb.append(" "); sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = ").append(DBUtil.getInstance().dbSysdate()).append(" "); sb.append(" "); sb.append("where "); sb.append(" activo = 1 "); if (rutaId != null) { sb.append(" and ruta_id = ").append(rutaId); } if (orgaoConcedente != null && orgaoConcedente.getOrgaoConcedenteId() != null) { sb.append(" and orgaoconcedente_id = ").append(orgaoConcedente.getOrgaoConcedenteId()); } return sb.toString(); } @Override public String getAtualizarTaxaEmbarquePorKmParada(final Integer rutaId, final Integer usuarioId,final Integer orgaoConcedenteId, List idsEmpresas) { StringBuilder sb = new StringBuilder(""); sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = "); sb.append("( "); sb.append("select "); sb.append(" tepKm.valorTaxa "); sb.append(" "); sb.append(" "); sb.append("from "); sb.append(" tarifa_oficial tao "); sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id "); sb.append(" inner join TAXA_EMBARQUE_PARADA tepKm on "); sb.append(" tepKm.parada_id = t.origen_id and tepKm.KMATE >= "); sb.append(" t.CANTKMREAL and tepKm.activo = 1 and tepKm.indtipo = 'K' and tepKm.empresa_id in (-1, ").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1)).append(" ) "); sb.append(" inner join marca m on m.marca_id = tao.marca_id "); sb.append("where "); sb.append(" tepKm.kmate= "); sb.append(" (select min(tepKm1.KMATE) "); sb.append(" from "); sb.append(" TAXA_EMBARQUE_PARADA tepKm1 "); sb.append(" where "); sb.append(" tepKm1.parada_id = t.origen_id and tepKm1.KMATE >= t.CANTKMREAL and tepKm1.activo = 1 and tepKm1.orgaoconcedente_id = tao.orgaoconcedente_id and tepKm1.empresa_id in (-1, ").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length() - 1)).append(" ) "); sb.append(" ) "); sb.append(" and tao.marca_id = tarifa_oficial.marca_id "); sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id "); sb.append(" and tao.orgaoconcedente_id = tepKm.orgaoconcedente_id "); sb.append(" and tao.claseservicio_id=tarifa_oficial.claseservicio_id "); sb.append(" and tao.moneda_id = tarifa_oficial.moneda_id "); sb.append(" and tao.ruta_id = tarifa_oficial.ruta_id "); sb.append(" and tao.tramo_id = tarifa_oficial.tramo_id "); sb.append(" and tepKm.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id "); if (idsEmpresas != null) { sb.append(" and m.empresa_id in (-1,").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1)).append(" ) "); } sb.append(") "); sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = ").append(DBUtil.getInstance().dbSysdate()).append(" "); sb.append(" "); sb.append("where "); sb.append(" tarifa_oficial.activo = 1 "); if (rutaId != null) { sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId); } if (orgaoConcedenteId != null) { sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId); } return sb.toString(); } @Override public String getSQLAtualizarTaxaEmbarquePorKmOrgao(final Integer rutaId, final Integer usuarioId,final Integer orgaoConcedenteId, List idsEmpresas) { StringBuilder sb = new StringBuilder(""); sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = "); sb.append("coalesce( "); sb.append("( "); sb.append("select "); sb.append(" tek.valorTaxa "); sb.append(" "); sb.append("from "); sb.append(" tarifa_oficial tao "); sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id "); sb.append(" inner join taxa_embarque_km tek on "); sb.append(" tek.orgaoconcedente_id = tao.ORGAOCONCEDENTE_ID "); sb.append(" and tek.activo = 1 and t.CANTKMREAL <= tek.kmate "); sb.append(" inner join marca m on tao.marca_id = m.marca_id "); sb.append("where "); sb.append(" tek.kmate= "); sb.append(" (select min(tek1.KMATE) "); sb.append(" from "); sb.append(" taxa_embarque_km tek1 "); sb.append(" where "); sb.append(" tek1.orgaoconcedente_id = tao.ORGAOCONCEDENTE_ID "); sb.append(" and t.CANTKMREAL <= tek1.kmate and tek1.activo = 1 "); sb.append(" ) "); sb.append(" "); sb.append(" and tao.marca_id = tarifa_oficial.marca_id "); sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id "); sb.append(" and tao.orgaoconcedente_id = tek.orgaoconcedente_id "); sb.append(" and tao.claseservicio_id=tarifa_oficial.claseservicio_id "); sb.append(" and tao.moneda_id = tarifa_oficial.moneda_id "); sb.append(" and tao.ruta_id = tarifa_oficial.ruta_id "); sb.append(" and tao.tramo_id = tarifa_oficial.tramo_id "); if (idsEmpresas != null) { sb.append(" and m.empresa_id in ( ").append(idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1)).append(" ) "); } sb.append("),IMPORTETAXAEMBARQUE) "); sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = ").append(DBUtil.getInstance().dbSysdate()).append(" "); sb.append(" "); sb.append("where "); sb.append(" tarifa_oficial.activo = 1 "); if (rutaId != null) { sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId); } if (orgaoConcedenteId != null) { sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId); } return sb.toString(); } @Override public String getSQLAtualizarTaxaEmbarquePorParadaFixo(final Integer rutaId, final Integer usuarioId,final Integer orgaoConcedenteId, List idsEmpresas) { StringBuilder sb = new StringBuilder(""); sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = "); sb.append("coalesce( "); sb.append("( "); sb.append("select "); sb.append(" tepFixo.valorTaxa "); sb.append(" "); sb.append("from "); sb.append(" tarifa_oficial tao "); sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id "); sb.append(" inner join TAXA_EMBARQUE_PARADA tepFixo on "); sb.append(" tepFixo.parada_id = t.origen_id and tepFixo.empresa_id in ("+obtemEmpresas(idsEmpresas)+" ) "); sb.append(" and tepFixo.indtipo = 'F' and tepFixo.activo = 1 "); sb.append(" inner join marca m on m.marca_id = tao.marca_id "); sb.append("where "); sb.append(" tao.marca_id = tarifa_oficial.marca_id "); sb.append(" and (tao.orgaoconcedente_id = tepFixo.orgaoconcedente_id or tepFixo.orgaoconcedente_id in (-1, ").append(orgaoConcedenteId).append(")) "); sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id "); sb.append(" and tao.claseservicio_id=tarifa_oficial.claseservicio_id "); sb.append(" and tao.moneda_id = tarifa_oficial.moneda_id "); sb.append(" and tao.ruta_id = tarifa_oficial.ruta_id "); sb.append(" and tao.tramo_id = tarifa_oficial.tramo_id "); sb.append(" and m.empresa_id in ("+obtemEmpresas(idsEmpresas)+" ) and tao.activo = 1 "); sb.append("),IMPORTETAXAEMBARQUE) "); sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = ").append(DBUtil.getInstance().dbSysdate()).append(" "); sb.append(" "); sb.append("where "); sb.append(" tarifa_oficial.activo = 1 "); if (rutaId != null) { sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId); } if (orgaoConcedenteId != null) { sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId); } sb.append(" and tarifa_oficial.MARCA_ID in (" +obtemEmpresas(idsEmpresas)+ " ) "); return sb.toString(); } private String obtemEmpresas(List idsEmpresas) { if (idsEmpresas == null || idsEmpresas.contains(SELECAO_TODOS)) { return Integer.toString(SELECAO_TODOS); } return idsEmpresas.toString().substring(1, idsEmpresas.toString().length()-1); } @Override public String getSQLAtualizarSeguroPorKm(final Integer rutaId, final Integer usuarioId, final Integer orgaoConcedenteId, TipoSeguro tipoSeguro) { StringBuilder sb = new StringBuilder(""); if (tipoSeguro.equals(TipoSeguro.SEGURO)) { sb.append("update tarifa_oficial set IMPORTESEGURO = "); } else { sb.append("update tarifa_oficial set IMPORTETPP = "); } sb.append("( "); sb.append("select "); sb.append(" sk.VALORTAXA "); sb.append("from "); sb.append(" tarifa_oficial tao "); sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id "); sb.append(" inner join seguro_km sk on "); sb.append(" sk.KMATE >= t.CANTKMREAL and sk.activo = 1 "); sb.append(" and tao.ORGAOCONCEDENTE_ID = sk.ORGAOCONCEDENTE_ID "); sb.append("where "); sb.append(" sk.tipo_seguro = '").append(tipoSeguro).append("' and "); sb.append(" sk.kmate= "); sb.append(" (select min(sk1.KMATE) "); sb.append(" from "); sb.append(" seguro_km sk1 "); sb.append(" where "); sb.append(" sk1.KMATE >= t.CANTKMREAL and sk1.activo = 1 "); sb.append(" and sk1.tipo_seguro = '").append(tipoSeguro).append("' "); sb.append(" and tao.ORGAOCONCEDENTE_ID = sk1.ORGAOCONCEDENTE_ID "); sb.append(" ) "); sb.append(" and tao.marca_id = tarifa_oficial.marca_id "); sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id "); sb.append(" and tao.claseservicio_id=tarifa_oficial.claseservicio_id "); sb.append(" and tao.moneda_id = tarifa_oficial.moneda_id "); sb.append(" and tao.ruta_id = tarifa_oficial.ruta_id "); sb.append(" and tao.tramo_id = tarifa_oficial.tramo_id "); sb.append(") "); sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = ").append(DBUtil.getInstance().dbSysdate()).append(" "); sb.append(" "); sb.append("where "); sb.append(" tarifa_oficial.activo = 1 "); if (rutaId != null) { sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId); } if (orgaoConcedenteId != null) { sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId); } return sb.toString(); } @Override public String getSQLAtualizarPrecioPorTPP(final Integer rutaId, final Integer usuarioId, final Integer orgaoConcedenteId, TipoSeguro tipoSeguro) { StringBuilder sb = new StringBuilder(""); sb.append("update tarifa_oficial set PRECIO = PRECIO + nvl(IMPORTETPP,0) "); sb.append(" where "); sb.append(" tarifa_oficial.activo = 1 "); if (rutaId != null) { sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId); } if (orgaoConcedenteId != null) { sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId); } return sb.toString(); } @Override public String getSQLAtualizarSeguroPorTarifa(final Integer rutaId, final Integer usuarioId, final Integer orgaoConcedenteId) { StringBuilder sb = new StringBuilder(""); sb.append("update tarifa_oficial set IMPORTESEGURO = "); sb.append("( "); sb.append("select "); sb.append(" st.VALORTAXA "); sb.append("from "); sb.append(" tarifa_oficial tao "); sb.append(" inner join seguro_tarifa st on "); sb.append(" st.VALORTARIFAATE >= tao.precio and st.activo = 1 "); sb.append(" and tao.ORGAOCONCEDENTE_ID = st.ORGAOCONCEDENTE_ID "); sb.append("where "); sb.append(" st.VALORTARIFAATE= "); sb.append(" (select min(st1.VALORTARIFAATE) "); sb.append(" from "); sb.append(" seguro_tarifa st1 "); sb.append(" where "); sb.append(" st1.VALORTARIFAATE >= tao.precio and st1.activo = 1 "); sb.append(" and tao.ORGAOCONCEDENTE_ID = st1.ORGAOCONCEDENTE_ID "); sb.append(" ) "); sb.append(" and tao.marca_id = tarifa_oficial.marca_id "); sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id "); sb.append(" and tao.claseservicio_id=tarifa_oficial.claseservicio_id "); sb.append(" and tao.moneda_id = tarifa_oficial.moneda_id "); sb.append(" and tao.ruta_id = tarifa_oficial.ruta_id "); sb.append(" and tao.tramo_id = tarifa_oficial.tramo_id "); sb.append(") "); sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = ").append(DBUtil.getInstance().dbSysdate()).append(" "); sb.append(" "); sb.append("where "); sb.append(" tarifa_oficial.activo = 1 "); if (rutaId != null) { sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId); } if (orgaoConcedenteId != null) { sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId); } return sb.toString(); } @Override public String getSQLSelecionarTarifaPorTarifaOficalParaAtualizar(final Integer vigenciaTarifaId, Empresa empresa, OrgaoConcedente orgao) { StringBuilder sb = new StringBuilder(""); sb.append("SELECT tao.IMPORTEPEDAGIO AS \"taoimportepedagio\", "); sb.append(" tao.PRECIO AS \"taoprecio\", "); sb.append(" tao.PRECIOORIGINAL AS \"taopreciooriginal\", "); sb.append(" tao.IMPORTETAXAEMBARQUE AS \"taoimportetaxaembarque\", "); sb.append(" tao.IMPORTESEGURO AS \"taoimporteseguro\", "); sb.append(" tao.IMPORTETPP AS \"taoimportetpp\", "); sb.append(" tao.IMPORTEOUTROS AS \"taoimporteoutros\", "); sb.append(" ta.TARIFA_ID AS \"tarifaId\" "); sb.append("FROM TARIFA_OFICIAL tao " ); sb.append("INNER JOIN TARIFA ta ON (tao.MARCA_ID = ta.MARCA_ID "); sb.append(" AND tao.CLASESERVICIO_ID = ta.CLASESERVICIO_ID "); sb.append(" AND tao.TRAMO_ID = ta.TRAMO_ID "); sb.append(" AND tao.MONEDA_ID = ta.MONEDA_ID "); sb.append(" AND tao.RUTA_ID = ta.RUTA_ID "); sb.append(" AND tao.ORGAOCONCEDENTE_ID = ta.ORGAOCONCEDENTE_ID "); sb.append(" )"); sb.append("INNER JOIN MARCA mTa ON tao.MARCA_ID = mTa.MARCA_ID "); sb.append("INNER JOIN MARCA mTao ON ta.MARCA_ID = mTao.MARCA_ID "); sb.append("WHERE ta.VIGENCIATARIFA_ID = ").append(vigenciaTarifaId); if(orgao != null){ sb.append(" AND tao.ORGAOCONCEDENTE_ID = ").append(orgao.getOrgaoConcedenteId()); } if(empresa != null){ sb.append(" AND mTa.EMPRESA_ID = ").append(empresa.getEmpresaId()); sb.append(" AND mTao.EMPRESA_ID = ").append(empresa.getEmpresaId()); } return sb.toString(); } @Override public String getSQLAtualizarTarifaPorTarifaOfical(Map dados, Integer usuarioId, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro, Boolean calculaTPP){ StringBuilder sb = new StringBuilder(""); sb.append("UPDATE TARIFA SET "); if(calculaPegagio){ sb.append("IMPORTEPEDAGIO=").append(dados.get("taoimportepedagio")).append(","); } if(calculaTarifa){ sb.append("PRECIO=").append(dados.get("taoprecio")).append(",PRECIOORIGINAL=").append(dados.get("taopreciooriginal")).append(","); } if(calculaTaxaEmbarque){ sb.append("IMPORTETAXAEMBARQUE=").append(dados.get("taoimportetaxaembarque")).append(","); } if(calculaSeguro){ sb.append("IMPORTESEGURO=").append(dados.get("taoimporteseguro")).append(","); } if(calculaTPP){ sb.append("IMPORTETPP=").append(dados.get("taoimportetpp")).append(","); } sb.append("IMPORTEOUTROS=").append(dados.get("taoimporteoutros")).append(","); sb.append("FECMODIF= current_timestamp, USUARIO_ID=").append(usuarioId); sb.append(" WHERE TARIFA_ID = ").append(dados.get("tarifaId")); return sb.toString(); } @Override public String getSQLInserirTarifaPelaTarifaOficial(final Integer vigenciaTarifaId, final Integer usuarioId, Empresa empresa, OrgaoConcedente orgao) { StringBuilder sb = new StringBuilder(""); sb.append(" insert "); sb.append(" into "); sb.append(" TARIFA "); sb.append(" ( TARIFA_ID, PRECIO, PRECIOREDABIERTO, TRAMO_ID, "); sb.append(" MARCA_ID, CLASESERVICIO_ID, PRECIOORIGINAL, MONEDA_ID, "); sb.append(" VIGENCIATARIFA_ID, STATUSTARIFA, ACTIVO, FECMODIF, "); sb.append(" USUARIO_ID, IMPORTETAXAEMBARQUE, IMPORTEPEDAGIO, IMPORTEOUTROS, "); sb.append(" IMPORTESEGURO, IMPORTETPP, ORGAOCONCEDENTE_ID, RUTA_ID, ORIGEN_ID, DESTINO_ID ) "); sb.append(" select "); sb.append(" TARIFA_SEQ.nextval, "); sb.append(" tao.PRECIO , "); sb.append(" tao.PRECIOREDABIERTO , "); sb.append(" tao.TRAMO_ID , "); sb.append(" tao.MARCA_ID , "); sb.append(" tao.CLASESERVICIO_ID , "); sb.append(" tao.PRECIOORIGINAL , "); sb.append(" tao.MONEDA_ID , "); sb.append(" v.VIGENCIATARIFA_ID , "); sb.append(" tao.STATUSTARIFA , "); sb.append(" tao.ACTIVO , "); sb.append(" current_timestamp , "); sb.append(" ").append(usuarioId).append(", "); sb.append(" tao.IMPORTETAXAEMBARQUE , "); sb.append(" tao.IMPORTEPEDAGIO , "); sb.append(" tao.IMPORTEOUTROS , "); sb.append(" tao.IMPORTESEGURO , "); sb.append(" tao.IMPORTETPP , "); sb.append(" tao.ORGAOCONCEDENTE_ID , "); sb.append(" tao.RUTA_ID , "); sb.append(" tao.ORIGEN_ID , "); sb.append(" tao.DESTINO_ID "); sb.append(" from "); sb.append(" TARIFA_OFICIAL tao, "); sb.append(" VIGENCIA_TARIFA v, "); sb.append(" MARCA m "); sb.append(" where "); sb.append(" m.MARCA_ID=tao.MARCA_ID "); sb.append(" and tao.ACTIVO=1 "); sb.append(" and v.VIGENCIATARIFA_ID=").append(vigenciaTarifaId).append(" "); if (orgao != null) { sb.append(" and tao.ORGAOCONCEDENTE_ID=").append(orgao.getOrgaoConcedenteId()).append(" "); } if (empresa != null) { sb.append(" and m.EMPRESA_ID=").append(empresa.getEmpresaId()).append(" "); } sb.append(" and not (exists (select "); sb.append(" tar.TARIFA_ID "); sb.append(" from "); sb.append(" TARIFA tar "); sb.append(" where "); sb.append(" tar.ACTIVO=1 "); sb.append(" and tar.TRAMO_ID=tao.TRAMO_ID "); sb.append(" and tar.MARCA_ID=tao.MARCA_ID "); sb.append(" and tar.CLASESERVICIO_ID=tao.CLASESERVICIO_ID "); sb.append(" and tar.MONEDA_ID=tao.MONEDA_ID "); sb.append(" and tar.ORGAOCONCEDENTE_ID=tao.ORGAOCONCEDENTE_ID "); sb.append(" and tar.RUTA_ID=tao.RUTA_ID "); sb.append(" and tar.VIGENCIATARIFA_ID=").append(vigenciaTarifaId).append("))"); return sb.toString(); } @Override public String getSQLActualizarCorridaFecHusoFecVerano() { StringBuilder sb = new StringBuilder(); sb.append(" update Corrida cq "); sb.append(" set cq.fechorSalidaOriginalH = "); sb.append(" ( "); sb.append(" select "); sb.append(" c.fechorSalidaOriginal "); sb.append(" + nvl((c.origem.ciudad.estado.tiempoHorHuso/").append(HORAS_NO_DIA).append("), 0) "); sb.append(" + nvl( case when "); sb.append(" c.fechorSalidaOriginal between "); sb.append(" c.origem.ciudad.estado.fecInicioHorVerano "); sb.append(" and c.origem.ciudad.estado.fecFinoHorVerano "); sb.append(" then (c.origem.ciudad.estado.tiempoHorVerano/").append(HORAS_NO_DIA).append(") "); sb.append(" else 0 end, 0) "); sb.append(" from Corrida c "); sb.append(" where c.id.corridaId in ( :corridaId ) "); sb.append(" and c.id.feccorrida in ( :feccorrida ) "); sb.append(" and c.id.corridaId = cq.id.corridaId "); sb.append(" and c.id.feccorrida = cq.id.feccorrida "); sb.append(" ) "); sb.append(" where cq.id.corridaId in ( :corridaId ) "); sb.append(" and cq.id.feccorrida in ( :feccorrida ) "); return sb.toString(); } @Override public String getSQLActualizarCorridaTramoFecHusoFecVerano() { StringBuilder sb = new StringBuilder(); sb.append(" update CorridaTramo ctq "); sb.append(" set ctq.fechorSalidaOriginalH = :fechorSalidaOriginalH, ctq.fechorsalidaH = :fechorsalidaH, ctq.fechorllegadaH = :fechorllegadaH"); sb.append(" where ctq.corridatramoId = :corridatramoId "); return sb.toString(); } @Override public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select "); sb.append(" "); sb.append(" c.CAJA_ID as \"cajaId\", "); sb.append(" c.NUMASIENTO as \"numAsiento\", "); sb.append(" c.CATEGORIA_ID as \"categoriaId\", "); sb.append(" c.NUMFOLIOSISTEMA as \"numFolioSistema\", "); sb.append(" c.CLASESERVICIO_ID as \"claseServicioId\", "); sb.append(" c.MARCA_ID as \"marcaId\", "); sb.append(" c.ORIGEN_ID as \"origenId\", "); sb.append(" c.DESTINO_ID as \"destinoId\", "); sb.append(" c.CORRIDA_ID as \"corridaId\", "); sb.append(" c.FECCORRIDA as \"fecCorrida\", "); sb.append(" c.NOMBPASAJERO as \"nombPasajero\", "); sb.append(" c.PRECIOBASE as \"precioBase\", "); sb.append(" c.PRECIOPAGADO as \"precioPagado\", "); sb.append(" c.TIPOVENTA_ID as \"tipoVentaId\", "); sb.append(" c.NUMSERIEPREIMPRESA as \"numSeriePreimpresa\", "); sb.append(" c.NUMFOLIOPREIMPRESO as \"numFolioPreImpreso\", "); sb.append(" c.FECHORVIAJE as \"fecHorViaje\", "); sb.append(" c.FECHORVENTA as \"fecHorVenta\", "); sb.append(" c.PUNTOVENTA_ID as \"puntoVentaId\", "); sb.append(" pv.numpuntoventa as \"numPuntoVenta\", "); sb.append(" c.NUMKMVIAJE as \"numKmViaje\", "); sb.append(" c.NUMOPERACION as \"numOperacion\", "); sb.append(" c.MOTIVOCANCELACION_ID as \"motivoCancelacionId\", "); sb.append(" c.EMPRESAPUNTOVENTA_ID as \"empresaPuntoVentaId\", "); sb.append(" c.EMPRESACORRIDA_ID as \"empresaCorridaId\", "); sb.append(" c.TURNO_ID as \"turnoId\", "); sb.append(" c.IMPORTETAXAEMBARQUE as \"importeTaxaEmbarque\", "); sb.append(" c.IMPORTEPEDAGIO as \"importePedagio\", "); sb.append(" c.IMPORTEOUTROS as \"importeOutros\", "); sb.append(" c.IMPORTESEGURO as \"importeSeguro\", "); sb.append(" co.ruta_id as \"rutaId\", "); sb.append(" c.usuario_id as \"usuarioId\", "); sb.append(" ct.numautorizacion as \"numAutorizacion\", "); sb.append(" (case when cfp.formapago_id = 11 then cdp.numdocumento else null end) as \"ordenSevicio\" "); sb.append(" "); sb.append(" from "); sb.append(" caja c "); sb.append(" left join corrida co on co.corrida_id = c.corrida_id and co.feccorrida = c.feccorrida "); sb.append(" left join caja_formapago cfp on cfp.caja_id = c.caja_id "); sb.append(" left join caja_det_pago cdp on cdp.cajaformapago_id = cfp.cajaformapago_id "); sb.append(" left join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); sb.append(" left join punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); sb.append(" "); sb.append(" where "); sb.append(" trunc(fechorventa) between to_date('").append(sdf.format(fechaDesde)).append("','yyyy-MM-dd') and ").append(" to_date('").append(sdf.format(fechaHasta)).append("','yyyy-MM-dd')"); sb.append(" and c.feccorte ").append(yaCerrado ? " is not null" : " is null "); sb.append(" "); sb.append(" order by c.fechorventa,c.usuario_id,c.caja_id asc "); return sb.toString(); } @Override public String getSQLBuscarDatosCaja(Date fechaDesde, Date fechaHasta, Boolean sembilhetesPacote) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select "); sb.append(" "); sb.append(" c.CAJA_ID as \"cajaId\", "); sb.append(" c.NUMASIENTO as \"numAsiento\", "); sb.append(" c.CATEGORIA_ID as \"categoriaId\", "); sb.append(" c.NUMFOLIOSISTEMA as \"numFolioSistema\", "); sb.append(" c.CLASESERVICIO_ID as \"claseServicioId\", "); sb.append(" c.MARCA_ID as \"marcaId\", "); sb.append(" c.ORIGEN_ID as \"origenId\", "); sb.append(" c.DESTINO_ID as \"destinoId\", "); sb.append(" c.CORRIDA_ID as \"corridaId\", "); sb.append(" c.FECCORRIDA as \"fecCorrida\", "); sb.append(" c.NOMBPASAJERO as \"nombPasajero\", "); sb.append(" c.PRECIOBASE as \"precioBase\", "); sb.append(" c.PRECIOPAGADO as \"precioPagado\", "); sb.append(" c.TIPOVENTA_ID as \"tipoVentaId\", "); sb.append(" c.NUMSERIEPREIMPRESA as \"numSeriePreimpresa\", "); sb.append(" c.NUMFOLIOPREIMPRESO as \"numFolioPreImpreso\", "); sb.append(" c.FECHORVIAJE as \"fecHorViaje\", "); sb.append(" c.FECHORVENTA as \"fecHorVenta\", "); sb.append(" c.PUNTOVENTA_ID as \"puntoVentaId\", "); sb.append(" pv.numpuntoventa as \"numPuntoVenta\", "); sb.append(" c.NUMKMVIAJE as \"numKmViaje\", "); sb.append(" c.NUMOPERACION as \"numOperacion\", "); sb.append(" c.MOTIVOCANCELACION_ID as \"motivoCancelacionId\", "); sb.append(" c.EMPRESAPUNTOVENTA_ID as \"empresaPuntoVentaId\", "); sb.append(" c.EMPRESACORRIDA_ID as \"empresaCorridaId\", "); sb.append(" c.TURNO_ID as \"turnoId\", "); sb.append(" c.IMPORTETAXAEMBARQUE as \"importeTaxaEmbarque\", "); sb.append(" c.IMPORTEPEDAGIO as \"importePedagio\", "); sb.append(" c.IMPORTEOUTROS as \"importeOutros\", "); sb.append(" c.IMPORTESEGURO as \"importeSeguro\", "); sb.append(" co.ruta_id as \"rutaId\", "); sb.append(" c.usuario_id as \"usuarioId\", "); sb.append(" ct.numautorizacion as \"numAutorizacion\", "); sb.append(" ct.tipotarjeta as \"tipotarjeta\", "); sb.append(" ct.cantparcelas as \"cantparcelas\", "); sb.append(" ct.numtarjeta as \"numtarjeta\", "); sb.append(" ct.fecoperacion as \"fecoperacion\", "); sb.append(" ct.nombtitular as \"nombtitular\", "); sb.append(" fp.DESCPAGO as \"descPago\", "); sb.append(" fp.formapago_id as \"formaPagoId\", "); sb.append(" cfp.importe as \"vlrFormaPago\", "); sb.append(" ca.CVECATEGORIA as \"cveCategoria\", "); sb.append(" mc.DESCMOTIVO as \"descMotivo\", "); sb.append(" (case when cfp.formapago_id = 11 then cdp.numdocumento else null end) as \"ordenSevicio\", "); sb.append(" C.TRANSACAO_ID as \"transacaoId\", C.TRANSACAOORIGINAL_ID as \"transacaooriginalId\", "); sb.append(" C.DESCNUMDOC as \"descnumdoc\", C.DESCNUMDOC2 as \"descnumdoc2\", C.DESCTIPODOC as \"desctipodoc\", "); sb.append(" C.DESCTIPODOC2 as \"desctipodoc2\", C.DESCTELEFONO as \"desctelefono\", "); sb.append(" ocd.ocd_id as \"ocdId\", ocd.numoperacion as \"numoperacionOcd\", "); sb.append(" cdp.notacreditovendapacote_id as \"notacreditovendapacoteId\", "); sb.append(" ct.descoperadoracartao as \"operadoracartao\", "); sb.append(" sec.cvesecretaria as \"cvesecretaria\", "); sb.append(" fp.tipo_pago as \"tipoPago\", "); sb.append(" NVL(c.INDENCARGOVENTA,0) as \"indEncargoVenta\", "); sb.append(" con.cveconvenio as \"cveconvenio\", "); sb.append(" con.descconvenio as \"descconvenio\", "); sb.append(" sec.descsecretaria as \"descsecretaria\" "); sb.append(" from "); sb.append(" caja c "); sb.append(" left join corrida co on co.corrida_id = c.corrida_id and co.feccorrida = c.feccorrida "); sb.append(" left join caja_formapago cfp on cfp.caja_id = c.caja_id "); sb.append(" left join caja_det_pago cdp on cdp.cajaformapago_id = cfp.cajaformapago_id "); sb.append(" left join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); sb.append(" left join punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); sb.append(" inner join forma_pago fp on fp.formapago_id = cfp.FORMAPAGO_ID "); sb.append(" inner join categoria ca on ca.categoria_id = c.categoria_id "); sb.append(" left join motivo_cancelacion mc on mc.motivocancelacion_id = c.motivocancelacion_id "); sb.append(" left join ocd ocd on ocd.ocd_id = cdp.ocd_id "); sb.append(" left join secretaria sec on sec.secretaria_id = cdp.opcional1 "); sb.append(" left join convenio_det cDet on cDet.conveniodet_id = c.conveniodet_id "); sb.append(" left join convenio con on con.convenio_id = cDet.convenio_id "); sb.append(" "); sb.append(" where "); sb.append(" trunc(fechorventa) between to_date('").append(sdf.format(fechaDesde)).append("','yyyy-MM-dd') and ").append(" to_date('").append(sdf.format(fechaHasta)).append("','yyyy-MM-dd')"); if (sembilhetesPacote != null && sembilhetesPacote) { sb.append("and fp.tipo_pago != ") .append(TipoFormapago.PACOTE.getValor()) .append("and (c.motivocancelacion_id is null or c.motivocancelacion_id != ") .append(Constantes.MVO_CANCEL_VENDA_PACOTE.intValue()) .append(" ) "); } sb.append(" order by c.fechorventa,c.usuario_id,c.caja_id asc "); return sb.toString(); } @Override public String getSQLBuscarUsuariosCajaCerrado(Date fecha, String cveusuario, String turnoid) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select distinct "); sb.append(" "); sb.append(" u.usuario_id as \"usuarioId\", "); sb.append(" u.cveusuario as \"cveusuario\", "); sb.append(" c.PUNTOVENTA_ID as \"puntoVentaId\", "); sb.append(" pv.numpuntoventa as \"numPuntoVenta\", "); sb.append(" c.FECCORTE as \"fecCorte\", "); sb.append(" c.TURNO_ID as \"turnoId\", "); sb.append(" (select sum(importe) from conta_corrente_ptovta ccpv where ccpv.puntoventa_id = c.puntoventa_id and ccpv.usuario_id = c.usuario_id and ccpv.feccorte = c.feccorte and ccpv.turno_id = c.turno_id) as \"importeTotal\""); sb.append(" "); sb.append(" from "); sb.append(" caja c "); sb.append(" left join usuario u on c.usuario_id = u.usuario_id "); sb.append(" left join punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); sb.append(" "); sb.append(" where "); sb.append(" trunc(c.feccorte) = to_date('").append(sdf.format(fecha)).append("','yyyy-MM-dd')"); if (!cveusuario.equals("*")) { sb.append(" and u.cveusuario like '" + cveusuario + "'"); } if (!turnoid.equals("*")) { sb.append(" and c.turno_id in(" + turnoid + ")"); } else { sb.append(" and c.turno_id is not null"); } return sb.toString(); } @Override public String getSQLBuscarCajaCerrado(Integer usuarioId, Date fecha, String turnoid) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select "); sb.append(" c.CAJA_ID as \"cajaId\", "); sb.append(" c.NUMFOLIOSISTEMA as \"numFolioSistema\", "); sb.append(" ori.descparada as \"origen\", "); sb.append(" des.descparada as \"destino\", "); sb.append(" c.CORRIDA_ID as \"corridaId\", "); sb.append(" (case when c.motivocancelacion_id is null then cfp.importe else cfp.importe * -1 end) as \"precioPagado\", "); sb.append(" c.FECHORVENTA as \"fecHorVenta\", "); sb.append(" (case when c.motivocancelacion_id is null then c.IMPORTETAXAEMBARQUE else c.IMPORTETAXAEMBARQUE * -1 end) as \"importeTaxaEmbarque\", "); sb.append(" ru.descruta as \"ruta\", "); sb.append(" nvl(ct.numautorizacion, c.numoperacion) as \"numAutorizacion\", "); sb.append(" (case when cfp.formapago_id = 11 then cdp.numdocumento else null end) as \"ordenSevicio\", "); sb.append(" s.descsecretaria as \"secretaria\", "); sb.append(" s.CVESECRETARIA as \"cvesecretaria\", "); sb.append(" (case when fp.formapago_id = " + RED_PAGO_FORMAPAGO_ID).append(" then '" + RED_PAGO_EMISSOR_TARJETA + "' else ct.tipotarjeta end) as \"emissorTarjeta\", "); sb.append(" cat.DESCCATEGORIA as \"tipoPasaje\", "); sb.append(" (case when fp.formapago_id = " + RED_PAGO_FORMAPAGO_ID).append(" then '" + RED_PAGO_FORMA_PAGO + "' else fp.cvepago end) as \"formaPago\" "); sb.append(" from "); sb.append(" caja c "); sb.append(" left join caja_formapago cfp on cfp.caja_id = c.caja_id "); sb.append(" left outer join forma_pago fp on fp.formapago_id = cfp.formapago_id "); sb.append(" left join caja_det_pago cdp on cdp.cajaformapago_id = cfp.cajaformapago_id "); sb.append(" left join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); sb.append(" left join categoria cat on cat.categoria_id = c.categoria_id "); sb.append(" left join secretaria s on s.secretaria_id = cdp.opcional1 "); sb.append(" left join ruta ru on ru.ruta_id = c.ruta_id "); sb.append(" left join parada ori on ori.parada_id = c.origen_id "); sb.append(" left join parada des on des.parada_id = c.destino_id "); sb.append(" where "); sb.append(" trunc(c.feccorte) = to_date('").append(sdf.format(fecha)).append("','yyyy-MM-dd')"); sb.append(" and c.usuario_id = ").append(usuarioId); if (!turnoid.equals("*")) { sb.append(" and c.turno_id in(" + turnoid + ")"); } else { sb.append(" and c.turno_id is not null"); } sb.append(" and c.indreimpresion = 0"); sb.append(" order by c.CAJA_ID"); return sb.toString(); } @Override public String getSQLBuscarReceitasDespesasCaja(Integer usuarioId, Date fec) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select "); sb.append(" "); sb.append(" c.precio as \"precio\", "); sb.append(" t.desctipoevento as \"tipoEvento\" "); sb.append(" "); sb.append(" from "); sb.append(" caja_diversos c "); sb.append(" left join evento_extra e on c.eventoextra_id = e.eventoextra_id "); sb.append(" left join tipo_evento_extra t on t.tipoeventoextra_id = e.tipoeventoextra_id "); sb.append(" "); sb.append(" where "); sb.append(" c.feccorte = to_date('").append(sdf.format(fec)).append("','yyyy-MM-dd')"); sb.append(" and c.turno_id is not null and c.usuario_id = ").append(usuarioId); return sb.toString(); } @Override public String getSQLBuscarUsuariosActivo() { StringBuilder sb = new StringBuilder(""); sb.append(" select distinct"); sb.append(" u.usuario_id as \"usuarioId\","); sb.append(" u.cveusuario as \"cveusuario\","); sb.append(" u.NOMBUSUARIO||' '||u.NOMBPATERNO||' '||u.NOMBMATERNO as \"nombusuario\""); sb.append(" from"); sb.append(" usuario u"); sb.append(" where"); sb.append(" u.activo = 1"); sb.append(" order by"); sb.append(" u.usuario_id"); return sb.toString(); } @Override public String getSQLInserirCajaVendaEmbarcada() { StringBuilder sb = new StringBuilder(); sb.append("insert into caja "); sb.append("(caja_id, numasiento, categoria_id,numfoliosistema,claseservicio_id, marca_id, origen_id, destino_id, corrida_id, feccorrida,nombpasajero, preciobase, "); sb.append("preciopagado,descuentoamparado, tipoventa_id, numseriepreimpresa, numfoliopreimpreso, fechorviaje, fechorventa, puntoventa_id,numkmviaje, numoperacion,"); sb.append("indstatusoperacion,motivocancelacion_id, motivoreimpresion_id, cantpuntos, empresapuntoventa_id, empresacorrida_id, numreservacion, turno_id,"); sb.append("indstatusboleto,indcancelacion, indreimpresion,indviajeredondo, feccorte, indextraviado, paridad, feccreacion, conveniodet_id, moneda_id, estacion_id,"); sb.append("indreplica, usuarioautorizacion_id, tipoidentificacion_id, numidentificacion,clientefidelidad_id, opcional1, opcional2, opcional3, preciocargoextra,"); sb.append("preciopricing, cajaoriginal_id, usuarioremoto_id, puntoventaremoto_id, numdocdescuento, canttransferencia,activo, fecmodif, usuario_id, nodo_id,"); sb.append("porccategoria,importecategoria, cliente_id, pagorecaudacion_id, pagorecaudacion2_id, importetaxaembarque, importepedagio, importeoutros,"); sb.append("importeseguro, indconexion, levante_id, ruta_id, serieimpfiscal, fecintegracion, ptovtaventa_id, indremotoinverso, fecnacimiento)"); sb.append("values ("); sb.append(":cajaId,:numAsiento,:categoriaId,null,:claseServicioId,:marcaId,:origemId,:destinoId,:corridaId,:fecCorrida,null,:precioBase,"); sb.append(":precioPagado,null, :tipoVentaId, null, :numFolioPreimpresso, :fechorViaje, :fechorVenta, :puntoVentaId,null, :numOperacion,"); sb.append("'F',null, null, null, :empresaPuntoVentaId, :empresaCorridaId, null, null,"); sb.append("'V', 0, 0, 0, null, 0, null, :fecCreacion, null, null, :estacionId,"); sb.append("0, null, null, null,null, null, null, null, null,"); sb.append("null, null, null, null, null, null, 1, :fecModIf, :usuarioId, 1,"); sb.append("null, null, null, null, null, :importeTaxaEmbarque, :importePedagio, :importeOutros,"); sb.append(":importeSeguro, 0, null, :rutaId, :serieImpFiscal, null, null, 0, null)"); return sb.toString(); } @Override public String getSQLInserirCajaFormaPagoVendaEmbarcada() { StringBuilder sb = new StringBuilder(); sb.append("insert into caja_formapago "); sb.append("(formapago_id, caja_id, importe, activo, fecmodif, usuario_id, indreplica, nodo_id, cajaformapago_id) values "); sb.append("(:formaPagoId, :cajaId, :importe, 1, :fecModIf, :usuarioId, null, 1, :cajaFormaPagoId)"); return sb.toString(); } @Override public String getSQLInserirBoletoVendaEmbarcada() { StringBuilder sb = new StringBuilder(); sb.append("insert into boleto "); sb.append("(empresacorrida_id, destino_id, tipoventa_id, categoria_id, motivoreimpresion_id, claseservicio_id, corrida_id, feccorrida, puntoventa_id,"); sb.append("empresapuntoventa_id, turno_id, motivocancelacion_id, origen_id, marca_id, conveniodet_id, cliente_id, numasiento, numfoliosistema,"); sb.append("nombpasajero,fecnacimiento,preciopagado,paridad, numseriepreimpresa, numfoliopreimpreso, fechorviaje, fechorventa, numkmviaje, numoperacion,"); sb.append("indstatusoperacion, cantpuntos, numreservacion, indstatusboleto, indcancelacion, indreimpresion, indviajeredondo, feccreacion, activo,"); sb.append("indconexion, fecmodif, usuario_id, usuarioautorizacion_id, tipoidentificacion_id, numidentificacion, indextraviado, preciobase, entregaboleto_id,"); sb.append("opcional1,opcional2, opcional3, descuentoamparado, moneda_id, estacion_id, usuarioremoto_id, puntoventaremoto_id, preciocargoextra, nodo_id,"); sb.append("indreplica, numdocdescuento, canttransferencia, porccategoria, preciopricing, importecategoria, boletooriginal_id, importetaxaembarque,"); sb.append("importepedagio, importeoutros, importeseguro, desctipodoc, desctipodoc2, descnumdoc, descnumdoc2, tipoidentificaciondoc_id, descorgaodoc,"); sb.append("NUMFIDELIDAD, INFOPASAJERO, LEVANTE_ID, ESTADOFOLIO_ID, RUTA_ID, DESCCORREO, DESCTELEFONO, SERIEIMPFISCAL,NUMASIENTOVINCULADO, BOLETO_ID) values "); sb.append("(:empresaCorridaId, :destinoId, :tipoVentaId, :categoriaId, null, :claseServicioId, :corridaId, :fecCorrida, :puntoVentaId, "); sb.append(":empresaPuntoVentaId, null, null, :origemId, :marcaId, null, null, :numAsiento, null,"); sb.append("null,null,:precioPagado,null,null, :numFolioPreimpresso, :fechorViaje, :fechorVenta, null, :numOperacion,"); sb.append("'F', null, null, 'V', 0, 0, 0, null, 1,"); sb.append("0, :fecModIf, :usuarioId,null, null, null, 0, :precioBase, null,"); sb.append("null,null, null, null, null, :estacionId, null, null, null,1,"); sb.append("0, null, null, null, :precioPricing, null, null, :importeTaxaEmbarque,"); sb.append(":importePedagio, :importeOutros, :importeSeguro, null, null, null, null, null, null,"); sb.append("null, null, null, null, :rutaId, null, null, :serieImpFiscal, null, :boletoId)"); return sb.toString(); } @Override public String getSQLInserirBoletoFormaPagoVendaEmbarcada() { StringBuilder sb = new StringBuilder(); sb.append("insert into boleto_formapago "); sb.append("(formapago_id, boleto_id, importe, fecmodif, usuario_id, activo, indreplica, nodo_id, boletoformapago_id) values "); sb.append("(:formaPagoId, :boletoId, :importe, :fecModIf, :usuarioId, 1, 0, 1,:boletoFormaPagoId)"); return sb.toString(); } @Override public String getSQLObterSequenceBoletoFormaPago() { return "select boleto_formapago_seq.nextval from dual"; } @Override public String getSQLObterSequenceCajaFormaPago() { return "select caja_formapago_seq.nextval from dual"; } @Override public String getSQLObterSequenceBoleto() { return "select boleto_seq.nextval from dual"; } @Override public String getSQLObterSequenceCaja() { return "select caja_seq.nextval from dual"; } @Override public String getSQLObterSequenciaNumOperacion() { return "select numeoperacion_seq.nextval from dual"; } @Override public String getSQLInserirTarifaEmbarcadaPelaTarifaOficial(final Integer vigenciaTarifaId, final Integer usuarioId, Empresa empresa, OrgaoConcedente orgao) { StringBuilder sb = new StringBuilder(""); sb.append(" insert "); sb.append(" into "); sb.append(" TARIFA_EMBARCADA "); sb.append(" ( TARIFAEMBARCADA_ID, PRECIO, PRECIOREDABIERTO, TRAMO_ID, "); sb.append(" MARCA_ID, CLASESERVICIO_ID, PRECIOORIGINAL, MONEDA_ID, "); sb.append(" VIGENCIATARIFA_ID, STATUSTARIFA, ACTIVO, FECMODIF, "); sb.append(" USUARIO_ID, IMPORTETAXAEMBARQUE, IMPORTEPEDAGIO, IMPORTEOUTROS, "); sb.append(" IMPORTESEGURO, IMPORTETPP, ORGAOCONCEDENTE_ID, RUTA_ID, ORIGEN_ID, DESTINO_ID ) "); sb.append(" select "); sb.append(" TARIFA_EMBARCADA_SEQ.nextval, "); sb.append(" tao.PRECIO , "); sb.append(" tao.PRECIOREDABIERTO , "); sb.append(" tao.TRAMO_ID , "); sb.append(" tao.MARCA_ID , "); sb.append(" tao.CLASESERVICIO_ID , "); sb.append(" tao.PRECIOORIGINAL , "); sb.append(" tao.MONEDA_ID , "); sb.append(" v.VIGENCIATARIFA_ID , "); sb.append(" tao.STATUSTARIFA , "); sb.append(" tao.ACTIVO , "); sb.append(" current_timestamp , "); sb.append(" ").append(usuarioId).append(", "); sb.append(" tao.IMPORTETAXAEMBARQUE , "); sb.append(" tao.IMPORTEPEDAGIO , "); sb.append(" tao.IMPORTEOUTROS , "); sb.append(" tao.IMPORTESEGURO , "); sb.append(" tao.IMPORTETPP , "); sb.append(" tao.ORGAOCONCEDENTE_ID , "); sb.append(" tao.RUTA_ID , "); sb.append(" tao.ORIGEN_ID , "); sb.append(" tao.DESTINO_ID "); sb.append(" from "); sb.append(" TARIFA_OFICIAL tao, "); sb.append(" VIGENCIA_TARIFA v, "); sb.append(" MARCA m "); sb.append(" where "); sb.append(" m.MARCA_ID=tao.MARCA_ID "); sb.append(" and tao.ACTIVO=1 "); sb.append(" and v.VIGENCIATARIFA_ID=").append(vigenciaTarifaId).append(" "); if (orgao != null) { sb.append(" and tao.ORGAOCONCEDENTE_ID=").append(orgao.getOrgaoConcedenteId()).append(" "); } if (empresa != null) { sb.append(" and m.EMPRESA_ID=").append(empresa.getEmpresaId()).append(" "); } sb.append(" and not (exists (select "); sb.append(" tar.TARIFAEMBARCADA_ID "); sb.append(" from "); sb.append(" TARIFA_EMBARCADA tar "); sb.append(" where "); sb.append(" tar.ACTIVO=1 "); sb.append(" and tar.TRAMO_ID=tao.TRAMO_ID "); sb.append(" and tar.MARCA_ID=tao.MARCA_ID "); sb.append(" and tar.CLASESERVICIO_ID=tao.CLASESERVICIO_ID "); sb.append(" and tar.MONEDA_ID=tao.MONEDA_ID "); sb.append(" and tar.ORGAOCONCEDENTE_ID=tao.ORGAOCONCEDENTE_ID "); sb.append(" and tar.RUTA_ID=tao.RUTA_ID "); sb.append(" and tar.VIGENCIATARIFA_ID=").append(vigenciaTarifaId).append("))"); return sb.toString(); } @Override public String getSQLSelecionarTarifaEmbarcadaPorTarifaOficalParaAtualizar(final Integer vigenciaTarifaId, Empresa empresa, OrgaoConcedente orgao) { StringBuilder sb = new StringBuilder(""); sb.append("SELECT tao.IMPORTEPEDAGIO AS \"taoimportepedagio\", "); sb.append(" tao.PRECIO AS \"taoprecio\", "); sb.append(" tao.PRECIOORIGINAL AS \"taopreciooriginal\", "); sb.append(" tao.IMPORTETAXAEMBARQUE AS \"taoimportetaxaembarque\", "); sb.append(" tao.IMPORTESEGURO AS \"taoimporteseguro\", "); sb.append(" tao.IMPORTETPP AS \"taoimportetpp\", "); sb.append(" tao.IMPORTEOUTROS AS \"taoimporteoutros\", "); sb.append(" ta.TARIFAEMBARCADA_ID AS \"tarifaId\" "); sb.append("FROM TARIFA_OFICIAL tao " ); sb.append("INNER JOIN TARIFA_EMBARCADA ta ON (tao.MARCA_ID = ta.MARCA_ID "); sb.append(" AND tao.CLASESERVICIO_ID = ta.CLASESERVICIO_ID "); sb.append(" AND tao.TRAMO_ID = ta.TRAMO_ID "); sb.append(" AND tao.MONEDA_ID = ta.MONEDA_ID "); sb.append(" AND tao.RUTA_ID = ta.RUTA_ID "); sb.append(" AND tao.ORGAOCONCEDENTE_ID = ta.ORGAOCONCEDENTE_ID "); sb.append(" )"); sb.append("INNER JOIN MARCA mTa ON tao.MARCA_ID = mTa.MARCA_ID "); sb.append("INNER JOIN MARCA mTao ON ta.MARCA_ID = mTao.MARCA_ID "); sb.append("WHERE ta.VIGENCIATARIFA_ID = ").append(vigenciaTarifaId); if(orgao != null){ sb.append(" AND tao.ORGAOCONCEDENTE_ID = ").append(orgao.getOrgaoConcedenteId()); } if(empresa != null){ sb.append(" AND mTa.EMPRESA_ID = ").append(empresa.getEmpresaId()); sb.append(" AND mTao.EMPRESA_ID = ").append(empresa.getEmpresaId()); } return sb.toString(); } @Override public String getSQLAtualizarTarifaEmbarcadaPorTarifaOfical(Map dados, Integer usuarioId, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro, Boolean calculaTPP){ StringBuilder sb = new StringBuilder(""); sb.append("UPDATE TARIFA_EMBARCADA SET "); if(calculaPegagio){ sb.append("IMPORTEPEDAGIO=").append(dados.get("taoimportepedagio")).append(","); } if(calculaTarifa){ sb.append("PRECIO=").append(dados.get("taoprecio")).append(",PRECIOORIGINAL=").append(dados.get("taopreciooriginal")).append(","); } if(calculaTaxaEmbarque){ sb.append("IMPORTETAXAEMBARQUE=").append(dados.get("taoimportetaxaembarque")).append(","); } if(calculaSeguro){ sb.append("IMPORTESEGURO=").append(dados.get("taoimporteseguro")).append(","); } if(calculaTPP){ sb.append("IMPORTETPP=").append(dados.get("taoimportetpp")).append(","); } sb.append("IMPORTEOUTROS=").append(dados.get("taoimporteoutros")).append(","); sb.append("FECMODIF= current_timestamp, USUARIO_ID=").append(usuarioId); sb.append(" WHERE TARIFAEMBARCADA_ID = ").append(dados.get("tarifaId")); return sb.toString(); } }