Source code for bo4e.bo.rechnung

"""
Contains Rechnung class
and corresponding marshmallow schema for de-/serialization
"""

from datetime import datetime
from typing import List, Optional

from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt
from bo4e.bo.geschaeftspartner import Geschaeftspartner
from bo4e.com.betrag import Betrag
from bo4e.com.rechnungsposition import Rechnungsposition
from bo4e.com.steuerbetrag import Steuerbetrag
from bo4e.com.zeitraum import Zeitraum
from bo4e.enum.botyp import BoTyp
from bo4e.enum.rechnungsstatus import Rechnungsstatus
from bo4e.enum.rechnungstyp import Rechnungstyp

# pylint: disable=too-few-public-methods, too-many-instance-attributes


[docs]class Rechnung(Geschaeftsobjekt): """ Modell für die Abbildung von Rechnungen im Kontext der Energiewirtschaft; Ausgehend von diesem Basismodell werden weitere spezifische Formen abgeleitet. .. raw:: html <object data="../_static/images/bo4e/bo/Rechnung.svg" type="image/svg+xml"></object> .. HINT:: `Rechnung JSON Schema <https://json-schema.app/view/%23?url=https://raw.githubusercontent.com/Hochfrequenz/BO4E-python/main/json_schemas/bo/Rechnung.json>`_ """ # required attributes bo_typ: BoTyp = BoTyp.RECHNUNG storno: bool """ Kennzeichnung, ob es sich um eine Stornorechnung handelt; im Falle "true" findet sich im Attribut "originalrechnungsnummer" die Nummer der Originalrechnung. """ #: Eine im Verwendungskontext eindeutige Nummer für die Rechnung rechnungsnummer: str #: Ausstellungsdatum der Rechnung rechnungsdatum: datetime #: Zu diesem Datum ist die Zahlung fällig faelligkeitsdatum: datetime #: Ein kontextbezogender Rechnungstyp, z.B. Netznutzungsrechnung rechnungstyp: Rechnungstyp #: Der Zeitraum der zugrunde liegenden Lieferung zur Rechnung rechnungsperiode: Zeitraum #: Der Aussteller der Rechnung rechnungsersteller: Geschaeftspartner #: Der Aussteller der Rechnung rechnungsempfaenger: Geschaeftspartner #: Die Summe der Nettobeträge der Rechnungsteile gesamtnetto: Betrag #: Die Summe der Steuerbeträge der Rechnungsteile gesamtsteuer: Betrag #: Die Summe aus Netto- und Steuerbetrag gesamtbrutto: Betrag #: Der zu zahlende Betrag, der sich aus (gesamtbrutto - vorausbezahlt - rabattBrutto) ergibt zuzahlen: Betrag #: Die Rechnungspositionen rechnungspositionen: List[Rechnungsposition] # optional attributes #: Bezeichnung für die vorliegende Rechnung rechnungstitel: Optional[str] = None #: Status der Rechnung zur Kennzeichnung des Bearbeitungsstandes rechnungsstatus: Optional[Rechnungsstatus] = None #: Im Falle einer Stornorechnung (storno = true) steht hier die Rechnungsnummer der stornierten Rechnung original_rechnungsnummer: Optional[str] = None #: Die Summe evtl. vorausgezahlter Beträge, z.B. Abschläge. Angabe als Bruttowert vorausgezahlt: Optional[Betrag] = None #: Gesamtrabatt auf den Bruttobetrag rabatt_brutto: Optional[Betrag] = None steuerbetraege: Optional[List[Steuerbetrag]] = None """ Eine Liste mit Steuerbeträgen pro Steuerkennzeichen/Steuersatz; die Summe dieser Beträge ergibt den Wert für gesamtsteuer. """