From adb768505a5d621064edf21a1645f8c0ecd1183a Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 11 Jun 2026 19:40:24 +0530 Subject: [PATCH] refactor: reports on duckdb --- .../report/general_ledger/general_ledger.py | 9 +++++++++ .../report/trial_balance/trial_balance.py | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index dec6e18da20..11111e0bd68 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -817,3 +817,12 @@ def get_columns(filters): columns.extend([{"label": _("Remarks"), "fieldname": "remarks", "width": 400}]) return columns + + +def execute_duckdb(filters, duckdb_conn): + print(filters) + conn = duckdb_conn + columns = get_columns(filters) + res = [] + + return columns, res diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py index 4aff8b3305c..f9cec7c2dac 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.py +++ b/erpnext/accounts/report/trial_balance/trial_balance.py @@ -581,3 +581,23 @@ def hide_group_accounts(data): d.update(indent=0) non_group_accounts_data.append(d) return non_group_accounts_data + + +def execute_duckdb(filters, duckdb_conn): + validate_filters(filters) + conn = duckdb_conn + data = [] + res = conn.sql( + f"select account, sum(debit), sum(credit), account_currency from \"tabGL Entry\" where company = '{filters.company}' and posting_date between '{filters.from_date}' and '{filters.to_date}' and is_opening = 'No' group by account, account_currency;" + ).fetchall() + for x in res: + data.append( + { + "account": x[0], + "debit": x[1], + "credit": x[2], + } + ) + + columns = get_columns() + return columns, data