{{extend 'plantilla.html'}} {{from decimal import Decimal}} {{=forma}} {{saldototal=0}} {{cuantosalumnos=0}} {{encabezado=TR(TD('#'),TD('Cargo'),TD('Referencia'),TD('Fecha'),TD('Fecha Venc'),TD('Monto'),TD('Abono'),TD('Fecha Abono'),TD('Saldo'),_style="background-color:#AAAAAA")}}

Estado de Cuenta Por Alumno

{{for a in resultado:}} {{ if chksaldo!=None: tienesaldo=db((db.alumnoscargos.idalumno==a.id) & (db.alumnoscargos.status=='Pendiente')).count() else: tienesaldo=1 pass if tienesaldo>0: cuantosalumnos=cuantosalumnos+1 }} {{=TR(TD(B('Alumno')),TD(B('%s %s %s'%(a.appaterno,a.apmaterno,a.nombre)),_colspan='7'),TD(cuantosalumnos),_style="background-color:#AAAAAA")}} {{ unionleft=[db.abonoscargos.on(db.abonoscargos.idalumnoscargos==db.alumnoscargos.id),db.abonos.on(db.abonos.id==db.abonoscargos.idabono)] saldoalumno=0 renglon=1 cargosalumno=db((db.alumnoscargos.idalumno==a.id) & (db.cargos.id==db.alumnoscargos.idcargo) & ((db.nivelescargosdetalle.idcargo==db.alumnoscargos.idcargo) & (db.nivelescargosdetalle.idnivel==db.cargos.idnivel))).select(db.alumnoscargos.ALL,db.cargos.descripcion,db.nivelescargosdetalle.precio,db.abonos.fecha,left=unionleft) =encabezado for r in cargosalumno: if r.alumnoscargos.montocargo!=None: saldo=r.alumnoscargos.montocargo-r.alumnoscargos.abonos else: saldo=0 pass saldoalumno=saldoalumno+saldo =TR(TD(renglon),TD(r.cargos.descripcion),TD(r.alumnoscargos.referencia),TD(r.alumnoscargos.fecha),TD(r.alumnoscargos.fechavencimiento),TD(r.nivelescargosdetalle.precio),TD(r.alumnoscargos.abonos),TD(r.abonos.fecha),TD('%.2f'%saldo)) renglon=renglon+1 pass }} {{=TR(TD('Total Alumno',_colspan='8'),TD('%.2f'%saldoalumno),_style="background-color:#FFFF33")}} {{saldototal=saldototal+saldoalumno}} {{pass}} {{pass}} {{=TR(TD('',_colspan='9'))}} {{=TR(TD('Alumnos %s'%cuantosalumnos),TD(''),TD('Saldo Total',_colspan='6'),TD('%.2f'%saldototal),_style="background-color:#FFFF33")}}