Skip to content
Code-Schnipsel Gruppen Projekte
Commit 9de04a5f erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

Merge branch 'next-2.x' into 'main'

fix: improve invoice handling for the electronic invoice

See merge request !93
Übergeordnete 76d83123 f39943e2
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
2 Merge Requests!94Update 'next-3.x' with latest changes from 'main',!93fix: improve invoice handling for the electronic invoice
Pipeline-Nr. 16082 mit Warnungen bestanden
...@@ -663,6 +663,11 @@ public static function addressRequirementThreshold(): float ...@@ -663,6 +663,11 @@ public static function addressRequirementThreshold(): float
return floatval($threshold); return floatval($threshold);
} }
/**
* @throws QUI\ERP\Exception
* @throws QUI\Exception
* @throws QUI\Users\Exception
*/
public static function getElectronicInvoice( public static function getElectronicInvoice(
InvoiceTemporary | QUI\ERP\Accounting\Invoice\Invoice $Invoice, InvoiceTemporary | QUI\ERP\Accounting\Invoice\Invoice $Invoice,
$type = ZugferdProfiles::PROFILE_EN16931 $type = ZugferdProfiles::PROFILE_EN16931
...@@ -828,9 +833,17 @@ public static function getElectronicInvoice( ...@@ -828,9 +833,17 @@ public static function getElectronicInvoice(
// products // products
foreach ($Invoice->getArticles() as $Article) { foreach ($Invoice->getArticles() as $Article) {
/* @var $Article QUI\ERP\Accounting\Article */
$article = $Article->toArray(); $article = $Article->toArray();
$nettoPreis = $article['calculated']['nettoPrice']; // Netto-Einzelpreis
$vatSum = $article['calculated']['vatArray']['sum'];
$bruttoPreis = $nettoPreis;
if ($vatSum) {
$bruttoPreis = $nettoPreis + ($vatSum / $article['quantity']);
}
$document $document
->addNewPosition($article['position']) ->addNewPosition($article['position'])
->setDocumentPositionProductDetails( ->setDocumentPositionProductDetails(
...@@ -841,9 +854,10 @@ public static function getElectronicInvoice( ...@@ -841,9 +854,10 @@ public static function getElectronicInvoice(
null, null,
null null
) )
->setDocumentPositionNetPrice($article['calculated']['nettoPrice']) ->setDocumentPositionNetPrice($article['calculated']['nettoPrice'], 1, "C62") // C62 = Stück
->setDocumentPositionGrossPrice($bruttoPreis, 1, "C62") // C62 = Stück
->setDocumentPositionQuantity($article['quantity'], "H87") ->setDocumentPositionQuantity($article['quantity'], "H87")
->addDocumentPositionTax('S', 'VAT', $article['vat']) ->addDocumentPositionTax('S', 'VAT', $article['vat'], $article['calculated']['vatArray']['sum'])
->setDocumentPositionLineSummation($article['sum']); ->setDocumentPositionLineSummation($article['sum']);
} }
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren