Documentation
¶
Index ¶
- func AbweichungStructLevelValidation(sl validator.StructLevel)
- func AdresseStructLevelValidation(sl validator.StructLevel)
- func RechnungspositionStructLevelValidation(sl validator.StructLevel)
- func SteuerbetragStructLevelValidation(sl validator.StructLevel)
- type Abweichung
- type Adresse
- type AvisPosition
- type Betrag
- type Dienstleistung
- type ExterneReferenz
- type Fehler
- type FehlerDetail
- type FehlerUrsache
- type Geokoordinaten
- type Handelsunstimmigkeitsbegruendung
- type Hardware
- type Katasteradresse
- type Lastprofil
- type Menge
- type Messlokationszuordnung
- type Netznutzungsabrechnungsdaten
- type PositionsAufAbschlag
- type Preis
- type Preisposition
- type Preisstaffel
- type Rechnungsposition
- type Rufnummer
- type StatusZusatzInformation
- type Steuerbetrag
- type Tagesparameter
- type Unterschrift
- type Verbrauch
- type Vertragskonditionen
- type Vertragsteil
- type Vorauszahlung
- type Zaehlerstaende
- type Zaehlerstand
- type Zaehlwerk
- type Zaehlzeit
- type Zeitraum
- type Zeitreihenwert
- type Zeitreihenwertkompakt
- type Zustaendigkeit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AbweichungStructLevelValidation ¶ added in v0.2.9
func AbweichungStructLevelValidation(sl validator.StructLevel)
AbweichungStructLevelValidation does a cross check on a Abweichung object
func AdresseStructLevelValidation ¶
func AdresseStructLevelValidation(sl validator.StructLevel)
AdresseStructLevelValidation does a cross check on a Adresse object
func RechnungspositionStructLevelValidation ¶ added in v0.0.9
func RechnungspositionStructLevelValidation(sl validator.StructLevel)
RechnungspositionStructLevelValidation does a cross check on a Rechnungsposition object
func SteuerbetragStructLevelValidation ¶ added in v0.0.9
func SteuerbetragStructLevelValidation(sl validator.StructLevel)
SteuerbetragStructLevelValidation does a cross check on a Steuerbetrag object and checks if Steuerbetrag.Steuerkennzeichen, Steuerbetrag.Basiswert and Steuerbetrag.Steuerbetrag are consistent
Types ¶
type Abweichung ¶ added in v0.0.44
type Abweichung struct { Referenz string `json:"referenz,omitempty"` AbweichungsGrund *abweichungsgrund.AbweichungsGrund `json:"abweichungsgrund,omitempty" validate:"omitempty"` AbweichungsGrundBemerkung *string `json:"abweichungsgrundBemerkung,omitempty"` AbweichungsgrundCode *string `json:"abweichungsgrundCode,omitempty" validate:"omitempty"` AbweichungsgrundCodeliste *string `json:"abweichungsgrundCodeliste,omitempty" validate:"omitempty"` }
type Adresse ¶
type Adresse struct { Postleitzahl string `json:"postleitzahl,omitempty" example:"82031" validate:"numeric,required"` // Postleitzahl is the zip code, mandatory Ort string `json:"ort,omitempty" example:"Grünwald" validate:"alphaunicode,required"` // Ort is the city name, mandatory Strasse string `json:"strasse,omitempty" example:"Nördliche Münchner Straße 27A"` // Strasse is the street name Hausnummer string `json:"hausnummer,omitempty" example:"27A"` // Hausnummer is the house number including suffixes like "a" or "-1" Postfach string `json:"postfach,omitempty"` // Postfach is a post box Adresszusatz string `json:"adresszusatz,omitempty" example:"3. Stock linke Wohnung"` // Adresszusatz are additional data, like f.e. floor or "Hinterhaus" CoErgaenzung string `json:"co_ergaenzung,omitempty" example:"c/o Veronica Hauptmieterin"` // Landescode landescode.Landescode `json:"landescode,omitempty"` // Landescode is a ISO 3166 country code }
Adresse is a general purpose address struct
type AvisPosition ¶ added in v0.0.44
type AvisPosition struct { RechnungsNummer string `json:"rechnungsNummer,omitempty" validate:"required"` // Die Rechnungsnummer der Rechnung, auf die sich das Avis bezieht RechnungsDatum time.Time `json:"rechnungsDatum,omitempty" validate:"required"` // Das Rechnungsdatum der Rechnung, auf die sich das Avis bezieht Storno bool `json:"istStorno"` // Kennzeichnung, ob es sich bei der Rechnung auf die sich das Avis bezieht, um eine Stornorechnung handelt IstSelbstausgestellt *bool `json:"istSelbstausgestellt,omitempty"` // Kennzeichnung, ob es sich bei der Rechnung auf die sich das Avis bezieht, um eine selbst aus gestellte Rechnung handelt GesamtBrutto Betrag `json:"gesamtBrutto,omitempty" validate:"required"` // Überweisungsbetrag ZuZahlen Betrag `json:"zuZahlen,omitempty" validate:"required"` // Geforderter Rechnungsbetrag Abweichung *Abweichung `json:"abweichung,omitempty"` // Abweichung ist der Grund der Ablehnung einer INVOIC oder COMDIS }
type Betrag ¶ added in v0.0.9
type Betrag struct { Wert decimal.Decimal `json:"wert" example:"18.36" validate:"required"` // Wert is the amount Waehrung waehrungscode.Waehrungscode `json:"waehrung,omitempty" example:"EUR" validate:"required"` // Waehrung is the currency }
Betrag wird dazu verwendet, Summenbeträge - beispielsweise in Angeboten und Rechnungen - als Geldbeträge abzubilden. Die Einheit ist dabei immer die Hauptwährung also Euro, Dollar etc
type Dienstleistung ¶ added in v0.0.3
type Dienstleistung struct { DienstleistungsTyp dienstleistungstyp.Dienstleistungstyp `json:"dienstleistungstyp,omitempty" validate:"required"` // DienstleistungsTyp describes the type of the service Bezeichnung string `json:"bezeichnung,omitempty" validate:"alphaunicode,required"` // Bezeichnung is a description }
A Dienstleistung is a billable Service
type ExterneReferenz ¶ added in v0.0.3
type ExterneReferenz struct { ExRefName string `json:"exRefName" validate:"required"` // ExRefName is the name of the external reference (e.g. "SAP IS-U" or "BelVis ID" ExRefWert string `json:"exRefWert" validate:"required"` // ExRefWert is the value of the external reference, usually a unique value }
ExterneReferenz models the existence of an object in another system and defines a way to reference it there
type Fehler ¶ added in v0.2.2
type Fehler struct { Typ fehlertyp.FehlerTyp `json:"typ" validate:"required"` // FehlerDetails []FehlerDetail `json:"fehlerDetails"` // }
Die Komponente wird dazu verwendet Fehler innerhalb eines bo.Statusbericht abzubilden
type FehlerDetail ¶ added in v0.2.2
type FehlerDetail struct { Code fehlercode.FehlerCode `json:"code" validate:"required"` // Beschreibung *string `json:"beschreibung,omitempty"` // Ursache *FehlerUrsache `json:"ursache,omitempty"` }
Die Komponente wird dazu verwendet Fehler innerhalb eines bo.Statusbericht abzubilden
type FehlerUrsache ¶ added in v0.2.2
type FehlerUrsache struct { Dokument *string `json:"dokument,omitempty"` // Nachricht *string `json:"nachricht,omitempty"` // Transaktion *string `json:"transaktion,omitempty"` // Gruppe *string `json:"gruppe,omitempty"` // Segment *string `json:"segment,omitempty"` // Beschreibung *string `json:"beschreibung,omitempty"` // }
Die Komponente wird dazu verwendet die Ursache bzw. Herkunft von Fehlern genauer zu spezifizieren
type Geokoordinaten ¶ added in v0.0.3
type Geokoordinaten struct { Breitengrad decimal.Decimal `json:"breitengrad" validate:"latitude"` // Breitengrad is the latitude Laengengrad decimal.Decimal `json:"laengengrad" validate:"longitude"` // Laengengrad is the longitude }
Geokoordinaten are GPS coordinates
type Handelsunstimmigkeitsbegruendung ¶ added in v0.0.42
type Handelsunstimmigkeitsbegruendung struct { // Referenzen describes references to older messages. Referenzen []string `json:"referenzen,omitempty"` // Grund describes the reaseon for a "Handelsunstimmigkeit". Grund handelsunstimmigkeitsgrund.Handelsunstimmigkeitsgrund `json:"grund,omitempty" validate:"required"` }
Handelsunstimmigkeitsbegruendung reasons about the correctness of a "Rechnung" or "Lieferschein"
type Hardware ¶ added in v0.0.3
type Hardware struct { GeraeteTyp geraetetyp.Geraetetyp `json:"geraeteTyp,omitempty" validate:"required"` // GeraeteTyp type of the hardware Bezeichnung string `json:"bezeichnung,omitempty" validate:"alphaunicode,required"` // Bezeichnung is a description }
A Hardware is a billable device
type Katasteradresse ¶ added in v0.0.3
type Katasteradresse struct { // ToDo: why is this `gemarkung_flur` and not `gemarkungFlur` GemarkungFlur string `json:"gemarkung_flur,omitempty" validate:"required"` // GemarkungFlur is the district in which something is located Flurstueck string `json:"flurstueck,omitempty" validate:"required"` // Flurstueck describes the parcel }
Katasteradresse is a cadastre location
type Lastprofil ¶ added in v0.0.21
type Lastprofil struct { Bezeichnung string `json:"bezeichnung,omitempty" validate:"omitempty,alphanum" example:"H0"` // Bezeichnung des Profils, durch DVGW bzw. den Netzbetreiber vergeben Verfahren profilverfahren.Profilverfahren `json:"verfahren,omitempty"` // Verfahren des Profils (analytisch oder synthetisch) Einspeisung *bool `json:"einspeisung,omitempty"` // Einspeisung ist true, falls es sich um Einspeisung handelt Tagesparameter *Tagesparameter `json:"tagesparameter,omitempty"` // Tagesparameter contains the Klimazone or Temperaturmessstelle Profilart profilart.Profilart `json:"profilart,omitempty"` // Profilart describes the kind of this profile Herausgeber string `json:"herausgeber,omitempty" validate:"omitempty,oneof=BDEW HAENDLER" example:"BDEW"` // Herausgeber is the publisher of the Tagesparameter. As of 2022-03-29 its value can be either 'BDEW' or 'HAENDLER'. }
Lastprofil defines a Lastprofil (no shit, sherlock) Note that this component is not official BO4E standard (yet)!
type Menge ¶ added in v0.0.5
type Menge struct { Wert decimal.Decimal `json:"wert" validate:"required"` // Wert gibt den absoluten Wert der Menge an Einheit mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required"` // Einheit gibt die Einheit zum jeweiligen Wert an }
Menge ist die Abbildung einer Menge mit Wert und Einheit.
type Messlokationszuordnung ¶ added in v0.0.18
type Messlokationszuordnung struct { MesslokationsId string `json:"messlokationsId,omitempty" validate:"required,alphanum,len=33"` // MesslokationsId, früher die Zählpunktbezeichnung. Arithmetik arithmetischeoperation.ArithmetischeOperation `json:"arithmetik,omitempty" validate:"required"` // Arithmetik ist die Operation, mit der eine Messung an dieser Lokation für den Gesamtverbrauch der Marktlokation verrechnet wird. Beispielsweise bei einer Untermessung, wird der Verbauch der Untermessung subtrahiert. GueltigSeit time.Time `json:"gueltigSeit,omitempty" validate:"ltefield=GueltigBis"` // GueltigSeit ist der inklusive Zeitpunkt, ab dem die Messlokation zur Marktlokation gehört GueltigBis time.Time `json:"gueltigBis,omitempty" validate:"gtefield=GueltigSeit"` // GueltigBis ist der exklusive Zeitpunkt, bis zu dem die Messlokation zur Marktlokation gehört }
Messlokationszuordnung. Mit dieser Komponente werden Messlokationen zu Marktlokationen zugeordnet. Dabei kann eine arithmetische Operation (Addition, Subtraktion) angegeben werden, mit der die Messlokation zum Verbrauch der Marklokation beiträgt.
type Netznutzungsabrechnungsdaten ¶ added in v0.2.8
type Netznutzungsabrechnungsdaten struct { ArtikelId *string `json:"artikelId" validate:"omitempty"` // ArtikelId enthält die Artikel oder Gruppen-ArtikelId ArtikelIdTyp *artikelidtyp.ArtikelIdTyp `json:"artikelIdTyp"` // ArtikelIdTyp ist der Typ der ArtikelId (Einzel oder Gruppe) Anzahl *int `json:"anzahl"` // Anzahl ist die Anzahl der Positionen für diese ArtikelId Gemeinderabatt decimal.NullDecimal `json:"gemeinderabatt"` // Gemeinderabatt Zuschlag decimal.NullDecimal `json:"zuschlag"` // Zuschlag Abschlag decimal.NullDecimal `json:"abschlag"` // Abschlag SingulaereBetriebsmittel *Menge `json:"singulaereBetriebsmittel"` // SingulaereBetriebsmittel sind Singuläre Betriebsmittel PreisSingulaereBetriebsmittel *Preis `json:"preisSingulaereBetriebsmittel"` // PreisSingulaereBetriebsmittel ist der Preis für SingulaereBetriebsmittel }
Netznutzungsabrechnungsdaten sind Daten zur Abrechnung der Netznutzung (no shit, sherlock)
type PositionsAufAbschlag ¶ added in v0.2.2
type PositionsAufAbschlag struct { Bezeichnung string `json:"bezeichnung" validate:"required"` // Bezeichnung des Auf-/Abschlags Beschreibung string `json:"beschreibung" validate:"required"` // Beschreibung zum Auf-/Abschlags AufAbschlagstyp aufabschlagstyp.AufAbschlagstyp `json:"aufabschlagstyp" validate:"required"` // Typ des AufAbschlages AufAbschlagswert decimal.NullDecimal `json:"aufabschlagswert" validate:"required"` // Höhe des AufAbschlages AufAbschlagswaehrung waehrungseinheit.Waehrungseinheit `json:"aufabschlagswaehrung" validate:"required"` // Einheit, in der der Auf-/Abschlag angegeben ist (z.B. ct/kWh) }
PositionsAufAbschlag Differenzierung der zu betrachtenden Produkte anhand der preiserhöhenden (Aufschlag) bzw. preisvermindernden (Abschlag) Zusatzvereinbarungen, die individuell zu einem neuen oder bestehenden Liefervertrag abgeschlossen werden können. Es können mehrere Auf-/Abschläge gleichzeitig ausgewählt werden.
type Preis ¶ added in v0.0.9
type Preis struct { Wert decimal.Decimal `json:"wert" validate:"required"` // Wert gibt die nominale Höhe des Preises an Einheit waehrungseinheit.Waehrungseinheit `json:"einheit,omitempty" validate:"required"` // Einheit ist die Währungseinheit für den Preis Bezugswert mengeneinheit.Mengeneinheit `json:"bezugswert,omitempty" validate:"required"` // Bezugswert ist eine Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh Status preisstatus.Preisstatus `json:"status,omitempty"` // Status gibt den Status des veröffentlichten Preises an }
Preis is a price
type Preisposition ¶ added in v0.0.34
type Preisposition struct { Berechnungsmethode kalkulationsmethode.Kalkulationsmethode `json:"berechnungsmethode,omitempty" validate:"required"` // Das Modell, das der Preisbildung zugrunde liegt. Details siehe ENUM Kalkulationsmethode Leistungstyp leistungstyp.Leistungstyp `json:"leistungstyp,omitempty" validate:"required"` // Standardisierte Bezeichnung für die abgerechnete Leistungserbringung. Details siehe ENUM Leistungstyp Leistungsbezeichung string `json:"leistungsbezeichnung,omitempty" validate:"required"` // Bezeichnung für die in der Position abgebildete Leistungserbringung Preiseinheit waehrungseinheit.Waehrungseinheit `json:"preiseinheit,omitempty" validate:"required"` // Festlegung, mit welcher Preiseinheit abgerechnet wird, z.B. Ct. oder € Bezugsgroesse mengeneinheit.Mengeneinheit `json:"bezugsgroesse,omitempty" validate:"required"` // Hier wird festgelegt, auf welche Bezugsgrösse sich der Preis bezieht, z.B. kWh oder Stück Zeitbasis *zeiteinheit.Zeiteinheit `json:"zeitbasis,omitempty" validate:"required"` // Die Zeit(dauer) auf die sich der Preis bezieht. Z.B. ein Jahr für einen Leistungspreis der in €/kW/Jahr ausgegeben wird Tarifzeit *tarifzeit.Tarifzeit `json:"tarifzeit,omitempty" validate:"required"` // Festlegung, für welche Tarifzeit der Preis hier festgelegt ist BdewArtikelnummer *bdewartikelnummer.BDEWArtikelnummer `json:"bdewartikelnummer,omitempty" validate:"required"` // Eine vom BDEW standardisierte Bezeichnug für die abgerechnete Leistungserbringung. Diese Artikelnummer wird auch im Rechnungsteil der INVOIC verwendet ArtikelId string `json:"artikelid,omitempty" validate:"required"` // Standardisierte vom BDEW herausgegebene Liste, welche im Strommarkt die BDEW-Artikelnummer ablöst Zonungsgroesse *bemessungsgroesse.Bemessungsgroesse `json:"zonungsgroesse,omitempty" validate:"required"` // Mit der Menge der hier angegebenen Größe wird die Staffelung/Zonung durchgeführt. Z.B. Vollbenutzungsstunden ZuAbschlaege *PositionsAufAbschlag `json:"zuabschlaege,omitempty" validate:"omitempty"` // Zuschläge oder Abschläge auf die Position FreimengeBlindarbeit decimal.NullDecimal `json:"freimengeBlindarbeit,omitempty" validate:"required"` // Der Anteil der Menge der Blindarbeit in Prozent von der Wirkarbeit, für die keine Abrechnung erfolgt FreimengeLeistungsfaktor decimal.NullDecimal `json:"freimengeLeistungsfaktor,omitempty" validate:"required"` // Der cos phi (Verhältnis Wirkleistung/Scheinleistung) aus dem die Freimenge für die Blindarbeit berechnet wird als tan phi (Verhältnis Blindleistung/Wirkleistung) Preisstaffeln []Preisstaffel `json:"preisstaffeln" validate:"required"` // Preisstaffeln, die zu dieser Preisposition gehören Preisschluesselstamm string `json:"preisschluesselstamm,omitempty" validate:"omitempty"` // Preisschlüsselstamm Positionsnummer int `json:"positionsnummer,omitempty" validate:"omitempty"` // Fortlaufende Nummer für die Preisposition Messebene netzebene.Netzebene `json:"messebene,omitempty" validate:"omitempty"` // Vgl. PRICAT IMD 7009 Beschreibung string `json:"beschreibung,omitempty" validate:"omitempty"` // Produkt-/Leistungsbeschreibung, wenn IMD+X vorhanden Vgl. PRICAT IMD 7008 Verarbeitungszeitraum Zeitraum `json:"verarbeitungszeitraum,omitempty" validate:"omitempty"` // Verarbeitungszeitraum }
Preisposition is part of a Preisblatt and includes a price for a product or service
type Preisstaffel ¶ added in v0.0.34
type Preisstaffel struct { Einheitspreis decimal.Decimal `json:"einheitspreis" validate:"required"` // Preis pro abgerechneter Mengeneinheit StaffelgrenzeVon decimal.Decimal `json:"staffelgrenzeVon,omitempty"` // Unterer Wert, ab dem die Staffel gilt (inklusiv) StaffelgrenzeBis decimal.Decimal `json:"staffelgrenzeBis,omitempty"` // Oberer Wert, bis zu dem die Staffel gilt (exklusiv) TODO Inklusivität/Exklusivität noch nicht global abgestimmt! }
Preisstaffel is part of a Preisposition and includes a price for a distinct set of parameters
type Rechnungsposition ¶ added in v0.0.9
type Rechnungsposition struct { Positionsnummer int `json:"positionsnummer,omitempty" validate:"required"` // Positionsnummer ist eine fortlaufende Nummer für die Rechnungsposition LieferungVon time.Time `json:"lieferungVon,omitempty" validate:"required"` // LieferungVon ist ein _inklusiver_ Start der Lieferung für die abgerechnete LEISTUNG LieferungBis time.Time `json:"lieferungBis,omitempty" validate:"required,gtfield=LieferungVon"` // LieferungBis ist ein _exklusives_ Ende der Lieferung für die abgerechnete LEISTUNG Positionstext string `json:"positionstext,omitempty" validate:"required"` // Positionstext ist eine Bezeichung für die abgerechnete Position. Zeiteinheit zeiteinheit.Zeiteinheit `json:"zeiteinheit,omitempty"` // Zeiteinheit wird angegeben, falls sich der Preis auf eine Zeit bezieht, steht hier die Einheit, z.B. JAHR Artikelnummer bdewartikelnummer.BDEWArtikelnummer `json:"artikelnummer,omitempty"` // Artikelnummer ist eine Kennzeichnung der Rechnungsposition mit der Standard-Artikelnummer des BDEW LokationsId string `json:"lokationsId,omitempty" validate:"omitempty,min=11,max=11,numeric"` // LokationsId ist die MarktlokationsId zu der diese Position gehört PositionsMenge Menge `json:"positionsMenge,omitempty" validate:"required"` // PositionsMenge ist die abgerechnete Menge mit Einheit. Z.B. 4372 kWh ZeitbezogeneMenge *Menge `json:"zeitbezogeneMenge,omitempty"` // ZeitbezogeneMenge ist eine optionale, auf die Zeiteinheit bezogene Untermenge. Z.B. bei einem Jahrespreis, 3 Monate oder 146 Tage. Basierend darauf wird der Preis aufgeteilt Korrekturfaktor *float32 `json:"korrekturfaktor,omitempty" validate:"omitempty,min=-1,max=-1,numeric"` // Korrekturfaktor ist ein Faktor -1 der ggf. in Mehrmengen-Rechnungen vorkommt Einzelpreis Preis `json:"einzelpreis,omitempty" validate:"required"` // Einzelpreis ist der Preis für eine Einheit der energetischen Menge TeilsummeNetto Betrag `json:"teilsummeNetto,omitempty" validate:"required"` // TeilsummeNetto ist das Ergebnis der Multiplikation aus einzelpreis * positionsMenge * (Faktor aus zeitbezogeneMenge). Z.B. 12,60€ * 120 kW * 3/12 (für 3 Monate). TeilsummeSteuer Steuerbetrag `json:"teilsummeSteuer,omitempty" validate:"required"` // TeilsummeSteuer ist der auf die Position entfallende Steuer, bestehend aus Steuersatz und Betrag TeilrabattNetto *Betrag `json:"teilrabattNetto,omitempty"` // TeilrabattNetto ist der Rabatt für diese Position }
Rechnungsposition en sind Teil von Rechnung en. In einem Rechnungsteil wird jeweils eine in sich geschlossene LEISTUNG abgerechnet.
type Rufnummer ¶ added in v0.0.21
type Rufnummer struct { Nummerntyp rufnummernart.Rufnummernart `json:"nummerntyp,omitempty" validate:"required"` // Nummerntyp ist die Ausprägung der Nummer Rufnummer string `json:"rufnummer,omitempty" validate:"required" example:"4989209090153910"` // Rufnummer ist die konkrete Rufnummer }
Rufnummer bildet eine Telefonnummer ab
type StatusZusatzInformation ¶ added in v0.2.1
type StatusZusatzInformation struct { // StatusArt enthält die Zusatzinformation Art des angegebenen Wertes. Art *statusart.StatusArt `json:"art,omitempty"` // Status enthält die Zusatzinformation Status des angegebenen Wertes. Status status.Status `json:"status,omitempty" validate:"required"` }
StatusZusatzInformation enthält die Auflistung der STS Segmente Plausibilisierungshinweis, Ersatzwertbildungsverfahren, Korrekturgrund, Gasqualität, Tarif, Grundlage der Energiemenge.
type Steuerbetrag ¶ added in v0.0.9
type Steuerbetrag struct { Steuerkennzeichen steuerkennzeichen.Steuerkennzeichen `json:"steuerkennzeichen,omitempty" validate:"required" example:"UST19"` // Kennzeichnung des Steuersatzes, bzw. Verfahrens // Basiswert and Steuerwert are _not_ marked as required because the steuerwert 0 is actually valid Basiswert decimal.Decimal `json:"basiswert" example:"100"` // Basiswert ist der Nettobetrag für den die Steuer berechnet wurde Steuerwert decimal.Decimal `json:"steuerwert" example:"19"` // Steuerwert ist die aus dem Basiswert berechnete Steuer Waehrung waehrungscode.Waehrungscode `json:"waehrung,omitempty" example:"EUR" validate:"required"` // Waehrung is the currency }
Steuerbetrag ist ein besteuerter Betrag
type Tagesparameter ¶ added in v0.0.21
type Tagesparameter struct { Klimazone string `json:"klimazone,omitempty" validate:"omitempty,alphanum" example:"7624q"` // Klimazone is the qualifier of the climate zone Temperaturmessstelle string `json:"temperaturmessstelle,omitempty" validate:"omitempty,alphanum" example:"1234x"` // Temperaturmessstelle is the qualifier of the temperature measurement station Dienstanbieter string `json:"dienstanbieter,omitempty" validate:"required_with=Temperaturmessstelle"` // Dienstanbieter is the service provider for temperature measurements Herausgeber string `json:"herausgeber,omitempty" validate:"omitempty,oneof=BDEW HAENDLER" example:"BDEW"` // Herausgeber is the publisher of the Tagesparameter. As of 2022-03-29 its value can be either 'BDEW' or 'HAENDLER'. }
Tagesparameter speichert Informationen zu einer tagesparameter-abhängigen Messstelle. z.B. den Namen einer Klimazone oder die ID der Wetterstation für die Temperaturmessstelle
type Unterschrift ¶ added in v0.0.5
type Unterschrift struct { Name string `json:"name,omitempty" validate:"required"` // Name des Unterschreibers Datum time.Time `json:"datum,omitempty" validate:"omitempty"` // Datum der Unterschrift Ort string `json:"ort,omitempty" validate:"omitempty"` // Ort, an dem die Unterschrift geleistet wird }
Unterschrift ist die Modellierung einer Unterschrift, z.B. für Verträge, Angebote etc.
type Verbrauch ¶ added in v0.0.4
type Verbrauch struct { // Startdatum is an inclusive start Startdatum time.Time `json:"startdatum,omitempty" validate:"omitempty"` // Enddatum is an exclusive end Enddatum time.Time `json:"enddatum,omitempty" validate:"omitempty,gtfield=Startdatum"` // Wertermittlungsverfahren is the type of the consumption Wertermittlungsverfahren wertermittlungsverfahren.Wertermittlungsverfahren `json:"wertermittlungsverfahren,omitempty" validate:"required"` // Messwertstatus includes the plausibility of the value Messwertstatus *messwertstatus.Messwertstatus `json:"messwertstatus,omitempty" validate:"omitempty"` // StatusZusatzInformationen enthält die Auflistung der STS Segmente // Plausibilisierungshinweis, Ersatzwertbildungsverfahren, Korrekturgrund, // Gasqualität, Tarif, Grundlage der Energiemenge. StatusZusatzInformationen []StatusZusatzInformation `json:"statuszusatzinformationen" validate:"omitempty"` // Obiskennzahl is the OBIS Kennzahl // (?<power>(1)-((?:[0-5]?[0-9])|(?:6[0-5])):((?:[1-8]|99))\.((?:6|8|9|29))\.([0-9]{1,2}))||(?<gas>)(7)-((?:[0-5]?[0-9])|(?:6[0-5])):(.{1,2})\.(.{1,2})\.([0-9]{1,2}) Obiskennzahl string `json:"obiskennzahl,omitempty" validate:"required" example:"1-0:1.8.1"` // Wert is the value (of einheit) Wert decimal.Decimal `json:"wert,omitempty" validate:"required" example:"17"` // Einheit is the unit (associated to the wert) Einheit mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required" example:"KWH"` Nutzungszeitpunkt time.Time `json:"nutzungszeitpunkt"` // Der Nutzungszeitpunkt wird verwendet, um einen Zählerstand eindeutig einem Prozesszeitpunkt zuzuordnen. Dieser Prozesszeitpunkt kann entweder ein Zeitpunkt einer Stammdatenänderung sein(z. B.bei einem Gerätewechsel, in der die Änderung vor dem Versand des Zählerstandes übermittelt wurde) oder die Bestellung eines Wertes aufgrund eines eingetretenen Ereignisses(z.B. Lieferantenwechsel). Der Nutzungszeitpunkt ist für den Zählerstand der Zeitpunkt der für die weitere Verarbeitung relevant ist(z.B.Zuordnung bei Empfänger anhand der Zuordnungstupel) Ausfuehrungszeitpunkt time.Time `json:"ausfuehrungszeitpunkt"` // Der Ausfuehrungszeitpunkt wird verwendet, um einen Zählerstand eindeutig einer tatsächlichen Änderung zuzuordnen, z.B.bei einem Gerätewechsel oder Geräteparameteränderung der tatsächliche Zeitpunkt an dem die Änderung an der Messlokation durchgeführt wurde. Der Nutzungszeitpunkt ist für den Zählerstand der Zeitpunkt der für die weitere Verarbeitung relevant ist(z.B. Zuordnung bei Empfänger anhand der Zuordnungstupel). }
Verbrauch is a a consumption during a specific time frame
type Vertragskonditionen ¶ added in v0.0.5
type Vertragskonditionen struct { Beschreibung string `json:"beschreibung,omitempty"` // Beschreibung ist ein Freitext zur Beschreibung der Konditionen, z.B. "Standardkonditionen Gas" AnzahlAbschlaege int `json:"anzahlAbschlaege,omitempty"` // AnzahlAbschlaege enthält die Anzahl der vereinbarten Abschläge pro Jahr, z.B. 12 Vertragslaufzeit *Zeitraum `json:"vertragslaufzeit,omitempty" validate:"omitempty"` // Vertragslaufzeit enthält den Zeitraum, über den dieser Vertrag läuft Kuendigungsfrist *Zeitraum `json:"kuendigungsfrist,omitempty" validate:"omitempty"` // Kuendigungsfrist ist die Frist, innerhalb derer der Vertrag gekündigt werden kann Vertragsverlaengerung *Zeitraum `json:"vertragsverlaengerung,omitempty" validate:"omitempty"` // Vertragsverlaengerung beschreibt, dass, falls der Vertrag nicht gekündigt wird, er sich automatisch um die angegebene Zeit verlängert Abschlagszyklus *Zeitraum `json:"abschlagszyklus,omitempty" validate:"omitempty"` // Abschlagszyklus sind die Zyklen, in denen Abschläge erstellt werden. Alternativ kann auch die Anzahl in den Konditionen angeben werden. StartAbrechnungsjahr time.Time `json:"startAbrechnungsjahr,omitempty"` // StartAbrechnungsjahr ist der Beginn des Abrechnungsjahres GeplanteTurnusablesung *Zeitraum `json:"geplanteTurnusablesung,omitempty" validate:"omitempty"` // GeplanteTurnusablesung beschreibt die geplante Turnusablesung TurnusablesungIntervall *int `json:"turnusablesungIntervall,omitempty" validate:"omitempty,min=1"` // Das TurnusablesungIntervall beschreibt die Anzahl Monate die zwischen zwei Ablesungen liegen Netznutzungsabrechnung *Zeitraum `json:"netznutzungsabrechnung,omitempty" validate:"omitempty"` // Netznutzungsabrechnung ist der Zeitraum der bei der Netznutzung abgerechnet wird Haushaltskunde *bool `json:"haushaltskunde,omitempty" validate:"omitempty"` // Haushaltskunde ist true, wenn es sich um einen privat/Haushaltskunden handelt Netznutzungsvertragsart netznutzungsvertragsart.Netznutzungsvertragsart `json:"netznutzungsvertrag,omitempty"` // Netznutzungsvertragsart beschreibt, zwischen welchen Vertragspartnern der Vertrag besteht // the json tag is "netznutzungsvertrag" for consistency with the dotnet-implementation Netznutzungszahler netznutzungszahler.Netznutzungszahler `json:"netznutzungszahler,omitempty"` Netznutzungsabrechnungsvariante netznutzungsabrechnungsvariante.Netznutzungsabrechnungsvariante `json:"netznutzungsabrechnungsvariante,omitempty"` Netznutzungsabrechnungsgrundlage netznutzungsabrechnungsgrundlage.Netznutzungsabrechnungsgrundlage `json:"netznutzungsabrechnungsgrundlage,omitempty"` }
Vertragskonditionen ist eine Komponente zur Abbildung von Vertragskonditionen. Die Komponente wird sowohl im Vertrag als auch im Tarif verwendet.
type Vertragsteil ¶ added in v0.0.5
type Vertragsteil struct { Vertragsteilbeginn time.Time `json:"vertragsteilbeginn,omitempty" validate:"required"` // Vertragsteilbeginn ist der inklusive Start der Gültigkeit des Vertragsteils Vertragsteilende time.Time `json:"vertragsteilende,omitempty" validate:"required,gtfield=Vertragsteilbeginn"` // Vertragsteilende ist das exklusive Ende der Gültigkeit des Vertragsteils Lokation string `json:"lokation,omitempty" validate:"omitempty,alphanum,min=11,max=33"` // Lokation ist der Identifier für diejenigen Markt- oder Messlokation, die zu diesem Vertragsteil gehören. Verträge für mehrere Lokationen werden mit mehreren Vertragsteilen abgebildet. VertraglichFixierteMenge *Menge `json:"vertraglichFixierteMenge,omitempty"` // VertraglichFixierteMenge ist die für die Lokation festgeschriebene Abnahmemenge MinimaleAbnahmemenge *Menge `json:"minimaleAbnahmemenge,omitempty"` // MinimaleAbnahmemenge ist die, für die Lokation festgelegte Mindestabnahmemenge MaximaleAbnahmemenge *Menge `json:"maximaleAbnahmemenge,omitempty"` // MaximaleAbnahmemenge ist die, für die Lokation festgelegte maximale Abnahmemenge }
Vertragsteil wird dazu verwendet, eine vertragliche Leistung in Bezug zu einer Lokation (Markt- oder Messlokation) festzulegen.
type Vorauszahlung ¶ added in v0.2.8
type Vorauszahlung struct { Betrag Betrag `json:"betrag"` // Betrag gibt den Betrag des Preises an Referenz *string `json:"referenz,omitempty"` // Referenz auf die Rechnungsnummer, die durch diesen Betrag bezahlt wurde ReferenzDatum *time.Time `json:"referenzDatum,omitempty"` // ReferenzDatum ist die Referenz auf das Datum der Rechnung, die durch diesen Betrag bezahlt wurde }
Vorauszahlung wird dazu verwendet Vorauszahlungen einer Rechnung abzubilden (inkl. Referenz auf die bezahlte Rechnung)
type Zaehlerstaende ¶ added in v0.0.7
type Zaehlerstaende []Zaehlerstand
Zaehlerstaende is a table type of Zaehlerstand with defined descending sorting of the Zaehlerstand.Ablesedatum for sort.Sort(...)
func (Zaehlerstaende) Len ¶ added in v0.0.7
func (z Zaehlerstaende) Len() int
Len returns the size of z
func (Zaehlerstaende) Less ¶ added in v0.0.7
func (z Zaehlerstaende) Less(i, j int) bool
Less returns true iff the Zaehlerstand.Ablesedatum at index i is after the Zaehlerstand.Ablesedatum at index j
func (Zaehlerstaende) Swap ¶ added in v0.0.7
func (z Zaehlerstaende) Swap(i, j int)
Swap swaps the entries at index i and j
type Zaehlerstand ¶ added in v0.0.7
type Zaehlerstand struct { Ablesedatum time.Time `json:"ablesedatum,omitempty" validate:"required"` // Ablesedatum is a point in time Wertermittlungsverfahren wertermittlungsverfahren.Wertermittlungsverfahren `json:"wertermittlungsverfahren,omitempty" validate:"required"` // Wertermittlungsverfahren is the type of the consumption Wert decimal.Decimal `json:"wert" validate:"required" example:"17086"` // Wert is the value (of Einheit) Einheit mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required" example:"KWH"` // Einheit ist the unit (associated to the wert) Brennwert decimal.NullDecimal `json:"brennwert,omitempty"` // Brennwert is used to calculate caloric Energy from gas volume Zustandszahl decimal.NullDecimal `json:"zustandszahl,omitempty"` // Zustandszahl is used to calculate caloric Energy from gas volume }
Zaehlerstand is the value of a meter for a specific point in time (non-standard)
type Zaehlwerk ¶ added in v0.0.7
type Zaehlwerk struct { ZaehlwerkId string `json:"zaehlwerkId,omitempty" validate:"required" example:"47110815_1"` // ZaehlwerkId ist die Identifikation des Zählwerks (Registers) innerhalb des Zählers. Oftmals eine laufende Nummer hinter der Zählernummer. Bezeichnung string `json:"bezeichnung,omitempty" validate:"required" example:"Zählwerk_Wirkarbeit"` // Bezeichnung ist eine zusätzliche Bezeichnung Richtung energierichtung.Energierichtung `json:"richtung,omitempty" validate:"required"` // Richtung beschreibt die Energierichtung: Einspeisung oder Ausspeisung. ObisKennzahl string `json:"obisKennzahl,omitempty" validate:"required" example:"1-0:1.8.1"` // Die 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. Wandlerfaktor decimal.Decimal `json:"wandlerfaktor" validate:"required"` // Der Wandlerfaktor ist der Faktor, mit dem die Zählerstandsdifferenz multipliziert wird, um zum eigentlichen Verbrauch im Zeitraum zu kommen. Einheit mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required"` // Die Einheit der gemessenen Größe Zaehlerstaende Zaehlerstaende `json:"zaehlerstaende,omitempty"` // A list of Zaehlerstand (Non BO4E Standard) // note that both "kommastellen" (plural) serialize as singular "...stelle" for compatability reasons (with bo4e dotnet) Vorkommastellen *int `json:"vorkommastelle,omitempty" validate:"omitempty,min=0"` // Vorkommastellen ist the number of pre-decimal places Nachkommastellen *int `json:"nachkommastelle,omitempty" validate:"omitempty,min=0"` // Nachkommastellen is the number of post decimal places Schwachlastfaehig schwachlastfaehigkeit.Schwachlastfaehigkeit `json:"schwachlastfaehig,omitempty"` AnzahlAblesungen *int `json:"anzahlAblesungen,omitempty"` // the json tag is different from the field name ("zaehlzeiten" instead of "zaehlzeit") to be consistent with the C# lib: https://github.com/Hochfrequenz/BO4E-dotnet/issues/249 Zaehlzeit *Zaehlzeit `json:"zaehlzeiten,omitempty"` Konfiguration *string `json:"konfiguration,omitempty"` }
A Zaehlwerk is the counting part of a meter. A meter consists of one or more Zaehlwerke
type Zeitraum ¶ added in v0.0.5
type Zeitraum struct { Einheit zeiteinheit.Zeiteinheit `json:"zeiteinheit,omitempty" validate:"omitempty,required_with=Dauer"` // Einheit is the unit of measurement Dauer decimal.NullDecimal `json:"dauer,omitempty" validate:"omitempty,required_with=Einheit"` // Dauer ist eh duration Startdatum time.Time `json:"startdatum,omitempty" validate:"required_without_all=Einheit Dauer" example:"2018-01-28T10:15:00+01"` // Startdatum is the day and time of begin Enddatum time.Time `json:"enddatum,omitempty" validate:"required_without_all=Einheit Dauer" example:"2018-01-28T10:15:00+01"` // Enddatum is the day and time of end Startzeitpunkt time.Time `json:"startzeitpunkt,omitempty" validate:"required_without_all=Einheit Dauer" example:"2018-01-28T10:15:00+01"` // Startzeitpunkt is the inclusive begin Endzeitpunkt time.Time `` // Endzeitpunkt is the exclusive end /* 135-byte string literal not displayed */ }
Zeitraum ist eine Komponente zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet.
type Zeitreihenwert ¶ added in v0.0.4
type Zeitreihenwert struct { Zeitreihenwertkompakt DatumUhrzeitVon time.Time `json:"datumUhrzeitVon,omitempty" validate:"required" example:"2018-01-28T10:15:00+01"` // DatumUhrzeitVon is the inclusive begin DatumUhrzeitBis time.Time `json:"datumUhrzeitBis,omitempty" validate:"required" example:"2018-01-28T10:30:00+01"` // DatumUhrzeitBis is the exclusive end }
Zeitreihenwert ist eine Abbildung eines Zeitreihenwertes bestehend aus Zeitraum, Wert und Statusinformationen.
type Zeitreihenwertkompakt ¶ added in v0.0.4
type Zeitreihenwertkompakt struct { Wert decimal.Decimal `json:"wert" validate:"required" example:"17"` // Wert ist der der im Zeitintervall gültige Wert. Status messwertstatus.Messwertstatus `json:"status,omitempty"` // Der Status gibt an, wie der Wert zu interpretieren ist, z.B. in Berechnungen. Statuszusatz messwertstatuszusatz.Messwertstatuszusatz `json:"statuszusatz,omitempty"` // Statuszusatz ist eine Zusatzinformation zum Status, beispielsweise ein Grund für einen fehlenden Wert. }
Zeitreihenwertkompakt ist eine Abbildung eines kompakten Zeitreihenwertes in dem ausschliesslich der Wert und Statusinformationen stehen.
type Zustaendigkeit ¶ added in v0.0.21
type Zustaendigkeit struct { Jobtitel string `json:"jobtitel,omitempty"` // Jobtitel ist die berufliche Rolle des Ansprechpartners Abteilung string `json:"abteilung,omitempty"` // Abteilung ist die Abteilung, in der der bo.Ansprechpartner tätig ist Themengebiet themengebiet.Themengebiet `json:"themengebiet,omitempty" validate:"required"` // Themengebiet erlaubt eine thematische Zuordnung des bo.Ansprechpartner }
Zustaendigkeit ordnet einem bo.Ansprechpartner Abteilungen und Zuständigkeiten zu
Source Files
¶
- Zeitreihenwert.go
- abweichung.go
- adresse.go
- avisposition.go
- betrag.go
- dienstleistung.go
- externe_referenz.go
- fehler.go
- fehler_detail.go
- fehler_ursache.go
- geokoordinaten.go
- handelsunstimmigkeitsbegruendung.go
- hardware.go
- katasteradresse.go
- lastprofil.go
- menge.go
- messlokationszuordnung.go
- netznutzungsabrechnungsdaten.go
- positionsaufabschlag.go
- preis.go
- preisposition.go
- preisstaffel.go
- rechnungsposition.go
- rufnummer.go
- statuszusatzinformation.go
- steuerbetrag.go
- tagesparameter.go
- unterschrift.go
- verbrauch.go
- vertragskonditionen.go
- vertragsteil.go
- vorauszahlung.go
- zaehlerstaende.go
- zaehlerstand.go
- zaehlwerk.go
- zaehlzeit.go
- zeitraum.go
- zeitreihenwertkompakt.go
- zustaendigkeit.go