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

fix: improve invoice handling for the electronic invoice

This commit offers a more detailed pricing calculation, including Net and Gross pricing for the
electronic invoice export. It adds essential support for VAT calculation for invoice articles. It
also includes the quantity into the gross price calculation which was previously based only on the
net price. This could help in maintaining proper financial records. We also replaced the implicit
variable declaration with explicit variable assignment for better code readability.
Übergeordneter afb95504
No related branches found
No related tags found
2 Merge Requests!94Update 'next-3.x' with latest changes from 'main',!93fix: improve invoice handling for the electronic invoice
Pipeline #16079 bestanden mit Phase
in 2 Minuten und 45 Sekunden
......@@ -663,6 +663,11 @@ public static function addressRequirementThreshold(): float
return floatval($threshold);
}
/**
* @throws QUI\ERP\Exception
* @throws QUI\Exception
* @throws QUI\Users\Exception
*/
public static function getElectronicInvoice(
InvoiceTemporary | QUI\ERP\Accounting\Invoice\Invoice $Invoice,
$type = ZugferdProfiles::PROFILE_EN16931
......@@ -828,9 +833,17 @@ public static function getElectronicInvoice(
// products
foreach ($Invoice->getArticles() as $Article) {
/* @var $Article QUI\ERP\Accounting\Article */
$article = $Article->toArray();
$nettoPreis = $article['calculated']['nettoPrice']; // Netto-Einzelpreis
$vatSum = $article['calculated']['vatArray']['sum'];
$bruttoPreis = $nettoPreis;
if ($vatSum) {
$bruttoPreis = $nettoPreis + ($vatSum / $article['quantity']);
}
$document
->addNewPosition($article['position'])
->setDocumentPositionProductDetails(
......@@ -841,9 +854,10 @@ public static function getElectronicInvoice(
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")
->addDocumentPositionTax('S', 'VAT', $article['vat'])
->addDocumentPositionTax('S', 'VAT', $article['vat'], $article['calculated']['vatArray']['sum'])
->setDocumentPositionLineSummation($article['sum']);
}
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren