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

1423 lines
74 KiB
Java

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<Integer> 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<Integer> 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<Integer> 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<Integer> 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<Integer> 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<Integer> 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<Integer> 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<String,Object> 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<String,Object> 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();
}
}