241 lines
7.8 KiB
PHP
241 lines
7.8 KiB
PHP
<?php
|
|
/**
|
|
* @var string $ressourcePathPrefix
|
|
* @var Invoice $invoice
|
|
* @var array $vat
|
|
*/
|
|
$net_total = $invoice->total + $invoice->total_setup;
|
|
$gross_total = $invoice->total_gross + $invoice->total_setup_gross;
|
|
$is_credit = $net_total < 0;
|
|
|
|
$this->setReturnValue(['filename' => $invoice->invoice_number . ".pdf"]);
|
|
|
|
//die(json_encode($invoice->positions));
|
|
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Rechnung</title>
|
|
<meta charset="utf-8"/>
|
|
<!-- <link href="-->
|
|
<?php //= self::getResourcePath() ?><!--assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />-->
|
|
|
|
<style>
|
|
body {
|
|
margin-top: 0;
|
|
/*padding-top: 20pt;*/
|
|
font-family: sans-serif, Verdana;
|
|
font-size: 12px;
|
|
}
|
|
|
|
tr {
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
.uneven {
|
|
background-color: #e1e1e1;
|
|
}
|
|
|
|
|
|
table tr td:last-child {
|
|
text-align: right;
|
|
}
|
|
|
|
.additionalRow td:first-child {
|
|
text-align: left;
|
|
padding-left: 20pt;
|
|
}
|
|
|
|
th {
|
|
height: 28px;
|
|
}
|
|
|
|
#invoiceTable tr *:nth-child(5),
|
|
#invoiceTable tr *:nth-child(4),
|
|
#invoiceTable tr *:nth-child(3) {
|
|
text-align: right;
|
|
}
|
|
|
|
#invoiceTable tr *:not(:first-child) {
|
|
padding: 4px 0;
|
|
}
|
|
|
|
#invoiceTable tr td {
|
|
font-size: 11px;
|
|
}
|
|
|
|
#invoiceTable tr td:first-child {
|
|
max-width: 200pt;
|
|
}
|
|
|
|
</style>
|
|
|
|
|
|
</head>
|
|
<body>
|
|
<div>
|
|
|
|
<h2 style="text-align: center;color: #005384">Ihre Xinon Rechnung vom <?=date("d.m.Y",$invoice->invoice_date)?></h2>
|
|
|
|
<table style="border-collapse: collapse; width: 100%;" id="invoiceTable">
|
|
<tr style="font-weight: bold; border-bottom: 1px solid black;" class="uneven">
|
|
<th style="text-align: center">Dienstleistung</th>
|
|
<th style="text-align: center">Zeitraum</th>
|
|
<th style="text-align: center">Preis</th>
|
|
<th style="text-align: center;">Menge</th>
|
|
<th style="text-align: center">Netto €</th>
|
|
<th style="text-align: center">Ust. %</th>
|
|
<th style="text-align: center;">Brutto €</th>
|
|
</tr>
|
|
<?php
|
|
$i = 0;
|
|
foreach($invoice->positions as $p):
|
|
$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, 2, ",",".");
|
|
|
|
?>
|
|
|
|
<tr class="<?=($i%2 == 0) ? "even" : "uneven" ?>">
|
|
<td><?=$p->product_name?></td>
|
|
<td style="text-align: center;">
|
|
<?= $p->billing_period > 1 ?
|
|
$start_date->format("m.Y") . " - " . $end_date->format("m.Y") :
|
|
$start_date->format("d.m.Y") . " - " . $end_date->format("d.m.Y")
|
|
?>
|
|
|
|
</td>
|
|
<td><?=$price?> €</td>
|
|
<td style="text-align: center"><?=$amount?></td>
|
|
<td><?=$price_total?> €</td>
|
|
<td style="text-align: right;"><?=$vatrate?>%</td>
|
|
<td><?=$price_gross?> €</td>
|
|
</tr>
|
|
<?php if($p->matchcode): ?>
|
|
<tr class="additionalRow <?=($i%2 == 0) ? "even" : "uneven" ?>">
|
|
<td colspan="7"><?=$p->matchcode?></td>
|
|
</tr>
|
|
<?php endif;
|
|
$i++;
|
|
endforeach;
|
|
?>
|
|
<tr style="font-weight: bold; background-color: #e1e1e1; border-bottom: 1px solid black;border-top: 1px solid black">
|
|
<td colspan="5">Gesamt Netto:</td>
|
|
<td colspan="2" style="text-align: right;"><?=number_format($net_total, 2, ",","."). " €"?></td>
|
|
</tr>
|
|
|
|
<?php foreach ($vat as $rate => $vat_total): ?>
|
|
|
|
<?php if($vat_total > 0): ?>
|
|
<tr style="font-size: 11px;border-bottom: 1px solid black;">
|
|
<td colspan="5">USt. <?=$rate?>%:</td>
|
|
<td colspan="2" style="text-align: right"><?=number_format($vat_total, 2, ",","."). " €"?></td>
|
|
</tr>
|
|
<?php endif; ?>
|
|
|
|
<?php endforeach; ?>
|
|
|
|
<!-- double underline border on bottom -->
|
|
<tr style="font-weight: bold; border-bottom: 3px double black; background-color: #e1e1e1;">
|
|
<td colspan="5">Gesamt Brutto:</td>
|
|
<td colspan="2" style="text-align: right"><?=number_format($gross_total, 2, ",","."). " €"?></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!-- TODO: ADD CALL DETAIL SECTION-->
|
|
<!--
|
|
<div style="margin-top: 20pt;">
|
|
<h3 style="color: #005384;margin-bottom: 0">Zusammenfassung für 0800 / 498748</h3>
|
|
<div style="margin-bottom: 16px">(01.01.2021 - 31.01.2021)</div>
|
|
|
|
<table style="border-collapse: collapse; width: 100%;">
|
|
<tr style="text-align: left;" class="uneven">
|
|
<th>Ziel</th>
|
|
<th>Preis pro Minute</th>
|
|
<th>Dauer</th>
|
|
<th style="text-align: right">Netto €</th>
|
|
<th style="text-align: right">Brutto €</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
<tr class="uneven">
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
<tr class="uneven">
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div style="margin-top: 20pt;">
|
|
<h3 style="color: #005384;margin-bottom: 0">Zusammenfassung für 0800 / 498748</h3>
|
|
<div style="margin-bottom: 16px">(01.01.2021 - 31.01.2021)</div>
|
|
|
|
<table style="border-collapse: collapse; width: 100%;">
|
|
<tr style="text-align: left;" class="uneven">
|
|
<th>Ziel</th>
|
|
<th>Preis pro Minute</th>
|
|
<th>Dauer</th>
|
|
<th style="text-align: right">Netto €</th>
|
|
<th style="text-align: right">Brutto €</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
<tr class="uneven">
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
<tr class="uneven">
|
|
<td>Österreich Festnetz</td>
|
|
<td>0,05 €</td>
|
|
<td>01:40:00</td>
|
|
<td style="text-align: right">5,00 €</td>
|
|
<td>6,00 €</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
-->
|
|
|
|
</body>
|
|
</html>
|