pub struct OwnershipChangeEvent {
pub entity_code: String,
pub parent_entity_code: String,
pub event_type: OwnershipChangeType,
pub effective_date: NaiveDate,
pub ownership_percent_before: Decimal,
pub ownership_percent_after: Decimal,
pub previously_held_interest_carrying: Option<Decimal>,
pub previously_held_interest_fair_value: Option<Decimal>,
pub consideration_paid_or_received: Decimal,
pub acquisition_date_nci_fair_value: Option<Decimal>,
pub nci_measurement_method: NciMeasurementMethod,
pub currency: String,
}Expand description
One mid-period ownership-change event for a subsidiary or
associate. All amounts are in the group presentation currency
(translation per IAS 21 must already have been applied — same
contract as NciInputs).
The struct captures all the inputs an IFRS 3.42 / IFRS 10.B97 computation needs; the helper methods derive the gain/loss and the post-event NCI carrying amount. v5.2 ships the model + the helpers; the rollforward wiring is a follow-up.
Fields§
§entity_code: StringEntity code of the subsidiary / associate whose ownership
changed. Joins to ManifestEntity::code so the rollforward
can attribute the event to the right entity.
parent_entity_code: StringCode of the parent entity whose interest changed. Mirrors
ManifestEntity::parent_code.
event_type: OwnershipChangeTypeWhat happened — drives which accounting treatment applies.
effective_date: NaiveDateDate the change took effect (typically the closing date of the share purchase / sale agreement).
ownership_percent_before: DecimalParent’s ownership percent immediately before the event,
in [0, 1]. Zero for a fresh acquisition where the parent
had no prior position; one only for a 100 %-owned subsidiary
that’s being sold (rare).
ownership_percent_after: DecimalParent’s ownership percent immediately after the event,
in [0, 1]. Zero only when control is fully lost AND no
retained interest remains; one when this is a roll-up to
100 %.
previously_held_interest_carrying: Option<Decimal>Carrying amount of the previously-held interest in the
investor’s books immediately before the event, in the group
presentation currency. For ControlGained: typically the
equity-method carrying value of the associate. For
ControlLost: the carrying amount of the retained interest
post-deconsolidation (zero if no retained interest).
previously_held_interest_fair_value: Option<Decimal>Acquisition-date fair value of the previously-held
interest (ControlGained) or the retained interest
(ControlLost). This is the amount the investor re-measures
the prior position to under IFRS 3.42 / IFRS 10.B97 — the
difference between this and previously_held_interest_carrying
is the P&L gain or loss.
consideration_paid_or_received: DecimalCash / share consideration paid (positive on
ControlGained / ControlIncreased) or received (negative
on ControlDecreased / ControlLost). Sign convention:
positive = outflow from parent, matching how the cash
flow statement presents acquisitions.
acquisition_date_nci_fair_value: Option<Decimal>IFRS 3 § 19 acquisition-date NCI fair value when this event
triggers a new consolidation (ControlGained only — must be
Some(fv) when method is FullGoodwill; ignored for the
other event types). Mirrors the field on
crate::models::business_combination::BusinessCombination.
nci_measurement_method: NciMeasurementMethodMethod used to measure the new NCI (only relevant for
ControlGained). Defaults to Proportionate.
currency: StringGroup presentation currency the amounts are denominated in.
Implementations§
Source§impl OwnershipChangeEvent
impl OwnershipChangeEvent
Sourcepub fn p_and_l_gain_or_loss(&self) -> Option<Decimal>
pub fn p_and_l_gain_or_loss(&self) -> Option<Decimal>
Compute the P&L gain or loss triggered by an IFRS 3.42 / IFRS 10.B97 re-measurement. Returns:
Some(gain)(positive) when the fair value of the prior position exceeds its carrying amount onControlGainedorControlLost.Some(loss)(negative) when carrying exceeds fair value.Nonewhen the event isControlIncreasedorControlDecreased(IFRS 10.23 — no gain/loss in P&L for equity-transaction changes), OR when either the carrying amount or the fair value is missing.
Sourcepub fn triggers_pl_remeasurement(&self) -> bool
pub fn triggers_pl_remeasurement(&self) -> bool
Returns true when this event triggers a re-measurement
gain/loss in P&L (IFRS 3.42 / IFRS 10.B97). False for
equity-transaction changes (IFRS 10.23) where the entire
adjustment runs through equity.
Sourcepub fn triggers_method_transition(&self) -> bool
pub fn triggers_method_transition(&self) -> bool
Returns true when this event triggers a transition between
consolidation methods (e.g. associate → subsidiary or
subsidiary → associate). False for ownership changes that
stay within full-consolidation scope.
Trait Implementations§
Source§impl Clone for OwnershipChangeEvent
impl Clone for OwnershipChangeEvent
Source§fn clone(&self) -> OwnershipChangeEvent
fn clone(&self) -> OwnershipChangeEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OwnershipChangeEvent
impl Debug for OwnershipChangeEvent
Source§impl<'de> Deserialize<'de> for OwnershipChangeEvent
impl<'de> Deserialize<'de> for OwnershipChangeEvent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for OwnershipChangeEvent
impl PartialEq for OwnershipChangeEvent
Source§fn eq(&self, other: &OwnershipChangeEvent) -> bool
fn eq(&self, other: &OwnershipChangeEvent) -> bool
self and other values to be equal, and is used by ==.