PHP Odoo v8 Вставить One2many или Many2many поле

Я пытаюсь в 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 ) )
)));

У меня есть следующая ошибка в ответ:

строка ‘Traceback (последний вызов был последним):
Файл «/usr/lib/python2.7/dist-packages/openerp/service/wsgi_server.py», строка 75, в xmlrpc_return
result = 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 (дБ, 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

Решение

Для меня это сработало так:

'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]]
0

По вопросам рекламы [email protected]