我正在尝试在Odoo v8中使用PHP创建发票及其发票行。 但是,在创建发票行时,我需要填充invoice_line_tax_id,这是一个很多的字段。
我试过阅读此页面,但我无法弄明白: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 ) )
)));
我有以下错误:
字符串'Traceback(最近一次调用最后一次): 在xmlrpc_return中输入文件“/usr/lib/python2.7/dist-packages/openerp/service/wsgi_server.py”,第75行 result = openerp.http.dispatch_rpc(service,method,params) 在dispatch_rpc中输入文件“/usr/lib/python2.7/dist-packages/openerp/http.py”,第114行 result = dispatch(method,params) 发送文件“/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 )
它有效,但没有插入税。
知道如何使这项工作吗?
提前致谢。
答案 0 :(得分:2)
对我来说,它就是这样的:
'invoice_line_tax_id'=>array(array(4, $tax_id,false))
我使用了4选项,因为已经创建了税。
我认为另一个数组是必要的,因为在文档中说:
此格式是按顺序执行的三元组列表
答案 1 :(得分:0)
对于那些与odoo 10斗争的人(比如我):
假设您的tax_id 1存在于account_tax中,正确的语法是invoice_line_tax_ids(请注意最后的s):
'invoice_line_tax_ids'=> [[4,[1],false]]