Odoo使用Web Service API(PHP)创建发票

2024-04-20 08:36:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用odooweb服务API(通过PHP)在Odoo上创建一个发票,它基于XML-RPC,使用official API documentation中的代码示例。我已经成功地使用documentation中提供的代码创建了一个客户:

$id = $models->execute_kw($db, $uid, $password,
    'res.partner', 'create',
    array(array('name'=>"New Partner"))
);

但我无法使用提供的代码示例创建发票:

^{pr2}$

当我运行代码时,我得到一个错误响应:

array(2) {
  ["faultCode"]=>
  int(1)
  ["faultString"]=>
  string(989) "Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/odoo/service/wsgi_server.py", line 56, in xmlrpc_return
    result = odoo.http.dispatch_rpc(service, method, params)
  File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 118, in dispatch_rpc
    result = dispatch(method, params)
  File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 38, in dispatch
    res = fn(db, uid, *params)
  File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 157, in execute_kw
    return execute(db, uid, obj, method, *args, **kw or {})
  File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 143, in wrapper
    raise ValidationError(msg)
ValidationError: ('The operation cannot be completed, probably due to the following:\n- deletion: you may be trying to delete a record while other records still reference it\n- creation/update: a mandatory field is not correctly set\n\n[object with reference: price_unit - price.unit]', None)
"
}

虽然如果我将这行更改为空数组,它会创建发票:

'invoice_line_ids' => array(array(0, false, array('name' => "AAA")))

但是我不知道如何添加发票行。在


Tags: 代码inpyodooexecutelibpackagesusr