{# Caller passes: trade — the imported transfer Trade row form_action — POST /trades/{id}/edit-transfer siblings — list[Trade] of already-grouped sibling rows (incl. trade itself) when this transfer was already split. Empty/None = unsplit. #} {% set _is_in = trade.basis_source == 'transfer_in' %} {% set _amount_label = 'Cost basis ($)' if _is_in else 'Proceeds ($)' %} {# Build the initial Alpine seed: list of {acq_date, qty, basis} for every segment. When unsplit, that's just one entry derived from the parent row. #} {% set _initial_segments = [] %} {% if siblings %} {% for s in siblings %} {%- set _b = (s.cost_basis if _is_in else s.proceeds) or 0 -%} {%- set _ = _initial_segments.append({"acq_date": s.date.isoformat(), "qty": s.quantity, "basis": _b}) -%} {% endfor %} {% else %} {%- set _b = (trade.cost_basis if _is_in else trade.proceeds) or 0 -%} {%- set _ = _initial_segments.append({"acq_date": trade.date.isoformat(), "qty": trade.quantity, "basis": _b}) -%} {% endif %}
{{ trade.ticker }} · {{ trade.account }} · {{ trade.quantity }} sh total {% if trade.transfer_date %} · broker transfer date {{ trade.transfer_date }} {% endif %}
A single transfer often represents shares acquired across multiple lots/dates. Add a segment per acquisition lot — quantities must sum to the total above.