Files
AtreidesAssetsFree/client/actions/valuation-fee.js
T

23 lines
1.0 KiB
JavaScript
Raw Normal View History

2026-10-29 11:57:29 +01:00
// Generated, do not edit. sha256:8cf51d1c864566621979207e78f8179f742e2fdc07a34188bb58149450665be4
export function feeCandidates({ events = [], valuations = [], v }) {
if (!v || v.accountId == null) return [];
const tot = Date.parse(v.rateAt);
const vorige = valuations
.filter(x => x.id !== v.id && x.accountId === v.accountId && x.assetId === v.assetId
&& Date.parse(x.rateAt) < tot)
.reduce((max, x) => Math.max(max, Date.parse(x.rateAt)), -Infinity);
return events
.filter(e => e.assetId === v.assetId && e.fromAccountId === v.accountId
&& (e.type === 'sell' || e.type === 'transfer'))
.filter(e => { const op = Date.parse(e.occurredAt); return op > vorige && op <= tot; })
.sort((a, b) => Date.parse(b.occurredAt) - Date.parse(a.occurredAt) || b.id - a.id);
}
export function withFee(event, units, note) {
const fee = Math.abs(Number(units) || 0);
return {
...event,
unitFee: (Number(event.unitFee) || 0) + fee,
note: note ? (event.note ? `${event.note} · ${note}` : note) : event.note,
};
}