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