85 lines
4.0 KiB
Python
85 lines
4.0 KiB
Python
from django.db import models
|
|
|
|
class Articulo(models.Model):
|
|
articulo = models.CharField(max_length=300, verbose_name="Articulo")
|
|
description = models.TextField(null=True , verbose_name="Descripcion")
|
|
marca = models.CharField(max_length=300, verbose_name="Marca", blank=True)
|
|
modelo = models.CharField(max_length=300, verbose_name="Modelo", blank=True)
|
|
serial = models.CharField(max_length=300, verbose_name="Serial")
|
|
unidad_medida = models.CharField(max_length=100, verbose_name="Unidad de Medida")
|
|
fecha = models.DateField(auto_now_add=True)
|
|
fecha_registro = models.CharField(max_length=300, verbose_name="Fecha")
|
|
cantidad = models.IntegerField(default=0)
|
|
precio = models.DecimalField(max_digits=6, decimal_places=2)
|
|
|
|
def __str__(self):
|
|
return f"{self.articulo}-{self.marca}-{self.modelo}-{self.serial}-{self.unidad_medida}-{self.fecha_registro}"
|
|
|
|
def total(self):
|
|
return self.cantidad * self.precio
|
|
|
|
|
|
class Comprobante(models.Model):
|
|
e_o_s = models.CharField(max_length=300, verbose_name="Condicion", null=True)
|
|
conceptos = models.CharField(max_length=300, verbose_name="Concepto", null=True)
|
|
observaciones = models.TextField(null=True)
|
|
concepto_movimiento = models.IntegerField(default=0, null=True)
|
|
numero_movimiento = models.IntegerField(default=0, null=True)
|
|
grupo = models.IntegerField(default=0, null=True)
|
|
subgrupo = models.IntegerField(default=0, null=True)
|
|
|
|
def __str__(self):
|
|
return f"{self.e_o_s} - {self.conceptos}"
|
|
|
|
|
|
class Unidad(models.Model):
|
|
nombreUnidad = models.CharField(max_length=200, verbose_name="Nombre de la Unidad")
|
|
comandante = models.CharField(max_length=200, verbose_name="Comandante")
|
|
ubicacion = models.TextField(null=True)
|
|
telefono = models.CharField(max_length=200, verbose_name="telefono")
|
|
articulos = models.ManyToManyField(Articulo, through="ArticuloUnidad")
|
|
def __str__(self):
|
|
return f'{self.nombreUnidad} - {self.telefono}- {self.comandante}'
|
|
|
|
|
|
class ArticuloUnidad(models.Model):
|
|
articulo = models.ForeignKey(Articulo, on_delete=models.CASCADE)
|
|
unidad = models.ForeignKey(Unidad, on_delete=models.CASCADE)
|
|
comprobante = models.ForeignKey(Comprobante, on_delete=models.SET_NULL, null=True)
|
|
marca = models.CharField(max_length=300, verbose_name="Marca")
|
|
modelo = models.CharField(max_length=300, verbose_name="Modelo")
|
|
serial = models.CharField(max_length=300, verbose_name="Serial")
|
|
movimiento = models.CharField(max_length=200)
|
|
description = models.TextField(null=True, verbose_name="Descripcion")
|
|
unidad_medida = models.CharField(max_length=100, verbose_name="Unidad de Medida")
|
|
fecha_salida = models.DateField(auto_now_add=True)
|
|
cantidad = models.IntegerField(default=0)
|
|
precio = models.DecimalField(max_digits=6, decimal_places=2)
|
|
|
|
def __str__(self):
|
|
return f"{self.articulo} - {self.precio} - {self.serial}- {self.marca}- {self.modelo} - {self.comprobante}"
|
|
|
|
def total(self):
|
|
return self.cantidad * self.precio
|
|
|
|
|
|
class PruebaUnidad(models.Model):
|
|
articulo = models.ForeignKey(Articulo, on_delete=models.CASCADE)
|
|
unidad = models.ForeignKey(Unidad, on_delete=models.CASCADE)
|
|
comprobante = models.CharField(max_length=100)
|
|
marca = models.CharField(max_length=300, verbose_name="Marca")
|
|
modelo = models.CharField(max_length=300, verbose_name="Modelo")
|
|
serial = models.CharField(max_length=300, verbose_name="Serial")
|
|
movimiento = models.CharField(max_length=200)
|
|
unidad_medida = models.CharField(max_length=100, verbose_name="Unidad de Medida")
|
|
fecha_salida = models.DateField(auto_now_add=True)
|
|
cantidad = models.IntegerField(default=0)
|
|
description = models.TextField(null=True, verbose_name="Descripcion")
|
|
precio = models.DecimalField(max_digits=6, decimal_places=2)
|
|
|
|
def __str__(self):
|
|
return f"{self.articulo} - {self.precio} - {self.serial}- {self.marca}- {self.modelo}- {self.comprobante}"
|
|
|
|
def total(self):
|
|
return self.cantidad * self.precio
|