AdmMono/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java

695 lines
32 KiB
Java

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();
}
}