|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from django.db import models
|
|
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
|
|
from materia.models import Autor, TipoMateriaLegislativa, UnidadeTramitacao
|
|
|
|
|
|
|
|
|
|
|
|
class TipoDocumentoAdministrativo(models.Model):
|
|
|
|
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla'))
|
|
|
|
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Tipo de Documento Administrativo')
|
|
|
|
verbose_name_plural = _(u'Tipos de Documento Administrativo')
|
|
|
|
|
|
|
|
|
|
|
|
class DocumentoAdministrativo(models.Model):
|
|
|
|
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo Documento'))
|
|
|
|
numero = models.IntegerField(verbose_name=_(u'Número'))
|
|
|
|
ano = models.SmallIntegerField(verbose_name=_(u'Ano'))
|
|
|
|
data = models.DateField(verbose_name=_(u'Data'))
|
|
|
|
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Núm. Protocolo'))
|
|
|
|
interessado = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Interessado'))
|
|
|
|
autor = models.ForeignKey(Autor, blank=True, null=True)
|
|
|
|
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo'))
|
|
|
|
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo'))
|
|
|
|
tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?'))
|
|
|
|
assunto = models.TextField(verbose_name=_(u'Assunto'))
|
|
|
|
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Documento Administrativo')
|
|
|
|
verbose_name_plural = _(u'Documentos Administrativos')
|
|
|
|
|
|
|
|
|
|
|
|
class DocumentoAcessorioAdministrativo(models.Model):
|
|
|
|
documento = models.ForeignKey(DocumentoAdministrativo)
|
|
|
|
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo'))
|
|
|
|
nome = models.CharField(max_length=30, verbose_name=_(u'Nome'))
|
|
|
|
arquivo = models.CharField(max_length=100, verbose_name=_(u'Arquivo'))
|
|
|
|
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data'))
|
|
|
|
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor'))
|
|
|
|
assunto = models.TextField(blank=True, null=True, verbose_name=_(u'Assunto'))
|
|
|
|
indexacao = models.TextField(blank=True, null=True)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Documento Acessório')
|
|
|
|
verbose_name_plural = _(u'Documentos Acessórios')
|
|
|
|
|
|
|
|
|
|
|
|
class Protocolo(models.Model):
|
|
|
|
numero = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número do Protocolo'))
|
|
|
|
ano = models.SmallIntegerField()
|
|
|
|
data = models.DateField()
|
|
|
|
hora = models.TimeField()
|
|
|
|
timestamp = models.DateTimeField()
|
|
|
|
tipo_protocolo = models.IntegerField(verbose_name=_(u'Tipo de Protocolo'))
|
|
|
|
tipo_processo = models.IntegerField()
|
|
|
|
interessado = models.CharField(max_length=60, blank=True, null=True, verbose_name=_(u'Interessado'))
|
|
|
|
autor = models.ForeignKey(Autor, blank=True, null=True)
|
|
|
|
assunto_ementa = models.TextField(blank=True, null=True)
|
|
|
|
tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True, verbose_name=_(u'Tipo de documento'))
|
|
|
|
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria'))
|
|
|
|
numero_paginas = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número de Páginas'))
|
|
|
|
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
|
|
|
|
anulado = models.BooleanField()
|
|
|
|
user_anulacao = models.CharField(max_length=20, blank=True, null=True)
|
|
|
|
ip_anulacao = models.CharField(max_length=15, blank=True, null=True)
|
|
|
|
justificativa_anulacao = models.CharField(max_length=60, blank=True, null=True)
|
|
|
|
timestamp_anulacao = models.DateTimeField(blank=True, null=True)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Protocolo')
|
|
|
|
verbose_name_plural = _(u'Protocolos')
|
|
|
|
|
|
|
|
|
|
|
|
class StatusTramitacaoAdministrativo(models.Model):
|
|
|
|
FIM = 'F'
|
|
|
|
RETORNO = 'R'
|
|
|
|
INDICADOR_CHOICES = ((FIM, _(u'Fim')),
|
|
|
|
(RETORNO, _(u'Retorno')))
|
|
|
|
|
|
|
|
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
|
|
|
|
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição'))
|
|
|
|
# TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao
|
|
|
|
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Status de Tramitação')
|
|
|
|
verbose_name_plural = _(u'Status de Tramitação')
|
|
|
|
|
|
|
|
|
|
|
|
class TramitacaoAdministrativo(models.Model):
|
|
|
|
status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True, verbose_name=_(u'Status'))
|
|
|
|
documento = models.ForeignKey(DocumentoAdministrativo)
|
|
|
|
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação'))
|
|
|
|
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local'))
|
|
|
|
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento'))
|
|
|
|
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino'))
|
|
|
|
ultima = models.BooleanField()
|
|
|
|
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação'))
|
|
|
|
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim do Prazo'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Tramitação de Documento Administrativo')
|
|
|
|
verbose_name_plural = _(u'Tramitações de Documento Administrativo')
|