/grails-app/controllers/general/OrganizacionController.groovy

http://github.com/jdmr/mateo · Groovy · 126 lines · 111 code · 15 blank · 0 comment · 15 complexity · c5f1ba689a9c617f9346322c1c1e5e2e MD5 · raw file

  1. package general
  2. import grails.converters.JSON
  3. import grails.plugins.springsecurity.Secured
  4. import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils
  5. @Secured(['ROLE_ADMIN'])
  6. class OrganizacionController {
  7. def springSecurityService
  8. static allowedMethods = [crea: "POST", actualiza: "POST", elimina: "POST"]
  9. def index = {
  10. redirect(action: "lista", params: params)
  11. }
  12. def lista = {
  13. params.max = Math.min(params.max ? params.int('max') : 10, 100)
  14. [organizaciones: Organizacion.list(params), totalDeOrganizaciones: Organizacion.count()]
  15. }
  16. def nueva = {
  17. def organizacion = new Organizacion()
  18. organizacion.properties = params
  19. return [organizacion: organizacion]
  20. }
  21. def crea = {
  22. Organizacion.withTransaction {
  23. def organizacion = new Organizacion(params)
  24. if (organizacion.save(flush: true)) {
  25. def empresa = new Empresa (
  26. codigo : 'EMP'
  27. , nombre : 'EMPRESA'
  28. , nombreCompleto : 'EMPRESA'
  29. , organizacion : organizacion
  30. ).save(flush:true)
  31. def usuario = springSecurityService.currentUser
  32. usuario.empresa = empresa
  33. usuario.save()
  34. session.organizacion = organizacion
  35. session.empresa = empresa
  36. flash.message = message(code: 'default.created.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), organizacion.nombre])
  37. redirect(controller:'empresa', action: "edita", id: empresa.id)
  38. }
  39. else {
  40. render(view: "nueva", model: [organizacion: organizacion])
  41. }
  42. }
  43. }
  44. def ver = {
  45. def organizacion = Organizacion.get(params.id)
  46. if (!organizacion) {
  47. flash.message = message(code: 'default.not.found.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), params.id])
  48. redirect(action: "lista")
  49. }
  50. else {
  51. [organizacion: organizacion]
  52. }
  53. }
  54. def edita = {
  55. def organizacion = Organizacion.get(params.id)
  56. if (!organizacion) {
  57. flash.message = message(code: 'default.not.found.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), params.id])
  58. redirect(action: "lista")
  59. }
  60. else {
  61. return [organizacion: organizacion]
  62. }
  63. }
  64. def actualiza = {
  65. def organizacion = Organizacion.get(params.id)
  66. if (organizacion) {
  67. if (params.version) {
  68. def version = params.version.toLong()
  69. if (organizacion.version > version) {
  70. organizacion.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'organizacion.label', default: 'Organizacion')] as Object[], "Another user has updated this Organizacion while you were editing")
  71. render(view: "edita", model: [organizacion: organizacion])
  72. return
  73. }
  74. }
  75. organizacion.properties = params
  76. if (!organizacion.hasErrors() && organizacion.save(flush: true)) {
  77. flash.message = message(code: 'default.updated.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), organizacion.nombre])
  78. redirect(action: "ver", id: organizacion.id)
  79. }
  80. else {
  81. render(view: "edita", model: [organizacion: organizacion])
  82. }
  83. }
  84. else {
  85. flash.message = message(code: 'default.not.found.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), params.id])
  86. redirect(action: "lista")
  87. }
  88. }
  89. def elimina = {
  90. Organizacion.withTransaction {
  91. def organizacion = Organizacion.get(params.id)
  92. if (organizacion) {
  93. def nombre
  94. try {
  95. nombre = organizacion.nombre
  96. organizacion.delete(flush: true)
  97. flash.message = message(code: 'default.deleted.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), nombre])
  98. redirect(action: "lista")
  99. }
  100. catch (org.springframework.dao.DataIntegrityViolationException e) {
  101. flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), nombre])
  102. redirect(action: "ver", id: params.id)
  103. }
  104. }
  105. else {
  106. flash.message = message(code: 'default.not.found.message', args: [message(code: 'organizacion.label', default: 'Organizacion'), params.id])
  107. redirect(action: "lista")
  108. }
  109. }
  110. }
  111. }