150 lines
6.6 KiB
Java
150 lines
6.6 KiB
Java
package com.rjconsultores.ventaboletos.dao.sqlbuilder.impl;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
|
|
|
|
public class SQLBuilderOracle implements SQLBuilder {
|
|
|
|
@Override
|
|
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId) {
|
|
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(" PRECIOREDABIERTO, ");
|
|
sb.append(" TRAMO_ID, ");
|
|
sb.append(" MARCA_ID, ");
|
|
sb.append(" CLASESERVICIO_ID, ");
|
|
sb.append(" PRECIOORIGINAL, ");
|
|
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),2), ");
|
|
sb.append(" null, ");
|
|
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(" sysdate, ");
|
|
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 orgao_tramo tc on tc.tramo_id = rc.tramo_id ");
|
|
sb.append(" inner join orgao_concedente oc on oc.orgaoconcedente_id = tc.orgaoconcedente_id 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 MARCA_CLASESERVICIO mc on mc.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 m.moneda_id = 1 ");
|
|
sb.append(" and oc.orgaoconcedente_id = 3 ");
|
|
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, ");
|
|
sb.append(" r.ruta_id) not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID,tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id from tarifa_oficial tao where tao.activo = 1) ");
|
|
|
|
return sb.toString();
|
|
}
|
|
|
|
@Override
|
|
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId) {
|
|
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),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 tc.tramo_id = rc.tramo_id ");
|
|
sb.append(" inner join orgao_concedente oc on oc.orgaoconcedente_id = tc.orgaoconcedente_id 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 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 tc.activo = 1 ");
|
|
sb.append(" and m.moneda_id = 1 ");
|
|
sb.append(" and oc.orgaoconcedente_id = 3 ");
|
|
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 = sysdate ");
|
|
sb.append(" ");
|
|
sb.append("where ");
|
|
sb.append(" activo = 1 ");
|
|
if (rutaId != null){
|
|
sb.append(" and ruta_id = ").append(rutaId);
|
|
}
|
|
|
|
|
|
return sb.toString();
|
|
}
|
|
|
|
} |