openerp — правильный синтаксис для записи в поле Odoo many2many с помощью php API

Я пытаюсь обновить существующий sale.order, привязав к нему существующий счет. Я пробовал несколько вещей, чтобы добавить идентификатор счета к invoice_ids массив заказа на продажу, но ничего не работает.

Вот мой код:

$link = $models->execute_kw($db, $uid, $password, 'sale.order', 'write',
array(array($order_id),
array('invoice_ids'=>$invoice_id)));

Это возвращает 1, но это ничего не меняет. Я также попробовал этот метод, но безуспешно: https://www.odoo.com/documentation/8.0/reference/orm.html#openerp.models.Model.write

Я думаю, что-то не так с моим синтаксисом.

2

Решение

Попробуйте с этим кодом:

#general syntax for many2many field
$many2many_field = array(
new xmlrpcval(
array(
new xmlrpcval(6,"int"),
new xmlrpcval(0,"int"),
new xmlrpcval(array(new xmlrpcval($order_id,"int")),"array")
), "array")
);

array('invoice_ids'=> new xmlrpcval($many2many_field, "array"))

Вообще нам нужно дать формат как [(6,0, [ID1, ID2 и др.])]

1

Другие решения

Ниже я публикую фрагмент кода для обновления Many2many с помощью ripcord (библиотека php rpc).

$models->execute_kw($db, $uid, $password, 'sale.order', 'write',
array('order_id'=> $order_id,
'invoice_ids'=>array(array(6,0,array($invoice_ids)))
)
);

Я надеюсь, что это может помочь в вашем случае.

0

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