Ayuda con mi primer módulo: Mostrar NIF en listado de facturas

224 views
Skip to first unread message

Alberto

unread,
Apr 4, 2017, 2:03:32 PM4/4/17
to Usuarios Odoo / OpenERP en España
Buenas tardes, estoy tratando de adaptar este módulo de la versión 7 a la versión 10 de Odoo, pero estoy tan verde que no sé por dónde cogerlo.

En los palos de ciego que estoy dando el último error que obtengo es un

 TypeError: __init__() got multiple values for keyword argument 'string'


Mi models.py es este:

# -*- coding: utf-8 -*-
from odoo import models, fields, osv


class account_invoice(osv.osv): 

    _inherit = "account.invoice"    

    def _get_vat_num(self, cr, uid, ids,field_name, args, context=None):

        

        partner_pool = self.pool.get('res.partner')

        invoice_pool = self.pool.get('account.invoice')

        res = {}

        for inv_id in self.browse(cr, uid, ids, context=context):

            invoice = invoice_pool.browse(cr,uid, inv_id.id, context=None)

            partner = partner_pool.browse(cr, uid, invoice.partner_id.id, context=None)

            res[inv_id.id] = partner.vat
        

        return res 
    

    _columns = {

                'inv_vat' : fields.Char('res.partner', string="VAT", method=True, compute='_get_vat_num')  

                 }


Y mi views.xml es este:

<openerp>

    <data>

        <record id="invoice_tree_inherit" model="ir.ui.view">

    <field name="name">invoice.tree.inherit</field>

    <field name="model">account.invoice</field>

    <field name="inherit_id" ref="account.invoice_tree"/>

    <field name="arch" type="xml">

       <field name="partner_id" position="after">        

                    <field name="inv_vat"/>

       </field>

    </field>

</record>
     </data>

</openerp>


¿Alguien puede ayudarme a salir del atolladero?

Alberto


Pedro Manuel Baeza Romero

unread,
Apr 4, 2017, 2:19:42 PM4/4/17
to Usuarios Odoo / OpenERP en España
La versión 10 ya no admite API vieja. Tendrás que aprender a programar en API nueva, y no vale copiar cosas de v7. En cualquier caso, el problema ahora mismo sería que te sobra 'res.partner' de tu inicialización de campo. Puedes además utilizar un campo related en su lugar, pero eso, como no lo hagas en API nueva...

https://www.odoo.com/documentation/10.0/

Un saludo.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Alberto

unread,
Apr 4, 2017, 3:04:41 PM4/4/17
to Usuarios Odoo / OpenERP en España


Muchas gracias, Pedro.

Estuve buscando documentación para poder añadir a la vista árbol de facturas una columna con el NIF de los clientes y encontré ese enlace donde describían exactamente eso para la versión 7.

En mi bisoñez pensé que el código era sencillo y bastaría con cambiar el fields.function de la versión 7 por un computed field, pero ya veo que portar un módulo es mucho más grande de lo que parece. 

¿Se podría añadir la columna del NIF en el listado de facturas directamente desde el interfaz de odoo en modo desarrollador, añadiendo una vista heredada a la vista account.invoice.tree?

Muchas gracias
Alberto

Pedro Manuel Baeza Romero

unread,
Apr 4, 2017, 3:06:55 PM4/4/17
to Usuarios Odoo / OpenERP en España
No, ya que ese campo no pertenece a ese modelo. Debes crear un campo related y añadirlo a la vista.

Un saludo.

--
Reply all
Reply to author
Forward
0 new messages