我正在尝试使用下一代码创建发票行:
// Invoice line creation
$result = $models->execute_kw($db, $uid, $password,
'account.invoice.line', 'create',
array(array(
'Invoice'=>$invoice,
'invoice_id'=>$invoice_id,
'product_id'=>$product_id,
'quantity'=>$product_quantity,
'name'=>$product_name,
'price_unit'=>$product_price,
'invoice_line_tax_id'=>array($odoo_tax_id)
)));
寄存器是在发票内创建的,但它没有任何税。
更新
用于发票行的产品是在使用之前创建的:
// Product creation
$product_id = $models->execute_kw($db, $uid, $password,
'product.product', 'create',
array(array(
'default_code'=>$product_ref,
'name'=>$product_name,
'list_price'=>$product_price,
))
);
发票是使用以下方式创建的:
// Invoice creation
$invoice_id = $models->execute_kw($db, $uid, $password,
'account.invoice', 'create',
array(array('partner_id'=>$parter_id,'account_id'=>$odoo_invoice_account_id)));
$invoice = $models->execute_kw($db, $uid, $password,
'account.invoice', 'read', array($invoice_id),
array());
更新
根据Christophe Combelles给出的答案,我结束了这段代码:
'invoice_line_tax_id'=>array(array(4, $tax_id,false))
其他数组是必要的,因为此格式是三元组列表。
答案 0 :(得分:2)
对于您的invoice_line_tax_id
字段,请尝试将array($odoo_tax_id)
替换为array(6, 0, array($odoo_tax_id))
不确定php语法,在python中它将是(6, 0, [tax_id])
https://www.odoo.com/documentation/8.0/reference/orm.html#openerp.models.Model.write
中记录了这一点答案 1 :(得分:0)
您是否添加了account.tax模块?
https://apps.openerp.com/apps/modules/7.0/account_tax_invoice/
处理税款的更多信息您可以为产品分配多种税。假设你已经设置好了 适当的税,你会使用菜单销售‣产品‣ 打开和编辑产品定义的产品,然后:
为您可能销售的任何产品选择一个或多个销售税, 其中可能包括销售税或增值税和销售生态税,
为您可能选择的任何产品选择一个或多个购买税 购买,可能包括购买税或进项增值税和购买 生态税。
通常,当您进行购买或销售时,分配的税额 该产品用于计算欠款或欠款。