From d5eed0c3ec97c1e93daba48f5183aa9ebf95ea7b Mon Sep 17 00:00:00 2001 From: ruuushhh Date: Thu, 14 Dec 2023 13:12:46 +0530 Subject: [PATCH] Fix: journal entry expense grouping --- apps/fyle/models.py | 2 +- tests/test_fyle/test_models.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/apps/fyle/models.py b/apps/fyle/models.py index 569adbea..c69aa516 100644 --- a/apps/fyle/models.py +++ b/apps/fyle/models.py @@ -359,7 +359,7 @@ def filter_expense_groups(expense_groups, expenses: Expense, expenses_object, ex filtered_expenses = filter_negative_expenses(filtered_expenses) # Export type => Journal Entry, Expense Report and Group By => Expense - elif (expenses_object == 'EXPENSE_REPORT' and 'expense_id' in expense_group_fields) or expenses_object == 'JOURNAL_ENTRY': + elif (expenses_object == 'EXPENSE_REPORT' and 'expense_id' in expense_group_fields): filtered_expenses = filter_negative_expenses(filtered_expenses) filtered_expense_ids = [item.id for item in filtered_expenses] diff --git a/tests/test_fyle/test_models.py b/tests/test_fyle/test_models.py index fffefad4..30aeadee 100644 --- a/tests/test_fyle/test_models.py +++ b/tests/test_fyle/test_models.py @@ -285,6 +285,35 @@ def test_create_expense_groups_by_report_id_fund_source_test_7(db): expense_group_settings.save() + expense_groups = _group_expenses(expense_objects, ['employee_email','expense_id','fund_source','spent_at'], 1) + assert expense_groups[0]['total'] == 1 + + ExpenseGroup.create_expense_groups_by_report_id_fund_source(expense_objects, configuration, workspace_id) + expense_groups = ExpenseGroup.objects.filter(description__contains={'expense_id': 'tx4ziVSAyIsy'}).count() + assert expense_groups == 1 + expense_groups = ExpenseGroup.objects.filter(description__contains={'expense_id': 'tx4ziVSAyIst'}).count() + assert expense_groups == 1 + +def test_create_expense_groups_by_report_id_fund_source_test_8(db): + """ + Group by expense + 1 negative expenses + """ + workspace_id = 1 + payload = data['positive_expenses'] + payload[0]['amount'] = -50 + + configuration = Configuration.objects.get(workspace_id=workspace_id) + configuration.reimbursable_expenses_object = 'JOURNAL_ENTRY' + configuration.save() + expense_objects = Expense.create_expense_objects(payload, workspace_id) + + expense_group_settings = ExpenseGroupSettings.objects.get(workspace_id=workspace_id) + expense_group_settings.reimbursable_export_date_type = 'spent_at' + expense_group_settings.reimbursable_expense_group_fields = ["employee_email", "expense_id", "fund_source", "spent_at" ] + expense_group_settings.save() + + expense_groups = _group_expenses(expense_objects, ['employee_email','expense_id','fund_source','spent_at'], 1) assert expense_groups[0]['total'] == 1