Documentation
¶
Index ¶
- func AvisStructLevelValidation(sl validator.StructLevel)
- func AvisStructLevelValidationAbweichung(sl validator.StructLevel)
- func AvisStructLevelValidationZuZahlen(sl validator.StructLevel)
- func AvisStructLevelValidationZuZahlenAbgelehnteForderung(sl validator.StructLevel)
- func EICFieldLevelValidation(fl validator.FieldLevel) bool
- func GetMaLoIdCheckSum(maloIdWithoutCheckSum string) int
- func MaloIdFieldLevelValidation(fl validator.FieldLevel) bool
- func RechnungStructLevelValidation(sl validator.StructLevel)
- func RechnungStructLevelValidationGesamtBrutto(sl validator.StructLevel)
- func RechnungStructLevelValidationGesamtNetto(sl validator.StructLevel)
- func RechnungStructLevelValidationGesamtSteuer(sl validator.StructLevel)
- func RechnungStructLevelValidationZuZahlen(sl validator.StructLevel)
- func XorStructLevelMesslokationValidation(sl validator.StructLevel)
- func XorStructLevelValidation(sl validator.StructLevel)
- type Ansprechpartner
- type Avis
- type Bilanzierung
- type BusinessObject
- type BusinessObjectSlice
- type Energiemenge
- type Geschaeftsobjekt
- type Geschaeftspartner
- type Handelsunstimmigkeit
- type Lastgang
- type Marktlokation
- type Marktteilnehmer
- type Messlokation
- type Netznutzungsrechnung
- type Preisblatt
- type Rechnung
- type Reklamation
- type Statusbericht
- type Vertrag
- type Zaehler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AvisStructLevelValidation ¶ added in v0.0.44
func AvisStructLevelValidation(sl validator.StructLevel)
AvisStructLevelValidation combines all the single validators
func AvisStructLevelValidationAbweichung ¶ added in v0.0.44
func AvisStructLevelValidationAbweichung(sl validator.StructLevel)
func AvisStructLevelValidationZuZahlen ¶ added in v0.0.44
func AvisStructLevelValidationZuZahlen(sl validator.StructLevel)
AvisStructLevelValidationGesamtNetto verifies that the sum of all Rechnungsposition.Netto equals the Rechnung.GesamtNetto
func AvisStructLevelValidationZuZahlenAbgelehnteForderung ¶ added in v0.0.44
func AvisStructLevelValidationZuZahlenAbgelehnteForderung(sl validator.StructLevel)
func EICFieldLevelValidation ¶ added in v0.0.21
func EICFieldLevelValidation(fl validator.FieldLevel) bool
EICFieldLevelValidation ensures that the string stored in the annotated/tagged field is a valid EIC code Therefore it has to obey the "Bildungsvorschrift" according to https://bdew-codes.de/Content/Files/EIC/Awh_20171218_EIC-Vergabe_V1-0.pdf section 2.2.1
func GetMaLoIdCheckSum ¶ added in v0.0.33
GetMaLoIdCheckSum returns the checksum (11th character of the malo ID) that matches the first ten characters long provided in maloIdWithoutCheckSum. This is going to crash if the length of the maloIdWithoutCheckSum is <10
func MaloIdFieldLevelValidation ¶ added in v0.0.18
func MaloIdFieldLevelValidation(fl validator.FieldLevel) bool
MaloIdFieldLevelValidation validates the Marktlokationsid as specified by the BDEW https://bdew-codes.de/Content/Files/MaLo/2017-04-28-BDEW-Anwendungshilfe-MaLo-ID_Version1.0_FINAL.PDF
func RechnungStructLevelValidation ¶ added in v0.0.9
func RechnungStructLevelValidation(sl validator.StructLevel)
RechnungStructLevelValidation combines all the single validators
func RechnungStructLevelValidationGesamtBrutto ¶ added in v0.0.9
func RechnungStructLevelValidationGesamtBrutto(sl validator.StructLevel)
RechnungStructLevelValidationGesamtBrutto verifies that the sum of all Rechnungsposition. equals the Rechnung.GesamtBrutto
func RechnungStructLevelValidationGesamtNetto ¶ added in v0.0.9
func RechnungStructLevelValidationGesamtNetto(sl validator.StructLevel)
RechnungStructLevelValidationGesamtNetto verifies that the sum of all Rechnungsposition.Netto equals the Rechnung.GesamtNetto
func RechnungStructLevelValidationGesamtSteuer ¶ added in v0.0.9
func RechnungStructLevelValidationGesamtSteuer(sl validator.StructLevel)
RechnungStructLevelValidationGesamtSteuer verifies that the sum of all Rechnungsposition.Netto equals the Rechnung.GesamtSteuer
func RechnungStructLevelValidationZuZahlen ¶ added in v0.0.9
func RechnungStructLevelValidationZuZahlen(sl validator.StructLevel)
RechnungStructLevelValidationZuZahlen verifies that Rechnung.Zuzahlen = Rechnung.GesamtBrutto - Rechnung.Vorausgezahlt - Rechnung.RabattBrutto
func XorStructLevelMesslokationValidation ¶ added in v0.0.18
func XorStructLevelMesslokationValidation(sl validator.StructLevel)
XorStructLevelMesslokationValidation ensures that only one of the possible address types is given
func XorStructLevelValidation ¶ added in v0.0.18
func XorStructLevelValidation(sl validator.StructLevel)
XorStructLevelValidation ensures that only one of the possible address types is given
Types ¶
type Ansprechpartner ¶ added in v0.0.21
type Ansprechpartner struct { Geschaeftsobjekt Anrede anrede.Anrede `json:"anrede,omitempty"` // Anrede ist die mögliche Anrede des Ansprechpartners // IndividuelleAnrede ermöglicht im Falle einer nicht standardisierten Anrede (7=anrede.INDIVIDUELL) eine frei definierbare Anrede vorzugeben. IndividuelleAnrede string `` /* 135-byte string literal not displayed */ Titel titel.Titel `json:"titel,omitempty"` // Titel ist ein möglicher Titel des Ansprechpartners Vorname string `json:"vorname,omitempty"` // Vorname ist der Vorname des Ansprechpartners Nachname string `json:"nachname,omitempty" validate:"required"` // Nachname ist der Familienname des Ansprechpartners EMailAdresse string `json:"eMailAdresse,omitempty" validate:"omitempty,email"` // EMailAdresse des Ansprechpartners Kommentar string `json:"kommentar,omitempty"` // Kommentar sind zusätzlich Freitextinformationen zum Ansprechpartner Geschaeftspartner *Geschaeftspartner `json:"geschaeftspartner,omitempty" validate:"required"` // Geschaeftspartner ist der Geschäftspartner für den der Ansprechpartner modelliert wird Adresse *com.Adresse `json:"adresse,omitempty"` // Adresse des Ansprechpartners, falls diese von der Adresse des Geschaeftspartner s abweicht Rufnummern []com.Rufnummer `json:"rufnummer,omitempty" validate:"omitempty,dive"` // Rufnummern ist eine Liste der Telefonnummern, unter denen der Ansprechpartner erreichbar ist Zustaendigkeiten []com.Zustaendigkeit `json:"zustaendigkeit,omitempty" validate:"omitempty,dive"` // Zustaendigkeiten ist eine Liste der Abteilungen und Zuständigkeiten des Ansprechpartner }
Ansprechpartner sind ansprechbare Geschäftspartner (Personen)
func (Ansprechpartner) GetDefaultJsonTags ¶ added in v0.0.37
func (_ Ansprechpartner) GetDefaultJsonTags() []string
type Avis ¶ added in v0.0.44
type Avis struct { Geschaeftsobjekt AvisNummer string `json:"avisNummer,omitempty" validate:"required"` // Eine im Verwendungskontext eindeutige Nummer für das Avis AvisTyp avistyp.AvisTyp `json:"avisTyp,omitempty" validate:"required"` // Gibt den Typ des Avis an AvisPositionen []com.AvisPosition `json:"positionen,omitempty" validate:"required,min=1"` // Avispositionen ZuZahlen com.Betrag `json:"zuZahlen,omitempty" validate:"required"` // Summenbetrag }
func (Avis) GetDefaultJsonTags ¶ added in v0.0.44
type Bilanzierung ¶ added in v0.0.21
type Bilanzierung struct { Geschaeftsobjekt Lastprofile []com.Lastprofil `json:"lastprofile,omitempty"` // Lastprofile ist eine Liste der verwendeten Lastprofile (SLP, SLP/TLP, ALP etc.) Bilanzierungsbeginn *time.Time `json:"bilanzierungsbeginn,omitempty" validate:"omitempty,ltefield=Bilanzierungsende"` // Bilanzierungsbeginn ist der inklusive Beginn der Bilanzierung Bilanzierungsende *time.Time `json:"bilanzierungsende,omitempty" validate:"omitempty,gtefield=Bilanzierungsbeginn"` // Bilanzierungsende ist das exklusive Ende der Bilanzierung Bilanzkreis *string `json:"bilanzkreis,omitempty" validate:"omitempty,len=16,eic"` // Bilanzkreis ist der EIC-Code des Bilanzkreises Jahresverbrauchsprognose *com.Menge `json:"jahresverbrauchsprognose,omitempty"` // Jahresverbrauchsprognose ist die Jahresverbrauchsprognose Kundenwert *com.Menge `json:"kundenwert,omitempty"` // Kundenwert ist der Kundenwert // Verbrauchsaufteilung beschreibt, welcher Anteil im SLP- bzw. TLP-Profil steckt // 1. [Gemessene Energiemenge der OBIS "nicht Schwachlast"] * [Verbrauchsaufteilung in % / 100%] = [zu verlagernde Energiemenge] // 2. [Gemessene Energiemenge der OBIS "Schwachlast"] - [zu verlagernde Energiemenge] = [Ermittelte Energiemenge für Schwachlast] // 3. [Gemessene Energiemenge der OBIS "nicht Schwachlast"] + [zu verlagernde Energiemenge] = [Ermittelte Energiemenge für nicht Schwachlast] Verbrauchsaufteilung decimal.NullDecimal `json:"verbrauchsaufteilung,omitempty"` Zeitreihentyp zeitreihentyp.Zeitreihentyp `json:"zeitreihentyp,omitempty"` // Zeitreihentyp beschreibt den verwendeten Zeitreihentyp (SLS, TLS...) Aggregationsverantwortung aggregationsverantwortung.Aggregationsverantwortung `json:"aggregationsverantwortung,omitempty"` // Aggregationsverantwortung benennt, bei wem die Aggregationsverantwortung liegt Prognosegrundlage prognosegrundlage.Prognosegrundlage `json:"prognosegrundlage,omitempty"` // Die Prognosegrundlage beschreibt die Prognosegrundlage DetailsPrognosegrundlage []profiltyp.Profiltyp `json:"detailsPrognosegrundlage,omitempty"` // ? WahlrechtPrognosegrundlage *bool `json:"wahlrechtPrognosegrundlage,omitempty"` // WahlrechtPrognosegrundlage ist true, falls der Lieferant das Wahlrecht hat Fallgruppenzuordnung fallgruppenzuordnung.Fallgruppenzuordnung `json:"fallgruppenzuordnung,omitempty"` // Fallgruppenzuordnung (für Gas RLM) Prioritaet *int `json:"prioritaet,omitempty"` // Prioritaet ist die Priorität des Bilanzkreises für Gas MarktlokationsId string `json:"marktlokationsId,omitempty" validate:"omitempty,maloid"` // MarktlokationsId referenziert eine Marktlokation }
Bilanzierung is a business object used for balancing. Note that this is not official BO4E standard (yet)!
func (Bilanzierung) GetDefaultJsonTags ¶ added in v0.0.37
func (bila Bilanzierung) GetDefaultJsonTags() []string
func (Bilanzierung) MarshalJSON ¶ added in v0.0.43
func (bila Bilanzierung) MarshalJSON() (bytes []byte, err error)
func (*Bilanzierung) UnmarshalJSON ¶ added in v0.0.43
func (bila *Bilanzierung) UnmarshalJSON(bytes []byte) (err error)
type BusinessObject ¶
type BusinessObject interface { // GetBoTyp returns the Geschaeftsobjekt.BoTyp GetBoTyp() botyp.BOTyp // GetVersionStruktur returns the Geschaeftsobjekt.VersionStruktur GetVersionStruktur() string // GetDefaultJsonTags returns an array of string that represent the json tags that are (by default) used by this business object GetDefaultJsonTags() []string }
BusinessObject is the interface that all Business Objects implement.
func NewBusinessObject ¶ added in v0.0.13
func NewBusinessObject(typ botyp.BOTyp) BusinessObject
NewBusinessObject creates an empty BusinessObject based on the provided type; Returns nil if the type is not implemented.
type BusinessObjectSlice ¶ added in v0.0.13
type BusinessObjectSlice []BusinessObject
BusinessObjectSlice is a slice that contains 0-n BusinessObject s
func (*BusinessObjectSlice) UnmarshalJSON ¶ added in v0.0.13
func (boSlice *BusinessObjectSlice) UnmarshalJSON(data []byte) error
type Energiemenge ¶ added in v0.0.4
type Energiemenge struct { Geschaeftsobjekt LokationsId string `json:"lokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,min=11,max=33"` // LokationsId is the ID of the location (either a LokationsTyp MALO ID (11 digits) or a LokationsTyp MELO ID (33 alphanum)) LokationsTyp lokationstyp.Lokationstyp `json:"lokationsTyp,omitempty" example:"MELO" validate:"required"` // LokationsTyp is the type of the location in LokationsId Verbrauch []com.Verbrauch `json:"energieverbrauch,omitempty" validate:"required,min=1"` // Verbrauch are consumption data }
Energiemenge contains information about consumption at a location
func (Energiemenge) GetDefaultJsonTags ¶ added in v0.0.37
func (_ Energiemenge) GetDefaultJsonTags() []string
type Geschaeftsobjekt ¶ added in v0.0.13
type Geschaeftsobjekt struct { unmappeddatamarshaller.ExtensionData BoTyp botyp.BOTyp `json:"boTyp" validate:"required"` // BoTyp is the type of business object, may be used as discriminator VersionStruktur string `json:"versionStruktur" validate:"required"` // VersionStruktur is the version of BO4E used ExterneReferenzen []com.ExterneReferenz `json:"externeReferenzen,omitempty"` // ExterneReferenzen are external references of this object in various systems }
Geschaeftsobjekt is the common base struct of all Business Objects
func (Geschaeftsobjekt) GetBoTyp ¶ added in v0.0.13
func (gob Geschaeftsobjekt) GetBoTyp() botyp.BOTyp
func (Geschaeftsobjekt) GetVersionStruktur ¶ added in v0.0.13
func (gob Geschaeftsobjekt) GetVersionStruktur() string
type Geschaeftspartner ¶ added in v0.0.5
type Geschaeftspartner struct { Geschaeftsobjekt Anrede anrede.Anrede `json:"anrede,omitempty"` // Die Anrede für den Geschaeftspartner, Z.B. HERR Name1 string `json:"name1,omitempty" validate:"required" example:"Yellow Strom GmbH,Hagen"` // Name1 ist der erste Teil des Namens. Hier kann der Firmenname oder bei Privatpersonen beispielsweise der Nachname dargestellt werden. Name2 string `json:"name2,omitempty" example:"'Bereich Süd','Nina'"` // Name2 ist der zweite Teil des Namens. Hier kann der eine Erweiterung zum Firmennamen oder bei Privatpersonen beispielsweise der Vorname dargestellt werden. Name3 string `json:"name3,omitempty" example:"Afrika,Sängerin"` // Name3 enthält weitere Ergänzungen zum Firmennamen oder bei Privatpersonen Zusätze zum Namen dargestellt werden Gewerbekennzeichnung bool `json:"gewerbekennzeichnung" validate:"omitempty,required"` // Gewerbekennzeichnung markiert, ob es sich um einen Gewerbe/Unternehmen (true) oder eine Privatperson handelt (false) HrNummer string `json:"hrnummer,omitempty"` // HrNummer ist die Handelsregisternummer des Geschäftspartners Amtsgericht string `json:"amtsgericht,omitempty"` // Amtsgericht bzw Handelsregistergericht, das die Handelsregisternummer herausgegeben hat Kontaktwege []kontaktart.Kontaktart `json:"kontaktweg,omitempty"` // Kontaktwege sind die bevorzugten Kontaktwege des Geschäftspartners (todo: rename json tag, too) UmsatzsteuerId string `json:"umsatzsteuerId,omitempty" example:"DE 813281825"` // UmsatzsteuerId ist die Steuer-ID des Geschäftspartners GlaeubigerId string `json:"glaeubigerId,omitempty" example:"DE 47116789"` // GlaeubigerId ist die Gläubiger-ID, welche im Zahlungsverkehr verwendet wird EMailAdresse string `json:"eMailAdresse,omitempty" validate:"omitempty,email" example:"info@mp-energie.de"` // EMailAdresse ist die E-Mail-Adresse des Ansprechpartners Website string `json:"website,omitempty" validate:"omitempty,url" example:"https://www.mp-energie.de"` // Website ist die Internetseite des Marktpartners Geschaeftspartnerrollen []geschaeftspartnerrolle.Geschaeftspartnerrolle `json:"geschaeftspartnerrollen,omitempty" validate:"required,min=1"` // Geschaeftspartnerrollen sind die Rollen, die der Geschäftspartner hat Partneradresse *com.Adresse `json:"partneradresse,omitempty" validate:"required"` // Partneradresse ist die Adresse des Geschäftspartners, an der sich der Hauptsitz befindet. }
Geschaeftspartner models business partners, both companies and private persons.
func (Geschaeftspartner) GetDefaultJsonTags ¶ added in v0.0.37
func (_ Geschaeftspartner) GetDefaultJsonTags() []string
type Handelsunstimmigkeit ¶ added in v0.0.42
type Handelsunstimmigkeit struct { Geschaeftsobjekt // Nummer contains the "Handelsunstimmigkeitsnummer". Nummer string `json:"nummer,omitempty" validate:"required"` // Typ specifies the type of discrepancy. Typ handelsunstimmigkeitstyp.Handelsunstimmigkeitstyp `json:"typ,omitempty" validate:"required"` // Begruendung contains the reason of discrepancy. Begruendung com.Handelsunstimmigkeitsbegruendung `json:"begruendung" validate:"required"` // Betrag is the requested sum amount (optional). Betrag *com.Betrag `json:"zuZahlen,omitempty"` }
Handelsunstimmigkeit contains information about discrepancies in market communication.
func (Handelsunstimmigkeit) GetDefaultJsonTags ¶ added in v0.0.42
func (_ Handelsunstimmigkeit) GetDefaultJsonTags() []string
type Lastgang ¶ added in v0.0.4
type Lastgang struct { Geschaeftsobjekt Sparte sparte.Sparte `json:"sparte,omitempty" example:"STROM" validate:"required"` // Sparte ist eine Angabe, ob es sich um einen GAS- oder STROM-Lastgang handelt Version string `json:"version,omitempty" validate:"alphanum"` // Version ist die Versionsnummer des Lastgangs LokationsId string `json:"lokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,min=11,max=33"` // LokationsId is the ID of the location (either a LokationsTyp MALO ID (11 digits) or a LokationsTyp MELO ID (33 alphanum)) LokationsTyp lokationstyp.Lokationstyp `json:"lokationsTyp,omitempty" example:"MELO" validate:"required"` // LokationsTyp is the type of the location in LokationsId Messgroesse mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required" example:"KWH"` // Messgroesse ist die Definition der gemessenen Größe anhand ihrer Einheit. Obiskennzahl string `json:"obiskennzahl,omitempty" example:"1-0:1.8.1"` // Obiskennzahl ist die genormte OBIS-Kennzahl zur Kennzeichnung der Messgröße Werte []com.Zeitreihenwert `json:"energieverbrauch,omitempty" validate:"required,min=1"` // Werte sind die im Lastgang enthaltenen Messwerte. }
Lastgang ist ein Modell zur Abbildung eines Lastganges. In diesem Modell werden die Messwerte mit einem vollständigen Zeitintervall angegeben und es bietet daher eine hohe Flexibilität in der Übertragung jeglicher zeitlich veränderlicher Messgrössen.
func (Lastgang) GetDefaultJsonTags ¶ added in v0.0.37
type Marktlokation ¶ added in v0.0.18
type Marktlokation struct { unmappeddatamarshaller.ExtensionData Geschaeftsobjekt MarktlokationsId string `json:"marktlokationsId,omitempty" example:"12345678913" validate:"required,numeric,len=11,maloid"` // MarktlokationsId is the ID of the market location Sparte sparte.Sparte `json:"sparte,omitempty" validate:"required"` // Sparte describes the Division Energierichtung energierichtung.Energierichtung `json:"energierichtung,omitempty" validate:"required"` // Energierichtung describes whether energy is supplied out of or fed into the grid. Bilanzierungsmethode bilanzierungsmethode.Bilanzierungsmethode `json:"bilanzierungsmethode,omitempty" validate:"required"` // Bilanzierungsmethode is the accounting method Verbrauchsart verbrauchsart.Verbrauchsart `json:"verbrauchsart,omitempty"` // Verbrauchsart is the consumption type Unterbrechbar *bool `json:"unterbrechbar,omitempty"` // Unterbrechbar describes whether the supply is interruptible Netzebene netzebene.Netzebene `json:"netzebene,omitempty" validate:"required"` // Netzebene, in der der Bezug der Energie erfolgt. Bei Strom Spannungsebene der Lieferung, bei Gas Druckstufe. Netzbetreibercodenr string `json:"netzbetreibercodenr,omitempty" validate:"omitempty,numeric,len=13"` // Netzbetreibercodenr is the code number of the "Netzbetreiber" Gebiettyp gebiettyp.Gebiettyp `json:"gebiettyp,omitempty"` // Gebiettyp is the type of the "Netzgebiet" Netzgebietnr string `json:"netzgebietnr,omitempty"` // Netzgebietnr is the number of the "Netzgebiet" in the enet database Bilanzierungsgebiet string `json:"bilanzierungsgebiet,omitempty"` // Bilanzierungsgebiet, dem das Netzgebiet zugeordnet ist - im Falle eines Strom Netzes. Grundversorgercodenr string `json:"grundversorgercodenr,omitempty" validate:"omitempty,numeric,len=13"` // Grundversorgercodenr is the code number of the "Grundversorger" responsible for this market location Gasqualitaet gasqualitaet.Gasqualitaet `json:"gasqualitaet,omitempty"` // Gasqualitaet is the gas quality Endkunde *Geschaeftspartner `json:"endkunde,omitempty" validate:"-"` // Endkunde is the Geschaeftspartner who owns this market location // only one of the following three optional address attributes can be set Lokationsadresse *com.Adresse `json:"lokationsadresse,omitempty" validate:"required_without_all=Geoadresse Katasterinformation"` // Lokationsadresse is the address at which the energy supply or feed-in takes place Geoadresse *com.Geokoordinaten `json:"geoadresse,omitempty" validate:"required_without_all=Lokationsadresse Katasterinformation"` // Geoadresse are the gps coordinates Katasterinformation *com.Katasteradresse `json:"katasterinformation,omitempty" validate:"required_without_all=Lokationsadresse Geoadresse"` // Katasterinformation is the Cadastre address ZugehoerigeMesslokationen []com.Messlokationszuordnung `json:"zugehoerigemesslokationen,omitempty"` // ZugehoerigeMesslokationen is a list of MeLos belonging to this market location Regelzone *string `json:"regelzone,omitempty"` Marktgebiet *string `json:"marktgebiet,omitempty"` Zeitreihentyp *zeitreihentyp.Zeitreihentyp `json:"zeitreihentyp,omitempty"` Zaehlwerke []com.Zaehlwerk `json:"zaehlwerke,omitempty"` ZaehlwerkeBeteiligteMarktrolle []com.Zaehlwerk `json:"zaehlwerkeBeteiligteMarktrolle,omitempty"` Messlokationen []Messlokation `json:"messlokationen,omitempty"` MesstechnischeEinordnung *messtechnischeeinordnung.MesstechnischeEinordnung `json:"messtechnischeEinordnung,omitempty"` Netznutzungsabrechnungsdaten []com.Netznutzungsabrechnungsdaten `json:"netznutzungsabrechnungsdaten,omitempty"` // Netznutzungsabrechnungsdaten sind Daten für die Prüfung der Netznutzungsabrechnung Sperrstatus *sperrstatus.Sperrstatus `json:"sperrstatus,omitempty"` }
Marktlokation contains information about a market location aka "MaLo"
func (Marktlokation) GetDefaultJsonTags ¶ added in v0.0.37
func (malo Marktlokation) GetDefaultJsonTags() []string
func (Marktlokation) MarshalJSON ¶ added in v0.0.36
func (malo Marktlokation) MarshalJSON() (bytes []byte, err error)
func (*Marktlokation) UnmarshalJSON ¶ added in v0.0.36
func (malo *Marktlokation) UnmarshalJSON(bytes []byte) (err error)
type Marktteilnehmer ¶ added in v0.0.13
type Marktteilnehmer struct { Geschaeftspartner Marktrolle marktrolle.Marktrolle `json:"marktrolle,omitempty" validate:"required"` // Marktrolle gibt im Klartext die Bezeichnung der Marktrolle an. Details siehe ENUM Marktrolle Rollencodenummer string `json:"rollencodenummer,omitempty" validate:"required,numeric,min=13,max=13"` // Rollencodenummer gibt die Codenummer der Marktrolle an (13 digits) Rollencodetyp rollencodetyp.Rollencodetyp `json:"rollencodetyp,omitempty" validate:"required"` // Rollencodetyp gibt den Typ des Codes an/Vergabestelle. Details siehe ENUM Rollencodetyp Makoadresse string `json:"makoadresse,omitempty" validate:"omitempty"` // Makoadresse ist die 1:1-Kommunikationsadresse des Marktteilnehmers. Diese wird in der Marktkommunikation verwendet. Ansprechpartner *Ansprechpartner `json:"ansprechpartner,omitempty" validate:"omitempty"` // Ansprechpartner ist ein Kontakt zur bilateralen Klärung }
Marktteilnehmer models participants of the German energy market
func (Marktteilnehmer) GetDefaultJsonTags ¶ added in v0.0.37
func (_ Marktteilnehmer) GetDefaultJsonTags() []string
type Messlokation ¶
type Messlokation struct { Geschaeftsobjekt MesslokationsId string `json:"messlokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,len=33"` // MesslokationsId is the ID of the metering location Sparte sparte.Sparte `json:"sparte,omitempty" validate:"required"` // Sparte is the division NetzebeneMessung *netzebene.Netzebene `json:"netzebeneMessung,omitempty"` // NetzebeneMessung is the grid level of measurement MessgebietNr string `json:"messgebietNr,omitempty"` // MessgebietNr is the number of the measurement area in ene't database Geraete []com.Hardware `json:"geraete,omitempty"` // Geraete is a list of devices Messdienstleistung *com.Dienstleistung `json:"messdienstleistung,omitempty"` // Messdienstleistung is a metering services GrundzustaendigerMsbCodeNr string `json:"grundzustaendigerMSBCodeNr,omitempty" validate:"omitempty,numeric,len=13"` // GrundzustaendigerMsbCodeNr is the code number of the "grundzuständige Messstellenbetreiber", responsitble for this MeLo GrundzustaendigerMsbImCodeNr string `json:"GrundzustaendigerMsbImCodeNr,omitempty" validate:"omitempty,numeric,len=13"` // GrundzustaendigerMsbImCodeNr si the code number of the "grundzuständige Messsstellenbetreiber", responsible for intelligent meters at this MeLo Messlokationszaehler []Zaehler `json:"messlokationszaehler,omitempty"` // Messlokationszaehler meters associated to this Messlokation Gasqualitaet *gasqualitaet.Gasqualitaet `json:"gasqualitaet,omitempty"` // gasqualitaet für EDIFACT mapping Abrechnungmessstellenbetriebnna *bool `json:"abrechnungmessstellenbetriebnna,omitempty"` //Dieser Wert ist true, falls die Abrechnungs des Messstellenbetriebs die Netznutzungsabrechnung enthält. false andernfalls // only one of the following three optional address attributes can be set Messadresse *com.Adresse `json:"messadresse,omitempty" validate:"required_without_all=Geoadresse Katasterinformation"` // Messadresse is a street address of the Messlokation Geoadresse *com.Geokoordinaten `json:"geoadresse,omitempty" validate:"required_without_all=Messadresse Katasterinformation"` // Geoadresse are gps coordinates of the Messlokation Katasterinformation *com.Katasteradresse `json:"katasterinformation,omitempty" validate:"required_without_all=Messadresse Geoadresse"` // Katasterinformation is a cadastre address of the Messlokation }
Messlokation contains information about a metering location aka "MeLo"
func (Messlokation) GetDefaultJsonTags ¶ added in v0.0.37
func (melo Messlokation) GetDefaultJsonTags() []string
func (Messlokation) MarshalJSON ¶ added in v0.0.37
func (melo Messlokation) MarshalJSON() (bytes []byte, err error)
func (*Messlokation) UnmarshalJSON ¶ added in v0.0.37
func (melo *Messlokation) UnmarshalJSON(bytes []byte) (err error)
type Netznutzungsrechnung ¶ added in v0.0.12
type Netznutzungsrechnung struct { Rechnung Sparte sparte.Sparte `json:"sparte,omitempty" validate:"required"` // Sparte (STROM, GAS ...) für die die Rechnung ausgestellt ist Absendercodenummer string `json:"absendercodenummer,omitempty" validate:"required,numeric,min=13,max=13"` // Absendercodenummer ist die Rollencodenummer des Absenders (Rechnung.Rechnungsersteller). Über die Nummer können weitere Informationen zum Marktteilnehmer ermittelt werden. Empfaengercodenummer string `json:"empfaengercodenummer,omitempty" validate:"required,numeric,min=13,max=13"` // Absendercodenummer ist die Rollencodenummer des Empfängers (Rechnung.Rechnungsempfaenger). Über die Nummer können weitere Informationen zum Marktteilnehmer ermittelt werden. Nnrechnungsart nnrechnungsart.NNRechnungsart `json:"nnrechnungsart,omitempty" validate:"required"` // Nnrechnungsart ist aus der INVOIC entnommen Nnrechnungstyp nnrechnungstyp.NNRechnungstyp `json:"nnrechnungstyp,omitempty" validate:"required"` // Nnrechnungstyp ist aus der INVOIC entnommen Original bool `json:"original"` // Original ist ein Kennzeichen, ob es sich um ein Original (true) oder eine Kopie handelt (false). Simuliert bool `json:"simuliert"` // Simuliert ist ein Kennzeichen, ob es sich um eine simulierte Rechnung, z.B. zur Rechnungsprüfung handelt. LokationsId string `json:"lokationsId,omitempty" validate:"omitempty,alphanum,max=33,min=11"` // LokationsId ist die Markt- oder Messlokations-Identifikation (als Malo/Melo-Id) der Lokation, auf die sich die Rechnung bezieht. }
Netznutzungsrechnung models grid usage invoices
func (Netznutzungsrechnung) GetDefaultJsonTags ¶ added in v0.0.37
func (_ Netznutzungsrechnung) GetDefaultJsonTags() []string
type Preisblatt ¶ added in v0.0.34
type Preisblatt struct { Geschaeftsobjekt Bezeichnung string `json:"bezeichnung" validate:"required"` // Rechnungstitel ist die Bezeichnung für die vorliegende Rechnung. Sparte sparte.Sparte `json:"sparte,omitempty" validate:"required"` // Preisblatt gilt für angegebene Sparte. Preisstatus preisstatus.Preisstatus `json:"preisstatus,omitempty" validate:"required"` // Merkmal, das anzeigt, ob es sich um vorläufige oder endgültige Preise handelt Herausgeber Marktteilnehmer `json:"herausgeber" validate:"required"` // Der Marktteilnehmer, der die Preise veröffentlicht hat. Details zum Marktteilnehmer Gueltigkeit com.Zeitraum `json:"gueltigkeit" validate:"required"` // Der Zeitraum für den der Preis festgelegt ist Preispositionen []com.Preisposition `json:"preispositionen" validate:"required"` // Die einzelnen Positionen, die mit dem Preisblatt abgerechnet werden können. Z.B. Arbeitspreis, Grundpreis etc }
Das allgemeine Modell zur Abbildung von Preisen. Davon abgeleitet können, über die Zuordnung identifizierender Merkmale, spezielle Preisblatt-Varianten modelliert werden. Die jeweiligen Sätze von Merkmalen sind in der Grafik ergänzt worden und stellen jeweils eine Ausprägung für die verschiedenen Anwendungsfälle der Preisblätter dar.
func (Preisblatt) GetDefaultJsonTags ¶ added in v0.0.37
func (_ Preisblatt) GetDefaultJsonTags() []string
type Rechnung ¶ added in v0.0.9
type Rechnung struct { Geschaeftsobjekt Rechnungstitel string `json:"rechnungstitel,omitempty"` // Rechnungstitel ist die Bezeichnung für die vorliegende Rechnung. Rechnungsstatus rechnungsstatus.Rechnungsstatus `json:"rechnungsstatus,omitempty"` // Rechnungsstatus ist der Status der Rechnung zur Kennzeichnung des Bearbeitungsstandes Storno bool `json:"storno" validate:"required"` // Storno ist eine Kennzeichnung, ob es sich um eine Stornorechnung handelt. Im Falle "true" findet sich im Attribut "originalrechnungsnummer" die Nummer der Originalrechnung Rechnungsnummer string `json:"rechnungsnummer,omitempty" validate:"required"` // Rechnungsnummer ist eine im Verwendungskontext eindeutige Nummer für die Rechnung Rechnungsdatum time.Time `json:"rechnungsdatum,omitempty" validate:"required"` // Rechnungsdatum ist das Ausstellungsdatum der Rechnung Faelligkeitsdatum time.Time `json:"faelligkeitsdatum,omitempty" validate:"required"` // Faelligkeitsdatum ist das Datum, zu dem die Zahlung fällig ist Rechnungstyp rechnungstyp.Rechnungstyp `json:"rechnungstyp,omitempty" validate:"required"` // Rechnungstyp ist ein kontextbezogener Rechnungstyp OriginalRechnungsnummer string `json:"originalRechnungsnummer,omitempty" validate:"required_if=Storno true"` // OriginalRechnungsnummer: Im Falle einer Stornorechnung (Storno = true) steht hier die Rechnungsnummer der stornierten Rechnung Rechnungsperiode com.Zeitraum `json:"rechnungsperiode,omitempty" validate:"required"` // Rechnungsperiode ist der Zeitraum der zugrunde liegenden Lieferung zur Rechnung Rechnungsersteller Geschaeftspartner `json:"rechnungsersteller,omitempty" validate:"required"` // Rechnungsersteller ist der Aussteller der Rechnung Rechnungsempfaenger Geschaeftspartner `json:"rechnungsempfaenger,omitempty" validate:"required"` // Rechnungsempfaenger ist der Empfänger der Rechnung GesamtNetto com.Betrag `json:"gesamtnetto,omitempty" validate:"required"` // GesamtNetto ist die Summe der Nettobeträge der Rechnungsteile GesamtSteuer com.Betrag `json:"gesamtsteuer,omitempty" validate:"required"` // GesamtSteuer ist die Summe der Steuerbeträge der Rechnungsteile GesamtBrutto com.Betrag `json:"gesamtbrutto,omitempty" validate:"required"` // GesamtBrutto ist die Summe aus Netto- und Steuerbeträge Vorausgezahlt *com.Betrag `json:"vorausgezahlt,omitempty"` // Vorausgezahlt ist die Summe eventuell vorausbezahlter Beträge, z.B. Abschläge. Angabe als Bruttowert. RabattBrutto *com.Betrag `json:"rabattBrutto,omitempty"` // RabattBrutto ist der Gesamtrabatt auf den Bruttobetrag Zuzahlen com.Betrag `json:"zuzahlen,omitempty" validate:"required"` // Zuzahlen ist der zu zahlende Betrag, der sich aus (gesamtbrutto - vorausbezahlt - rabattBrutto) ergibt Steuerbetraege []com.Steuerbetrag `json:"steuerbetraege,omitempty"` // Steuerbetraege ist eine Liste mit Steuerbeträgen pro Steuerkennzeichen/Steuersatz. Die Summe dieser Beträge ergibt den Wert für GesamtSteuer IstReverseCharge *bool `json:"istReverseCharge,omitempty"` IstSelbstausgestellt *bool `json:"istSelbstausgestellt,omitempty"` Rechnungspositionen []com.Rechnungsposition `json:"rechnungspositionen,omitempty" validate:"required,min=1"` // Rechnungspositionen sind die einzelnen Rechnungsposition en. Vorauszahlungen []com.Vorauszahlung `json:"vorauszahlungen,omitempty"` // Vorauszahlungen sind evtl. vorausgezahlte Beträge, z.B. Abschläge. Angabe als Bruttowert Sonderrechnungsart *sonderrechnungsart.Sonderrechnungsart `json:"sonderrechnungsart,omitempty"` Buchungsdatum time.Time `json:"buchungsdatum,omitempty"` // Buchungsdatum ist das Datum, zu dem die Zahlung fällig ist }
Rechnung ist ein Modell für die Abbildung von Rechnungen im Kontext der Energiewirtschaft. Ausgehend von diesem Basismodell werden weitere spezifische Formen abgeleitet.
func (Rechnung) GetDefaultJsonTags ¶ added in v0.0.37
type Reklamation ¶ added in v0.0.41
type Reklamation struct { Geschaeftsobjekt LokationsId string `json:"lokationsId,omitempty" example:"DE0123456789012345678901234567890" validate:"alphanum,required,min=11,max=33"` // LokationsId gibt die ID der Lokation an (entweder LokationsTyp MALO ID (11 Stellen) oder LokationsTyp MELO ID (33 alphanum)). LokationsTyp lokationstyp.Lokationstyp `json:"lokationsTyp,omitempty" example:"MELO" validate:"required"` // LokationsTyp gibt an, ob es sich um eine Markt- oder Messlokation handelt. Reklamationsgrund reklamationsgrund.Reklamationsgrund `json:"reklamationsgrund,omitempty" validate:"required"` // Reklamationsgrund gibt den Grund der Reklamation an ObisKennzahl *string `json:"obisKennzahl,omitempty" validate:"required" example:"1-0:1.8.1"` // ObisKennzahl für das Zählwerk, die festlegt, welche auf die gemessene Größe mit dem Stand gemeldet wird. Nur Zählwerkstände mit dieser OBIS-Kennzahl werden an diesem Zählwerk registriert. ZeitraumMesswertanfrage *com.Zeitraum `json:"zeitraumMesswertanfrage,omitempty" validate:"required"` // ZeitraumMesswertanfrage gibt den com.Zeitraum an, auf die sich die Reklamation bezieht. ReklamationsgrundBemerkung string `json:"reklamationsgrundBemerkung,omitempty" validate:"omitempty"` // ReklamationsgrundBemerkung ist ein Freitext für eine weitere Beschreibung des Reklamationsgrunds }
Reklamation wird benutzt um eine fehlende, oder unplausible Energiemenge anzuzeigen. Für Reklamationen von Rechnungen, wird ein Avis vom Typ Nicht-Zahlungsavis benutzt
func (Reklamation) GetDefaultJsonTags ¶ added in v0.0.41
func (_ Reklamation) GetDefaultJsonTags() []string
type Statusbericht ¶ added in v0.2.2
type Statusbericht struct { Geschaeftsobjekt Status berichtstatus.BerichtStatus `json:"status,omitempty" validate:"required"` // Status des Berichtes (Fehlerhaft, Erfolgreich) Pruefgegenstand *string `json:"pruefgegenstand,omitempty"` // Das geprüfte Dokument, z.B. die Referenz auf die EDIFACT-Nachricht die geprüft / beanstandet wurde DatumPruefung time.Time `json:"datumPruefung"` // Pruefdatum (wann wurde der Pruefgegenstand geprüft) Fehler *com.Fehler `json:"fehler,omitempty"` // Liste der Fehler }
Statusbericht kann verwendet werden um CONTRL oder APREAK Nachrichten auszutauschen
func (Statusbericht) GetDefaultJsonTags ¶ added in v0.2.2
func (s Statusbericht) GetDefaultJsonTags() []string
type Vertrag ¶ added in v0.0.5
type Vertrag struct { Geschaeftsobjekt Vertragsnummer string `json:"vertragsnummer,omitempty" validate:"alphanum,required"` // Vertragsnummer ist eine im Verwendungskontext eindeutige Nummer für den Vertrag Beschreibung string `json:"beschreibung,omitempty"` // Beschreibung zum Vertrag Vertragsstatus vertragsstatus.Vertragsstatus `json:"vertragstatus,omitempty" validate:"required"` // Vertragsstatus ist der Status des Vertrags // vertragsstatus serializes as "vertragstatus" with single "s" for compatability. Vertragsart vertragsart.Vertragsart `json:"vertragsart,omitempty" validate:"required"` // Vertragsart legt fest, um welche Art von Vertrag es sich handelt. Z.B. Netznutzungvertrag. Sparte sparte.Sparte `json:"sparte,omitempty" validate:"required"` // Sparte sind Unterscheidungsmöglichkeiten für die Sparte Vertragsbeginn time.Time `json:"vertragsbeginn,omitempty" validate:"required"` // Vertragsbeginn is the inclusive start Vertragsende time.Time `json:"vertragsende,omitempty" validate:"required,gtfield=Vertragsbeginn"` // Vertragsende is the exclusive end Vertragspartner1 Geschaeftspartner `json:"vertragspartner1,omitempty" validate:"required"` // Vertragspartner1 ist der "erstgenannte" Vertragspartner. In der Regel der Aussteller des Vertrags. Beispiel: "Vertrag zwischen Vertragspartner 1 ..." Vertragspartner2 Geschaeftspartner `json:"vertragspartner2,omitempty" validate:"required"` // Vertragspartner2 ist der "zweitgenannte" Vertragspartner. In der Regel der Empfänger des Vertrags. Beispiel "Vertrag zwischen Vertragspartner 1 und Vertragspartner 2" UnterzeichnerVp1 []com.Unterschrift `json:"unterzeichnervp1,omitempty"` // UnterzeichnerVp1 ist der Unterzeichner des Vertragspartner1 UnterzeichnerVp2 []com.Unterschrift `json:"unterzeichnervp2,omitempty"` // UnterzeichnerVp2 ist der Unterzeichner des Vertragspartner2 Vertragskonditionen *com.Vertragskonditionen `json:"vertragskonditionen,omitempty"` // Vertragskonditionen ist eine Festlegungen zu Laufzeiten und Kündigungsfristen Vertragsteile []com.Vertragsteil `json:"vertragsteile,omitempty" validate:"required,min=1"` // Vertragsteile sind die Vertragsteile, die dazu verwendet werden, eine vertragliche Leistung in Bezug zu einer Lokation (Markt- oder Messlokation) festzulegen. }
Vertrag ist ein Modell für die Abbildung von Vertragsbeziehungen. Das Objekt dient dazu, alle Arten von Verträgen, die in der Energiewirtschaft Verwendung finden, abzubilden.
func (Vertrag) GetDefaultJsonTags ¶ added in v0.0.37
type Zaehler ¶ added in v0.0.7
type Zaehler struct { Geschaeftsobjekt Zaehlernummer string `json:"zaehlernummer,omitempty" validate:"required,alphanum"` // Zaehlernummer ist eine Nummerierung des Zaehlers, vergeben durch den Messstellenbetreiber Sparte sparte.Sparte `json:"sparte,omitempty" validate:"required"` // Sparte ist eine Unterscheidungsmöglichkeit für die Sparte Zaehlerauspraegung *zaehlerauspraegung.Zaehlerauspraegung `json:"zaehlerauspraegung,omitempty"` // Zaehlerauspraegung ist eine Spezifikation die Richtung des Zählers betreffend Zaehlertyp zaehlertyp.Zaehlertyp `json:"zaehlertyp,omitempty" validate:"required"` // Zaehlertyp erlaubt eine Typisierung des Zählers Tarifart *tarifart.Tarifart `json:"tarifart,omitempty"` // Tarifart erlaubt eine Spezifikation bezüglich unterstützter Tarifarten Zaehlerkonstante decimal.NullDecimal `json:"zaehlerkonstante,omitempty"` // Zaehlerkonstante ist die Zählerkonstante auf dem Zähler EichungBis time.Time `json:"eichungBis,omitempty"` // EichungBis ist das exklusive Enddatum bis zu dem der Zähler geeicht ist LetzteEichung time.Time `json:"letzteEichung,omitempty"` // LetzteEichung ist das Datum, an dem die letzte Eichprüfung des Zählers stattfand Zaehlwerke []com.Zaehlwerk `json:"zaehlwerke,omitempty" validate:"required,min=1"` // Zaehlwerke sind die Zählwerke des Zählers Zaehlerhersteller *Geschaeftspartner `json:"zaehlerhersteller,omitempty"` // Zaehlerhersteller ist der Hersteller des Zählers Zaehlergroesse *geraetemerkmal.Geraetemerkmal `json:"zaehlergroesse,omitempty"` // Zaehlergroesse Fernschaltung *fernschaltung.Fernschaltung `json:"fernschaltung,omitempty"` // Fernschaltung is set to VORHANDEN if there is a fernschaltung Messwerterfassung *messwerterfassung.Messwerterfassung `json:"messwerterfassung,omitempty"` // Messwerterfassung describes if meter readings have to happen manually }
Zaehler ist ein Modell für die Abbildung der Informationen zu einem Zähler
func (Zaehler) GetDefaultJsonTags ¶ added in v0.0.37
Source Files
¶
- ansprechpartner.go
- avis.go
- bilanzierung.go
- businessobject.go
- businessobject_slice.go
- energiemenge.go
- geschaeftspartner.go
- handelsunstimmigkeit.go
- lastgang.go
- marktlokation.go
- marktteilnehmer.go
- messlokation.go
- netznutzungsrechnung.go
- preisblatt.go
- rechnung.go
- reklamation.go
- statusbericht.go
- vertrag.go
- zaehler.go