which web2py version?

On Dec 8, 6:30 pm, drayco <[email protected]> wrote:
> Hi
>
> I have this in model
>
> #audit field group
> audit = db.Table(db,'audit',
>     Field('unique_id', 'string',default=uuid.uuid4(), writable=False,
> readable=False),
>     Field('active', 'boolean', default=True, writable=False,
> readable=False, label='Activo',comment='Desactiva para eliminar este
> registro'),
>     Field('created_by', db.auth_user, default=user_id, writable=False,
> readable=False, label='Creado por'),
>     Field('created_on', 'datetime', default=request.now,
> writable=False, readable=False, label='Creado el'),
>     Field('modified_by', db.auth_user, default=user_id,
> update=user_id, writable=False, readable=False, label='Modificado
> por'),
>     Field('modified_on', 'datetime', default=request.now,
> update=request.now, writable=False, readable=False, label='Modificado
> el'),
>     Field('reason','string' ,default='nueva
> información',requires=IS_IN_SET(['cambio', 'nueva información',
> 'corrección']), writable=False, readable=False, label='Razon'))
>
> db.define_table("notas",
>     audit,
>     Field("store_id",db.stores, default=store.store_id,
> writable=False, label='Sucursal',comment='A la que se encuentra
> asignado'),
>     Field('nota', 'integer', default=None,
> writable=False,label='No.Nota(Sistema)',comment='Remisión generada por
> el Sistema'),
>     Field('notaFisica','integer', default=None,
> requires=IS_NULL_OR(IS_INT_IN_RANGE(2500,66500,error_message='Debe ser
> Numero positivo entre 2500 y
> 66500')),label='No.Nota(Elaborada)',comment='Remision'),
>     Field('vale', 'integer', default=None,
> requires=IS_NULL_OR(IS_INT_IN_RANGE(1,500,error_message='Debe ser
> Numero positivo entre 1 y 500')),label='Num.Vale',comment='Descuento
> para Arm1/Len1'),
>     Field('folio', 'integer', default=None,
> requires=IS_NULL_OR(IS_INT_IN_RANGE(110000,191999,error_message='Debe
> ser Numero positivo entre 110000 y 191999')),label='Num.Folio'),
>     Field('first_name','string', default=None,
> requires=IS_NULL_OR(IS_UPPER()),label='Nombre(s)'),
>     Field('last_name','string', default=None,
> requires=IS_NULL_OR(IS_UPPER()),label='Apellido Paterno'),
>     Field('end_name','string', default=None,
> requires=IS_NULL_OR(IS_UPPER()),label='Apellido Materno'),
>     Field('tel','double', default=None,
> requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser
> Numero positivo')), label='Tel.Casa'),
>     Field('tel1','double', default=None,
> requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser
> Numero positivo')), label='Tel.Trabajo'),
>     Field('cel','double', default=None,
> requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser
> Numero positivo')), label='Tel.Celular',comment='Sin 044'),
>     Field('email','string', default=None,
> requires=IS_NULL_OR(IS_EMAIL()),comment='Para enviar copia(pdf)'),
>     Field('armazon1',db.eyewear,
> default=None,requires=IS_NULL_OR(IS_IN_DB(db,'eyewear.id','%(marca)s %
> (modelo)s %(color)s %(caract1)s $%(promo)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('lente1',db.lentes,
> default=None,requires=IS_NULL_OR(IS_IN_DB(db,'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(['Solo para cerca','Solo
> para lejos'])), label='Lejos ó Cerca 1'),
>     Field('tinte1','string', default=None,
> requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> caracteres alfanumericos, sin espacios en blanco ó ñ!'))),
>     Field("vendedor",db.auth_user, default=user_id,
> requires=IS_NULL_OR(IS_IN_DB(vendedores,'auth_user.id','%(first_name)s
> %(last_name)s %(end_name)s'))),
>     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')]),
>     Field("pagos", "double", default=0, writable=False),
>     Field("saldo", "double", default=0, writable=False),
>     Field("fechaEntrega", "date",default=(request.now
> +datetime.timedelta(14)), label='Fecha de Entrega'),
>     Field("optometrista",db.auth_user,
> default=None,requires=IS_NULL_OR(IS_IN_DB(optometristas,'auth_user.id','%
> (first_name)s %(last_name)s %(end_name)s'))),
>     Field('retiOdEsf','double',
> default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-20.1,20.1)),label='Ojo
> Der.Esf.'),
>     Field('retiOdCil','double',
> default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-12.1,0)),label='Ojo
> Der.Cil.'),
>     Field('retiOdEje','integer',
> default=None,requires=IS_NULL_OR(IS_INT_IN_RANGE(0,181)),label='Ojo
> Der.Eje'),
>     Field('retiOiEsf','double',
> default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-20.1,20.1)),label='Ojo
> Izq.Esf.'),
>     Field('retiOiCil','double',
> default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-12.1,0)),label='Ojo
> Izq.Cil.'),
>     Field('retiOiEje','integer',
> default=None,requires=IS_NULL_OR(IS_INT_IN_RANGE(0,181)),label='Ojo
> Izq Eje'),
>     Field('adicion','double',
> default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0.75,3.51)),label='Adición'),
>     Field('dipC','integer', default=None,
> requires=IS_NULL_OR(IS_INT_IN_RANGE(35,85)), label='D.I.P.
> Cerca(mm)'),
>     Field('dipL','integer', default=None,
> requires=IS_NULL_OR(IS_INT_IN_RANGE(35,85)), label='D.I.P.
> Lejos(mm)'),
>     Field('alt','integer', default=None,
> requires=IS_NULL_OR(IS_INT_IN_RANGE(10,30)), label='Altura Centro
> Óptico(mm)'),
>     Field('observaciones','string', default=None),
>     Field('diabetes','string', default=None),
>     Field('hipertension','string', default=None),
>     Field('garantia', 'integer', default=None, label='Garantia de la
> Nota'),
>     Field('entregado','boolean', default=False, writable=False),
>     Field('entregadoEl', 'datetime', default=None, label='Entregado
> el', writable=False))
>
> db.define_table('notas_history',
>     Field('current_record',db.notas),
>     db.notas)
>
> And in the controller this code:
>
> def editar():
>     nota = db.notas(request.args(0)) or redirect(URL(r=request,
> f='leer_ventas'))
>     Gerente = db.auth_user(user_id)
>     if nota.store_id==Gerente.store_id:
>         return
> dict(form=crud.update(db.notas,nota,next=URL('procesing_taller',
> args=request.args),onvalidation=procesing_nota,onaccept=crud.archive))
>     else:
>         response.flash = 'No esta permitido editar notas de otra
> Sucursal'
>     redirect(URL(r=request, f='leer_ventas'))
>
> Every function in the controller works well, however crud.archive
> doesn't archive after update successful
>
> Can any have some advice to avoid that issue?

Reply via email to