dolibarr.steuer/euer_bericht.php
2026-02-03 14:47:27 +01:00

333 lines
11 KiB
PHP

<?php
/**
* EÜR Bericht - Anlage EÜR Format
*
* @package steuer
*/
// Load Dolibarr environment
$res = 0;
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
}
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME'];
$tmp2 = realpath(__FILE__);
$i = strlen($tmp) - 1;
$j = strlen($tmp2) - 1;
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
$i--;
$j--;
}
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
$res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
}
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
$res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
}
if (!$res && file_exists("../main.inc.php")) {
$res = @include "../main.inc.php";
}
if (!$res && file_exists("../../main.inc.php")) {
$res = @include "../../main.inc.php";
}
if (!$res && file_exists("../../../main.inc.php")) {
$res = @include "../../../main.inc.php";
}
if (!$res) {
die("Include of main fails");
}
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
dol_include_once('/steuer/class/euer.class.php');
$langs->loadLangs(array("steuer@steuer", "bills", "compta"));
$jahr = GETPOSTINT('jahr');
if (empty($jahr)) {
$jahr = date('Y');
}
/*
* View
*/
$form = new Form($db);
$euer = new EUeR($db);
$euer->berechneAusDolibarr($jahr);
llxHeader('', $langs->trans("AnlageEUeR"), '', '', 0, 0, '', '', '', 'mod-steuer page-euer-bericht');
print load_fiche_titre($langs->trans("AnlageEUeR")." ".$jahr, '', 'steuer.png@steuer');
// Jahr-Auswahl
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<div class="inline-block marginrightonly">';
print '<select name="jahr" class="flat">';
for ($y = date('Y'); $y >= date('Y') - 5; $y--) {
print '<option value="'.$y.'"'.($y == $jahr ? ' selected' : '').'>'.$y.'</option>';
}
print '</select>';
print ' <input type="submit" class="button" value="'.$langs->trans("Refresh").'">';
print ' <a href="'.$_SERVER["PHP_SELF"].'?jahr='.$jahr.'&action=export_csv" class="butAction">'.$langs->trans("ExportCSV").'</a>';
print '</div>';
print '</form>';
print '<br><br>';
// Anlage EÜR Format
print '<div class="div-table-responsive">';
print '<table class="noborder centpercent">';
// Header
print '<tr class="liste_titre">';
print '<th class="center" style="width: 60px;">'.$langs->trans("Zeile").'</th>';
print '<th>'.$langs->trans("Bezeichnung").'</th>';
print '<th class="right" style="width: 150px;">'.$langs->trans("Betrag").' EUR</th>';
print '</tr>';
// ============ BETRIEBSEINNAHMEN ============
print '<tr class="liste_titre">';
print '<td colspan="3"><strong>A. Betriebseinnahmen</strong></td>';
print '</tr>';
// Zeile 10-12: Steuerfreie Einnahmen
$zeile10 = 0; // Steuerfreie Betriebseinnahmen
$zeile11 = 0; // Innergemeinschaftliche Lieferungen
$zeile12 = 0; // Ausfuhrlieferungen
print '<tr class="oddeven">';
print '<td class="center">10</td>';
print '<td>Steuerfreie Betriebseinnahmen nach § 4 Nr. 8 bis 28 UStG</td>';
print '<td class="right amount">'.price($zeile10, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">11</td>';
print '<td>Innergemeinschaftliche Lieferungen (§ 4 Nr. 1 Buchst. b UStG)</td>';
print '<td class="right amount">'.price($zeile11, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">12</td>';
print '<td>Steuerfreie Ausfuhrlieferungen (§ 4 Nr. 1 Buchst. a UStG)</td>';
print '<td class="right amount">'.price($zeile12, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Zeile 14: Umsatzsteuerpflichtige Einnahmen
print '<tr class="oddeven">';
print '<td class="center">14</td>';
print '<td><strong>Umsatzsteuerpflichtige Betriebseinnahmen</strong></td>';
print '<td class="right amount"><strong>'.price($euer->summe_einnahmen, 0, $langs, 1, 2, 2).'</strong></td>';
print '</tr>';
// Zeile 16: Vom Finanzamt erstattete USt
print '<tr class="oddeven">';
print '<td class="center">16</td>';
print '<td>Vom Finanzamt erstattete und ggf. verrechnete Umsatzsteuer</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Zeile 18: Veräußerungsgewinne
print '<tr class="oddeven">';
print '<td class="center">18</td>';
print '<td>Veräußerung/Entnahme von Anlagevermögen</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Zeile 19: Private Nutzung
print '<tr class="oddeven">';
print '<td class="center">19</td>';
print '<td>Private Kfz-Nutzung, Sach-, Nutzungs- und Leistungsentnahmen</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Zeile 20: Auflösung Rücklagen
print '<tr class="oddeven">';
print '<td class="center">20</td>';
print '<td>Auflösung von Rücklagen und Ausgleichsposten (§ 6c EStG)</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Zwischensumme Einnahmen
$summe_einnahmen = $zeile10 + $zeile11 + $zeile12 + $euer->summe_einnahmen;
print '<tr class="liste_total">';
print '<td class="center">22</td>';
print '<td><strong>Summe Betriebseinnahmen</strong></td>';
print '<td class="right amount"><strong>'.price($summe_einnahmen, 0, $langs, 1, 2, 2).'</strong></td>';
print '</tr>';
// ============ BETRIEBSAUSGABEN ============
print '<tr class="liste_titre">';
print '<td colspan="3"><strong>B. Betriebsausgaben</strong></td>';
print '</tr>';
// Wareneinkauf
print '<tr class="oddeven">';
print '<td class="center">26</td>';
print '<td>Waren, Roh- und Hilfsstoffe einschl. der Nebenkosten</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Fremdleistungen
print '<tr class="oddeven">';
print '<td class="center">27</td>';
print '<td>Bezogene Fremdleistungen</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Personal
print '<tr class="oddeven">';
print '<td class="center">31</td>';
print '<td>Löhne und Gehälter</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">32</td>';
print '<td>Gesetzliche Sozialaufwendungen</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Raumkosten
print '<tr class="oddeven">';
print '<td class="center">34</td>';
print '<td>Raumkosten und sonstige Grundstücksaufwendungen</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// AfA
print '<tr class="oddeven">';
print '<td class="center">36</td>';
print '<td>AfA auf unbewegliche Wirtschaftsgüter</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">37</td>';
print '<td>AfA auf bewegliche Wirtschaftsgüter</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">38</td>';
print '<td>AfA auf geringwertige Wirtschaftsgüter</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Sonstige Ausgaben
print '<tr class="oddeven">';
print '<td class="center">45</td>';
print '<td>Schuldzinsen zur Finanzierung von Anschaffungs-/Herstellungskosten</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">46</td>';
print '<td>Übrige Schuldzinsen</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">48</td>';
print '<td>Geschenke</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Übrige Betriebsausgaben (enthält alle Ausgaben aus Dolibarr)
print '<tr class="oddeven">';
print '<td class="center">49</td>';
print '<td><strong>Übrige unbeschränkt abziehbare Betriebsausgaben</strong></td>';
print '<td class="right amount"><strong>'.price($euer->summe_ausgaben, 0, $langs, 1, 2, 2).'</strong></td>';
print '</tr>';
// Fahrzeugkosten
print '<tr class="oddeven">';
print '<td class="center">51</td>';
print '<td>Aufwendungen für ein zum Betriebsvermögen gehörendes Kfz</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Bewirtung
print '<tr class="oddeven">';
print '<td class="center">53</td>';
print '<td>Beschränkt abziehbare Bewirtungsaufwendungen (70%)</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Verpflegungsmehraufwand
print '<tr class="oddeven">';
print '<td class="center">54</td>';
print '<td>Pauschbeträge für Verpflegungsmehraufwand</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Häusliches Arbeitszimmer
print '<tr class="oddeven">';
print '<td class="center">56</td>';
print '<td>Aufwendungen für ein häusliches Arbeitszimmer</td>';
print '<td class="right amount">'.price(0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// USt gezahlt
print '<tr class="oddeven">';
print '<td class="center">64</td>';
print '<td>An das Finanzamt gezahlte und ggf. verrechnete Umsatzsteuer</td>';
print '<td class="right amount">'.price($euer->ust_zahllast > 0 ? $euer->ust_zahllast : 0, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Summe Ausgaben
$summe_ausgaben = $euer->summe_ausgaben;
print '<tr class="liste_total">';
print '<td class="center">67</td>';
print '<td><strong>Summe Betriebsausgaben</strong></td>';
print '<td class="right amount"><strong>'.price($summe_ausgaben, 0, $langs, 1, 2, 2).'</strong></td>';
print '</tr>';
// ============ GEWINNERMITTLUNG ============
print '<tr class="liste_titre">';
print '<td colspan="3"><strong>C. Gewinnermittlung</strong></td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">71</td>';
print '<td>Betriebseinnahmen (aus Zeile 22)</td>';
print '<td class="right amount">'.price($summe_einnahmen, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="center">72</td>';
print '<td>Betriebsausgaben (aus Zeile 67)</td>';
print '<td class="right amount">'.price($summe_ausgaben, 0, $langs, 1, 2, 2).'</td>';
print '</tr>';
// Gewinn/Verlust
$gewinn = $summe_einnahmen - $summe_ausgaben;
$color = $gewinn >= 0 ? 'amountpaymentcomplete' : 'amountremaintopay';
print '<tr class="liste_total">';
print '<td class="center">87</td>';
print '<td><strong>'.($gewinn >= 0 ? $langs->trans("Gewinn") : $langs->trans("Verlust")).'</strong></td>';
print '<td class="right amount '.$color.'"><strong>'.price($gewinn, 0, $langs, 1, 2, 2).'</strong></td>';
print '</tr>';
print '</table>';
print '</div>';
// Hinweise
print '<br>';
print '<div class="opacitymedium">';
print '<strong>'.$langs->trans("Hinweis").':</strong><br>';
print '- '.$langs->trans("EUeRHinweis1").'<br>';
print '- '.$langs->trans("EUeRHinweis2").'<br>';
print '- '.$langs->trans("EUeRHinweis3").'<br>';
print '</div>';
// Zurück-Button
print '<br>';
print '<div class="tabsAction">';
print '<a class="butAction" href="'.dol_buildpath('/steuer/steuerindex.php', 1).'"><i class="fa fa-arrow-left paddingright"></i>'.$langs->trans("Back").'</a>';
print '</div>';
llxFooter();
$db->close();