NAME

Quiq::Mustang - Frontend für Mustang Kommendozeilen-Werkzeug

BASE CLASS

Quiq::Hash

DESCRIPTION

Mustang ist eine Java-Biblithek sowie ein Kommandzeilen-Werkzeug für den Umgang mit ZUGFeRD-Rechnungen. Die Klasse Quiq::Mustang stellt ein Perl-Frontend für die Nutzung des Kommandozeilen-Werkzeugs bereit.

METHODS

Klassenmethoden

new() - Konstruktor

Synopsis

$mus = $class->new($jarFile);

Arguments

$jarFile

Pfad zur JAR-Datei Mustang-CLI-X.Y.Z.jar, z.B. ~/Mustang-CLI-2.16.2.jar

Returns

Mustang-Objekt

Description

Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.

Objektmethoden

validate() - Validiere ZUGFeRD-Datei

Synopsis

$status = $mus->validate($file);

Arguments

$file

ZUGFeRD-Datei, wie Mustang sie erwartet (als XML oder PDF).

Options

-force => $bool (Default: 0)

Forciere die Validierung, auch wenn sie schon einmal erfolgt ist.

-notice => $bool (Default: 0)

Protokolliere nicht nur Validierungsfehler, sondern gib darüber hinaus Empfehlungen zu Verbesserungen am ZUGFeRD XML aus.

-verbose => $bool (Default: 0)

Gib Laufzeitinformation über die Verarbeitung auf STDOUT aus.

Returns

(Integer) Status der Validierung: 0 = ok, 1 = fehlgeschlagen, -1 = Datei wurde übergangen, da bereits validiert.

Description

Validiere die ZUGFeRD-Datei $file und liefere den Status der Validierung zurück.

getResult() - Liefere Validierungsresultat

Synopsis

($status,$val) = $mus->getResult($pattern,$as);

($status,$text) = $mus->getResult($pattern,'text');
($status,$ruleH) = $mus->getResult($pattern,'hash');
($status,$html) = $mus->getResult($pattern,'html');

Arguments

$pattern

Glob()-Pattern der Resultat-Datei des Mustang Validators.

$as

Typ des Returnwerts:

'text'
'hash'
'html'

Returns

$status

Status der Validierung. Mögliche Werte:

0

Validierung war erfolgreich.

1

Es sind bei der Validierung Fehler aufgetreten.

2

Es liegt kein Validierungsergebis vor.

$val

Detailinformation. Mögliche Werte:

$text

Textuelle Beschreibung.

$ruleH

Hash der verletzten Regeln.

$html

Beschreibung in HTML.

Description

Liefere das Ergebnis der ZUGFeRD-Validierung.

visualize() - Visualisiere ZUGFeRD-Datei

Synopsis

$mus->visualize($xmlFile,$outFile,%options);

Arguments

$xmlFile

ZUGFeRD XML-Datei

$outFile

Erzeugte Visualisierungsdatei. Hat der Dateiname die Endung .pdf, wird eine PDF-Datei erzeugt, sonst eine HTML-Datei.

Options

-addBusinessTerms => $bool (Default: 0)

Füge im Falle von HTML als Zielformat die Kürzel der Business-Terms ("BT-NNN") zu den Feldinhelten hinzu.

Description

Visualisiere die ZUGFeRD-Datei $xmlFile als PDF- oder HTML-Datei $pdfFile.

Example

Erzeuge PDF-Visualisierung:

perl -MQuiq::Mustang -E '$mus = Quiq::Mustang->new("~/sys/opt/mustang/Mustang-CLI-2.17.0.jar"); $mus->visualize("174284711604.xml","174284711604.pdf")'

Erzeuge HTML-Visualisierung:

perl -MQuiq::Mustang -E '$mus = Quiq::Mustang->new("~/sys/opt/mustang/Mustang-CLI-2.17.0.jar"); $mus->visualize("174284711604.xml","174284711604.html")'

Information

br() - Text Geschäftsregel (Business Rule)

Synopsis

$text = $zug->br($br);

Arguments

$br

Bezeichner der Geschäftsregel. Beispiel: BR-CO-17 (Umsatzsteueraufschlüsselung)

Returns

(String) Text der Geschäftsregel

Description

Liefere den Text der Geschäftsregel $br. Ist die Geschäftsregel nicht definiert, wird ein Leerstring ('') geliefert.

Example

$ perl -MQuiq::Mustang -E 'say Quiq::Mustang->new($jarFile)->br("BR-CO-17")'
(Umsatzsteueraufschlüsselung) Der Inhalt des Elementes „VAT category tax
amount“ (BT-117) entspricht dem Inhalt des Elementes „VAT category taxable
amount“ (BT-116), multipliziert mit dem Inhalt des Elementes „VAT category
rate“ (BT-119) geteilt durch 100, gerundet auf zwei Dezimalstellen.

mustangDir() - Pfad des Mustang-Verzeichnisses

Synopsis

$path = $zug->mustangDir;
$path = $zug->mustangDir($subPath);

Arguments

$subPath

Subpfad ins Verzeichnis

Returns

(String) Dateipfad

Description

Liefere den Dateipfad des Mustang-Verzeichnisses, optional ergänzt um Subpfad $subPath.

VERSION

1.230

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2025 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.