Created
June 26, 2013 14:46
-
-
Save JuniorLima/5867961 to your computer and use it in GitHub Desktop.
Incrementar número de processo com base na hora atual
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from datetime import datetime | |
from django.contrib.auth.models import User | |
from django.db import models | |
from geral.models import Pessoas, BasePessoas, Unidades, Orgaos, Logradouros | |
OPERACAO = (('1', 'Despacho'),('2', 'Transferência'),('3', 'Parecer')) | |
SETOR_CHOICES = (('P', 'Processo'),('O', 'ouvidoria')) | |
class Advogados(BasePessoas, Logradouros): | |
oab = models.CharField('OAB', max_length=10, blank=True, null=True) | |
class Meta: | |
verbose_name_plural = 'Advogados' | |
db_table = 'gtp\".\"advogados' | |
class Provocacoes(models.Model): | |
provocacao = models.CharField('Provocação', max_length=30, unique=True) | |
criado_em = models.DateTimeField(auto_now_add=True) | |
alterado_em = models.DateTimeField(auto_now=True) | |
autor = models.ForeignKey(User, blank=True, null=True) | |
def __unicode__(self): | |
return self.provocacao | |
class Meta: | |
verbose_name_plural = 'Provocações' | |
db_table = 'gtp\".\"provocacoes' | |
class Especies(models.Model): | |
especies = models.CharField('Espécies', max_length=30, unique=True) | |
criado_em = models.DateTimeField(auto_now_add=True) | |
alterado_em = models.DateTimeField(auto_now=True) | |
autor = models.ForeignKey(User, blank=True, null=True) | |
def __unicode__(self): | |
return self.especies | |
class Meta: | |
verbose_name_plural = 'Espécies' | |
db_table = 'gtp\".\"especies' | |
class Objetos(models.Model): | |
especie = models.ForeignKey(Especies, verbose_name='Espécie') | |
nome = models.CharField('Nome', max_length = 40, unique=True) | |
criado_em = models.DateTimeField(auto_now_add=True) | |
alterado_em = models.DateTimeField(auto_now=True) | |
autor = models.ForeignKey(User, blank=True, null=True) | |
def __unicode__(self): | |
return self.nome | |
class Meta: | |
verbose_name_plural = 'Objetos' | |
db_table = 'gtp\".\"objetos' | |
class Processos(models.Model): | |
#Dados | |
ano = models.CharField('Ano', max_length=4, default=2013) | |
codigo = models.CharField('Código do processo', max_length=32, blank=True, null=True, unique=True) | |
serie = models.CharField(max_length=2, choices=SETOR_CHOICES) | |
observacao = models.TextField('Observação', blank=True, null=True) | |
#Local do processo | |
#provocacao = models.ForeignKey(Provocacoes, verbose_name='Provocação') | |
provocacao = models.ForeignKey(Provocacoes, verbose_name='Provocação', blank=True, null=True) | |
#especie = models.ForeignKey(Especies, verbose_name='Espécie') | |
especie = models.ForeignKey(Especies, verbose_name='Espécie', blank=True, null=True) | |
objeto = models.ForeignKey(Objetos, verbose_name='Objeto') | |
unidade = models.ForeignKey(Unidades, verbose_name='Unidade') | |
orgaos = models.ForeignKey(Orgaos, verbose_name='Orgão Responsável', related_name='Orgão do processo', blank=True, null=True) | |
advogados = models.ForeignKey(Advogados, blank=True, null=True, verbose_name='Advogados', related_name='Advogado do processo') | |
#Pessoa | |
pessoa = models.ForeignKey(Pessoas, verbose_name='Pessoas', blank=True, null=True) | |
#Status do processo | |
# Transferência | |
transferido = models.BooleanField(default=False) | |
# Arquivamento | |
arquivado = models.BooleanField(default=False) | |
ala = models.CharField('Ala', max_length=30, blank=True, null=True) | |
estante = models.CharField('Estante', max_length=30, blank=True, null=True) | |
prateleira = models.CharField('Prateleira', max_length=30, blank=True, null=True) | |
caixa = models.CharField('Caixa', max_length=30, blank=True, null=True) | |
# Cancelamento | |
cancelamento = models.BooleanField(default=False) | |
motivo_cancelamento = models.TextField('Motivo de cancelamento', blank=True, null=True) | |
#ouvidoria | |
#Informações extras | |
criado_p_em = models.DateTimeField('Data entrada', auto_now_add=True) | |
autor_p = models.ForeignKey(User, blank=True, null=True, related_name='autor_processo') | |
alterado_p_em = models.DateTimeField('Data alteração', auto_now=True) | |
class Meta: | |
verbose_name = 'Processo' | |
verbose_name_plural = 'Processos' | |
db_table = 'gtp\".\"processos' | |
def save(self): | |
self.ano = datetime.today().year | |
if (self.pk is None): | |
self.codigo = self.get_proximo_codigo_manifestacao() | |
super(Processos, self).save() | |
def get_proximo_codigo_manifestacao(self): | |
ano_corrente = datetime.today().year | |
agora = datetime.now() | |
hora = agora.hour | |
minu = agora.minute | |
try: | |
ultima_manifestacao_ano = Processos.objects.filter(criado_p_em__year=ano_corrente).latest('id') | |
proximo_id_manifestacao = int(ultima_manifestacao_ano.id) + 1 | |
except Processos.DoesNotExist: | |
proximo_id_manifestacao = 1 | |
chave = "%s%s%d" % (hora, minu, proximo_id_manifestacao) | |
return chave | |
def numero_ano(self): | |
ano_corrente = datetime.today().year | |
try: | |
processo_do_ano = Processos.objects.filter(criado_p_em__year=ano_corrente).latest('id') | |
proximo_processo = int(processo_do_ano.id) + 1 | |
except Processos.DoesNotExist: | |
proximo_processo = 1 | |
numerop = proximo_processo | |
return numerop | |
class Movimentacao_Processos(models.Model): | |
processo = models.ForeignKey(Processos, verbose_name='Processos') | |
operacao = models.CharField('Operação', max_length=2, choices=OPERACAO) | |
observacao = models.TextField('Observação', blank=True, null=True) | |
previsao = models.PositiveSmallIntegerField('Previsão') | |
transferido = models.BooleanField() | |
numero_transferencia = models.CharField('Número de transferência', max_length=10) | |
criado_em = models.DateTimeField(auto_now_add=True) | |
alterado_em = models.DateTimeField(auto_now=True) | |
autor = models.ForeignKey(User, blank=True, null=True) | |
class Meta: | |
verbose_name_plural = 'Movimentação de Processos' | |
db_table = 'gtp\".\"movimentacao' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment