Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.demo.impl; import com.demo.dao.DatosVisitaDomDao; import com.demo.model.DatosVisitaDomiciliaria; import com.demo.util.HibernateUtil; import com.demo.util.LogSistema; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; /** * * @author casiopea */ public class DatosVistDomImpl implements DatosVisitaDomDao, Serializable { @Override public List<DatosVisitaDomiciliaria> porFiltro(int campana, int gestor, String estado, String municipio, int minMeses, int maxMeses, Date fechainicioUlt, Date fechaFinUlt, Date fechainicioQue, Date fechafinQuebr, float minMens, float maxMens, float minImporte, float maxImporte, float minSdoVen, float maxSdoVen, float minSdoCap, float maxSdoCap, String productoElegido, String Tipo) { String sql = "select dp.`Deudor` as nombre, d.`DomDeu` as calle, d.`ColDeu` as colonia, d.`Entdeu` as delegacion, d.`EdoDeu` as estado, d.`CodPos` as cp, cred.`CreditosII` as numcredito, actu.`SdoVen` as saldo, cred.`Producto` as producto, cred.`Cat_Gestores_Cat_Gestor_clv` as Gestor, cred.Campagne_Camp_Clv as campagne, '" + Tipo + "' as Tipo from direcciones d join datos_primarios dp join credito_sf_lt_nt_ct cred join actu_sf_lt_nt_ct actu where "; if (estado != null && estado.compareTo("") != 0) { if (estado.compareToIgnoreCase("mexico") != 0) { if (estado.compareToIgnoreCase("BAJA CALIFORNIA") != 0) { sql += " d.`EdoDeu`='" + estado + "' and "; } else { sql += "( d.`EdoDeu`='baja california' or d.`EdoDeu`='baja california norte' or d.`EdoDeu`='baja california nte' ) and "; } } else { sql += "( d.`EdoDeu`='mexico' or d.`EdoDeu`='edo. mex' or d.`EdoDeu`='estado de mexico' ) and "; } } if (municipio != null && municipio.compareTo("") != 0) { sql += " d.`Entdeu`='" + municipio + "' and"; } sql += " d.`Datos_primarios_Folio`=dp.`Folio` and \n" + " dp.`Folio`=cred.`Datos_primarios_Folio` "; if (gestor != 0) { sql += " and cred.`Cat_Gestores_Cat_Gestor_clv` =" + gestor + " "; } if (campana != 0) { sql += " and cred.`Campagne_Camp_Clv`=" + campana + " "; } if (productoElegido.compareTo("Todos") != 0) { if (productoElegido.compareTo("SOFOM COMERCIAL") == 0) { sql += " and (cred.Producto = 'A_LINEA CREDITO TELMEX PF 50' or cred.Producto = 'A_LINEA CREDITO TELMEX PM 50' or cred.Producto = 'A_EX LINEA CREDITO TELMEX PF 50' or cred.Producto = 'A_EXLINEA CREDITO TELMEX PM 50') "; } else if (productoElegido.compareTo("SOFOM PERSONAL") == 0) { sql += " and (cred.Producto = 'A_LINEA CREDITO TELMEX PERSONAL 38' or cred.Producto = 'EX LINEA CREDITO TELMEX PERSONAL 38') "; } else if (productoElegido.compareTo("CT EXPRESS") == 0) { sql += " and (cred.Producto = 'CT EXPRESS PF' or cred.Producto = 'CT EXPRESS PM' or cred.Producto = 'CREDITOS EXPRESS PF' or cred.Producto = 'CREDITOS EXPRESS PM' or cred.Producto = 'EXPRESS ABIERTO PF' or cred.Producto = 'EXPRESS ABIERTO PM') "; } else if (productoElegido.compareTo("LINEA TELMEX") == 0) { sql += " and (cred.Producto = 'LINEA CREDITO TELMEX PF' or cred.Producto = 'LINEA CREDITO TELMEX PM' or cred.Producto = 'EX LINEA CREDITO TELMEX PF' or cred.Producto = 'EXLINEA CREDITO TELMEX PM') "; } else if (productoElegido.compareTo("TELNOR LT") == 0) { sql += " and (cred.Producto = 'LINEA CREDITO TELNOR PF' or cred.Producto = 'LINEA CREDITO TELNOR PM' or cred.Producto = 'EX LINEA CREDITO TELNOR PF' or cred.Producto = 'EXLINEA CREDITO TELNOR PM') "; } else if (productoElegido.compareTo("TELNOR SOFOM") == 0) { sql += " and (cred.Producto = 'A_LINEA CREDITO TELNOR PF 50' or cred.Producto = 'A_LINEA CREDITO TELNOR PM 50' or cred.Producto = 'A_EX LINEA CREDITO TELNOR PF 50' or cred.Producto = 'A_EXLINEA CREDITO TELNOR PM 50') "; } else if (productoElegido.compareTo("CT CASTIGO") == 0) { sql += " and (cred.Producto = 'CT EXPRESS PF CASTIGO' or cred.Producto = 'CT EXPRESS PM CASTIGO') "; } else if (productoElegido.compareTo("QUEBRANTO COMERCIAL") == 0) { sql += " and (cred.Producto = 'LINEA CREDITO TELMEX PF 50 QUEBRANTO' or cred.Producto = 'LINEA CREDITO TELMEX PM 50 QUEBRANTO' or cred.Producto = 'EX LINEA CREDITO TELMEX PF 50 QUEBRANTO' or cred.Producto = 'EXLINEA CREDITO TELMEX PM 50 QUEBRANTO' or cred.Producto = 'LINEA CREDITO TELMEX PF QUEBRANTO' or cred.Producto = 'LINEA CREDITO TELMEX PM QUEBRANTO' or cred.Producto = 'EX LINEA CREDITO TELMEX PF QUEBRANTO' or cred.Producto = 'EXLINEA CREDITO TELMEX PM QUEBRANTO') "; } else if (productoElegido.compareTo("TELNOR PERSONAL") == 0) { sql += " and (cred.Producto = 'A_LINEA CREDITO TELNOR PERSONAL 38' or cred.Producto = 'EX LINEA CREDITO TELNOR PERSONAL 38') "; } else { sql += " and cred.Producto = '" + productoElegido + "' "; } } sql += " and cred.Cat_Gestores_Cat_Gestor_clv!=16 "; sql += " and cred.`ImpCred`>" + minImporte + " and cred.`ImpCred`<" + maxImporte + " "; sql += " and cred.`ImpMens`>" + minMens + " and cred.`ImpMens`<" + maxMens + " "; SimpleDateFormat formatoDeFecha = new SimpleDateFormat("yyyy-MM-dd"); sql += " and ((cred.`FechQuebCt`>'" + formatoDeFecha.format(fechainicioQue) + "' and cred.`FechQuebCt`<'" + formatoDeFecha.format(fechafinQuebr) + "') or cred.`FechQuebCt` is null) "; sql += " and ((cred.`FechUltPag` >'" + formatoDeFecha.format(fechainicioUlt) + "' and cred.`FechUltPag`<'" + formatoDeFecha.format(fechaFinUlt) + "') or cred.`FechUltPag` is null) "; sql += " and cred.`Cat_Subestatus_Cuenta_Subestatus_Clv`=5 and cred.`CreditosII`=actu.`Credito_SF_LT_NT_CT_CreditosII` and\n" + "actu.`Consecutivo`=(select max(act.`Consecutivo`) from actu_sf_lt_nt_ct act where act.`Credito_SF_LT_NT_CT_CreditosII`=cred.`CreditosII`) "; sql += " and actu.`MesVenLineas`>" + minMeses + " and actu.`MesVenLineas`<" + maxMeses + " and\n" + "actu.`SdoVen`>" + minSdoVen + " and actu.`SdoVen`<" + maxSdoVen + " and\n" + "actu.`SdoTotal`>" + minSdoCap + " and actu.`SdoTotal`<" + maxSdoCap + " group by cred.`CreditosII` \n " + " order by dp.Deudor;"; //GROUP by cred.`CreditosII` Session s = HibernateUtil.getSessionFactory().openSession(); Transaction t = s.beginTransaction(); List<DatosVisitaDomiciliaria> datos; try { System.out.println("sql: " + sql); datos = s.createSQLQuery(sql).addEntity(DatosVisitaDomiciliaria.class).list(); t.commit(); return datos; } catch (HibernateException he) { LogSistema.guardarlog(this.getClass().getName() + " Method:porFiltro , Exception: " + he.getMessage()); System.out.println("error datosvisita " + he.getMessage()); datos = new ArrayList<>(); return datos; } } }