180 lines
8.8 KiB
Python
Executable File
180 lines
8.8 KiB
Python
Executable File
from django.db import models
|
|
|
|
from django.db.models import Q
|
|
from catalogos.models import Banco, CuentaContable
|
|
|
|
from django.utils.safestring import mark_safe
|
|
from django.templatetags.static import static
|
|
from django.utils.html import format_html
|
|
|
|
# Create your models here.
|
|
|
|
class CuentaBanco(models.Model):
|
|
banco = models.ForeignKey(Banco, related_name='condo_130', on_delete=models.PROTECT)
|
|
clabe = models.CharField(max_length=18)
|
|
apoderado = models.CharField(max_length=60)
|
|
saldo_inicial = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True, default=0)
|
|
fecha_saldo_inicial = models.DateField(blank=True, null=True)
|
|
saldo_final = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True, default=0)
|
|
fecha_saldo_final = models.DateField(blank=True, null=True)
|
|
|
|
def __str__(self):
|
|
return '%s %s %d' % (self.clabe, self.apoderado[:10], self.saldo_final)
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_cuenta_banco'
|
|
verbose_name_plural = "Cuentas bancarias"
|
|
|
|
class Condomino(models.Model):
|
|
depto = models.CharField(max_length=15, blank=True, null=True)
|
|
propietario = models.CharField(max_length=60, blank=True, null=True)
|
|
poseedor = models.CharField(max_length=60, blank=True, null=True)
|
|
ubicacion = models.CharField(max_length=20, blank=True, null=True)
|
|
email = models.CharField(max_length=25, blank=True, null=True)
|
|
telefono = models.CharField(max_length=30, blank=True, null=True)
|
|
fecha_escrituracion = models.DateField(blank=True, null=True)
|
|
referencia = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
|
|
indiviso = models.DecimalField(max_digits=10, decimal_places=4, blank=True, null=True)
|
|
adeudo_inicial = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
fecha_adeudo_inicial = models.DateField(blank=True, null=True)
|
|
cargos = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
abonos = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
saldo = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
|
|
def __str__(self):
|
|
return '%s %s' % (self.depto, self.poseedor)
|
|
|
|
def estado_cuenta(self):
|
|
icon_url = static('admin/img/icon-viewlink.svg')
|
|
text = format_html('<img src="{}" alt="view">', icon_url)
|
|
return mark_safe(
|
|
'<a href="/api-rest/estadocuentabalcones/%d">%s</a>' % (
|
|
self.id, text))
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_condomino'
|
|
ordering = ['depto']
|
|
|
|
class Movimiento(models.Model):
|
|
cuenta_banco = models.ForeignKey(CuentaBanco, default=1,related_name='condo_131', on_delete=models.PROTECT)
|
|
fecha_movimiento = models.DateField(blank=True, null=True)
|
|
descripcion = models.CharField(max_length=250, blank=True, null=True)
|
|
deposito = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
retiro = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
condomino = models.ForeignKey(Condomino, related_name='condo_139', on_delete=models.PROTECT)
|
|
|
|
def __str__(self):
|
|
return u'%d %s %d %s' % (
|
|
self.id, self.fecha_movimiento.strftime('%d/%m/%Y'), self.deposito, self.descripcion[:15])
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_movimiento'
|
|
ordering = ['fecha_movimiento']
|
|
|
|
class DetalleMovimiento(models.Model):
|
|
movimiento = models.ForeignKey(Movimiento, verbose_name=('Movto'), related_name='condo_132', on_delete=models.CASCADE)
|
|
monto = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
cuenta_contable = models.ForeignKey(CuentaContable, verbose_name=('Cuenta Contable Ingreso/Egreso'),
|
|
related_name='condo_133',
|
|
on_delete=models.CASCADE,
|
|
limit_choices_to=Q(clave_mayor='41') | Q(clave_mayor='51') | Q(
|
|
num_cuenta='2318'))
|
|
comentario = models.CharField(max_length=20, blank=True, null=True, default=".")
|
|
|
|
def __str__(self):
|
|
return '%s %d' % (self.cuenta_contable, self.monto)
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_detalle_movimiento'
|
|
ordering = ['movimiento']
|
|
|
|
class Registro(models.Model):
|
|
condomino = models.ForeignKey(Condomino, default=1, related_name='condo_134', on_delete=models.PROTECT)
|
|
fecha = models.DateField(blank=True, null=True)
|
|
descripcion = models.CharField(max_length=250, blank=True, null=True)
|
|
debe = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0,
|
|
verbose_name='Depositos')
|
|
haber = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0, verbose_name='Cargos')
|
|
saldo = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
cuenta_contable = models.ForeignKey(CuentaContable, verbose_name=('Cuenta Contable'), related_name='condo_135', on_delete=models.CASCADE,
|
|
limit_choices_to=Q(clave_mayor='23'))
|
|
|
|
def __str__(self):
|
|
return u'%d %s %d %d %d' % (self.id, self.fecha.strftime('%d/%m/%Y'), self.debe, self.haber, self.saldo)
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_registro'
|
|
ordering = ['fecha']
|
|
verbose_name_plural = "Registros"
|
|
|
|
class Asiento(models.Model):
|
|
condomino = models.ForeignKey(Condomino, default=1, on_delete=models.PROTECT, related_name='condo_140')
|
|
fecha = models.DateField(blank=True, null=True)
|
|
descripcion = models.CharField(max_length=250, blank=True, null=True)
|
|
debe = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0,
|
|
verbose_name='Depositos')
|
|
haber = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0, verbose_name='Cargos')
|
|
saldo = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
cuenta_contable = models.ForeignKey(CuentaContable, verbose_name=('Cuenta Contable'), on_delete=models.CASCADE, related_name='condo_136',
|
|
limit_choices_to=Q(clave_mayor='23'))
|
|
|
|
def __str__(self):
|
|
return u'%d %s %d %d %d' % (self.id, self.fecha.strftime('%d/%m/%Y'), self.debe, self.haber, self.saldo)
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_asiento'
|
|
ordering = ['fecha']
|
|
verbose_name_plural = "Auxiliar"
|
|
|
|
class CuotasCondominio(models.Model):
|
|
descripcion = models.CharField(max_length=30, blank=True, null=True)
|
|
mes_inicial = models.DateField(blank=True, null=True)
|
|
mes_final = models.DateField(blank=True, null=True)
|
|
dia_vencimiento = models.DecimalField(max_digits=2, decimal_places=0, blank=True, null=True, default=1)
|
|
monto = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True, default=0)
|
|
cuenta_contable = models.ForeignKey(CuentaContable, verbose_name=('Cuenta Contable'), related_name='condo_137', on_delete=models.CASCADE)
|
|
condomino = models.ManyToManyField(Condomino, related_name='condo_138')
|
|
|
|
def __str__(self):
|
|
return u'%s %s %s %d %s' % (
|
|
self.descripcion, self.mes_inicial.strftime('%m-%Y'), self.mes_final.strftime('%m-%Y'), self.monto,
|
|
self.cuenta_contable)
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_cuotas'
|
|
ordering = ['mes_inicial']
|
|
verbose_name_plural = "Cuotas"
|
|
|
|
class AcumuladoMes(models.Model):
|
|
cuenta_banco = models.CharField(max_length=20, blank=True, null=True)
|
|
mes = models.CharField(max_length=7, blank=True, null=True)
|
|
fecha_inicial = models.DateField(blank=True, null=True)
|
|
fecha_final = models.DateField(blank=True, null=True)
|
|
depositos = models.DecimalField(max_digits=12, decimal_places=2, blank=True, null=True, default=0)
|
|
retiros = models.DecimalField(max_digits=12, decimal_places=2, blank=True, null=True, default=0)
|
|
saldo = models.DecimalField(max_digits=12, decimal_places=2, blank=True, null=True, default=0)
|
|
|
|
def __str__(self):
|
|
return u'%s %s %s %s %d %d %d' % (
|
|
self.cuenta_banco, self.mes, self.fecha_inicial.strftime('%d/%m/%Y'), self.fecha_final.strftime('%d/%m/%Y'),
|
|
self.depositos, self.retiros, self.saldo)
|
|
|
|
class Meta:
|
|
managed = True
|
|
db_table = 'condominio_balcones_acumulado_mes'
|
|
verbose_name_plural = "Depositos y retiros por mes"
|
|
|
|
class MovSinIdent(Movimiento):
|
|
class Meta:
|
|
proxy = True
|
|
verbose_name = 'Deposito sin identificar'
|
|
verbose_name_plural = 'Depositos sin identificar'
|
|
|