微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取发票付款金额 - 自定义报告

如何解决如何获取发票付款金额 - 自定义报告

我正在发票模块中创建自定义报告。

<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 举报,一经查实,本站将立刻删除。