@barchart/portfolio-api-common 1.0.91 → 1.0.92

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.
@@ -58,6 +58,7 @@ module.exports = (() => {
58
58
  this._dataFormat.total = null;
59
59
  this._dataFormat.totalNegative = false;
60
60
  this._dataFormat.summaryTotalCurrent = null;
61
+ this._dataActual.summaryTotalNegative = false;
61
62
  this._dataFormat.summaryTotalPrevious = null;
62
63
 
63
64
  this._dataFormat.unrealizedTodayNegative = false;
@@ -234,19 +235,22 @@ module.exports = (() => {
234
235
  updates = items.reduce((updates, item) => {
235
236
  updates.market = updates.market.add(item.data.market);
236
237
  updates.unrealizedToday = updates.unrealizedToday.add(item.data.unrealizedToday);
238
+ updates.summaryTotalCurrent = updates.summaryTotalCurrent.add(item.data.summaryTotalCurrent);
237
239
 
238
240
  return updates;
239
241
  }, {
240
242
  market: Decimal.ZERO,
241
243
  marketDirection: unchanged,
242
- unrealizedToday: Decimal.ZERO
244
+ unrealizedToday: Decimal.ZERO,
245
+ summaryTotalCurrent: Decimal.ZERO
243
246
 
244
247
  });
245
248
  } else {
246
249
  updates = {
247
250
  market: actual.market.add(item.data.marketChange),
248
251
  marketDirection: { up: item.data.marketChange.getIsPositive(), down: item.data.marketChange.getIsNegative() },
249
- unrealizedToday: actual.unrealizedToday.add(item.data.unrealizedTodayChange)
252
+ unrealizedToday: actual.unrealizedToday.add(item.data.unrealizedTodayChange),
253
+ summaryTotalCurrent: actual.summaryTotalCurrent.add(item.data.summaryTotalCurrentChange)
250
254
  };
251
255
  }
252
256
 
@@ -264,6 +268,7 @@ module.exports = (() => {
264
268
 
265
269
  actual.market = updates.market;
266
270
  actual.unrealizedToday = updates.unrealizedToday;
271
+ actual.summaryTotalCurrent = updates.summaryTotalCurrent;
267
272
  actual.total = updates.unrealizedToday.add(actual.realized).add(actual.income);
268
273
 
269
274
  format.market = formatCurrency(actual.market, currency);
@@ -275,6 +280,10 @@ module.exports = (() => {
275
280
 
276
281
  format.unrealizedToday = formatCurrency(actual.unrealizedToday, currency);
277
282
  format.unrealizedTodayNegative = actual.unrealizedToday.getIsNegative();
283
+
284
+ format.summaryTotalCurrent = formatCurrency(actual.summaryTotalCurrent, currency);
285
+ format.summaryTotalCurrentNegative = actual.summaryTotalCurrent.getIsNegative();
286
+
278
287
  format.total = formatCurrency(actual.total, currency);
279
288
  format.totalNegative = actual.total.getIsNegative();
280
289
 
@@ -37,6 +37,8 @@ module.exports = (() => {
37
37
  this._data.income = null;
38
38
 
39
39
  this._data.summaryTotalCurrent = null;
40
+ this._data.summaryTotalCurrentChange = null;
41
+
40
42
  this._data.summaryTotalPrevious = null;
41
43
 
42
44
  this._excluded = false;
@@ -178,6 +180,28 @@ module.exports = (() => {
178
180
 
179
181
  data.unrealizedToday = unrealizedToday;
180
182
  data.unrealizedTodayChange = unrealizedTodayChange;
183
+
184
+ const summary = item.currentSummary;
185
+
186
+ if (summary && price) {
187
+ const period = summary.period;
188
+
189
+ let unrealizedCurrent = summary.open.multiply(price).add(summary.end.basis);
190
+
191
+ let summaryTotalCurrent = period.realized.add(period.income).add(unrealizedCurrent);
192
+ let summaryTotalCurrentChange;
193
+
194
+ if (data.summaryTotalCurrent !== null) {
195
+ summaryTotalCurrentChange = summaryTotalCurrent.subtract(data.summaryTotalCurrent);
196
+ } else {
197
+ summaryTotalCurrentChange = Decimal.ZERO;
198
+ }
199
+
200
+ data.summaryTotalCurrent = summaryTotalCurrent;
201
+ data.summaryTotalCurrentChange = summaryTotalCurrentChange;
202
+ } else {
203
+ data.summaryTotalCurrentChange = Decimal.ZERO;
204
+ }
181
205
  }
182
206
 
183
207
  function calculateSummaryTotal(summary) {
@@ -186,7 +210,7 @@ module.exports = (() => {
186
210
  if (summary) {
187
211
  const period = summary.period;
188
212
 
189
- returnRef = period.realized.add(period.unrealized).add(period.income);
213
+ returnRef = period.realized.add(period.income).add(period.unrealized);
190
214
  } else {
191
215
  returnRef = Decimal.ZERO;
192
216
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barchart/portfolio-api-common",
3
- "version": "1.0.91",
3
+ "version": "1.0.92",
4
4
  "description": "Common classes used by the Portfolio system",
5
5
  "author": {
6
6
  "name": "Bryan Ingle",
@@ -1038,6 +1038,7 @@ module.exports = (() => {
1038
1038
  this._dataFormat.total = null;
1039
1039
  this._dataFormat.totalNegative = false;
1040
1040
  this._dataFormat.summaryTotalCurrent = null;
1041
+ this._dataActual.summaryTotalNegative = false;
1041
1042
  this._dataFormat.summaryTotalPrevious = null;
1042
1043
 
1043
1044
  this._dataFormat.unrealizedTodayNegative = false;
@@ -1214,19 +1215,22 @@ module.exports = (() => {
1214
1215
  updates = items.reduce((updates, item) => {
1215
1216
  updates.market = updates.market.add(item.data.market);
1216
1217
  updates.unrealizedToday = updates.unrealizedToday.add(item.data.unrealizedToday);
1218
+ updates.summaryTotalCurrent = updates.summaryTotalCurrent.add(item.data.summaryTotalCurrent);
1217
1219
 
1218
1220
  return updates;
1219
1221
  }, {
1220
1222
  market: Decimal.ZERO,
1221
1223
  marketDirection: unchanged,
1222
- unrealizedToday: Decimal.ZERO
1224
+ unrealizedToday: Decimal.ZERO,
1225
+ summaryTotalCurrent: Decimal.ZERO
1223
1226
 
1224
1227
  });
1225
1228
  } else {
1226
1229
  updates = {
1227
1230
  market: actual.market.add(item.data.marketChange),
1228
1231
  marketDirection: { up: item.data.marketChange.getIsPositive(), down: item.data.marketChange.getIsNegative() },
1229
- unrealizedToday: actual.unrealizedToday.add(item.data.unrealizedTodayChange)
1232
+ unrealizedToday: actual.unrealizedToday.add(item.data.unrealizedTodayChange),
1233
+ summaryTotalCurrent: actual.summaryTotalCurrent.add(item.data.summaryTotalCurrentChange)
1230
1234
  };
1231
1235
  }
1232
1236
 
@@ -1244,6 +1248,7 @@ module.exports = (() => {
1244
1248
 
1245
1249
  actual.market = updates.market;
1246
1250
  actual.unrealizedToday = updates.unrealizedToday;
1251
+ actual.summaryTotalCurrent = updates.summaryTotalCurrent;
1247
1252
  actual.total = updates.unrealizedToday.add(actual.realized).add(actual.income);
1248
1253
 
1249
1254
  format.market = formatCurrency(actual.market, currency);
@@ -1255,6 +1260,10 @@ module.exports = (() => {
1255
1260
 
1256
1261
  format.unrealizedToday = formatCurrency(actual.unrealizedToday, currency);
1257
1262
  format.unrealizedTodayNegative = actual.unrealizedToday.getIsNegative();
1263
+
1264
+ format.summaryTotalCurrent = formatCurrency(actual.summaryTotalCurrent, currency);
1265
+ format.summaryTotalCurrentNegative = actual.summaryTotalCurrent.getIsNegative();
1266
+
1258
1267
  format.total = formatCurrency(actual.total, currency);
1259
1268
  format.totalNegative = actual.total.getIsNegative();
1260
1269
 
@@ -1389,6 +1398,8 @@ module.exports = (() => {
1389
1398
  this._data.income = null;
1390
1399
 
1391
1400
  this._data.summaryTotalCurrent = null;
1401
+ this._data.summaryTotalCurrentChange = null;
1402
+
1392
1403
  this._data.summaryTotalPrevious = null;
1393
1404
 
1394
1405
  this._excluded = false;
@@ -1530,6 +1541,28 @@ module.exports = (() => {
1530
1541
 
1531
1542
  data.unrealizedToday = unrealizedToday;
1532
1543
  data.unrealizedTodayChange = unrealizedTodayChange;
1544
+
1545
+ const summary = item.currentSummary;
1546
+
1547
+ if (summary && price) {
1548
+ const period = summary.period;
1549
+
1550
+ let unrealizedCurrent = summary.open.multiply(price).add(summary.end.basis);
1551
+
1552
+ let summaryTotalCurrent = period.realized.add(period.income).add(unrealizedCurrent);
1553
+ let summaryTotalCurrentChange;
1554
+
1555
+ if (data.summaryTotalCurrent !== null) {
1556
+ summaryTotalCurrentChange = summaryTotalCurrent.subtract(data.summaryTotalCurrent);
1557
+ } else {
1558
+ summaryTotalCurrentChange = Decimal.ZERO;
1559
+ }
1560
+
1561
+ data.summaryTotalCurrent = summaryTotalCurrent;
1562
+ data.summaryTotalCurrentChange = summaryTotalCurrentChange;
1563
+ } else {
1564
+ data.summaryTotalCurrentChange = Decimal.ZERO;
1565
+ }
1533
1566
  }
1534
1567
 
1535
1568
  function calculateSummaryTotal(summary) {
@@ -1538,7 +1571,7 @@ module.exports = (() => {
1538
1571
  if (summary) {
1539
1572
  const period = summary.period;
1540
1573
 
1541
- returnRef = period.realized.add(period.unrealized).add(period.income);
1574
+ returnRef = period.realized.add(period.income).add(period.unrealized);
1542
1575
  } else {
1543
1576
  returnRef = Decimal.ZERO;
1544
1577
  }