Documentation ¶
Index ¶
- func AdresseStructLevelValidation(sl validator.StructLevel)
- func RechnungspositionStructLevelValidation(sl validator.StructLevel)
- func SteuerbetragStructLevelValidation(sl validator.StructLevel)
- type Adresse
- type Betrag
- type Dienstleistung
- type ExterneReferenz
- type Geokoordinaten
- type Hardware
- type Katasteradresse
- type Menge
- type Messlokationszuordnung
- type Preis
- type Rechnungsposition
- type Steuerbetrag
- type Unterschrift
- type Verbrauch
- type Vertragskonditionen
- type Vertragsteil
- type Zaehlerstaende
- type Zaehlerstand
- type Zaehlwerk
- type Zeitraum
- type Zeitreihenwert
- type Zeitreihenwertkompakt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 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 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 dienstleistung.Dienstleistungstyp `json:"dienstleistungstyp,omitempty" validate:"required"` // DienstleistungsTyp describes the type of the service Bezeichnung string `json:"bezeichnung" 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 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 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" 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" validate:"required"` // GemarkungFlur is the district in which something is located Flurstueck string `json:"flurstueck" validate:"required"` // Flurstueck describes the parcel }
Katasteradresse is a cadastre location
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" validate:"ltefield=GueltigBis"` // GueltigSeit ist der inklusive Zeitpunkt, ab dem die Messlokation zur Marktlokation gehört GueltigBis time.Time `json:"gueltigbis" 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 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 Rechnungsposition ¶ added in v0.0.9
type Rechnungsposition struct { Positionsnummer int `json:"positionsnummer" validate:"required"` // Positionsnummer ist eine fortlaufende Nummer für die Rechnungsposition LieferungVon time.Time `json:"lieferungVon" validate:"required"` // LieferungVon ist ein _inklusiver_ Start der Lieferung für die abgerechnete LEISTUNG LieferungBis time.Time `json:"lieferungBis" validate:"required,gtfield=LieferungVon"` // LieferungBis ist ein _exklusives_ Ende der Lieferung für die abgerechnete LEISTUNG Positionstext string `json:"positionstext" 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:"bdewartikelnummer,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" validate:"required"` // PositionsMenge ist die abgerechnete Menge mit Einheit. Z.B. 4372 kWh ZeitbezogeneMenge *Menge `json:"zeitbezogeneMenge"` // 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 Einzelpreis Preis `json:"einzelpreis" validate:"required"` // Einzelpreis ist der Preis für eine Einheit der energetischen Menge TeilsummeNetto Betrag `json:"teilsummeNetto" 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" validate:"required"` // TeilsummeSteuer ist der auf die Position entfallende Steuer, bestehend aus Steuersatz und Betrag TeilrabattNetto *Betrag `json:"teilrabattNetto"` // 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 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 Unterschrift ¶ added in v0.0.5
type Unterschrift struct { Name string `json:"name" validate:"required"` // Name des Unterschreibers Datum time.Time `json:"datum" validate:"omitempty"` // Datum der Unterschrift Ort string `json:"ort" 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 time.Time `json:"startdatum" validate:"omitempty"` // Startdatum is an inclusive start Enddatum time.Time `json:"enddatum" validate:"omitempty,gtfield=Startdatum"` // Enddatum is an exclusive end Wertermittlungsverfahren wertermittlungsverfahren.Wertermittlungsverfahren `json:"wertermittlungsverfahren,omitempty" validate:"required"` // Wertermittlungsverfahren is the type of the consumption Obiskennzahl string `json:"obiskennzahl" validate:"required" example:"1-0:1.8.1"` // 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}) Wert decimal.Decimal `json:"wert" validate:"required" example:"17"` // Wert is the value (of einheit) Einheit mengeneinheit.Mengeneinheit `json:"einheit,omitempty" validate:"required" example:"KWH"` // Einheit is the unit (associated to the wert) }
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"` // Vertragslaufzeit enthält den Zeitraum, über den dieser Vertrag läuft Kuendigungsfrist Zeitraum `json:"kuendigungsfrist,omitempty"` // Kuendigungsfrist ist die Frist, innerhalb derer der Vertrag gekündigt werden kann Vertragsverlaengerung Zeitraum `json:"vertragsverlaengerung,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"` // Abschlagszyklus sind die Zyklen, in denen Abschläge erstellt werden. Alternativ kann auch die Anzahl in den Konditionen angeben werden. }
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" validate:"required"` // Vertragsteilbeginn ist der inklusive Start der Gültigkeit des Vertragsteils Vertragsteilende time.Time `json:"Vertragsteilende" validate:"required,gtfield=Vertragsteilbeginn"` // Vertragsteilende ist das exklusive Ende der Gültigkeit des Vertragsteils Lokation string `json:"lokation" 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"` // VertraglichFixierteMenge ist die für die Lokation festgeschriebene Abnahmemenge MinimaleAbnahmemenge *Menge `json:"minimaleAbnahmemenge"` // MinimaleAbnahmemenge ist die, für die Lokation festgelegte Mindestabnahmemenge MaximaleAbnahmemenge *Menge `json:"maximaleAbnahmemenge"` // 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 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" 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" 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" 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" 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) }
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 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" validate:"required" example:"2018-01-28T10:15:00+01"` // DatumUhrzeitVon is the inclusive begin DatumUhrzeitBis time.Time `json:"datumUhrzeitBis" 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.
Source Files ¶
- Zeitreihenwert.go
- adresse.go
- betrag.go
- dienstleistung.go
- externe_referenz.go
- geokoordinaten.go
- hardware.go
- katasteradresse.go
- menge.go
- messlokationszuordnung.go
- preis.go
- rechnungsposition.go
- steuerbetrag.go
- unterschrift.go
- verbrauch.go
- vertragskonditionen.go
- vertragsteil.go
- zaehlerstaende.go
- zaehlerstand.go
- zaehlwerk.go
- zeitraum.go
- zeitreihenwertkompakt.go