PageRenderTime 14ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://github.com/jdmr/mateo
Groovy | 114 lines | 101 code | 13 blank | 0 comment | 15 complexity | 7de3b333a84f5c2d926a00ac538c9718 MD5 | raw file
  1. package general
  2. import grails.converters.JSON
  3. import grails.plugins.springsecurity.Secured
  4. @Secured(['ROLE_EMP'])
  5. class ProveedorController {
  6. def springSecurityService
  7. static allowedMethods = [crea: "POST", actualiza: "POST", elimina: "POST"]
  8. def index = {
  9. redirect(action: "lista", params: params)
  10. }
  11. def lista = {
  12. params.max = Math.min(params.max ? params.int('max') : 10, 100)
  13. def usuario = springSecurityService.currentUser
  14. [proveedores: Proveedor.findAllByEmpresa(usuario.empresa, params), totalDeProveedores: Proveedor.countByEmpresa(usuario.empresa)]
  15. }
  16. def nuevo = {
  17. def proveedor = new Proveedor()
  18. proveedor.properties = params
  19. return [proveedor: proveedor]
  20. }
  21. def crea = {
  22. def proveedor = new Proveedor(params)
  23. def usuario = springSecurityService.currentUser
  24. proveedor.empresa = usuario.empresa
  25. if (proveedor.save(flush: true)) {
  26. flash.message = message(code: 'default.created.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), proveedor.nombre])
  27. redirect(action: "ver", id: proveedor.id)
  28. }
  29. else {
  30. render(view: "nuevo", model: [proveedor: proveedor])
  31. }
  32. }
  33. def ver = {
  34. def usuario = springSecurityService.currentUser
  35. def proveedor = Proveedor.findByEmpresaAndId(usuario.empresa, params.id)
  36. if (!proveedor) {
  37. flash.message = message(code: 'default.not.found.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), params.id])
  38. redirect(action: "lista")
  39. }
  40. else {
  41. [proveedor: proveedor]
  42. }
  43. }
  44. def edita = {
  45. def usuario = springSecurityService.currentUser
  46. def proveedor = Proveedor.findByEmpresaAndId(usuario.empresa, params.id)
  47. if (!proveedor) {
  48. flash.message = message(code: 'default.not.found.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), params.id])
  49. redirect(action: "lista")
  50. }
  51. else {
  52. return [proveedor: proveedor]
  53. }
  54. }
  55. def actualiza = {
  56. def usuario = springSecurityService.currentUser
  57. def proveedor = Proveedor.findByEmpresaAndId(usuario.empresa, params.id)
  58. if (proveedor) {
  59. if (params.version) {
  60. def version = params.version.toLong()
  61. if (proveedor.version > version) {
  62. proveedor.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'proveedor.label', default: 'Proveedor')] as Object[], "Another user has updated this Proveedor while you were editing")
  63. render(view: "edita", model: [proveedor: proveedor])
  64. return
  65. }
  66. }
  67. proveedor.properties = params
  68. proveedor.empresa = usuario.empresa
  69. if (!proveedor.hasErrors() && proveedor.save(flush: true)) {
  70. flash.message = message(code: 'default.updated.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), proveedor.nombre])
  71. redirect(action: "ver", id: proveedor.id)
  72. }
  73. else {
  74. render(view: "edita", model: [proveedor: proveedor])
  75. }
  76. }
  77. else {
  78. flash.message = message(code: 'default.not.found.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), params.id])
  79. redirect(action: "lista")
  80. }
  81. }
  82. def elimina = {
  83. def proveedor = Proveedor.get(params.id)
  84. if (proveedor) {
  85. def nombre = proveedor.nombre
  86. try {
  87. proveedor.delete(flush: true)
  88. flash.message = message(code: 'default.deleted.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), params.nombre])
  89. redirect(action: "lista")
  90. }
  91. catch (org.springframework.dao.DataIntegrityViolationException e) {
  92. flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), params.nombre])
  93. redirect(action: "ver", id: params.id)
  94. }
  95. }
  96. else {
  97. flash.message = message(code: 'default.not.found.message', args: [message(code: 'proveedor.label', default: 'Proveedor'), params.id])
  98. redirect(action: "lista")
  99. }
  100. }
  101. }