Skip to main content

MsbInput

Struct MsbInput 

Source
pub struct MsbInput {
    pub malo_id: String,
    pub msb_mp_id: String,
    pub empfaenger: MsbRechnungsempfaenger,
    pub period: SettlementPeriod,
    pub sparte: Sparte,
    pub grundgebuehr_eur_per_month: Decimal,
    pub billing_months: u32,
    pub messdienstleistung_eur: Option<Decimal>,
    pub messstellen_kategorie: Option<MessstellenKategorie>,
    pub entgeltschuldner: Option<Entgeltschuldner>,
}
Expand description

Input for MSB (Messstellenbetreiber) invoice calculation.

Covers:

  • PID 31009 — MSB-Rechnung (MSB → NB / LF / ESA, monthly metering service settlement; Strom only)

The NB bills the MSB for the metering service period. Positions:

  1. Grundgebühr Messstellenbetrieb — flat monthly base fee × billing months.
  2. Messdienstleistung — optional per-period measurement service fee.

Fields§

§malo_id: String

11-digit Marktlokations-ID.

§msb_mp_id: String

Invoice sender — the Messstellenbetreiber.

PID 31009 is issued by the MSB in all seven of its Anwendungsfälle; it is never sent to one. See MsbRechnungsempfaenger.

§empfaenger: MsbRechnungsempfaenger

Invoice recipient — who is billed, and in which market role.

§period: SettlementPeriod

The delivery period being settled.

§sparte: Sparte

The Sparte of the metering point.

§30 MsbG prices metering, not energy, so this changes no arithmetic — but it is what the invoice states, and a service that stores one Sparte on the draft while the settlement carries another cannot answer which is right.

§grundgebuehr_eur_per_month: Decimal

Grundgebühr Messstellenbetrieb in EUR/month (from PreisblattMessung).

§billing_months: u32

Number of full calendar months in the billing period.

§messdienstleistung_eur: Option<Decimal>

Optional Messdienstleistung flat fee in EUR for the full period.

None when the MSB provides only the meter, not a separate measurement service.

§messstellen_kategorie: Option<MessstellenKategorie>

Which §30 MsbG case this metering point falls under.

Fixes the Preisobergrenze the charge is checked against. None skips the check, which should be rare: a metering charge above the POG is an amount the customer is entitled to have refunded.

§entgeltschuldner: Option<Entgeltschuldner>

Whose share of the metering charge this settlement bills.

§30 MsbG splits the ceiling between the Netzbetreiber and the Letztverbraucher, so the applicable cap depends on who is being billed.

Trait Implementations§

Source§

impl Clone for MsbInput

Source§

fn clone(&self) -> MsbInput

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MsbInput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.