PageRenderTime 120ms CodeModel.GetById 20ms RepoModel.GetById 2ms app.codeStats 0ms

/src/capanegocio/Contacto.java

https://gitlab.com/luisrepo/FormularioCRUD
Java | 580 lines | 393 code | 50 blank | 137 comment | 38 complexity | e75aedefefd8566db8103123eb66e599 MD5 | raw file
  1. package capanegocio;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import org.hibernate.Criteria;
  5. import org.hibernate.Session;
  6. import org.hibernate.criterion.Criterion;
  7. import org.hibernate.criterion.Disjunction;
  8. import org.hibernate.criterion.LogicalExpression;
  9. import org.hibernate.criterion.Restrictions;
  10. import org.hibernate.sql.Insert;
  11. import org.orm.PersistentException;
  12. import org.orm.PersistentTransaction;
  13. import com.google.gson.Gson;
  14. import orm.ContactoCriteria;
  15. import orm.PDSPersistentManager;
  16. public class Contacto {
  17. private int uid;
  18. private String rut;
  19. private String nombre;
  20. private String apellido;
  21. private String mail;
  22. private String telefono;
  23. private Integer edad;
  24. private String sexo;
  25. private String anotaciones;
  26. private Empresa empresa;
  27. private Imagen imagen;
  28. public Contacto() {
  29. this.nombre="";
  30. this.apellido="";
  31. this.rut="";
  32. this.mail="";
  33. this.telefono="";
  34. this.edad=0;
  35. this.sexo="";
  36. this.anotaciones="";
  37. }
  38. /**
  39. * Contruye la clase contacto con todos los parametros.
  40. *
  41. * @param rut
  42. * - String - rut del contacto
  43. * @param nombre
  44. * - String - nombre del contacto
  45. * @param apellido
  46. * - String - apellido del contacto
  47. * @param mail
  48. * - String - correo electronico del contacto
  49. * @param telefono
  50. * - String - telefono del contacto
  51. * @param edad
  52. * - String - edad del contacto
  53. * @param sexo
  54. * - String - sexo del contacto
  55. */
  56. public Contacto(String rut, String nombre, String apellido, String mail, String telefono, int edad, String sexo) {
  57. this.rut = rut;
  58. this.nombre = nombre;
  59. this.apellido = apellido;
  60. this.mail = mail;
  61. this.telefono = telefono;
  62. this.edad = edad;
  63. this.sexo = sexo;
  64. }
  65. /**
  66. * Crea un contacto en la base de datos
  67. *
  68. * @param Contacto contacto - Contacto para ser ingresado en la base de datos
  69. * @return String out - Resultado del ingreso
  70. * @throws PersistentException
  71. */
  72. public String createData(Contacto contacto) {
  73. PersistentTransaction t = null;
  74. String out = "";
  75. try {
  76. t = PDSPersistentManager.instance().getSession().beginTransaction();
  77. orm.Contacto cont = orm.ContactoDAO.createContacto();
  78. contacto.setRut(contacto.getRut().replace("K", "k"));
  79. cont = contacto.toORMContacto();
  80. orm.ContactoDAO.save(cont);
  81. t.commit();
  82. out = "Ingreso Exitoso!";
  83. } catch (Exception e) {
  84. try {
  85. t.rollback();
  86. } catch (PersistentException e1) {
  87. out = "ERROR Volviendo todo atras.";
  88. }
  89. out = "ERROR Creando contacto";
  90. e.printStackTrace();
  91. }
  92. return out;
  93. }
  94. /**
  95. * Elimina un contacto de la base de datos
  96. *
  97. * @param Contacto c - Contacto para eliminar en la base de datos
  98. * @return String out - Mensaje con el resultado de la eliminacion
  99. * @throws PersistentException
  100. */
  101. public String deleteData(Contacto c) {
  102. PersistentTransaction t = null;
  103. String out = "";
  104. int id = c.getUid();
  105. try {
  106. t = PDSPersistentManager.instance().getSession().beginTransaction();
  107. orm.Contacto contacto = orm.ContactoDAO.loadContactoByQuery("uid=" + id, null);
  108. orm.ContactoDAO.delete(contacto);
  109. t.commit();
  110. out = "Contacto Eliminado!";
  111. } catch (Exception e) {
  112. try {
  113. t.rollback();
  114. } catch (PersistentException e1) {
  115. out = "ERROR Volviendo todo atras.";
  116. e1.printStackTrace();
  117. }
  118. out = "ERROR Eliminando al Contacto";
  119. e.printStackTrace();
  120. }
  121. return out;
  122. }
  123. /**
  124. * Obtiene la lista de contactos de la base de datos
  125. *
  126. * @return Contacto[] out - arreglo de contactos
  127. * @throws Exception
  128. */
  129. public Contacto[] listData() {
  130. orm.Contacto[] aux = null;
  131. Contacto[] out = null;
  132. try {
  133. System.out.println(orm.ContactoDAO.listContactoByQuery(null, null));
  134. aux = orm.ContactoDAO.listContactoByQuery(null, null);
  135. out = fromORMContactoToContacto(aux);
  136. } catch (Exception e) {
  137. System.out.println(aux);
  138. System.out.println(out);
  139. e.printStackTrace();
  140. }
  141. return out;
  142. }
  143. /**
  144. * Actualiza un contacto existente con nuevos datos
  145. *
  146. * @param Contacto c- Contacto - contacto que sera actualizado con los nuevos parametros
  147. * @return String out - Resultado de la edicion
  148. * @throws PersistentException, Exception
  149. */
  150. public String retrieveAndUpdateData(Contacto c) {
  151. PersistentTransaction t = null;
  152. String out = "";
  153. int id = c.getUid();
  154. try {
  155. t = PDSPersistentManager.instance().getSession().beginTransaction();
  156. orm.Contacto contacto = orm.ContactoDAO.loadContactoByORMID(id);
  157. if(c.getRut().trim().length()!=0){
  158. c.setRut(c.getRut().replace("K", "k"));;
  159. contacto.setRut(c.getRut());
  160. }
  161. if(c.getNombre().trim().length()!=0){
  162. contacto.setNombre(c.getNombre());
  163. }
  164. if(c.getApellido().trim().length()!=0){
  165. contacto.setApellido(c.getApellido());
  166. }
  167. if(c.getMail().trim().length()!=0){
  168. contacto.setMail(c.getMail());
  169. }
  170. if(c.getTelefono().trim().length()!=0){
  171. contacto.setTelefono(c.getTelefono());
  172. }
  173. if(c.getEdad()!=0){
  174. contacto.setEdad(c.getEdad());
  175. }
  176. if(c.getSexo().trim().length()!=0){
  177. contacto.setSexo(c.getSexo());
  178. }
  179. if(c.getEmpresa()!=null){
  180. contacto.setEmpresa(c.getEmpresa().toORMEmpresa());
  181. }
  182. if(c.getImagen()!=null){
  183. contacto.setImagen(c.getImagen().toORMImagen());
  184. }
  185. contacto.setAnotaciones(c.getAnotaciones());
  186. orm.ContactoDAO.save(contacto);
  187. t.commit();
  188. out = "Edicion Realizada!";
  189. } catch (Exception e) {
  190. try {
  191. t.rollback();
  192. } catch (PersistentException e1) {
  193. out = "ERROR Volviendo todo atras.";
  194. e.printStackTrace();
  195. }
  196. e.printStackTrace();
  197. out = "ERROR Actualizando contacto";
  198. }
  199. return out;
  200. }
  201. /**
  202. * Busca un contacto en la base de datos.
  203. *
  204. * @param String parametro - parametro para realizar la busqueda
  205. * @return Contacto contsSalida[] - contacto encontrado resultante
  206. * @throws Exception
  207. */
  208. public Contacto[] buscarContactoSimple(String parametro) {
  209. orm.Contacto[] contactos = null;
  210. Contacto[] contsSalida = null;
  211. ContactoCriteria ccr = null;
  212. if(parametro.trim().length()!=0 & parametro!=null){
  213. parametro=parametro.toLowerCase();
  214. try {
  215. ccr= new ContactoCriteria();
  216. Criterion nombre= Restrictions.ilike("nombre", "%"+parametro+"%");
  217. Criterion apellido= Restrictions.ilike("apellido", "%"+parametro+"%");
  218. Criterion telefono= Restrictions.ilike("telefono", parametro);
  219. Criterion mail= Restrictions.ilike("mail", parametro);
  220. Criterion rut= Restrictions.ilike("rut", parametro);
  221. Criterion sexo= Restrictions.ilike("sexo", parametro);
  222. Disjunction orExp= Restrictions.or(nombre, apellido,telefono,mail,rut,sexo);
  223. if(parametro.contains("ñ")){
  224. parametro=parametro.replace("ñ", "n");
  225. Criterion nombre2= Restrictions.ilike("nombre", parametro);
  226. Criterion apellido2= Restrictions.ilike("apellido", parametro);
  227. orExp.add(nombre2);
  228. orExp.add(apellido2);
  229. }
  230. boolean numero=false;
  231. parametro=parametro.trim();
  232. for(int i=0;i<parametro.length();i++){
  233. if(Character.isDigit(parametro.charAt(i))==true){
  234. numero=true;
  235. }else{
  236. numero=false;
  237. }
  238. }
  239. if(numero==true){
  240. Criterion edad= Restrictions.ilike("edad", Integer.parseInt(parametro));
  241. orExp.add(edad);
  242. }
  243. ccr.add(orExp);
  244. contactos = orm.ContactoDAO.listContactoByCriteria(ccr);
  245. if (contactos != null) {
  246. contsSalida = fromORMContactoToContacto(contactos);
  247. }
  248. } catch (Exception e) {
  249. e.printStackTrace();
  250. }
  251. }
  252. return contsSalida;
  253. }
  254. /**
  255. * Busca un contacto en la base de datos segun varios parametros.
  256. *
  257. * @param cont - cont acto con los parametros o almenos uno para realizar la busqueda
  258. * @return Contacto contSalida[] - contactos encontrado resultante
  259. * @throws Exception
  260. */
  261. public Contacto[] buscarContactoAvanzado(Contacto cont) {
  262. orm.Contacto[] contactos = new orm.Contacto[1];
  263. Contacto[] contsSalida = new Contacto[1];
  264. ContactoCriteria ccr = null;
  265. try {
  266. ccr = new ContactoCriteria();
  267. } catch (PersistentException e) {
  268. return contsSalida;
  269. }
  270. if (cont.getRut() != (null)) {
  271. if (cont.getRut().trim().length() != 0) {
  272. ccr.add(Restrictions.ilike("rut", cont.getRut().toLowerCase()));
  273. }
  274. }
  275. if (cont.getNombre() != (null)) {
  276. if (cont.getNombre().trim().length() != 0) {
  277. ccr.add(Restrictions.ilike("nombre", "%"+cont.getNombre().toLowerCase()+"%"));
  278. if(cont.getNombre().toLowerCase().contains("ñ")){
  279. String nombre= cont.getNombre().toLowerCase();
  280. nombre.replace("ñ", "n");
  281. ccr.add(Restrictions.ilike("nombre", nombre));
  282. }
  283. }
  284. }
  285. if (cont.getApellido() != (null)) {
  286. if (cont.getApellido().trim().length() != 0) {
  287. ccr.add(Restrictions.ilike("apellido", "%"+cont.getApellido().toLowerCase()+"%"));
  288. if(cont.getApellido().toLowerCase().contains("ñ")){
  289. String apellido= cont.getApellido().toLowerCase();
  290. apellido.replace("ñ", "n");
  291. ccr.add(Restrictions.ilike("apellido", apellido));
  292. }
  293. }
  294. }
  295. if (cont.getMail() != (null)) {
  296. if (cont.getMail().trim().length() != 0) {
  297. ccr.add(Restrictions.ilike("mail", cont.getMail().toLowerCase()));
  298. }
  299. }
  300. try {
  301. contactos = orm.ContactoDAO.listContactoByCriteria(ccr);
  302. contsSalida = fromORMContactoToContacto(contactos);
  303. } catch (Exception e) {
  304. return contsSalida;
  305. }
  306. return contsSalida;
  307. }
  308. /**
  309. * Busca un contacto en la base de datos por su id.
  310. *
  311. * @param int id
  312. * - id del contacto a buscar.
  313. * @return Contacto contSalida - contacto encontrado resultante
  314. * @throws Exception
  315. */
  316. public Contacto obtenerContactoPorId(int id) {
  317. Contacto contSalida= new Contacto();
  318. orm.Contacto contAux= new orm.Contacto();
  319. if(id!=0){
  320. try {
  321. contAux = orm.ContactoDAO.loadContactoByORMID(id);
  322. contSalida = fromORMtoContacto(contAux);
  323. } catch (Exception e) {
  324. contSalida.setUid(0);
  325. e.printStackTrace();
  326. return contSalida;
  327. }
  328. }else{
  329. contSalida.setUid(0);
  330. }
  331. return contSalida;
  332. }
  333. /**
  334. * Clace Primaria
  335. */
  336. public void setUid(int value) {
  337. this.uid = value;
  338. }
  339. /**
  340. * Clace Primaria
  341. */
  342. public int getUid() {
  343. return uid;
  344. }
  345. public int getORMID() {
  346. return getUid();
  347. }
  348. /**
  349. * Rut
  350. */
  351. public void setRut(String value) {
  352. this.rut = value;
  353. }
  354. /**
  355. * Rut
  356. */
  357. public String getRut() {
  358. return rut;
  359. }
  360. /**
  361. * Nombre
  362. */
  363. public void setNombre(String value) {
  364. this.nombre = value;
  365. }
  366. /**
  367. * Nombre
  368. */
  369. public String getNombre() {
  370. return nombre;
  371. }
  372. /**
  373. * Apellido
  374. */
  375. public void setApellido(String value) {
  376. this.apellido = value;
  377. }
  378. /**
  379. * Apellido
  380. */
  381. public String getApellido() {
  382. return apellido;
  383. }
  384. /**
  385. * Mail
  386. */
  387. public void setMail(String value) {
  388. this.mail = value;
  389. }
  390. /**
  391. * Mail
  392. */
  393. public String getMail() {
  394. return mail;
  395. }
  396. /**
  397. * Telefono
  398. */
  399. public void setTelefono(String value) {
  400. this.telefono = value;
  401. }
  402. /**
  403. * Telefono
  404. */
  405. public String getTelefono() {
  406. return telefono;
  407. }
  408. /**
  409. * Edad
  410. */
  411. public void setEdad(int value) {
  412. setEdad(new Integer(value));
  413. }
  414. /**
  415. * Edad
  416. */
  417. public void setEdad(Integer value) {
  418. this.edad = value;
  419. }
  420. /**
  421. * Edad
  422. */
  423. public Integer getEdad() {
  424. return edad;
  425. }
  426. /**
  427. * Sexo
  428. */
  429. public void setSexo(String value) {
  430. this.sexo = value;
  431. }
  432. /**
  433. * Sexo
  434. */
  435. public String getSexo() {
  436. return sexo;
  437. }
  438. public void setAnotaciones(String value) {
  439. this.anotaciones = value;
  440. }
  441. /**
  442. * Sexo
  443. */
  444. public String getAnotaciones() {
  445. return anotaciones;
  446. }
  447. public void setEmpresa(Empresa empresa) {
  448. this.empresa = empresa;
  449. }
  450. public Empresa getEmpresa() {
  451. return empresa;
  452. }
  453. public void setImagen(Imagen value) {
  454. this.imagen = value;
  455. }
  456. public Imagen getImagen() {
  457. return imagen;
  458. }
  459. /**
  460. * Metodo interno que transforma un capanegocio.Contacto a orm.Contacto
  461. *
  462. * @return orm.Contacto - contacto transformado
  463. */
  464. private orm.Contacto toORMContacto() {
  465. orm.Contacto contacto = new orm.Contacto();
  466. contacto.setUid(this.getUid());
  467. contacto.setNombre(this.getNombre());
  468. contacto.setApellido(this.getApellido());
  469. contacto.setMail(this.getMail());
  470. contacto.setTelefono(this.getTelefono());
  471. contacto.setRut(this.getRut());
  472. contacto.setSexo(this.getSexo());
  473. contacto.setEdad(this.getEdad());
  474. contacto.setAnotaciones(this.getAnotaciones());
  475. orm.Empresa emp = new orm.Empresa();
  476. emp = this.getEmpresa().toORMEmpresa();
  477. contacto.setEmpresa(emp);
  478. orm.Imagen img = new orm.Imagen();
  479. img = this.getImagen().toORMImagen();
  480. contacto.setImagen(img);
  481. return contacto;
  482. }
  483. /**
  484. * Metodo interno que transforma un orm.Contacto a capanegocio.Contacto
  485. *
  486. * @return capanegocio.Contacto - contacto transformado
  487. */
  488. private Contacto fromORMtoContacto(orm.Contacto cont) {
  489. Contacto contacto= null;
  490. try {
  491. if (cont != null) {
  492. contacto = new Contacto();
  493. contacto.setUid(cont.getUid());
  494. contacto.setNombre(cont.getNombre());
  495. contacto.setApellido(cont.getApellido());
  496. contacto.setMail(cont.getMail());
  497. contacto.setTelefono(cont.getTelefono());
  498. contacto.setRut(cont.getRut());
  499. contacto.setSexo(cont.getSexo());
  500. contacto.setEdad(cont.getEdad());
  501. contacto.setAnotaciones(cont.getAnotaciones());
  502. Empresa emp = new Empresa();
  503. emp.setId(cont.getEmpresa().getId());
  504. emp.setNombre(cont.getEmpresa().getNombre());
  505. contacto.setEmpresa(emp);
  506. Imagen img = new Imagen();
  507. img.setId(cont.getImagen().getId());
  508. img.setImage_path(cont.getImagen().getImage_path());
  509. contacto.setImagen(img);
  510. }
  511. } catch (Exception e) {
  512. e.printStackTrace();
  513. }
  514. return contacto;
  515. }
  516. /**
  517. * Metodo interno que transforma un arreglo de orm.Contacto a un arreglo de
  518. * capanegocio.Contacto
  519. *
  520. * @return capanegocio.Contacto[] - areglo de orn.Contacto transformado
  521. */
  522. private Contacto[] fromORMContactoToContacto(orm.Contacto[] contactos) {
  523. Contacto[] conts = null;
  524. conts = new Contacto[contactos.length];
  525. for (int i = 0; i < conts.length; i++) {
  526. conts[i] = fromORMtoContacto(contactos[i]);
  527. }
  528. return conts;
  529. }
  530. }