models.py 2.61 KB
from django.db import models

from uuid import uuid4
from .constants import STATUS_CHOICE, MONEDA

from usuario.models import Usuario

# 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):
    uuid = models.UUIDField(unique=True, editable=False, default=uuid4, primary_key=True)
    creado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario', editable=False)
    cuerpo_edicto = models.TextField(blank=False, null=False)
    archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", null=False, blank=False)
    dias_publicar = models.PositiveIntegerField(blank=False, null=False)
    cantidad_sellos = models.PositiveIntegerField(blank=False, null=False)
    estado = models.CharField(max_length=150, choices=STATUS_CHOICE, default='inciado')
    cantidad_palabras = models.IntegerField(blank=False, null=False, editable=False)
    cantidad_copias = models.PositiveIntegerField(blank=False, null=False)
    fecha_publicacion = models.DateField(blank=True, null=True)
    observaciones = models.CharField(max_length=500, blank=True, null=True)
    fecha_creacion = models.DateField(auto_now_add=True, editable=False)
    fecha_modificacion = models.DateTimeField(auto_now=True, editable=False)
    modificado_por = models.ForeignKey(Usuario, on_delete=models.CASCADE, related_name='udate_edicto', editable=False)

    class Meta:
        verbose_name = 'Edicto'
        verbose_name_plural = 'Edictos'

    def __str__(self):
        return self.creado_por


class ComprobantePago(models.Model):
    monto = models.FloatField(blank=False, null=False, editable=False)
    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, null=False)

    class Meta:
        verbose_name = 'ComprobantePago'
        verbose_name_plural = 'ComprobantesPagos'

    def __str__(self):
        return self.numero_comprobante