Saltar a contenido

Modelos de Comprobaciones

class Comprobacion(models.Model):
    folio = models.CharField(max_length=50, unique=True)
    concepto = models.TextField()

    monto_total = models.DecimalField(max_digits=12, decimal_places=2)
    monto_autorizado = models.DecimalField(max_digits=12, decimal_places=2, null=True)

    solicitante = models.ForeignKey(User, on_delete=models.PROTECT)
    plaza = models.CharField(max_length=50)

    # Aprobaciones
    aprobado_contabilidad = models.BooleanField(default=False)
    aprobador_contabilidad = models.ForeignKey(
        User,
        related_name='comprobaciones_aprobadas_contabilidad',
        null=True
    )
    fecha_aprobacion_contabilidad = models.DateTimeField(null=True)

    aprobado_tesoreria = models.BooleanField(default=False)
    aprobador_tesoreria = models.ForeignKey(
        User,
        related_name='comprobaciones_aprobadas_tesoreria',
        null=True
    )
    fecha_aprobacion_tesoreria = models.DateTimeField(null=True)

    ESTATUS_CHOICES = [
        ('PENDIENTE', 'Pendiente'),
        ('EN_REVISION', 'En Revisión'),
        ('APROBADO', 'Aprobado'),
        ('RECHAZADO', 'Rechazado'),
        ('PAGADO', 'Pagado'),
    ]
    estatus = models.CharField(max_length=20, choices=ESTATUS_CHOICES)

class Provision(models.Model):
    descripcion = models.TextField()
    monto = models.DecimalField(max_digits=12, decimal_places=2)
    fecha = models.DateField()

class SolicitudRecurso(models.Model):
    solicitante = models.ForeignKey(User, on_delete=models.PROTECT)
    descripcion = models.TextField()
    monto = models.DecimalField(max_digits=12, decimal_places=2)
    fecha_solicitud = models.DateField()
    aprobada = models.BooleanField(default=False)

class AnexoComprobacion(AnexoBase):
    comprobacion = models.ForeignKey(Comprobacion, on_delete=models.CASCADE)

Ver: Módulo Comprobaciones