Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta llamadas clases qweb. Mostrar todas las entradas
Mostrando las entradas con la etiqueta llamadas clases qweb. Mostrar todas las entradas

viernes, 3 de julio de 2015

Llamar funciones python desde Qweb Reports

Funciones Python desde Qweb Reports



    Qweb Reports el nuevo Reporteador para Odoo, ofrece muchas ventajas como lo ofrecĆ­a anteriormente RML, en ocaciones no podemos ejecutar directamente una operacion en Qweb o necesitamos tener un resultado de una funcion, esto es muy sencillo en RML, vamos a tomar como ejemplo las Facturas y voy a ejecutar un metodo desde el reporte Qweb, para calcular manualmente el total de un producto:


Qweb


<span  t-esc="line.subtotal_manual(line.price_unit,line.quantity)"/>

    Como podemos observar line es mi variable de iteracion para obtener los valores de invoice_lines, las lineas de Factura, para ejecutar un metodo llamado subtotal_manual. Este metodo que estamos utilizando no existe en el objecto account.invoice.line, asĆ­ que tendremos que crearlo.

Clases Python

# -*- encoding: utf-8 -*-
############################################################################
#    (c) 2015 German Ponce Dominguez
#    All Rights Reserved.
#    info skype: german_442 email: (german.ponce@outlook.com)
############################################################################

from openerp.osv import fields, osv
from openerp.tools.translate import _
from datetime import datetime, timedelta
from openerp import SUPERUSER_ID

class account_invoice_line(osv.osv):
    _name = 'account.invoice.line'
    _inherit ='account.invoice.line'
    _columns = {

        }

    _defaults = {
        }

    def subtotal_manual(self, price, qty):
        return price*qty

    En la clase python account_invoice_line, se aƱade el metodo que queremos ejecutar, esto sera variable de acuerdo al objecto en donde quieran ejecutar su funcion.