diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a0c4c266..86e137d37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- Import of activity with MANUAL data source fails for CSV file +- Fixed an issue in the `csv` file import where custom asset profiles failed due to validation errors ## 2.208.0 - 2025-10-11 diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index d3b0bdc1e..e8a6706de 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -360,16 +360,17 @@ export class GfImportActivitiesDialogComponent implements OnDestroy { const content = fileContent.split('\n').slice(1); try { - const data = await this.importActivitiesService.importCsv({ - fileContent, - isDryRun: true, - userAccounts: this.data.user.accounts - }); - this.activities = data.activities; - this.assetProfiles = data.assetProfiles; - this.dataSource = new MatTableDataSource(data.activities.reverse()); + const { activities, assetProfiles } = + await this.importActivitiesService.importCsv({ + fileContent, + isDryRun: true, + userAccounts: this.data.user.accounts + }); + this.activities = activities; + this.assetProfiles = assetProfiles; + this.dataSource = new MatTableDataSource(activities.reverse()); this.pageIndex = 0; - this.totalItems = data.activities.length; + this.totalItems = activities.length; } catch (error) { console.error(error); this.handleImportError({ diff --git a/apps/client/src/app/services/import-activities.service.ts b/apps/client/src/app/services/import-activities.service.ts index 16e0a8f4d..e70c7b2c7 100644 --- a/apps/client/src/app/services/import-activities.service.ts +++ b/apps/client/src/app/services/import-activities.service.ts @@ -62,27 +62,28 @@ export class ImportActivitiesService { const currency = this.parseCurrency({ content, index, item }); activities.push({ - accountId: this.parseAccount({ item, userAccounts }), - comment: this.parseComment({ item }), currency, dataSource, + symbol, + accountId: this.parseAccount({ item, userAccounts }), + comment: this.parseComment({ item }), date: this.parseDate({ content, index, item }), fee: this.parseFee({ content, index, item }), quantity: this.parseQuantity({ content, index, item }), - symbol, type: this.parseType({ content, index, item }), unitPrice: this.parseUnitPrice({ content, index, item }), updateAccountBalance: false }); - // Create synthetic asset profile for MANUAL data source if (dataSource === DataSource.MANUAL) { + // Create synthetic asset profile for MANUAL data source assetProfiles.push({ + currency, + symbol, assetClass: null, assetSubClass: null, comment: null, countries: [], - currency, cusip: null, dataSource: DataSource.MANUAL, figi: null, @@ -95,7 +96,6 @@ export class ImportActivitiesService { name: symbol, scraperConfiguration: null, sectors: [], - symbol, symbolMapping: {}, url: null });