Vorlagen

Hilfsfunktionen

Die folgenden Hilfsfunktionen stehen in der Datei template.ejs der Rechnungs- und Angebotvorlagen zur Verfügung.

#t

Gibt einen übersetzten String für key zurück.

t (key: string): string

#formatDate

Gibt einen formatierten Datumsstring zurück, der die Sprache der Rechnung/des Angebots berücksichtigt.

formatDate (date: string): string

#formatMoneyValue

Gibt einen formatierten Geldwert zurück, der die Sprache der Rechnung/des Angebots und die Währung des Geldwertes berücksichtigt.

formatMoneyValue (value: MoneyValue): string

#formatQuantity

Gibt einen string zurück, der die quantity eines Artikels und dessen unit-Bezeichnung in der richtigen Sprache der Rechnung oder des Angebots enthält. Falls die Sprache der Rechnung oder des Angebots nicht Teil der Einheitsbezeichnungen ist, wird auf eine andere Sprache für die Einheit zurückgegriffen.

formatQuantity (quantity: number, unit: Unit | null): string

#Beispiel

// item.unit ist eine Einheit für "Stunden":
formatQuantity(1, item.unit) // "1 Stunde"

// item.unit ist eine Einheit für "Tage":
formatQuantity(2, item.unit) // "2 Tage"

// item.unit ist null
formatQuantity(2, item.unit) // "2"

#formatUnit

Gibt eine Einheitsbezeichnung im Plural oder Singular in der richtigen Sprache der Rechnung oder des Angebots zurück. Falls die Sprache der Rechnung oder des Angebots nicht Teil der Einheitsbezeichnungen ist, wird auf eine andere Sprache für die Einheit zurückgegriffen.

formatUnit wird intern von formatQuantity verwendet und kann genutzt werden, um nur die Bezeichnung einer Einheit anzuzeigen.

formatUnit (quantity: number, unit: Unit | null): string

#Beispiel

// item.unit ist eine Einheit für "Stunden":
formatUnit(1, item.unit) // "Stunde"

// item.unit ist eine Einheit für "Tage":
formatUnit(2, item.unit) // "Tage"

// item.unit ist null
formatUnit(2, item.unit) // ""

#join

Verbindet ein Array von Strings mit einem gegebenen Trennzeichen und überspringt falsche Werte.

join (strings: Array, separator: string): string

#Beispiel

join(['Hallo', '', 'Welt', undefined], ' • ') // "Hallo • Welt"

#joinAddress

Verbindet die Komponenten einer Adresse mit einem gegebenen Trennzeichen und überspringt falsche Werte.

Dieser Helfer verarbeitet mehrere bekannte Adressformate, wie z. B. deutsche, US-amerikanische und britische Adressen.

Es kann eine Address oder eine Party als erstes Argument übergeben werden. Wenn eine Party übergeben wird, wird der Name der Partei in die Adresse aufgenommen. Eine Party ist ein Typ, der entweder ein InvoiceSeller, InvoiceBuyer, ProposalSeller oder ProposalBuyer sein kann.

joinAddress (addressOrParty: Address | Party, separator: string): string

#Beispiel

// Mit einer Adresse
joinAddress(invoice.seller.address, ' • ') // "Irgendeine Straße 76 • 99999 Berlin • Deutschland"

// Mit einer InvoiceParty
joinAddress(invoice.seller, ' • ') // "Firmenname • Irgendeine Straße 76 • 99999 Berlin • Deutschland"

#joinLegalInfo

Verbindet den Namen, die Adresse und die Steuerinformationen einer Partei mit einem gegebenen Trennzeichen und überspringt falsche Werte.

Wenn die Partei ein Verkäufer aus Deutschland ist, kann die Steuernummer enthalten sein.

joinLegalInfo (party: Party, separator: string): string

#Beispiel

joinLegalInfo(invoice.seller, ' • ') // "Max Mustermann • Irgendeine Straße 76 • 99999 Berlin • Deutschland • USt-IdNr.: DE123456789"

#joinTaxInfo

Verbindet die Steuerinformationen einer Partei mit einem gegebenen Trennzeichen und überspringt falsche Werte.

Wenn die Partei ein Verkäufer aus Deutschland ist, kann die Steuernummer enthalten sein.

joinTaxInfo (party: Party, separator: string): string

#Beispiel

joinTaxInfo(invoice.seller, ' • ') // "USt-IdNr.: DE123456789"

#getTaxFields

Gibt ein Array von Steuerfeldern für eine gegebene Partei zurück.

Wenn die Partei ein Verkäufer aus Deutschland ist, kann die Steuernummer enthalten sein.

Die Felder sind Objekte mit den folgenden Feldern:

  • key: Der Schlüssel des Feldes, z.B. "vatId"
  • label: Die Bezeichnung des Feldes, z.B. "USt-IdNr."
  • value: Der Wert des Feldes, z.B. "DE123456789"
getTaxFields (party: Party): Field[]

#Beispiel

getTaxFields(invoice.seller) // [{ key: 'vatId', label: 'USt-IdNr.', value: 'DE123456789' }]

#countryCode

Gibt den Namen des Landes zurück, unter Berücksichtigung der Sprache der Rechnung/des Angebots.

countryCode (code: string): string

#field

Gibt den Wert des gegebenen benutzerdefinierten Feldes zurück.

field (fieldName: string): any

#getSummaryItems

Gibt ein Array von SummaryItems zurück, bestehend aus Rabatten, Steuern und Gesamtsummen.

getSummaryItems (): SummaryItem[]

Ein SummaryItem ist ein Objekt mit den folgenden Eigenschaften:

SummaryItem {
	kind: 'subtotal' | 'discount' | 'afterDiscount' | 'taxSubtotal' | 'total'
	title: string
	value: string
}

#Beispiel

<table class="summary-table">
	<tbody>
		<% for (const summaryItem of getSummaryItems()) { %>
			<tr>
				<th><%= summaryItem.title %></th>
				<td><span class="number"><%= summaryItem.value %></span></td>
			</tr>
		<% } %>
	</tbody>
</table>

#clsx

Die populäre clsx Funktion zum Generieren von Klassennamen.