diff --git a/apps/workspaces/apis/import_settings/serializers.py b/apps/workspaces/apis/import_settings/serializers.py index f03c7392..da391fc8 100644 --- a/apps/workspaces/apis/import_settings/serializers.py +++ b/apps/workspaces/apis/import_settings/serializers.py @@ -1,5 +1,6 @@ from django.db import transaction from fyle_accounting_mappings.models import MappingSetting +from fyle_integrations_imports.models import ImportLog from rest_framework import serializers from apps.mappings.models import GeneralMapping @@ -81,6 +82,15 @@ def update(self, instance, validated): general_mappings = validated.pop('general_mappings') mapping_settings = validated.pop('mapping_settings') + # Check if there is a diff in charts of accounts + # Update the last_successful_run_at to None for Category Import Log + if workspace_general_settings.get('charts_of_accounts') != instance.workspace_general_settings.charts_of_accounts: + category_import_log = ImportLog.objects.filter(workspace_id=instance.id, attribute_type='CATEGORY').first() + + if category_import_log: + category_import_log.last_successful_run_at = None + category_import_log.save() + workspace_general_settings_instance, _ = WorkspaceGeneralSettings.objects.update_or_create( workspace=instance, defaults={ diff --git a/tests/test_workspaces/test_apis/test_import_settings/fixtures.py b/tests/test_workspaces/test_apis/test_import_settings/fixtures.py index fac1f5b5..6e8c1519 100644 --- a/tests/test_workspaces/test_apis/test_import_settings/fixtures.py +++ b/tests/test_workspaces/test_apis/test_import_settings/fixtures.py @@ -1,6 +1,6 @@ data = { 'import_settings': { - 'workspace_general_settings': {'import_categories': True, 'import_items': True, 'charts_of_accounts': ['Expense'], 'import_tax_codes': True, 'import_vendors_as_merchants': True}, + 'workspace_general_settings': {'import_categories': True, 'import_items': True, 'charts_of_accounts': ['Expense', 'Cost of Goods Sold'], 'import_tax_codes': True, 'import_vendors_as_merchants': True}, 'general_mappings': {'default_tax_code': {'name': '12.5% TR @12.5%', 'id': '22'}}, 'mapping_settings': [ {'source_field': 'COST_CENTER', 'destination_field': 'DEPARTMENT', 'import_to_fyle': True, 'is_custom': False, 'source_placeholder': 'cost center'},