Browse Source

Optimize stock split activity adjustments

pull/7568/head
David Requeno 3 weeks ago
parent
commit
d30a926361
  1. 2
      apps/api/src/app/activities/activities.service.spec.ts
  2. 6
      apps/api/src/app/activities/activities.service.ts
  3. 4
      apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts
  4. 2
      apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts

2
apps/api/src/app/activities/activities.service.spec.ts

@ -44,7 +44,7 @@ describe('ActivitiesService', () => {
const result = await getAdjustedActivity(activity, []); const result = await getAdjustedActivity(activity, []);
expect(result).toEqual(activity); expect(result).toEqual(activity);
expect(result).not.toBe(activity); expect(result).toBe(activity);
}); });
it.each([ it.each([

6
apps/api/src/app/activities/activities.service.ts

@ -948,6 +948,11 @@ export class ActivitiesService {
assetProfiles assetProfiles
); );
const hasSplits = [...splitsByAssetProfile.values()].some((splits) => {
return splits.length > 0;
});
if (hasSplits) {
activities.activities = activities.activities.map((activity) => { activities.activities = activities.activities.map((activity) => {
const key = getAssetProfileIdentifier({ const key = getAssetProfileIdentifier({
dataSource: activity.assetProfile.dataSource, dataSource: activity.assetProfile.dataSource,
@ -959,6 +964,7 @@ export class ActivitiesService {
splitsByAssetProfile.get(key) ?? [] splitsByAssetProfile.get(key) ?? []
); );
}); });
}
if (withCash && !this.areCashActivitiesExcludedByFilters(filters)) { if (withCash && !this.areCashActivitiesExcludedByFilters(filters)) {
const cashDetails = await this.accountService.getCashDetails({ const cashDetails = await this.accountService.getCashDetails({

4
apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts

@ -54,9 +54,9 @@ describe('adjustActivityBySplits', () => {
); );
expect(adjustedActivityOnSplitDate).toEqual(activityOnSplitDate); expect(adjustedActivityOnSplitDate).toEqual(activityOnSplitDate);
expect(adjustedActivityOnSplitDate).not.toBe(activityOnSplitDate); expect(adjustedActivityOnSplitDate).toBe(activityOnSplitDate);
expect(adjustedActivityAfterSplit).toEqual(activityAfterSplit); expect(adjustedActivityAfterSplit).toEqual(activityAfterSplit);
expect(adjustedActivityAfterSplit).not.toBe(activityAfterSplit); expect(adjustedActivityAfterSplit).toBe(activityAfterSplit);
}); });
it('compares stored UTC split dates without normalizing them locally', () => { it('compares stored UTC split dates without normalizing them locally', () => {

2
apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts

@ -19,7 +19,7 @@ export function adjustActivityBySplits(
} }
if (splitFactor.eq(1)) { if (splitFactor.eq(1)) {
return { ...activity }; return activity;
} }
return { return {

Loading…
Cancel
Save