models.py 2.44 KB
from uuid import uuid4

from django.db import models

from usuario.models import Usuario
from .constants import STATUS_CHOICE, MONEDA


# Create your models here.


class Precio(models.Model):
    precio = models.FloatField(max_length=50, blank=False, null=False)
    vigencia_desde = models.DateField()
    vigencia_hasta = models.DateField(blank=True, null=True)
    usuario = models.ForeignKey(Usuario, on_delete=models.CASCADE)
    moneda = models.CharField(max_length=50, blank=False, null=False, choices=MONEDA,
                              default='peso_argentino')
    precio_ejemplar = models.FloatField(max_length=50, blank=False, null=False)

    class Meta:
        verbose_name = 'Precio'
        verbose_name_plural = 'Precios'

    def __str__(self):
        return self.moneda


class Edicto(models.Model):
    class Meta:
        verbose_name = 'Edicto'
        verbose_name_plural = 'Edictos'

    uuid = models.UUIDField(unique=True, editable=False, default=uuid4)
    cuerpo_edicto = models.TextField(blank=False)
    archivo = models.FileField(upload_to="uploads/%Y/%m/%d/")
    dias_publicar = models.PositiveIntegerField()
    cantidad_sellos = models.PositiveIntegerField()
    estado = models.CharField(max_length=23, choices=STATUS_CHOICE, default='inciado')
    cantidad_palabras = models.IntegerField(editable=False)
    cantidad_copias = models.PositiveIntegerField()
    observaciones = models.CharField(max_length=500, blank=True)

    fecha_publicacion = models.DateField(blank=True, null=True)
    fecha_creacion = models.DateField(auto_now_add=True, editable=False)
    fecha_modificacion = models.DateTimeField(auto_now=True, editable=False)
    creado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario', editable=False)
    modificado_por = models.ForeignKey(
        Usuario, on_delete=models.CASCADE, related_name='update_edicto', editable=False
    )

    def __str__(self):
        return self.creado_por


class ComprobantePago(models.Model):
    class Meta:
        verbose_name = 'ComprobantePago'
        verbose_name_plural = 'ComprobantesPagos'

    monto = models.FloatField()
    numero_comprobante = models.CharField(max_length=300, blank=True, null=True)
    fecha_pago = models.DateTimeField(blank=True, null=True)
    edicto = models.OneToOneField(Edicto, on_delete=models.CASCADE)
    archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", blank=True)

    def __str__(self):
        return self.numero_comprobante