Files
2025-04-17 00:29:21 -06:00

118 lines
4.7 KiB
Python

from django.db import models
from django.contrib.auth.models import User
import os
from tinymce import models as tinymce_models
from model_utils import Choices
# Create your models here.
class area(models.Model):
nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre')
ib = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Asignado IB')
def __str__(self):
return self.nombre
class Meta:
verbose_name = 'Area'
verbose_name_plural = 'Areas'
ordering = ['nombre']
class equipo(models.Model):
nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre')
def __str__(self):
return self.nombre
class Meta:
verbose_name = 'Tipo de Equipo'
verbose_name_plural = 'Tipo de Equipos'
ordering = ['nombre']
class marca(models.Model):
nombre = models.CharField(max_length=250, null=False, unique=True, verbose_name='Nombre')
def __str__(self):
return self.nombre
class Meta:
verbose_name = 'Marca'
verbose_name_plural = 'Marcas'
ordering = ['nombre']
class ubicacion(models.Model):
nombre = models.CharField(max_length=200, null=False, unique=True, verbose_name='Nombre')
def __str__(self):
return self.nombre
class Meta:
verbose_name = 'Ubicacion'
verbose_name_plural = 'Ubicacion'
ordering = ['nombre']
class pieza(models.Model):
STATUS = Choices('Nuevo', 'Usado')
usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
n_pedido = models.CharField(max_length=200, null=True, blank=True, verbose_name='No. Pedido', default=' ')
referencia = models.CharField(max_length=200, unique=True, null=False, verbose_name='Referencia')
equipo = models.ForeignKey(equipo, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Equipo')
descripcion_etiqueta = tinymce_models.HTMLField(null=True, verbose_name='Descripción de Etiqueta')
descripcion_pieza = tinymce_models.HTMLField(null=True, verbose_name='Descripción de la Pieza')
marca = models.ForeignKey(marca, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Marca')
estatus = models.CharField(choices=STATUS, default=STATUS.Nuevo, max_length=20, verbose_name='Estatus')
ubicacion = models.ForeignKey(ubicacion, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Ubicacion')
cantidad = models.IntegerField(null=True, blank=True, default=0, verbose_name='Cantidad')
fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha alta')
fecha_actualizacion = models.DateField(auto_now=True, verbose_name='Fecha de Actualización')
Column1 = models.CharField(max_length=100, null=True, blank=True, verbose_name='Column1', default=' ')
def delete(self, *args, **kwargs):
if os.path.isfile(self.imagen.path):
os.remove(self.imagen.path)
super(pieza, self).delete(*args, **kwargs)
def __str__(self):
return self.referencia
class Meta:
verbose_name = 'pieza'
verbose_name_plural = 'piezas'
ordering = ['ubicacion']
class rentrada(models.Model):
usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
autor = models.CharField(max_length=250, null=True, blank=True)
n_pedido = models.CharField(max_length=200, null=True, blank=True, verbose_name='No. Pedido')
referencia = models.ForeignKey(pieza, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Referencia')
cantidad = models.IntegerField(verbose_name='Cantidad')
fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha Entrada')
def __str__(self):
return self.referencia
class Meta:
verbose_name = 'Entrada'
verbose_name_plural = 'Entradas'
ordering = ['-id']
class rsalida(models.Model):
usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
autor = models.CharField(max_length=250, null=True, blank=True)
referencia = models.ForeignKey(pieza, on_delete=models.CASCADE, null=False, blank=False, verbose_name='Referencia')
cantidad = models.IntegerField(verbose_name='Cantidad')
fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha alta')
def delete(self, *args, **kwargs):
if os.path.isfile(self.imagen.path):
os.remove(self.imagen.path)
super(pieza, self).delete(*args, **kwargs)
def __str__(self):
return self.referencia
class Meta:
verbose_name = 'Salida'
verbose_name_plural = 'Salidas'
ordering = ['-id']