/src/capanegocio/Contacto.java
Java | 580 lines | 393 code | 50 blank | 137 comment | 38 complexity | e75aedefefd8566db8103123eb66e599 MD5 | raw file
- package capanegocio;
- import java.util.ArrayList;
- import java.util.Arrays;
- import org.hibernate.Criteria;
- import org.hibernate.Session;
- import org.hibernate.criterion.Criterion;
- import org.hibernate.criterion.Disjunction;
- import org.hibernate.criterion.LogicalExpression;
- import org.hibernate.criterion.Restrictions;
- import org.hibernate.sql.Insert;
- import org.orm.PersistentException;
- import org.orm.PersistentTransaction;
- import com.google.gson.Gson;
- import orm.ContactoCriteria;
- import orm.PDSPersistentManager;
- public class Contacto {
- private int uid;
- private String rut;
- private String nombre;
- private String apellido;
- private String mail;
- private String telefono;
- private Integer edad;
- private String sexo;
-
- private String anotaciones;
- private Empresa empresa;
- private Imagen imagen;
- public Contacto() {
- this.nombre="";
- this.apellido="";
- this.rut="";
- this.mail="";
- this.telefono="";
- this.edad=0;
- this.sexo="";
- this.anotaciones="";
- }
- /**
- * Contruye la clase contacto con todos los parametros.
- *
- * @param rut
- * - String - rut del contacto
- * @param nombre
- * - String - nombre del contacto
- * @param apellido
- * - String - apellido del contacto
- * @param mail
- * - String - correo electronico del contacto
- * @param telefono
- * - String - telefono del contacto
- * @param edad
- * - String - edad del contacto
- * @param sexo
- * - String - sexo del contacto
- */
- public Contacto(String rut, String nombre, String apellido, String mail, String telefono, int edad, String sexo) {
- this.rut = rut;
- this.nombre = nombre;
- this.apellido = apellido;
- this.mail = mail;
- this.telefono = telefono;
- this.edad = edad;
- this.sexo = sexo;
- }
- /**
- * Crea un contacto en la base de datos
- *
- * @param Contacto contacto - Contacto para ser ingresado en la base de datos
- * @return String out - Resultado del ingreso
- * @throws PersistentException
- */
- public String createData(Contacto contacto) {
- PersistentTransaction t = null;
- String out = "";
- try {
- t = PDSPersistentManager.instance().getSession().beginTransaction();
- orm.Contacto cont = orm.ContactoDAO.createContacto();
- contacto.setRut(contacto.getRut().replace("K", "k"));
- cont = contacto.toORMContacto();
- orm.ContactoDAO.save(cont);
- t.commit();
- out = "Ingreso Exitoso!";
- } catch (Exception e) {
- try {
- t.rollback();
- } catch (PersistentException e1) {
- out = "ERROR Volviendo todo atras.";
- }
- out = "ERROR Creando contacto";
- e.printStackTrace();
- }
- return out;
- }
- /**
- * Elimina un contacto de la base de datos
- *
- * @param Contacto c - Contacto para eliminar en la base de datos
- * @return String out - Mensaje con el resultado de la eliminacion
- * @throws PersistentException
- */
- public String deleteData(Contacto c) {
- PersistentTransaction t = null;
- String out = "";
- int id = c.getUid();
- try {
- t = PDSPersistentManager.instance().getSession().beginTransaction();
- orm.Contacto contacto = orm.ContactoDAO.loadContactoByQuery("uid=" + id, null);
- orm.ContactoDAO.delete(contacto);
- t.commit();
- out = "Contacto Eliminado!";
- } catch (Exception e) {
- try {
- t.rollback();
- } catch (PersistentException e1) {
- out = "ERROR Volviendo todo atras.";
- e1.printStackTrace();
- }
- out = "ERROR Eliminando al Contacto";
- e.printStackTrace();
- }
- return out;
- }
- /**
- * Obtiene la lista de contactos de la base de datos
- *
- * @return Contacto[] out - arreglo de contactos
- * @throws Exception
- */
- public Contacto[] listData() {
- orm.Contacto[] aux = null;
- Contacto[] out = null;
- try {
- System.out.println(orm.ContactoDAO.listContactoByQuery(null, null));
- aux = orm.ContactoDAO.listContactoByQuery(null, null);
- out = fromORMContactoToContacto(aux);
- } catch (Exception e) {
- System.out.println(aux);
- System.out.println(out);
- e.printStackTrace();
- }
- return out;
- }
- /**
- * Actualiza un contacto existente con nuevos datos
- *
- * @param Contacto c- Contacto - contacto que sera actualizado con los nuevos parametros
- * @return String out - Resultado de la edicion
- * @throws PersistentException, Exception
- */
- public String retrieveAndUpdateData(Contacto c) {
- PersistentTransaction t = null;
- String out = "";
- int id = c.getUid();
- try {
- t = PDSPersistentManager.instance().getSession().beginTransaction();
- orm.Contacto contacto = orm.ContactoDAO.loadContactoByORMID(id);
- if(c.getRut().trim().length()!=0){
- c.setRut(c.getRut().replace("K", "k"));;
- contacto.setRut(c.getRut());
- }
- if(c.getNombre().trim().length()!=0){
- contacto.setNombre(c.getNombre());
- }
- if(c.getApellido().trim().length()!=0){
- contacto.setApellido(c.getApellido());
- }
- if(c.getMail().trim().length()!=0){
- contacto.setMail(c.getMail());
- }
- if(c.getTelefono().trim().length()!=0){
- contacto.setTelefono(c.getTelefono());
- }
- if(c.getEdad()!=0){
- contacto.setEdad(c.getEdad());
- }
- if(c.getSexo().trim().length()!=0){
- contacto.setSexo(c.getSexo());
- }
- if(c.getEmpresa()!=null){
- contacto.setEmpresa(c.getEmpresa().toORMEmpresa());
- }
- if(c.getImagen()!=null){
- contacto.setImagen(c.getImagen().toORMImagen());
- }
- contacto.setAnotaciones(c.getAnotaciones());
- orm.ContactoDAO.save(contacto);
- t.commit();
- out = "Edicion Realizada!";
- } catch (Exception e) {
- try {
- t.rollback();
- } catch (PersistentException e1) {
- out = "ERROR Volviendo todo atras.";
- e.printStackTrace();
- }
- e.printStackTrace();
- out = "ERROR Actualizando contacto";
- }
- return out;
- }
- /**
- * Busca un contacto en la base de datos.
- *
- * @param String parametro - parametro para realizar la busqueda
- * @return Contacto contsSalida[] - contacto encontrado resultante
- * @throws Exception
- */
- public Contacto[] buscarContactoSimple(String parametro) {
- orm.Contacto[] contactos = null;
- Contacto[] contsSalida = null;
- ContactoCriteria ccr = null;
- if(parametro.trim().length()!=0 & parametro!=null){
- parametro=parametro.toLowerCase();
- try {
- ccr= new ContactoCriteria();
- Criterion nombre= Restrictions.ilike("nombre", "%"+parametro+"%");
- Criterion apellido= Restrictions.ilike("apellido", "%"+parametro+"%");
- Criterion telefono= Restrictions.ilike("telefono", parametro);
- Criterion mail= Restrictions.ilike("mail", parametro);
- Criterion rut= Restrictions.ilike("rut", parametro);
- Criterion sexo= Restrictions.ilike("sexo", parametro);
- Disjunction orExp= Restrictions.or(nombre, apellido,telefono,mail,rut,sexo);
- if(parametro.contains("ñ")){
- parametro=parametro.replace("ñ", "n");
- Criterion nombre2= Restrictions.ilike("nombre", parametro);
- Criterion apellido2= Restrictions.ilike("apellido", parametro);
- orExp.add(nombre2);
- orExp.add(apellido2);
- }
- boolean numero=false;
- parametro=parametro.trim();
- for(int i=0;i<parametro.length();i++){
- if(Character.isDigit(parametro.charAt(i))==true){
- numero=true;
- }else{
- numero=false;
- }
- }
- if(numero==true){
- Criterion edad= Restrictions.ilike("edad", Integer.parseInt(parametro));
- orExp.add(edad);
- }
- ccr.add(orExp);
- contactos = orm.ContactoDAO.listContactoByCriteria(ccr);
- if (contactos != null) {
- contsSalida = fromORMContactoToContacto(contactos);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return contsSalida;
- }
- /**
- * Busca un contacto en la base de datos segun varios parametros.
- *
- * @param cont - cont acto con los parametros o almenos uno para realizar la busqueda
- * @return Contacto contSalida[] - contactos encontrado resultante
- * @throws Exception
- */
- public Contacto[] buscarContactoAvanzado(Contacto cont) {
- orm.Contacto[] contactos = new orm.Contacto[1];
- Contacto[] contsSalida = new Contacto[1];
- ContactoCriteria ccr = null;
- try {
- ccr = new ContactoCriteria();
- } catch (PersistentException e) {
- return contsSalida;
- }
- if (cont.getRut() != (null)) {
- if (cont.getRut().trim().length() != 0) {
- ccr.add(Restrictions.ilike("rut", cont.getRut().toLowerCase()));
- }
- }
- if (cont.getNombre() != (null)) {
- if (cont.getNombre().trim().length() != 0) {
- ccr.add(Restrictions.ilike("nombre", "%"+cont.getNombre().toLowerCase()+"%"));
- if(cont.getNombre().toLowerCase().contains("ñ")){
- String nombre= cont.getNombre().toLowerCase();
- nombre.replace("ñ", "n");
- ccr.add(Restrictions.ilike("nombre", nombre));
- }
- }
- }
- if (cont.getApellido() != (null)) {
- if (cont.getApellido().trim().length() != 0) {
- ccr.add(Restrictions.ilike("apellido", "%"+cont.getApellido().toLowerCase()+"%"));
- if(cont.getApellido().toLowerCase().contains("ñ")){
- String apellido= cont.getApellido().toLowerCase();
- apellido.replace("ñ", "n");
- ccr.add(Restrictions.ilike("apellido", apellido));
- }
- }
- }
- if (cont.getMail() != (null)) {
- if (cont.getMail().trim().length() != 0) {
- ccr.add(Restrictions.ilike("mail", cont.getMail().toLowerCase()));
- }
- }
- try {
- contactos = orm.ContactoDAO.listContactoByCriteria(ccr);
- contsSalida = fromORMContactoToContacto(contactos);
- } catch (Exception e) {
- return contsSalida;
- }
- return contsSalida;
- }
-
- /**
- * Busca un contacto en la base de datos por su id.
- *
- * @param int id
- * - id del contacto a buscar.
- * @return Contacto contSalida - contacto encontrado resultante
- * @throws Exception
- */
- public Contacto obtenerContactoPorId(int id) {
- Contacto contSalida= new Contacto();
- orm.Contacto contAux= new orm.Contacto();
- if(id!=0){
- try {
- contAux = orm.ContactoDAO.loadContactoByORMID(id);
- contSalida = fromORMtoContacto(contAux);
- } catch (Exception e) {
- contSalida.setUid(0);
- e.printStackTrace();
- return contSalida;
- }
- }else{
- contSalida.setUid(0);
- }
- return contSalida;
- }
-
- /**
- * Clace Primaria
- */
- public void setUid(int value) {
- this.uid = value;
- }
- /**
- * Clace Primaria
- */
- public int getUid() {
- return uid;
- }
- public int getORMID() {
- return getUid();
- }
- /**
- * Rut
- */
- public void setRut(String value) {
- this.rut = value;
- }
- /**
- * Rut
- */
- public String getRut() {
- return rut;
- }
- /**
- * Nombre
- */
- public void setNombre(String value) {
- this.nombre = value;
- }
- /**
- * Nombre
- */
- public String getNombre() {
- return nombre;
- }
- /**
- * Apellido
- */
- public void setApellido(String value) {
- this.apellido = value;
- }
- /**
- * Apellido
- */
- public String getApellido() {
- return apellido;
- }
- /**
- * Mail
- */
- public void setMail(String value) {
- this.mail = value;
- }
- /**
- * Mail
- */
- public String getMail() {
- return mail;
- }
- /**
- * Telefono
- */
- public void setTelefono(String value) {
- this.telefono = value;
- }
- /**
- * Telefono
- */
- public String getTelefono() {
- return telefono;
- }
- /**
- * Edad
- */
- public void setEdad(int value) {
- setEdad(new Integer(value));
- }
- /**
- * Edad
- */
- public void setEdad(Integer value) {
- this.edad = value;
- }
- /**
- * Edad
- */
- public Integer getEdad() {
- return edad;
- }
- /**
- * Sexo
- */
- public void setSexo(String value) {
- this.sexo = value;
- }
- /**
- * Sexo
- */
- public String getSexo() {
- return sexo;
- }
-
- public void setAnotaciones(String value) {
- this.anotaciones = value;
- }
- /**
- * Sexo
- */
- public String getAnotaciones() {
- return anotaciones;
- }
- public void setEmpresa(Empresa empresa) {
- this.empresa = empresa;
- }
- public Empresa getEmpresa() {
- return empresa;
- }
- public void setImagen(Imagen value) {
- this.imagen = value;
- }
- public Imagen getImagen() {
- return imagen;
- }
-
- /**
- * Metodo interno que transforma un capanegocio.Contacto a orm.Contacto
- *
- * @return orm.Contacto - contacto transformado
- */
- private orm.Contacto toORMContacto() {
- orm.Contacto contacto = new orm.Contacto();
- contacto.setUid(this.getUid());
- contacto.setNombre(this.getNombre());
- contacto.setApellido(this.getApellido());
- contacto.setMail(this.getMail());
- contacto.setTelefono(this.getTelefono());
- contacto.setRut(this.getRut());
- contacto.setSexo(this.getSexo());
- contacto.setEdad(this.getEdad());
- contacto.setAnotaciones(this.getAnotaciones());
- orm.Empresa emp = new orm.Empresa();
- emp = this.getEmpresa().toORMEmpresa();
- contacto.setEmpresa(emp);
- orm.Imagen img = new orm.Imagen();
- img = this.getImagen().toORMImagen();
- contacto.setImagen(img);
- return contacto;
- }
- /**
- * Metodo interno que transforma un orm.Contacto a capanegocio.Contacto
- *
- * @return capanegocio.Contacto - contacto transformado
- */
- private Contacto fromORMtoContacto(orm.Contacto cont) {
- Contacto contacto= null;
- try {
- if (cont != null) {
- contacto = new Contacto();
- contacto.setUid(cont.getUid());
- contacto.setNombre(cont.getNombre());
- contacto.setApellido(cont.getApellido());
- contacto.setMail(cont.getMail());
- contacto.setTelefono(cont.getTelefono());
- contacto.setRut(cont.getRut());
- contacto.setSexo(cont.getSexo());
- contacto.setEdad(cont.getEdad());
- contacto.setAnotaciones(cont.getAnotaciones());
- Empresa emp = new Empresa();
- emp.setId(cont.getEmpresa().getId());
- emp.setNombre(cont.getEmpresa().getNombre());
- contacto.setEmpresa(emp);
- Imagen img = new Imagen();
- img.setId(cont.getImagen().getId());
- img.setImage_path(cont.getImagen().getImage_path());
- contacto.setImagen(img);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return contacto;
- }
- /**
- * Metodo interno que transforma un arreglo de orm.Contacto a un arreglo de
- * capanegocio.Contacto
- *
- * @return capanegocio.Contacto[] - areglo de orn.Contacto transformado
- */
- private Contacto[] fromORMContactoToContacto(orm.Contacto[] contactos) {
- Contacto[] conts = null;
- conts = new Contacto[contactos.length];
- for (int i = 0; i < conts.length; i++) {
- conts[i] = fromORMtoContacto(contactos[i]);
- }
- return conts;
- }
- }