【问题标题】:Odoo v8 PHP Insert One2many or Many2many fieldOdoo v8 PHP 插入 One2many 或 Many2many 字段
【发布时间】:2015-09-17 16:42:24
【问题描述】:

我正在尝试在 Odoo v8 中使用 PHP 创建发票及其发票行。 但是,在创建发票行时,我需要填充 invoice_line_tax_id 这是一个 many2many 字段。

我试图阅读此页面,但我无法弄清楚:https://www.odoo.com/documentation/8.0/reference/orm.html#openerp.models.Model.write

这是我创建发票行的方法

$result = $models->execute_kw($db, $uid, $password,
    'account.invoice.line', 'create',
    array(array(
        'invoice_id'=> 15,
        'product_id'=> 2,
        'quantity'=> 1,
        'name'=> 'Abonnement standard' ,
        'price_unit' => 50 ,
        'invoice_line_tax_id' => array( 0 , false , array( 2 ) )
    )));

我有以下错误作为回报:

string 'Traceback(最近一次调用最后一次): xmlrpc_return 中的文件“/usr/lib/python2.7/dist-packages/openerp/service/wsgi_server.py”,第 75 行 结果 = openerp.http.dispatch_rpc(服务,方法,参数) 文件“/usr/lib/python2.7/dist-packages/openerp/http.py”,第 114 行,在 dispatch_rpc 中 结果 = 调度(方法,参数) 文件“/usr/lib/python2.7/dist-packages/openerp/service/model.py”,第 37 行,在调度中 res = fn(db, uid, *params) 文件“/usr/lib/python2.7/dist-packages/openerp/service/model.py”,li'...(长度=2004)

如果我只是这样输入 invoice_line_tax_id :

'invoice_line_tax_id' => array( 0 , false , 2 )

有效,但不加税。

知道如何进行这项工作吗?

提前致谢。

【问题讨论】:

    标签: php odoo-8


    【解决方案1】:

    对我来说,它是这样工作的:

    'invoice_line_tax_id'=>array(array(4, $tax_id,false))

    我使用了 4 选项,因为税收已经创建。

    我认为另一个数组是必要的,因为在文档中说:

    这种格式是顺序执行的三元组列表

    【讨论】:

      【解决方案2】:

      对于那些(像我一样)使用 odoo 10 的人来说:

      假设您的 tax_id 1 存在于 account_tax 中,正确的语法是 invoice_line_tax_ids(注意最后的 s):

         'invoice_line_tax_ids'=> [[4,[1],false]]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-11
        • 1970-01-01
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多