Odoo:从数据库访问payments_widget

时间:2018-04-11 14:51:46

标签: odoo odoo-11 computed-field

当您在Odoo中添加widget="payment"类似于facturation模块时,您会得到此信息(红色箭头旁边)。

enter image description here

如何从数据库中访问此小部件中的值? (从开发模式,它表示该字段是account_invoice的payments_widget,在数据库中不存在。)

在我的情况下,我只是想通过修改数据库来修改付款值的所有出现(在验证后我必须纠正的条目错误)。

根据this post,它只是一个计算字段。然后它不应该存储在数据库中。

但是在更改了数据库中我的金额的其他每个出现后,小部件中的金额没有变化。

那么为什么这些数据是持久的,哪里可以在数据库中找到?

1 个答案:

答案 0 :(得分:0)

由于不正确的货币换算或税收取整问题,这也困扰了我一段时间。经过一番挖掘和一点测试之后,这对我有用,我希望它对您和其他遇到相同或相似问题的人都有用。

“付款”小部件访问account.move模型。因此,这些值的存储方式并不完全相同,您只需更改一个值即可解决问题。

令人惊讶的是,要更改此值,account_move_line表中的四个记录需要修改。 invoice number可以识别其中两个记录,invoice id可以识别另外两个记录。

SELECT * FROM account_move_line
    WHERE ref = 'FAC/2018/0002'
    OR invoice_id = (
        SELECT id FROM account_invoice
            WHERE number = 'FAC/2018/0002'
    );

那应该列出有问题的四个记录。需要更新的值如下:

  • credit_cash_basis
  • debit
  • debit_cash_basis
  • credit
  • balance_cash_basis
  • amount_currency
  • balance

对于每一个具有贷方值的行,都会有一个带有借方值的对应条目。这是用于帐户对帐。保持负值为负,正值为正。所有执行amount_currency均以贵公司的主要货币表示,而amount_currency则以合作伙伴的币种值为值。

当然,除了校正account.payment模型中的相应值外,所有这些都是