There is an ongoing outage on the primary CPAN mirror. It is possible to work around the issue by using MetaCPAN as a mirror.

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

-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.

Description

Validiere die ZUGFeRD-Datei $file und liefere den Status der Validierung zurück. Ferner wird eine XML-Datei geschrieben(_result.xml), die das Validierungsergebnis enhält.

getResult() - Liefere Validierungsresultat

Synopsis

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

Arguments

$pattern

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

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.

$text

Textuelle Beschreibung

$html

Beschreibung in HTML

$ruleH

Hash der verletzten Regeln

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.231

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.