You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo V16 API创建账户付款问题:PHP导入数据未显示客户余额

解决Odoo V16 API创建未分配付款不显示客户余额的问题

你遇到的问题根源在于API创建的付款处于草稿状态,未完成过账,所以不会更新客户的应付余额;而手动创建时你大概率完成了过账操作(界面创建后通常需要点击「过账」,或部分配置下会自动过账)。

修复步骤:

1. 补充必要参数(可选但推荐)

手动创建付款时Odoo会自动填充默认参数,API调用需要显式指定:

  • payment_method_id:付款方式ID,可在Odoo后台「会计→配置→付款方式」中查看对应ID
  • currency_id:货币ID,默认取公司货币,显式指定更稳妥

更新后的创建代码示例:

$payment_id = $odoo->get('account.payment', 'create', array(array(
    'date'                  => date('Y-m-d', $invoice['date']),
    'extract_state'         => 'no_extract_requested',
    'journal_id'            => 8,
    'partner_type'          => 'customer',
    'payment_type'          => 'inbound',
    'partner_id'            => $invoice['partner_id'],
    'amount'                => abs($invoice['amount']),
    'payment_method_id'     => 1, // 替换为你的手动收款方式ID
    'currency_id'           => 1, // 替换为你的公司货币ID
)));

2. 创建后触发过账操作

Odoo的付款需要过账(posted)才会影响客户余额,API创建的付款默认是草稿(draft)状态,需调用action_post方法完成过账:

// 创建付款后调用过账方法
$odoo->get('account.payment', 'action_post', array(array($payment_id)));

3. 处理付款审批(若有配置)

如果Odoo后台开启了「付款需要审批」(路径:会计→配置→设置),API创建的付款需要先审批再入账,需先调用action_approve方法:

// 先审批付款
$odoo->get('account.payment', 'action_approve', array(array($payment_id)));
// 再过账
$odoo->get('account.payment', 'action_post', array(array($payment_id)));

完成以上操作后,付款会正式入账,客户的应付余额就会正常显示该笔付款记录。

内容的提问来源于stack exchange,提问作者Jason Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:35:24