I can try to show in form of input and output a dbset, but i want to modify 
prices, because it depends of store

In model

if store.store_id<7:
    armazones = db((db.eyewear.observaciones==
'')&(db.eyewear.modelo!='SOLAR'))
elif store.store_id>6:
    armazones = db((db.eyewear.observaciones!='2DA JORNADA 2010'))
else:
    armazones = db(db.eyewear.id>0)

interes=0.0
if store.store_id==9:
    interes=1.25
elif store.store_id>9:
    interes=1.10

if interes>0.0:
    i=0
    for armazon in armazones:
        
armazones[i].precio=armazon.precio*interes+(armazon.precio*interes)%10
        i=i+1        

In definition of table

db.define_table("notas",
    Field("store_id",db.stores, label='Sucursal',comment='Es a la que se 
encuentra asignado'),
    Field('nota', 'integer', default=None, 
writable=False,label='Remisión(Sistema)',comment='Asignado por el sistema'),
    Field('armazon1',db.eyewear, 
default=None,requires=IS_NULL_OR(IS_IN_DB(armazones,'eyewear.id','%(marca)s 
%(modelo)s %(color)s %(caract1)s $%(precio)s'))),
    Field('modelo1','string', default=None, 
requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser caracteres 
alfanumericos, sin espacios en blanco ó ñ!')),label='Modelo armazon1'),
    Field('color1','string', default=None, 
requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser caracteres 
alfanumericos, sin espacios en blanco ó ñ!')),label='Color(es) armazon1'),
    Field('obser1','string', default=None, label='Observaciones 
1',comment='Para el laboratorio'),    
    Field('lente1',db.lentes, 
default=None,requires=IS_NULL_OR(IS_IN_DB(glases,'lentes.id','%(tecnoGradua)s 
%(material)s %(tipo)s %(tecnoVisual)s %(tratamiento)s $%(promo)s'))),
    Field('soloLoC1','string', 
default=None,requires=IS_NULL_OR(IS_IN_SET(soloLoC)), label='Lejos ó Cerca 
1'),
    Field('tinte1','string', default=None, 
requires=IS_NULL_OR(IS_IN_SET(tintes))),
    Field("total", "double", default=0, writable=False),
    Field("descuento", "integer", default=0, 
requires=IS_INT_IN_RANGE(0,41,error_message='Debe ser Numero positivo entre 
0 y 40'), comment='15% maximo permitido'),
    Field("anticipo", "double", default=0, 
requires=[IS_NOT_EMPTY(error_message='No puede estar 
vacio'),IS_FLOAT_IN_RANGE(0.0,20000.0,error_message='Debe ser un numero 
positivo entre 0 y 20000')],comment='35% minimo para descuento'),
    Field("pagos", "double", default=0, writable=False),
    Field("saldo", "double", default=0, writable=False),
    )

db.notas.store_id.represent = lambda value: '%(id)s.- %(store)s' % 
db.stores(value)  if value else ''
db.notas.armazon1.represent = lambda value: '%(marca)s %(modelo)s %(color)s 
%(caract1)s $%(promo)s' % db.eyewear(value) if value else ''
db.notas.lente1.represent = lambda value: '%(tecnoGradua)s %(material)s 
%(tipo)s %(tecnoVisual)s %(tratamiento)s $%(promo)s' % db.lentes(value) if 
value else ''

However, only show data of db not of dbset

Can you help me?
Is it better is_in_set or sqlform.factory?

Reply via email to