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?