package com.rjconsultores.ventaboletos.dao.sqlbuilder.impl; import java.text.SimpleDateFormat; import java.util.Date; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.dao.util.DBUtil; public class SQLBuilderOracle implements SQLBuilder { private static final Integer HORAS_NO_DIA = Integer.valueOf(24); @Override public String getSQLGerarTarifaOficial(final Integer codRuta, final Integer usuarioId, final Integer orgaoConcedenteId) { 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(" (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(" 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(" 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(" 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 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 getSQLAtualizarTarifaOficial(final Integer rutaId, final Integer usuarioId, final Integer orgaoConcedenteId) { 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 (orgaoConcedenteId != null) { sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedenteId); } 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 (orgaoConcedenteId != null) { sb.append(" and orgaoconcedente_id = ").append(orgaoConcedenteId); } return sb.toString(); } @Override public String getAtualizarTaxaEmbarquePorKmParada(final Integer rutaId, final Integer usuarioId, final Integer orgaoConcedenteId) { 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' "); 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 tepKm.activo = 1 "); 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 getSQLAtualizarTaxaEmbarquePorKmOrgao(final Integer rutaId, final Integer usuarioId, final Integer orgaoConcedenteId) { 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("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.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("),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) { 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 "); sb.append(" and tepFixo.indtipo = 'F' and tepFixo.activo = 1 "); sb.append("where "); sb.append(" tao.marca_id = tarifa_oficial.marca_id "); sb.append(" and tao.orgaoconcedente_id = tepFixo.orgaoconcedente_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("),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 getSQLAtualizarSeguroPorKm(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(" 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.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 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 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 getSQLAtualizarTarifaPorTarifaOfical(final Integer vigenciaTarifaId, final Integer usuarioId, final Boolean calculaPegagio) { StringBuilder sb = new StringBuilder(""); sb.append("update ( "); sb.append(" "); sb.append("select "); sb.append(" ta.precio as taprecio, "); sb.append(" ta.preciooriginal as tapreciooriginal, "); sb.append(" ta.importetaxaembarque as taimportetaxaembarque, "); sb.append(" ta.importepedagio as taimportepedagio, "); sb.append(" ta.importeoutros as taimporteoutros, "); sb.append(" ta.importeseguro as taimporteseguro, "); sb.append(" tao.precio as taoprecio, "); sb.append(" tao.preciooriginal as taopreciooriginal, "); sb.append(" tao.importetaxaembarque as taoimportetaxaembarque, "); sb.append(" tao.importepedagio as taoimportepedagio, "); sb.append(" tao.importeoutros as taoimporteoutros, "); sb.append(" tao.importeseguro as taoimporteseguro, "); sb.append(" ta.fecmodif as tafecmodif,ta.usuario_id as tausuario_id "); sb.append("from "); sb.append(" tarifa_oficial tao "); sb.append(" inner join tarifa ta on "); sb.append(" 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("where "); sb.append(" ta.vigenciatarifa_id = ").append(vigenciaTarifaId); sb.append(" ) set "); sb.append(" taprecio = taoprecio, "); sb.append(" tapreciooriginal = taopreciooriginal, "); sb.append(" taimportetaxaembarque = taoimportetaxaembarque, "); if (calculaPegagio) { sb.append(" taimportepedagio = taoimportepedagio,"); } sb.append(" taimporteoutros = taoimporteoutros,taimporteseguro = taoimporteseguro, "); sb.append(" tafecmodif = current_timestamp, tausuario_id = ").append(usuarioId); return sb.toString(); } @Override public String getSQLInserirTarifaPelaTarifaOficial(final Integer vigenciaTarifaId, final Integer usuarioId) { 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, 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.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(" where "); sb.append(" tao.ACTIVO=1 "); sb.append(" and v.VIGENCIATARIFA_ID=").append(vigenciaTarifaId).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(" 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(" "); 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 getSQLBuscarUsuariosCajaCerrado(Date fecha){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select "); sb.append(" "); sb.append(" u.usuario_id as \"usuarioId\", "); sb.append(" u.nombusuario as \"nombusuario\" "); sb.append(" "); sb.append(" from "); sb.append(" caja c "); sb.append(" left join usuario u on c.usuario_id = u.usuario_id "); sb.append(" "); sb.append(" where "); sb.append(" trunc(c.feccorte) = to_date('").append(sdf.format(fecha)).append("','yyyy-MM-dd')"); sb.append(" and c.turno_id is not null"); return sb.toString(); } @Override public String getSQLBuscarCajaCerrado(Integer usuarioId, Date fecha) { 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.NUMFOLIOSISTEMA as \"numFolioSistema\", "); sb.append(" ori.descparada as \"origen\", "); sb.append(" des.descparada as \"destino\", "); sb.append(" c.CORRIDA_ID as \"corridaId\", "); sb.append(" c.PRECIOBASE as \"precioBase\", "); sb.append(" c.PRECIOPAGADO as \"precioPagado\", "); sb.append(" c.FECHORVENTA as \"fecHorVenta\", "); sb.append(" c.PUNTOVENTA_ID as \"puntoVentaId\", "); sb.append(" c.IMPORTETAXAEMBARQUE as \"importeTaxaEmbarque\", "); sb.append(" ru.descruta as \"ruta\", "); sb.append(" ct.numautorizacion as \"numAutorizacion\", "); sb.append(" (case when cfp.formapago_id = 11 then cdp.numdocumento else null end) as \"ordenSevicio\", "); 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(" s.descsecretaria as \"secretaria\", "); sb.append(" ct.TIPOTARJETA as \"emissorTarjeta\", "); sb.append(" cat.DESCCATEGORIA as \"tipoPasaje\" "); 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 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 = co.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(" "); 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); sb.append(" and c.turno_id is not null"); 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"); return sb.toString(); } }