#encoding:utf-8 from django.db import models from django.contrib.auth.models import User # Create your models here. class Estatus(models.Model): nombre=models.CharField('Estatus', max_length=150, help_text='Nombre del estatus') color=models.CharField('Color', max_length=17, help_text='Color de identificacion') def __unicode__(self): return ( self.nombre ) def color_(self): return '   ' % (self.color) color_.allow_tags = True class Meta: verbose_name='Estatus' verbose_name_plural='Estatus' class Lote(models.Model): fecha=models.DateTimeField('Fecha de registro', blank=True, null=True) numero=models.IntegerField(help_text= 'Número de lote') total=models.IntegerField() estatus=models.ForeignKey(Estatus, verbose_name="Estatus del lote") def __unicode__(self): return u'%s' % (self.numero) class CatalogoUbicacion(models.Model): filas=models.IntegerField(help_text= 'Número de Filas') tarima=models.IntegerField(help_text= 'Número de Tarima') espacio=models.IntegerField(help_text= 'Número de espacios en Tarima', default = 1) lote=models.ForeignKey(Lote, verbose_name="Lote") def __unicode__(self): return u'%s - %s' % (self.filas, self.tarima) class Meta: verbose_name='Ubicacion' verbose_name_plural='Ubicaciones' unique_together = ['lote'] def save(self, *args, **kwargs): for field_name in ['espacio']: val = getattr(self, field_name, False) if val: setattr(self, field_name, (self.lote.total / (self.filas * self.tarima)) ) super(CatalogoUbicacion, self).save(*args, **kwargs) class UbicacionEquipo(models.Model): fila=models.IntegerField('Fila', help_text= 'Fila de ubicacion') tarima=models.IntegerField('Tarima', help_text= 'Tarima de ubicacion') lugar=models.IntegerField('Lugar', help_text= 'Lugar de ubicacion') lote=models.ForeignKey(Lote, verbose_name="Lote") def __unicode__(self): return u'%s - %s - %s' % ( self.fila, self.tarima, self.lugar ) class Equipo(models.Model): numero=models.IntegerField(help_text= 'Número de Equipo') marca=models.CharField('Marca', max_length=100) modelo=models.CharField('Modelo', max_length=150) numero_serie=models.CharField('Número de serie', max_length=17, unique=True) ubicacion=models.ForeignKey(UbicacionEquipo,verbose_name="Ubicacion") estatus=models.ForeignKey(Estatus, verbose_name="Estatus del Equipo") lote=models.ForeignKey(Lote, verbose_name="Lote") def __unicode__(self): return u'%s' %( self.numero_serie) class Meta: unique_together = ('ubicacion', 'numero_serie') class CartaPorte(models.Model): fecha=models.DateTimeField('Fecha ', blank=True, null=True) oficio=models.IntegerField('Número de oficio', help_text= 'Número del oficio') referencia=models.CharField('Número de referencia', max_length=50) lote=models.ForeignKey(Lote, verbose_name="lote") # cantidad_equipos=models.IntegerField(help_text= 'Cantidad de equipos que avala') def __unicode__(self): return (self.referencia) class Perfil(models.Model): clave=models.CharField('Clave del Perfil', max_length=50) nombre=models.CharField('Nombre del perfil', max_length=50) def __unicode__(self): return (self.nombre) class Meta: verbose_name='Perfil' verbose_name_plural='Perfiles' class Persona_perfil(models.Model): user = models.OneToOneField(User, unique=True, related_name='perfil') perfil=models.ForeignKey(Perfil, verbose_name="Perfil") def __unicode__(self): return (self.perfil.nombre)