Bugfix/fix activities import for manual data source (#2923)
* Fix import * Update changelog
This commit is contained in:
parent
8f5f4c5875
commit
9fdbd22cb5
@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed the import for activities with `MANUAL` data source and type `FEE`, `INTEREST`, `ITEM` or `LIABILITY`
|
||||||
- Removed holdings with incomplete data from the _Top 3_ and _Bottom 3_ performers on the analysis page
|
- Removed holdings with incomplete data from the _Top 3_ and _Bottom 3_ performers on the analysis page
|
||||||
|
|
||||||
## 2.44.0 - 2024-01-24
|
## 2.44.0 - 2024-01-24
|
||||||
|
@ -575,7 +575,7 @@ export class ImportService {
|
|||||||
|
|
||||||
for (const [
|
for (const [
|
||||||
index,
|
index,
|
||||||
{ currency, dataSource, symbol }
|
{ currency, dataSource, symbol, type }
|
||||||
] of uniqueActivitiesDto.entries()) {
|
] of uniqueActivitiesDto.entries()) {
|
||||||
if (!this.configurationService.get('DATA_SOURCES').includes(dataSource)) {
|
if (!this.configurationService.get('DATA_SOURCES').includes(dataSource)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
@ -583,28 +583,33 @@ export class ImportService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const assetProfile = (
|
const assetProfile = {
|
||||||
await this.dataProviderService.getAssetProfiles([
|
currency,
|
||||||
{ dataSource, symbol }
|
...(
|
||||||
])
|
await this.dataProviderService.getAssetProfiles([
|
||||||
)?.[symbol];
|
{ dataSource, symbol }
|
||||||
|
])
|
||||||
|
)?.[symbol]
|
||||||
|
};
|
||||||
|
|
||||||
if (!assetProfile?.name) {
|
if (type === 'BUY' || type === 'DIVIDEND' || type === 'SELL') {
|
||||||
throw new Error(
|
if (!assetProfile?.name) {
|
||||||
`activities.${index}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")`
|
throw new Error(
|
||||||
);
|
`activities.${index}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")`
|
||||||
}
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
assetProfile.currency !== currency &&
|
assetProfile.currency !== currency &&
|
||||||
!this.exchangeRateDataService.hasCurrencyPair(
|
!this.exchangeRateDataService.hasCurrencyPair(
|
||||||
currency,
|
currency,
|
||||||
assetProfile.currency
|
assetProfile.currency
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`activities.${index}.currency ("${currency}") does not match with "${assetProfile.currency}" and no exchange rate is available from "${currency}" to "${assetProfile.currency}"`
|
`activities.${index}.currency ("${currency}") does not match with "${assetProfile.currency}" and no exchange rate is available from "${currency}" to "${assetProfile.currency}"`
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assetProfiles[getAssetProfileIdentifier({ dataSource, symbol })] =
|
assetProfiles[getAssetProfileIdentifier({ dataSource, symbol })] =
|
||||||
|
@ -42,10 +42,21 @@ export class ManualService implements DataProviderInterface {
|
|||||||
public async getAssetProfile(
|
public async getAssetProfile(
|
||||||
aSymbol: string
|
aSymbol: string
|
||||||
): Promise<Partial<SymbolProfile>> {
|
): Promise<Partial<SymbolProfile>> {
|
||||||
return {
|
const assetProfile: Partial<SymbolProfile> = {
|
||||||
dataSource: this.getName(),
|
dataSource: this.getName(),
|
||||||
symbol: aSymbol
|
symbol: aSymbol
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const [symbolProfile] = await this.symbolProfileService.getSymbolProfiles([
|
||||||
|
{ dataSource: this.getName(), symbol: aSymbol }
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (symbolProfile) {
|
||||||
|
assetProfile.currency = symbolProfile.currency;
|
||||||
|
assetProfile.name = symbolProfile.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return assetProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async getDividends({}: GetDividendsParams) {
|
public async getDividends({}: GetDividendsParams) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user