PageRenderTime 271ms CodeModel.GetById 54ms app.highlight 133ms RepoModel.GetById 75ms app.codeStats 1ms

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