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.











