Skip to content

Commit

Permalink
Implementação inicial de Tipo de Documento e Espécie Documental
Browse files Browse the repository at this point in the history
  • Loading branch information
Guilherme Andrade Del Cantoni committed Mar 27, 2017
1 parent 3b97147 commit cdf8042
Show file tree
Hide file tree
Showing 20 changed files with 924 additions and 9 deletions.
107 changes: 107 additions & 0 deletions grails-app/controllers/working/docweb/EspecieController.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package working.docweb

import static org.springframework.http.HttpStatus.*
import grails.transaction.Transactional

@Transactional(readOnly = true)
class EspecieController {

static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]

def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond Especie.list(params), model:[especieCount: Especie.count()]
}

def show(Especie especie) {
respond especie
}

def create() {
respond new Especie(params)
}

@Transactional
def save(Especie especie) {
if (especie == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}

if (especie.hasErrors()) {
transactionStatus.setRollbackOnly()
respond especie.errors, view:'create'
return
}

especie.save flush:true

request.withFormat {
form multipartForm {
flash.message = message(code: 'default.created.message', args: [message(code: 'especie.label', default: 'Especie'), especie.id])
redirect especie
}
'*' { respond especie, [status: CREATED] }
}
}

def edit(Especie especie) {
respond especie
}

@Transactional
def update(Especie especie) {
if (especie == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}

if (especie.hasErrors()) {
transactionStatus.setRollbackOnly()
respond especie.errors, view:'edit'
return
}

especie.save flush:true

request.withFormat {
form multipartForm {
flash.message = message(code: 'default.updated.message', args: [message(code: 'especie.label', default: 'Especie'), especie.id])
redirect especie
}
'*'{ respond especie, [status: OK] }
}
}

@Transactional
def delete(Especie especie) {

if (especie == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}

especie.delete flush:true

request.withFormat {
form multipartForm {
flash.message = message(code: 'default.deleted.message', args: [message(code: 'especie.label', default: 'Especie'), especie.id])
redirect action:"index", method:"GET"
}
'*'{ render status: NO_CONTENT }
}
}

protected void notFound() {
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'especie.label', default: 'Especie'), params.id])
redirect action: "index", method: "GET"
}
'*'{ render status: NOT_FOUND }
}
}
}
107 changes: 107 additions & 0 deletions grails-app/controllers/working/docweb/TipoDocumentoController.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package working.docweb

import static org.springframework.http.HttpStatus.*
import grails.transaction.Transactional

@Transactional(readOnly = true)
class TipoDocumentoController {

static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]

def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond TipoDocumento.list(params), model:[tipoDocumentoCount: TipoDocumento.count()]
}

def show(TipoDocumento tipoDocumento) {
respond tipoDocumento
}

def create() {
respond new TipoDocumento(params)
}

@Transactional
def save(TipoDocumento tipoDocumento) {
if (tipoDocumento == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}

if (tipoDocumento.hasErrors()) {
transactionStatus.setRollbackOnly()
respond tipoDocumento.errors, view:'create'
return
}

tipoDocumento.save flush:true

request.withFormat {
form multipartForm {
flash.message = message(code: 'default.created.message', args: [message(code: 'tipoDocumento.label', default: 'TipoDocumento'), tipoDocumento.id])
redirect tipoDocumento
}
'*' { respond tipoDocumento, [status: CREATED] }
}
}

def edit(TipoDocumento tipoDocumento) {
respond tipoDocumento
}

@Transactional
def update(TipoDocumento tipoDocumento) {
if (tipoDocumento == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}

if (tipoDocumento.hasErrors()) {
transactionStatus.setRollbackOnly()
respond tipoDocumento.errors, view:'edit'
return
}

tipoDocumento.save flush:true

request.withFormat {
form multipartForm {
flash.message = message(code: 'default.updated.message', args: [message(code: 'tipoDocumento.label', default: 'TipoDocumento'), tipoDocumento.id])
redirect tipoDocumento
}
'*'{ respond tipoDocumento, [status: OK] }
}
}

@Transactional
def delete(TipoDocumento tipoDocumento) {

if (tipoDocumento == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}

tipoDocumento.delete flush:true

request.withFormat {
form multipartForm {
flash.message = message(code: 'default.deleted.message', args: [message(code: 'tipoDocumento.label', default: 'TipoDocumento'), tipoDocumento.id])
redirect action:"index", method:"GET"
}
'*'{ render status: NO_CONTENT }
}
}

protected void notFound() {
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'tipoDocumento.label', default: 'TipoDocumento'), params.id])
redirect action: "index", method: "GET"
}
'*'{ render status: NOT_FOUND }
}
}
}
27 changes: 26 additions & 1 deletion grails-app/domain/working/docweb/Documento.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ class Documento {
*/
TipoDocumento tipo

/***
* Indica a espécie documental, ou seja, a configuração da informação no documento de acordo com a disposição e a natureza das informações nele contidas
*/
Especie especie

/***
* Idioma(s) em que é expresso o conteúdo do documento
*/
Expand All @@ -84,12 +89,32 @@ class Documento {
*/
String localizacao

/***
* Indicação do prazo estabelecido em tabela de temporalidade para o cumprimento da destinação
* O prazo é definido em dias e deverá ser calculado automaticamente de acordo com a Classe
*/
Long prazoGuarda

/***
* Indicação da próxima ação de destinação (transferência, eliminação ou recolhimento) prevista para o documento,
* em cumprimento à tabela de temporalidade
*/
String destinacaoPrevista

/***
* Indicação da quantidade de folhas/páginas de um documento
*/
Integer quantidadeFolhas


static constraints = {
protocolo nullable: true, validator: { val, doc -> Documento.validarProtocolo(val, doc) }
titulo blank: false, size: 3..100
descricao nullable: true, size: 0..255
tipo nullable: true
idioma nullable: true
prazoGuarda nullable: true
destinacaoPrevista nullable: true
quantidadeFolhas nullable: true
}

/***
Expand Down
14 changes: 14 additions & 0 deletions grails-app/domain/working/docweb/Especie.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package working.docweb

class Especie {

String nome
static constraints = {
nome blank: false, unique: true
}

@Override
String toString() {
return (nome != null && nome != '') ? nome.toString() : super.toString()
}
}
8 changes: 8 additions & 0 deletions grails-app/domain/working/docweb/TipoDocumento.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ package working.docweb

class TipoDocumento {

String nome

static constraints = {
nome blank: false, unique: true
}

@Override
String toString() {
return (nome != null && nome != '') ? nome.toString() : super.toString()
}
}
21 changes: 21 additions & 0 deletions grails-app/init/docweb/BootStrap.groovy
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
package docweb

import working.docweb.Especie
import working.docweb.TipoDocumento

class BootStrap {

def init = { servletContext ->

//Carga inicial de Tipos de documentos
if(!TipoDocumento.count()) {
new TipoDocumento(nome: "Tipo de Documento 001").save(failOnError: true)
new TipoDocumento(nome: "Tipo de Documento 002").save(failOnError: true)
new TipoDocumento(nome: "Tipo de Documento 003").save(failOnError: true)
new TipoDocumento(nome: "Tipo de Documento 004").save(failOnError: true)
new TipoDocumento(nome: "Tipo de Documento 005").save(failOnError: true)
}

//Carga inicial de Espécie Documental
if(!Especie.count()) {
new Especie(nome: "Aviso").save(failOnError: true)
new Especie(nome: "Declaração").save(failOnError: true)
new Especie(nome: "Despacho").save(failOnError: true)
new Especie(nome: "Memorando").save(failOnError: true)
new Especie(nome: "Ofício").save(failOnError: true)
}
}
def destroy = {
}
Expand Down
2 changes: 1 addition & 1 deletion grails-app/views/documento/index.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<f:table collection="${documentoList}" properties="['titulo', 'protocolo', 'meio', 'status']" />
<f:table collection="${documentoList}" properties="['titulo', 'protocolo', 'meio', 'tipo', 'status']" />

<div class="pagination">
<g:paginate total="${documentoCount ?: 0}" />
Expand Down
38 changes: 38 additions & 0 deletions grails-app/views/especie/create.gsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main" />
<g:set var="entityName" value="${message(code: 'especie.label', default: 'Especie')}" />
<title><g:message code="default.create.label" args="[entityName]" /></title>
</head>
<body>
<a href="#create-especie" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a>
<div class="nav" role="navigation">
<ul>
<li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
<li><g:link class="list" action="index"><g:message code="default.list.label" args="[entityName]" /></g:link></li>
</ul>
</div>
<div id="create-especie" class="content scaffold-create" role="main">
<h1><g:message code="default.create.label" args="[entityName]" /></h1>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<g:hasErrors bean="${this.especie}">
<ul class="errors" role="alert">
<g:eachError bean="${this.especie}" var="error">
<li <g:if test="${error in org.springframework.validation.FieldError}">data-field-id="${error.field}"</g:if>><g:message error="${error}"/></li>
</g:eachError>
</ul>
</g:hasErrors>
<g:form action="save">
<fieldset class="form">
<f:all bean="especie"/>
</fieldset>
<fieldset class="buttons">
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
</fieldset>
</g:form>
</div>
</body>
</html>
Loading

0 comments on commit cdf8042

Please sign in to comment.