From 35ced03d1744a9c15bc36c610c2d1eee4935d9f0 Mon Sep 17 00:00:00 2001 From: Sravan Reddy Date: Thu, 12 Sep 2024 22:22:18 +0530 Subject: [PATCH] Display payment data in USD --- commcare_connect/reports/views.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/commcare_connect/reports/views.py b/commcare_connect/reports/views.py index ccb880aa..c16db07b 100644 --- a/commcare_connect/reports/views.py +++ b/commcare_connect/reports/views.py @@ -76,9 +76,15 @@ def _get_table_data_for_quarter(quarter): .annotate(Sum("amount")) ) - approved_payment_strings = [ - f"{p['amount__sum']} {p['opportunity_access__opportunity__currency']}" for p in approved_payment_data - ] + def payment_strings(payment_data): + from commcare_connect.accounting.models import Currency + + strings = [] + for p in payment_data: + currency = Currency.by_code(p["opportunity_access__opportunity__currency"]) + amount = p["amount__sum"] / currency.rate_to_default + strings.append(f"{amount} USD") + return strings total_payment_data = ( Payment.objects.filter( @@ -89,16 +95,13 @@ def _get_table_data_for_quarter(quarter): .values("opportunity_access__opportunity__currency") .annotate(Sum("amount")) ) - total_payment_strings = [ - f"{p['amount__sum']} {p['opportunity_access__opportunity__currency']}" for p in total_payment_data - ] return { "quarter": f"{quarter[0]} Q{quarter[1]}", "users": len(user_set), "services": service_count, - "approved_payments": approved_payment_strings, - "total_payments": total_payment_strings, + "approved_payments": payment_strings(approved_payment_data), + "total_payments": payment_strings(total_payment_data), "beneficiaries": len(beneficiary_set), }