51 lines
2.1 KiB
PHP
51 lines
2.1 KiB
PHP
<?php
|
|
header("Content-type: text/csv; charset=utf-8");
|
|
header('Content-disposition: attachment; filename="'.$invoice->invoice_number.'.csv"');
|
|
|
|
?>
|
|
<?="\u{FEFF}"?>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;
|