From 5e21fca9fbd44fc7c7bb545f2c1dc916075ab228 Mon Sep 17 00:00:00 2001 From: Ashutosh singh <55102089+Ashutosh619-sudo@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:02:24 +0530 Subject: [PATCH] Fix: Removing condition for bank account in sync data (#179) * Fix: Removing condition for bank account in sync data * fix line item balanceAccountType check * bug fix * bug fix * Fix: Adding default ccc bank account (#180) * Fix: Adding default ccc bank account * removing bank account from import settings * bug fixed * change name * renamed * change name in JE --- .../exports/journal_entry/models.py | 4 +++- .../exports/journal_entry/tasks.py | 1 + apps/business_central/serializers.py | 3 ++- apps/business_central/utils.py | 2 +- apps/fyle/serializers.py | 2 +- ...ng_default_ccc_bank_account_id_and_more.py | 24 +++++++++++++++++++ ...ng_default_ccc_bank_account_id_and_more.py | 23 ++++++++++++++++++ apps/workspaces/models.py | 2 ++ apps/workspaces/serializers.py | 4 +++- 9 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 apps/workspaces/migrations/0005_exportsetting_default_ccc_bank_account_id_and_more.py create mode 100644 apps/workspaces/migrations/0006_rename_default_ccc_bank_account_id_exportsetting_default_ccc_bank_account_id_and_more.py diff --git a/apps/business_central/exports/journal_entry/models.py b/apps/business_central/exports/journal_entry/models.py index f23cfab..f52f5d3 100644 --- a/apps/business_central/exports/journal_entry/models.py +++ b/apps/business_central/exports/journal_entry/models.py @@ -42,9 +42,11 @@ def create_or_update_object(self, accounting_export: AccountingExport, _: Advanc :return: purchase invoices object """ expense = accounting_export.expenses.first() - accounts_payable_account_id = export_settings.default_bank_account_id + if expense.fund_source == 'CCC': + accounts_payable_account_id = export_settings.default_ccc_bank_account_id + advance_setting = AdvancedSetting.objects.get(workspace_id=accounting_export.workspace_id) document_number = expense.expense_number diff --git a/apps/business_central/exports/journal_entry/tasks.py b/apps/business_central/exports/journal_entry/tasks.py index 152fcf7..a22166e 100644 --- a/apps/business_central/exports/journal_entry/tasks.py +++ b/apps/business_central/exports/journal_entry/tasks.py @@ -65,6 +65,7 @@ def __construct_journal_entry(self, body: JournalEntry, lineitems: List[JournalE batch_journal_entry_payload.append(journal_entry_payload) + balance_account_type = 'G/L Account' for lineitem in lineitems: for dimension in lineitem.dimensions: dimension['exported_module_id'] = lineitem.id diff --git a/apps/business_central/serializers.py b/apps/business_central/serializers.py index f94c969..d3b2b48 100644 --- a/apps/business_central/serializers.py +++ b/apps/business_central/serializers.py @@ -78,7 +78,8 @@ def format_business_central_fields(self, workspace_id): "ACCOUNT", "EMPLOYEE", "LOCATION", - "COMPANY" + "COMPANY", + "BANK_ACCOUNT" ] attributes = ( DestinationAttribute.objects.filter( diff --git a/apps/business_central/utils.py b/apps/business_central/utils.py index 12585e6..720ac88 100644 --- a/apps/business_central/utils.py +++ b/apps/business_central/utils.py @@ -128,7 +128,7 @@ def _sync_data(self, data, attribute_type, display_name, workspace_id, field_nam attribute_type, display_name, value, - item['number'] if (item.get('number') and attribute_type != 'BANK_ACCOUNT') else item['id'], + item['number'] if item.get('number') else item['id'], active, detail )) diff --git a/apps/fyle/serializers.py b/apps/fyle/serializers.py index 9440dc2..0029cca 100644 --- a/apps/fyle/serializers.py +++ b/apps/fyle/serializers.py @@ -99,7 +99,7 @@ def format_fyle_fields(self, workspace_id): Get Fyle Fields """ - attribute_types = ['CATEGORY', 'PROJECT', 'COST_CENTER', 'TAX_GROUP', 'CORPORATE_CARD', 'MERCHANT'] + attribute_types = ['EMPLOYEE', 'CATEGORY', 'PROJECT', 'COST_CENTER', 'TAX_GROUP', 'CORPORATE_CARD', 'MERCHANT'] attributes = ExpenseAttribute.objects.filter( ~Q(attribute_type__in=attribute_types), diff --git a/apps/workspaces/migrations/0005_exportsetting_default_ccc_bank_account_id_and_more.py b/apps/workspaces/migrations/0005_exportsetting_default_ccc_bank_account_id_and_more.py new file mode 100644 index 0000000..73938c2 --- /dev/null +++ b/apps/workspaces/migrations/0005_exportsetting_default_ccc_bank_account_id_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 4.1.2 on 2024-12-11 10:37 + +from django.db import migrations +import ms_business_central_api.models.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('workspaces', '0004_importsetting_charts_of_accounts'), + ] + + operations = [ + migrations.AddField( + model_name='exportsetting', + name='default_CCC_bank_account_id', + field=ms_business_central_api.models.fields.StringNullField(help_text='CCC Bank Account ID', max_length=255, null=True), + ), + migrations.AddField( + model_name='exportsetting', + name='default_CCC_bank_account_name', + field=ms_business_central_api.models.fields.StringNullField(help_text='CCC Bank account name', max_length=255, null=True), + ), + ] diff --git a/apps/workspaces/migrations/0006_rename_default_ccc_bank_account_id_exportsetting_default_ccc_bank_account_id_and_more.py b/apps/workspaces/migrations/0006_rename_default_ccc_bank_account_id_exportsetting_default_ccc_bank_account_id_and_more.py new file mode 100644 index 0000000..d07931b --- /dev/null +++ b/apps/workspaces/migrations/0006_rename_default_ccc_bank_account_id_exportsetting_default_ccc_bank_account_id_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.1.2 on 2024-12-12 17:23 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('workspaces', '0005_exportsetting_default_ccc_bank_account_id_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='exportsetting', + old_name='default_CCC_bank_account_id', + new_name='default_ccc_bank_account_id', + ), + migrations.RenameField( + model_name='exportsetting', + old_name='default_CCC_bank_account_name', + new_name='default_ccc_bank_account_name', + ), + ] diff --git a/apps/workspaces/models.py b/apps/workspaces/models.py index e1a78c3..6e4720a 100644 --- a/apps/workspaces/models.py +++ b/apps/workspaces/models.py @@ -186,6 +186,8 @@ class ExportSetting(BaseModel): ) default_bank_account_name = StringNullField(help_text='Bank account name') default_bank_account_id = StringNullField(help_text='Bank Account ID') + default_ccc_bank_account_name = StringNullField(help_text='CCC Bank account name') + default_ccc_bank_account_id = StringNullField(help_text='CCC Bank Account ID') reimbursable_expense_state = StringOptionsField( choices=REIMBURSABLE_EXPENSE_STATE_CHOICES ) diff --git a/apps/workspaces/serializers.py b/apps/workspaces/serializers.py index 53448fa..492f495 100644 --- a/apps/workspaces/serializers.py +++ b/apps/workspaces/serializers.py @@ -215,7 +215,9 @@ def update(self, instance, validated): mapping_settings = validated.pop('mapping_settings') import_settings = validated.pop('import_settings') - if import_settings.get('charts_of_accounts') != instance.import_settings.charts_of_accounts: + import_setting_instance = ImportSetting.objects.filter(workspace_id=instance.id).first() + + if import_setting_instance and import_settings.get('charts_of_accounts') != instance.import_settings.charts_of_accounts: category_import_log = ImportLog.objects.filter(workspace_id=instance.id, attribute_type='CATEGORY').first() if category_import_log: