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