如何解决如何获取发票付款金额 - 自定义报告
我正在发票模块中创建自定义报告。
<span class="text-Nowrap" t-esc="doc.invoice_payments_widget" />
我添加了上面的代码,它返回 json 格式。但我只需要获取金额。
{"title": "Less Payment","outstanding": false,"content": [{"name": "Customer Payment: INV/2021/0006","journal_name": "Bank","amount": 500.0,"currency": "$","digits": [69,2],"position": "before","date": "2021-03-26","payment_id": 25,"account_payment_id": 2,"payment_method_name": "Manual","move_id": 11,"ref": "BNK1/2021/0002 (INV/2021/0006)"}]}
解决方法
可能会有不止一笔付款,因此您应该汇总 content
字典中的所有金额。
sum([content.get('amount',0.0)
for content in doc.invoice_payments_widget.get('content',[])])
我会为它编写一个方法,将它绑定到报告并调用它。也会更干净。
,如果返回json,首先需要使用json库将其转换为Python结构:
import json
data = json.loads('{"title": "Less Payment","outstanding": false,"content": [{"name": "Customer Payment: INV/2021/0006","journal_name": "Bank","amount": 500.0,"currency": "$","digits": [69,2],"position": "before","date": "2021-03-26","payment_id": 25,"account_payment_id": 2,"payment_method_name": "Manual","move_id": 11,"ref": "BNK1/2021/0002 (INV/2021/0006)"}]}')
然后您可以使用标准代码,例如建议的 CZoellner。如果您不明白该答案,您可以查找 Python 的“列表理解”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。