Hi, I want to display the porcentaje of some fields

I put this in the end of model

db.define_table("notas",
    Field("total", "double", default=0, writable=False),
    Field("anticipo", "double", default=0,
requires=[IS_NOT_EMPTY(error_message='No puede estar
vacio'),IS_FLOAT_IN_RANGE(0,10000,error_message='Debe ser un numero
positivo entre 0 y 10000')],comment='40% minimo para descuento'),
    Field("pagos", "double", default=0, writable=False),
    Field("saldo", "double", default=0, writable=False))

class Indices(object):
    def pcobrado(self):    #Porcentaje Cobrado
        porcentaje=100
        if self.notas.total>0:
            porcentaje = (self.notas.anticipo+self.notas.pagos)*100/
self.notas.total
        return porcentaje

db.notas.virtualfields.append(Indices())

And in the controller this

        All =
SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.active==True)).
\
 
select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/
db.notas.id.count(),db.notas.pcobrado().sum()/db.notas.id.count())/,\
 
headers={'COUNT(notas.id)':'Num.Notas','SUM(notas.total)':'Venta
Neta','SUM(notas.anticipo)':'Anticipos','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldos','SUM(notas.total)/
COUNT(notas.id)':'Promedio','SUM(notas.pcobrado())/
COUNT(notas.id)':'Cobrado'})

Can I do this with virtualfields?

because, with trunk version of web2py, tell me that pcobrado doesn't
exist

Reply via email to