Files
thetool/Layout/default/Invoice/invoicepositions.csv.php
2024-08-20 20:43:09 +02:00

51 lines
2.1 KiB
PHP

<?php
header("Content-type: text/csv");
header('Content-disposition: attachment; filename="'.$invoice->invoice_number.'.csv"');
?>
Rechnungsnummer;Belegdatum;Kundennummer;Firma;Nachname;Vorname;Produktname;Matchcode;Zeitraum;Anzahl;Preis Netto;Ust%;Preis Brutto
<?php
foreach($invoice->positions as $p):
$timerange_month_only = $p->getOption('timerange_month_only');
$start_date = new DateTime($p->start_date);
$end_date = new DateTime($p->end_date);
$amount = (float) number_format($p->amount, 3, ",", ".");
$price = number_format($p->price, 2, ",",".");
$price_total = number_format($p->price_total, 2, ",",".");
$price_gross = number_format($p->price_gross, 2, ",",".");
$vatrate = number_format($p->vatrate, 0, ",",".");
$credit_custnum = false;
$credit = false;
$contract = false;
if($p->contract_id) {
$credit = $p->contract;
foreach($credit->linkFrom as $link) {
if($link->type == "credit") {
$contract = $link->origin;
$credit_custnum = $contract->owner->customer_number;
break;
}
}
}
$timerange = "";
if($timerange_month_only) {
$timerange = $start_date->format("m.Y");
} elseif($p->billing_period > 1) {
$timerange = $start_date->format("m.Y")?> - <?=$end_date->format("m.Y");
} else {
if($start_date->format("d.m.Y") == $end_date->format("d.m.Y")) {
$timerange = $start_date->format("d.m.Y");
} else {
$timerange = $start_date->format("d.m.Y")." - ".$end_date->format("d.m.Y");
}
}
?>
<?=$invoice->invoice_number?>;<?=date("d.m.Y", $invoice->invoice_date)?>;<?=$invoice->customer_number?>;"<?=str_replace(["\n","\r"], " ", $invoice->company)?>";"<?=$invoice->lastname?>";"<?=$invoice->firstname?>";"<?=$p->product_name?>";"<?=($credit_custnum) ? $credit_custnum."; " : ""?><?=str_replace(["\n","\r"], " ", $p->matchcode)?>";"<?=$timerange?>";<?=(float)$p->amount?>;<?=number_format($p->price_total, 2, ",", "")?>;<?=number_format($p->vatrate, 2, ",", "")?>;<?=number_format($p->price_gross, 2, ",", "")?>
<?php
endforeach;