Browse Source

Refactor item type

pull/3119/head
Thomas Kaul 1 year ago
parent
commit
349b52fdb0
  1. 2
      apps/api/src/app/portfolio/interfaces/portfolio-calculator.interface.ts
  2. 22
      apps/api/src/app/portfolio/portfolio-calculator.ts

2
apps/api/src/app/portfolio/interfaces/portfolio-calculator.interface.ts

@ -5,7 +5,7 @@ import { PortfolioOrder } from './portfolio-order.interface';
export interface PortfolioOrderItem extends PortfolioOrder {
feeInBaseCurrency?: Big;
feeInBaseCurrencyWithCurrencyEffect?: Big;
itemType?: '' | 'start' | 'end';
itemType?: 'between' | 'end' | 'start';
unitPriceInBaseCurrency?: Big;
unitPriceInBaseCurrencyWithCurrencyEffect?: Big;
}

22
apps/api/src/app/portfolio/portfolio-calculator.ts

@ -1040,28 +1040,26 @@ export class PortfolioCalculator {
}
}
// Sort orders so that the start and end placeholder order are at the right
// Sort orders so that the start and end placeholder order are at the correct
// position
orders = sortBy(orders, (order) => {
let sortIndex = new Date(order.date);
orders = sortBy(orders, ({ date, itemType }) => {
let sortIndex = new Date(date);
if (order.itemType === 'start') {
sortIndex = addMilliseconds(sortIndex, -1);
}
if (order.itemType === 'end') {
if (itemType === 'end') {
sortIndex = addMilliseconds(sortIndex, 1);
} else if (itemType === 'start') {
sortIndex = addMilliseconds(sortIndex, -1);
}
return sortIndex.getTime();
});
const indexOfStartOrder = orders.findIndex((order) => {
return order.itemType === 'start';
const indexOfStartOrder = orders.findIndex(({ itemType }) => {
return itemType === 'start';
});
const indexOfEndOrder = orders.findIndex((order) => {
return order.itemType === 'end';
const indexOfEndOrder = orders.findIndex(({ itemType }) => {
return itemType === 'end';
});
let totalInvestmentDays = 0;

Loading…
Cancel
Save