当您在Odoo中添加类似于facturation模块的widget="payment"
时,您会得到此信息(红色箭头旁边)。
如何从数据库中访问此小部件中的值? (从开发模式,它表示该字段是account_invoice的payments_widget,它在数据库中不存在)。
在我的情况下,我只是想通过修改数据库来修改付款值的所有出现(在验证之后我必须纠正的条目期间的错误)。
根据this post,它只是一个计算字段。然后它不应该存储在数据库中。
但是在更改数据库中每次出现的金额后,窗口小部件中的金额不会更改。
那么为什么这些数据是持久的,哪里可以在数据库中找到呢?
由于不正确的货币转换或税收四舍五入问题,这也困扰了我很长一段时间。经过一些挖掘和一些测试后,这对我有用,我希望它适用于你和其他任何困扰相同或类似问题的人。
支付小部件访问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
模型中的相应值之外。