Mascara de CUIT/CUIL

2,220 views
Skip to first unread message

isi_jca

unread,
Jan 3, 2014, 3:03:43 PM1/3/14
to web2py-...@googlegroups.com
Hola comunidad Feliz 2014!!.

1°) Quisiera por favor si alguién me puede indicar como representar una máscara para un cuit/cuil. Supogamos que tengo el nro. 20253567891, una vez aplicada la máscara debería quedar: 20-25356789-1

2°) Tengo una palabra acentuada, la paso a una función y luego la muestra luego en una vista pero el acento lo representa con doble guión bajo. Ejemplo Albarracín lo muestra como Albarrac__n.. ¿como debo tratar a la cadena para que respete el acento?.

Saludos y muchas gracias.

Marco Mansilla

unread,
Jan 3, 2014, 4:55:05 PM1/3/14
to web2py-...@googlegroups.com
El Fri, 3 Jan 2014 12:03:43 -0800 (PST)
isi_jca <juliocesa...@gmail.com> escribió:

> Hola comunidad Feliz 2014!!.
>
> 1°) Quisiera por favor si alguién me puede indicar como representar
> una máscara para un cuit/cuil. Supogamos que tengo el nro.
> 20253567891, una vez aplicada la máscara debería quedar: 20-25356789-1

hmmmm... creo que algo de esto te puede servir

http://jasny.github.io/bootstrap/2.3.1/javascript.html#inputmask

incluso podrias reemplazar bootstrap con la version de jasny, es
totalmente compatible con web2py.

> 2°) Tengo una palabra acentuada, la paso a una función y luego la
> muestra luego en una vista pero el acento lo representa con doble
> guión bajo. Ejemplo Albarracín lo muestra como Albarrac__n.. ¿como
> debo tratar a la cadena para que respete el acento?.

que tipo de charset tienes declarado en layout.html?, por defecto
web2py usa utf-8, de manera que no deberias tener ese problema... o es
que en la db la tienes asi?... en ese caso habria que ver el charset
de la db.

> Saludos y muchas gracias.
>

isi_jca

unread,
Jan 7, 2014, 7:19:12 AM1/7/14
to web2py-...@googlegroups.com

isi_jca

unread,
Jan 7, 2014, 7:19:32 AM1/7/14
to web2py-...@googlegroups.com
Hola comunidad:

Resolvi parcialmente el problema de la máscara para el cuit/cuil, cuando los muestra en una vista, llamo a una función:

 <td>{{=set_format_cuit(item.cuit)}}</td>

Y esta es la función:

def set_format_cuit(cuit):
    """" Recibe un Cuit/Cuil y establece la mascara 99-99999999-9 """

    #Esta conversión la realizo dado que el tipo de dato es float y a los nros.
    # lo representa de la siguiente manera con decimales, por ej.: 20256397812.0
    if isinstance(cuit,float):
        cuit = long(cuit)
    cuit = str(cuit)
    if len(cuit)==11:
        cuit_str =cuit[0:2]+"-"+cuit[2:10]+"-"+cuit[10:]
    else:
       cuit_str=cuit
    return (cuit_str)

También realice una prueba desde un simple archivo html con un formulario, llamando a funciones de javascript(ver mascara_cuit.zip) y funcióna ok. Pero cuando a esto lo quise implementar desde una vista en web2py tiene un comportamiento extraño, lo cual me lleva a suponer que hay otra funciones en el formulario creado por web2py que entran en conflicto con la función que intenta establecer la máscara. Sigo investigando y comento.

Saludos.
Mascara_cuit.zip

isi_jca

unread,
Jan 9, 2014, 6:34:11 AM1/9/14
to web2py-...@googlegroups.com
Hola comunidad!!!

Con respecto a los acentos descubrí que estaba pasando:

a) Inicialmente llamaba a una vista de esta manera:

<td>{{=A(T('Domicilio'),href=URL('domicilio',args=[item.apellido,item.nombre,item.cuit,item.legajo,item.id]))}}</td>

Pero cuando el apellido o el nombre tenían acento, me decía que la función no existía y desde la función recuperaba los argumentos así:

apellido = request.args[0]
nombre = request.args[1]
cuit = request.args[2]
legajo = request.args[3]
id = = request.args[4]

b) Entonces opte por llamar a la vista de esta otra manera y se solucionó el problema de los acentos

<td>{{=A(T('Domicilio'),href=URL('domicilio',vars={'apellido':item.apellido,'nombre':item.nombre,
'cuit':item.cuit,'legajo':item.legajo,'id':item.id}))}}</td>

Y desde la función recupero los argumentos así:

apellido = request.vars.apellido
nombre = request.vars.nombre
cuit = request.vars.cuit
legajo = request.vars.legajo
id = = request.vars.id

Saludos cordiales.


El viernes, 3 de enero de 2014 17:03:43 UTC-3, isi_jca escribió:

isi_jca

unread,
Jan 14, 2014, 12:24:20 PM1/14/14
to web2py-...@googlegroups.com
Hola Comunidad!!!

La columna cuit, es del tipo integer o decimal y para estos tipos de datos el framework tiene funciones en javascript que realizan controles sobre las mismas y en consecuencia entran en conflicto con la función en jQuery que establece la mascara, esto no ocurre si el tipo de dato de la columna es string.

Saludos.
Reply all
Reply to author
Forward
0 new messages