This commit is contained in:
root
2025-12-21 15:14:34 -06:00
commit c04ee70afc
40 changed files with 3048 additions and 0 deletions

View File

@@ -0,0 +1,181 @@
from django.contrib import admin
from .models import Movimiento, DetalleMovimiento, CuentaBanco, CuotasCondominio, Condomino, AcumuladoMes, Registro, MovSinIdent, Asiento
from .procesos import run_determinacionSaldos_sadi81Nvo
from catalogos.models import PeriodoCorte
from django.utils.safestring import mark_safe
# Register your models here.
class DetalleMovtoInline(admin.TabularInline):
model = DetalleMovimiento
fields = ['cuenta_contable', 'monto', 'comentario']
def get_extra(self, request, obj=None, **kwargs):
extra = 4
return extra
@admin.register(Movimiento)
class MovtoAdmin(admin.ModelAdmin):
list_display = ('id','fecha_movimiento','descripcion','retiros','depositos','condomino', 'conciliacion')
search_fields = ('descripcion',)
date_hierarchy = 'fecha_movimiento'
ordering = ('-fecha_movimiento',)
save_on_top = True
inlines = [DetalleMovtoInline]
def retiros(self, request, obj=None, **kwargs):
return "{:,}".format(request.retiro)
def depositos(self, request, obj=None, **kwargs):
return "{:,}".format(request.deposito)
def conciliacion(self, request, obj=None, **kwargs):
cantidades = DetalleMovimiento.objects.filter(movimiento_id=request.id).values_list('monto', flat=True)
total = sum(cantidades)
if (total != (request.retiro + request.deposito)):
return False
else:
return True
conciliacion.boolean = True
@admin.register(CuentaBanco)
class CuentaBancoAdmin(admin.ModelAdmin):
list_display = ('banco','clabe','apoderado')
@admin.register(CuotasCondominio)
class CuotasAdmin(admin.ModelAdmin):
list_display = ('descripcion', 'mes_inicial', 'mes_final', 'cantidad','cuenta_contable')
ordering = ('-mes_inicial',)
actions = ['cambiofechas',]
def cantidad(self, request, obj=None, **kwargs):
return "{:,}".format(request.monto)
def cambiofechas(self, request, queryset):
# condominio "SADI81NVO" tiene el id 9
oPer = PeriodoCorte.objects.get(id=9)
fecha_corte = oPer.fecha_final
#print(fecha_corte)
for obj in queryset:
id = "%s" % obj.id
obj.mes_final = fecha_corte
obj.save()
self.message_user(request, " Fin del proceso de cambio de fechas ")
cambiofechas.short_description = "Cambio de fecha de corte de cuotas "
@admin.register(Condomino)
class CondominoAdmin(admin.ModelAdmin):
list_display = ('depto', 'poseedor', 'adeudo_inicio', 'cuotas', 'depositos', 'adeudo_actual')
search_fields = ('depto', 'propietario', 'poseedor')
actions = ['determina_saldos']
def adeudo_inicio(self, request, obj=None, **kwargs):
return "{:,}".format(request.adeudo_inicial)
def cuotas(self, request, obj=None, **kwargs):
cargos = request.cargos - request.adeudo_inicial
return "{:,}".format(cargos)
def depositos(self, request, obj=None, **kwargs):
pagos = request.abonos
return "{:,}".format(pagos)
def adeudo_actual(self, request, obj=None, **kwargs):
return "{:,}".format(request.saldo)
def determina_saldos(self, request, queryset):
for obj in queryset:
# print(" determina saldos %s " % obj.depto)
run_determinacionSaldos_sadi81Nvo(obj)
#pass
self.message_user(request, " Fin del proceso de determinacion de saldos ")
determina_saldos.short_description = "Determinacion de Saldos"
@admin.register(AcumuladoMes)
class AcumuladoAdmin(admin.ModelAdmin):
list_display = ('cuenta_banco', 'mes', 'fecha_inicial', 'fecha_final', 'Depositado', 'Retirado', 'Saldos')
ordering = ('-fecha_inicial', 'cuenta_banco',)
#actions = ['export_as_csv']
#change_list_template = "admin/titulo_acumulados.html"
def Depositado(self, request, obj=None, **kwargs):
return "{:,}".format(request.depositos)
def Retirado(self, request, obj=None, **kwargs):
return "{:,}".format(request.retiros)
def Saldos(self, request, obj=None, **kwargs):
return "{:,}".format(request.saldo)
class dontLog:
def log_deletion(self, **kwargs):
return
@admin.register(Asiento)
class AsientoAdmin(dontLog, admin.ModelAdmin):
list_display = ('fecha','descripcion','condomino','Cargos','Depositos','Saldo')
#change_list_template = "admin/titulo_registros.html"
ordering = ('-fecha','-id')
def Depositos(self, request, obj=None, **kwargs):
return "{:,}".format(request.debe)
def Cargos(self, request, obj=None, **kwargs):
return "{:,}".format(request.haber)
def Saldo(self, request, obj=None, **kwargs):
return "{:,}".format(request.saldo)
#@admin.register(Registro)
class RegistroAdmin(dontLog, admin.ModelAdmin):
list_display = ('fecha','E','descripcion','Cargos','Depositos','Saldo')
change_list_template = "admin/titulo_registros.html"
ordering = ('-fecha','-id')
def Depositos(self, request, obj=None, **kwargs):
return "{:,}".format(request.debe)
def Cargos(self, request, obj=None, **kwargs):
return "{:,}".format(request.haber)
def Saldo(self, request, obj=None, **kwargs):
return "{:,}".format(request.saldo)
def E(self, request, obj=None, **kwargs):
icon = '''
<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<g id="right">
<path d="M1413 896q0-27-18-45l-91-91-362-362q-18-18-45-18t-45 18l-91 91q-18 18-18 45t18 45l189 189h-502q-26 0-45 19t-19 45v128q0 26 19 45t45 19h502l-189 189q-19 19-19 45t19 45l91 91q18 18 45 18t45-18l362-362 91-91q18-18 18-45zm251 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/>
</g>
</defs>
<use xlink:href="#right" x="0" y="0" fill="#447e9b" />
</svg>
'''
#text = format_html('<img src="{}" alt="view">', icon)
if(request.debe > 0):
#return _boolean_icon(True)
return mark_safe('%s' % icon)
else:
return ""
E.allow_tags = True
@admin.register(MovSinIdent)
class MovSinIdentAdmin(admin.ModelAdmin):
list_display = ('cuenta_banco', 'fecha_movimiento', 'descripcion', 'deposito')
date_hierarchy = 'fecha_movimiento'
save_on_top = True
inlines = [DetalleMovtoInline]
ordering = ('-fecha_movimiento',)
def get_queryset(self, request):
query = super(MovSinIdentAdmin, self).get_queryset(request)
filtered_query = query.filter(condomino__depto='0000').exclude(retiro__gt=0)
return filtered_query