Informes. Eliminar los ceros decimales en los informes en OpenERP v.7

1,508 views
Skip to first unread message

Miguel Blanco

unread,
Jan 28, 2014, 7:01:34 AM1/28/14
to openerp-s...@googlegroups.com
Buenos días,

Me gustaría saber como puedo eliminar los ceros decimales en los informes. Tengo el conocimiento necesario para manipular los informes mediante Open Office. He realizado varias pruebas y funciona estupendamente, pero no se como eliminar los ceros decimales por ejemplo en la fila Unidades de un informe de presupuesto de ventas. Me sale por ejemplo: "16,00 unidades" cuando me gustaría que saliera "16 unidades" o el los precios "129,00 €" en lugar de "129 €".

Muchas gracias a todos. 

Pedro Manuel Baeza Romero

unread,
Jan 28, 2014, 10:32:20 AM1/28/14
to openerp-s...@googlegroups.com
Buenas, Miguel,

Utiliza formatLang([[campo]], 0).

Un saludo.


--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Miguel Blanco

unread,
Jan 29, 2014, 3:47:56 AM1/29/14
to openerp-s...@googlegroups.com
Gracias Pedro como siempre. El caso es que el resultado usando lo que propones no es exactamente lo que busco. Lo he probado y redondea el valor. Ej: 125,60 lo muestra como 126 y yo lo que desearía es que solo elimine los ceros de los decimales a la derecha. Ejemplo : En unidades 10,000 a 10 y cuando sean 10,500 a 10,5.

Se te ocurre como hacerlo?

Muchas gracias y un saludo 


El martes, 28 de enero de 2014 16:32:20 UTC+1, Pedro Manuel Baeza Romero escribió:
Buenas, Miguel,

Utiliza formatLang([[campo]], 0).

Un saludo.
El 28 de enero de 2014, 13:01, Miguel Blanco <marketin...@gmail.com> escribió:
Buenos días,

Me gustaría saber como puedo eliminar los ceros decimales en los informes. Tengo el conocimiento necesario para manipular los informes mediante Open Office. He realizado varias pruebas y funciona estupendamente, pero no se como eliminar los ceros decimales por ejemplo en la fila Unidades de un informe de presupuesto de ventas. Me sale por ejemplo: "16,00 unidades" cuando me gustaría que saliera "16 unidades" o el los precios "129,00 €" en lugar de "129 €".

Muchas gracias a todos. 

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.

cubells

unread,
Jan 29, 2014, 3:52:14 AM1/29/14
to openerp-s...@googlegroups.com
El 29/01/14 09:47, Miguel Blanco ha escrit:
> Gracias Pedro como siempre. El caso es que el resultado usando lo que
> propones no es exactamente lo que busco. Lo he probado y redondea el
> valor. Ej: 125,60 lo muestra como 126 y yo lo que desearía es que solo
> elimine los ceros de los decimales a la derecha. Ejemplo : En unidades
> 10,000 a 10 y cuando sean 10,500 a 10,5.
>
> Se te ocurre como hacerlo?
>

openerp es python, por tanto:

$ python
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> miguel = '2,500'
>>> miguel.rstrip("0")
'2,5'
>>>

simplemente poniendo en el rml


o.importe.rstrip("0")


debería de funcionar. No?


--
Atentament, cubells.
--

Miguel Blanco

unread,
Jan 29, 2014, 6:37:33 AM1/29/14
to openerp-s...@googlegroups.com
Tampoco funciona porque si pruebas con el número 200,00 te deja como resultado '200,'. podríamos borrar luego la coma del decimal pero es lo mismo porque existen más casuísticas que habría que tratar como por ejemplo si es una moneda 25,50 no debería borrar el 0, pero si sigue siendo una moneda y su valor 25,00 si debería borrar los dos ceros.

En fin que hay que preparar un método o función con al menos tres atributos: el valor, la precisión que se quiere  y el tipo del valor (moneda, unidades, etc.).

Gracias cubells porque me has orientado.

¿Alguien sabe si ya existe algún método o función desarrollado para hacer esto?

Miguel Blanco

unread,
Jan 29, 2014, 7:38:25 AM1/29/14
to openerp-s...@googlegroups.com
Aquí tenéis el código que he preparado para resolver el problema de eliminación de ceros en cantidades o en monedas:

def eliminarCeros(valor, tipo):
 valor2 = str(valor)
 if valor2.find(',') != -1:
  if tipo == 'CANTIDAD':
   valor2 = valor2.rstrip('0')
   valor2 = valor2.rstrip(',')
  if tipo == 'MONEDA':
   valor2 = valor2.replace(',00','')
 return valor2

Gracias a todos.

Pedro Manuel Baeza Romero

unread,
Jan 29, 2014, 8:08:42 AM1/29/14
to openerp-s...@googlegroups.com
Para truncar números, yo tengo esta función:

def trunc(f, n):
    slen = len('%.*f' % (n, f))
    return float(str(f)[:slen])


Donde f es el número, y n el nº de decimales que quieres dejar. A ver si te sirve de algo.

Un saludo.


--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-u...@googlegroups.com.

Dayne Gutierrez Gonzalez

unread,
Feb 10, 2014, 2:44:05 PM2/10/14
to openerp-s...@googlegroups.com
Hola Miguel no tengo mucha experiencia con oerp ni python, estuve probando ese código adaptado a lo que necesito en mi empresa, que no es mas que solo una de las monedas que se utilizan salga sin decimales en la factura, pero sucede que en el rml cuando se va a mostrar un monto se utiliza formatLang (o.amount, currency_obj=o.currency_id) pero si quisiera sustituir o.amount por el valor que devuelve la función eliminarCeros no me permite, quizá sea porque es un string?? Tiene alguna sugerencia?? es que se necesita mantener el formato con el símbolo de la moneda ($40 o 60.000G)  y no solo 40 o 60.000.

Gracias de antemano.
Reply all
Reply to author
Forward
0 new messages