@barchart/portfolio-api-common 1.2.58 → 1.2.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,6 @@ const array = require('@barchart/common-js/lang/array'),
6
6
  Decimal = require('@barchart/common-js/lang/Decimal'),
7
7
  DisposableStack = require('@barchart/common-js/collections/specialized/DisposableStack'),
8
8
  Event = require('@barchart/common-js/messaging/Event'),
9
- is = require('@barchart/common-js/lang/is'),
10
9
  Rate = require('@barchart/common-js/lang/Rate'),
11
10
  Tree = require('@barchart/common-js/collections/Tree');
12
11
 
@@ -311,7 +311,6 @@ module.exports = (() => {
311
311
  }
312
312
 
313
313
  function calculateStaticData(item) {
314
- const portfolio = item.portfolio;
315
314
  const position = item.position;
316
315
  const snapshot = item.position.snapshot;
317
316
  const previousSummaries = item.previousSummaries;
@@ -335,9 +334,9 @@ module.exports = (() => {
335
334
 
336
335
  data.income = snapshot.income;
337
336
 
338
- data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary);
339
- data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1));
340
- data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2));
337
+ data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary, getPreviousSummary(previousSummaries, 1));
338
+ data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1), getPreviousSummary(previousSummaries, 2));
339
+ data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2), getPreviousSummary(previousSummaries, 3));
341
340
 
342
341
  if (snapshot.open.getIsZero()) {
343
342
  data.basisPrice = Decimal.ZERO;
@@ -349,6 +348,7 @@ module.exports = (() => {
349
348
  function calculatePriceData(item, price) {
350
349
  const position = item.position;
351
350
  const snapshot = item.position.snapshot;
351
+ const previousSummaries = item.previousSummaries;
352
352
 
353
353
  const data = item._data;
354
354
 
@@ -408,25 +408,27 @@ module.exports = (() => {
408
408
  data.unrealizedToday = unrealizedToday;
409
409
  data.unrealizedTodayChange = unrealizedTodayChange;
410
410
 
411
- const summary = item.currentSummary;
411
+ const currentSummary = item.currentSummary;
412
+
413
+ if (currentSummary && position.instrument.type !== InstrumentType.CASH) {
414
+ const previousSummary = getPreviousSummary(previousSummaries, 1);
412
415
 
413
- if (summary && position.instrument.type !== InstrumentType.CASH) {
414
416
  let priceToUse;
415
417
 
416
418
  if (price) {
417
419
  priceToUse = price;
418
420
  } else if (data.previousPrice) {
419
421
  priceToUse = new Decimal(data.previousPrice);
420
- } else if (!summary.end.open.getIsZero()) {
421
- priceToUse = summary.end.value.divide(summary.end.open);
422
+ } else if (!currentSummary.end.open.getIsZero()) {
423
+ priceToUse = currentSummary.end.value.divide(summary.end.open);
422
424
  } else {
423
425
  priceToUse = null;
424
426
  }
425
427
 
426
428
  if (priceToUse !== null) {
427
- const period = summary.period;
429
+ const period = currentSummary.period;
428
430
 
429
- let unrealized = summary.end.open.multiply(priceToUse).add(summary.end.basis);
431
+ let unrealized = currentSummary.end.open.multiply(priceToUse).add(currentSummary.end.basis);
430
432
  let unrealizedChange;
431
433
 
432
434
  if (data.unrealized !== null) {
@@ -435,7 +437,7 @@ module.exports = (() => {
435
437
  unrealizedChange = Decimal.ZERO;
436
438
  }
437
439
 
438
- let summaryTotalCurrent = period.realized.add(period.income).add(unrealized);
440
+ let summaryTotalCurrent = period.realized.add(period.income).add(unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
439
441
  let summaryTotalCurrentChange;
440
442
 
441
443
  if (data.summaryTotalCurrent !== null) {
@@ -463,13 +465,13 @@ module.exports = (() => {
463
465
  }
464
466
  }
465
467
 
466
- function calculateSummaryTotal(summary) {
468
+ function calculateSummaryTotal(currentSummary, previousSummary) {
467
469
  let returnRef;
468
470
 
469
- if (summary) {
470
- const period = summary.period;
471
+ if (currentSummary) {
472
+ const period = currentSummary.period;
471
473
 
472
- returnRef = period.realized.add(period.income).add(period.unrealized);
474
+ returnRef = period.realized.add(period.income).add(period.unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
473
475
  } else {
474
476
  returnRef = Decimal.ZERO;
475
477
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barchart/portfolio-api-common",
3
- "version": "1.2.58",
3
+ "version": "1.2.59",
4
4
  "description": "Common classes used by the Portfolio system",
5
5
  "author": {
6
6
  "name": "Bryan Ingle",
@@ -1340,7 +1340,6 @@ const array = require('@barchart/common-js/lang/array'),
1340
1340
  Decimal = require('@barchart/common-js/lang/Decimal'),
1341
1341
  DisposableStack = require('@barchart/common-js/collections/specialized/DisposableStack'),
1342
1342
  Event = require('@barchart/common-js/messaging/Event'),
1343
- is = require('@barchart/common-js/lang/is'),
1344
1343
  Rate = require('@barchart/common-js/lang/Rate'),
1345
1344
  Tree = require('@barchart/common-js/collections/Tree');
1346
1345
 
@@ -2274,7 +2273,7 @@ module.exports = (() => {
2274
2273
  return PositionContainer;
2275
2274
  })();
2276
2275
 
2277
- },{"./../data/PositionSummaryFrame":3,"./PositionGroup":7,"./PositionItem":8,"./definitions/PositionLevelDefinition":9,"./definitions/PositionLevelType":10,"./definitions/PositionTreeDefinition":11,"@barchart/common-js/collections/Tree":15,"@barchart/common-js/collections/sorting/ComparatorBuilder":16,"@barchart/common-js/collections/sorting/comparators":17,"@barchart/common-js/collections/specialized/DisposableStack":18,"@barchart/common-js/lang/Currency":20,"@barchart/common-js/lang/Decimal":22,"@barchart/common-js/lang/Rate":26,"@barchart/common-js/lang/array":28,"@barchart/common-js/lang/assert":29,"@barchart/common-js/lang/is":33,"@barchart/common-js/messaging/Event":35}],7:[function(require,module,exports){
2276
+ },{"./../data/PositionSummaryFrame":3,"./PositionGroup":7,"./PositionItem":8,"./definitions/PositionLevelDefinition":9,"./definitions/PositionLevelType":10,"./definitions/PositionTreeDefinition":11,"@barchart/common-js/collections/Tree":15,"@barchart/common-js/collections/sorting/ComparatorBuilder":16,"@barchart/common-js/collections/sorting/comparators":17,"@barchart/common-js/collections/specialized/DisposableStack":18,"@barchart/common-js/lang/Currency":20,"@barchart/common-js/lang/Decimal":22,"@barchart/common-js/lang/Rate":26,"@barchart/common-js/lang/array":28,"@barchart/common-js/lang/assert":29,"@barchart/common-js/messaging/Event":35}],7:[function(require,module,exports){
2278
2277
  const array = require('@barchart/common-js/lang/array'),
2279
2278
  assert = require('@barchart/common-js/lang/assert'),
2280
2279
  Currency = require('@barchart/common-js/lang/Currency'),
@@ -3448,7 +3447,6 @@ module.exports = (() => {
3448
3447
  }
3449
3448
 
3450
3449
  function calculateStaticData(item) {
3451
- const portfolio = item.portfolio;
3452
3450
  const position = item.position;
3453
3451
  const snapshot = item.position.snapshot;
3454
3452
  const previousSummaries = item.previousSummaries;
@@ -3472,9 +3470,9 @@ module.exports = (() => {
3472
3470
 
3473
3471
  data.income = snapshot.income;
3474
3472
 
3475
- data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary);
3476
- data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1));
3477
- data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2));
3473
+ data.summaryTotalCurrent = calculateSummaryTotal(item.currentSummary, getPreviousSummary(previousSummaries, 1));
3474
+ data.summaryTotalPrevious = calculateSummaryTotal(getPreviousSummary(previousSummaries, 1), getPreviousSummary(previousSummaries, 2));
3475
+ data.summaryTotalPrevious2 = calculateSummaryTotal(getPreviousSummary(previousSummaries, 2), getPreviousSummary(previousSummaries, 3));
3478
3476
 
3479
3477
  if (snapshot.open.getIsZero()) {
3480
3478
  data.basisPrice = Decimal.ZERO;
@@ -3486,6 +3484,7 @@ module.exports = (() => {
3486
3484
  function calculatePriceData(item, price) {
3487
3485
  const position = item.position;
3488
3486
  const snapshot = item.position.snapshot;
3487
+ const previousSummaries = item.previousSummaries;
3489
3488
 
3490
3489
  const data = item._data;
3491
3490
 
@@ -3545,25 +3544,27 @@ module.exports = (() => {
3545
3544
  data.unrealizedToday = unrealizedToday;
3546
3545
  data.unrealizedTodayChange = unrealizedTodayChange;
3547
3546
 
3548
- const summary = item.currentSummary;
3547
+ const currentSummary = item.currentSummary;
3548
+
3549
+ if (currentSummary && position.instrument.type !== InstrumentType.CASH) {
3550
+ const previousSummary = getPreviousSummary(previousSummaries, 1);
3549
3551
 
3550
- if (summary && position.instrument.type !== InstrumentType.CASH) {
3551
3552
  let priceToUse;
3552
3553
 
3553
3554
  if (price) {
3554
3555
  priceToUse = price;
3555
3556
  } else if (data.previousPrice) {
3556
3557
  priceToUse = new Decimal(data.previousPrice);
3557
- } else if (!summary.end.open.getIsZero()) {
3558
- priceToUse = summary.end.value.divide(summary.end.open);
3558
+ } else if (!currentSummary.end.open.getIsZero()) {
3559
+ priceToUse = currentSummary.end.value.divide(summary.end.open);
3559
3560
  } else {
3560
3561
  priceToUse = null;
3561
3562
  }
3562
3563
 
3563
3564
  if (priceToUse !== null) {
3564
- const period = summary.period;
3565
+ const period = currentSummary.period;
3565
3566
 
3566
- let unrealized = summary.end.open.multiply(priceToUse).add(summary.end.basis);
3567
+ let unrealized = currentSummary.end.open.multiply(priceToUse).add(currentSummary.end.basis);
3567
3568
  let unrealizedChange;
3568
3569
 
3569
3570
  if (data.unrealized !== null) {
@@ -3572,7 +3573,7 @@ module.exports = (() => {
3572
3573
  unrealizedChange = Decimal.ZERO;
3573
3574
  }
3574
3575
 
3575
- let summaryTotalCurrent = period.realized.add(period.income).add(unrealized);
3576
+ let summaryTotalCurrent = period.realized.add(period.income).add(unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
3576
3577
  let summaryTotalCurrentChange;
3577
3578
 
3578
3579
  if (data.summaryTotalCurrent !== null) {
@@ -3600,13 +3601,13 @@ module.exports = (() => {
3600
3601
  }
3601
3602
  }
3602
3603
 
3603
- function calculateSummaryTotal(summary) {
3604
+ function calculateSummaryTotal(currentSummary, previousSummary) {
3604
3605
  let returnRef;
3605
3606
 
3606
- if (summary) {
3607
- const period = summary.period;
3607
+ if (currentSummary) {
3608
+ const period = currentSummary.period;
3608
3609
 
3609
- returnRef = period.realized.add(period.income).add(period.unrealized);
3610
+ returnRef = period.realized.add(period.income).add(period.unrealized).subtract(previousSummary !== null ? previousSummary.period.unrealized : Decimal.ZERO);
3610
3611
  } else {
3611
3612
  returnRef = Decimal.ZERO;
3612
3613
  }