我正在尝试使用下一个代码创建发票行:
// 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))
其他数组是必需的,因为此格式是三元组的列表。
对于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
您是否添加了 account.tax 模块?
https://apps.openerp.com/apps/modules/7.0/account_tax_invoice/
您可以为一个产品分配多个税费。假设您已设置 适当的税收,您将使用菜单销售‣产品‣ 要打开和编辑产品定义的产品,然后:
为您可能销售的任何产品选择一个或多个销售税, 其中可能包括销售税或销项增值税和销售生态税,
为您可能的任何产品选择一个或多个购置税 购买,其中可能包括购置税或进项税和购买 生态税 .
通常,当您进行购买或销售时,分配给 该产品用于计算欠税。
有关odoo如何处理 https://doc.odoo.com/6.1/book/3/3_9/tax_structure/税