Merge pull request 'EÜR-Zeilen, USt-Konten und Test 15 korrigieren' (#93) from fds2610-bot/Steuerkram:main into main
Reviewed-on: https://codeberg.org/fds2610/Steuerkram/pulls/93
This commit is contained in:
commit
c68596223f
4 changed files with 251 additions and 5 deletions
226
migrations/075_euer_zeilen_korrektur.sql
Normal file
226
migrations/075_euer_zeilen_korrektur.sql
Normal file
|
|
@ -0,0 +1,226 @@
|
||||||
|
-- 075_euer_zeilen_korrektur.sql
|
||||||
|
-- Korrektur aller euer_zeile-Werte gemäß amtlicher Anlage EÜR 2025.
|
||||||
|
-- Bisherige Werte folgten einem internen Schema, das nicht der amtlichen
|
||||||
|
-- Zeilennummerierung entspricht.
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- BETRIEBSEINNAHMEN
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Erlöse 19 % USt: 16 → 15
|
||||||
|
-- (Zeile 15 gilt für ALLE umsatzsteuerpflichtigen BE, nicht nur 7 %)
|
||||||
|
UPDATE accounts SET euer_zeile = '15'
|
||||||
|
WHERE kontonummer IN ('8400','8570','8720');
|
||||||
|
|
||||||
|
-- Steuerfreie Umsätze § 4 UStG: 17 → 16
|
||||||
|
UPDATE accounts SET euer_zeile = '16'
|
||||||
|
WHERE kontonummer IN ('8100','8105','8110');
|
||||||
|
|
||||||
|
-- Steuerfreie Auslandslieferungen: 18 → 16
|
||||||
|
UPDATE accounts SET euer_zeile = '16'
|
||||||
|
WHERE kontonummer IN ('8120','8125');
|
||||||
|
|
||||||
|
-- Nicht steuerbare Umsätze: 21 → 16
|
||||||
|
UPDATE accounts SET euer_zeile = '16'
|
||||||
|
WHERE kontonummer = '8950';
|
||||||
|
|
||||||
|
-- Erlöse Anlagenverkauf: 22 → 19
|
||||||
|
UPDATE accounts SET euer_zeile = '19'
|
||||||
|
WHERE kontonummer IN ('8800','8801','8820');
|
||||||
|
|
||||||
|
-- Entnahmen (Sach-/Nutzungsentnahmen): 22 → 21
|
||||||
|
UPDATE accounts SET euer_zeile = '21'
|
||||||
|
WHERE kontonummer IN ('8920','8921','8922');
|
||||||
|
|
||||||
|
-- Sonstige betriebliche Erträge: 23 → 21
|
||||||
|
-- (kein separater Zeile-Code im amtlichen Formular)
|
||||||
|
UPDATE accounts SET euer_zeile = '21'
|
||||||
|
WHERE kontonummer IN ('8900','8910');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- BETRIEBSAUSGABEN – Material
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Wareneingang ohne VSt: 26 → 27
|
||||||
|
UPDATE accounts SET euer_zeile = '27'
|
||||||
|
WHERE kontonummer = '3349';
|
||||||
|
|
||||||
|
-- Wareneingang 7 % VSt: 28 → 27
|
||||||
|
UPDATE accounts SET euer_zeile = '27'
|
||||||
|
WHERE kontonummer = '3300';
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Personal
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Gesetzliche Sozialaufwendungen: 31 → 30
|
||||||
|
UPDATE accounts SET euer_zeile = '30'
|
||||||
|
WHERE kontonummer IN ('4130','4138');
|
||||||
|
|
||||||
|
-- Freiwillige Sozialaufwendungen: 32 → 30
|
||||||
|
UPDATE accounts SET euer_zeile = '30'
|
||||||
|
WHERE kontonummer IN ('4140','4145');
|
||||||
|
|
||||||
|
-- Reisekosten Arbeitnehmer (alle): 42 → 30
|
||||||
|
-- (Arbeitnehmer-Reisekosten sind Personalaufwand, kein Unternehmer-Reisekostenabzug)
|
||||||
|
UPDATE accounts SET euer_zeile = '30'
|
||||||
|
WHERE kontonummer IN ('4660','4663','4664','4666','4668');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Raumkosten
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Miete/Pacht unbewegliche WG: 33 → 39
|
||||||
|
UPDATE accounts SET euer_zeile = '39'
|
||||||
|
WHERE kontonummer IN ('4210','4211','4220');
|
||||||
|
|
||||||
|
-- Sonstige Raumkosten, Heizung, Energie: 33/34 → 41
|
||||||
|
UPDATE accounts SET euer_zeile = '41'
|
||||||
|
WHERE kontonummer IN ('4230','4240','4280');
|
||||||
|
|
||||||
|
-- Reinigung, Instandhaltung betriebliche Räume, Reparaturen Bauten: 37 → 41
|
||||||
|
UPDATE accounts SET euer_zeile = '41'
|
||||||
|
WHERE kontonummer IN ('4250','4260','4801');
|
||||||
|
|
||||||
|
-- Sonderabschreibungen § 7b EStG: 37 → 34
|
||||||
|
UPDATE accounts SET euer_zeile = '34'
|
||||||
|
WHERE kontonummer = '4856';
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Instandhaltung / Reparaturen
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Reparaturen Maschinen, Anlagen, BGA: 38 → 48
|
||||||
|
UPDATE accounts SET euer_zeile = '48'
|
||||||
|
WHERE kontonummer IN ('4800','4805','4809');
|
||||||
|
|
||||||
|
-- Wartungskosten Hard-/Software: 38 → 50 (Laufende EDV-Kosten)
|
||||||
|
UPDATE accounts SET euer_zeile = '50'
|
||||||
|
WHERE kontonummer = '4806';
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Kfz-Kosten
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Kfz-Leasing: 40 → 68
|
||||||
|
UPDATE accounts SET euer_zeile = '68'
|
||||||
|
WHERE kontonummer IN ('4570','4575');
|
||||||
|
|
||||||
|
-- Kfz-Steuer, Versicherungen, Maut: 40 → 69
|
||||||
|
UPDATE accounts SET euer_zeile = '69'
|
||||||
|
WHERE kontonummer IN ('4510','4520','4560');
|
||||||
|
|
||||||
|
-- Sonstige tatsächliche Fahrtkosten (Betrieb, Reparaturen, Treibstoff): 40 → 70
|
||||||
|
UPDATE accounts SET euer_zeile = '70'
|
||||||
|
WHERE kontonummer IN ('4500','4530','4540','4550','4580');
|
||||||
|
|
||||||
|
-- Fremdfahrzeuge (Nutzungseinlage): 40 → 71
|
||||||
|
UPDATE accounts SET euer_zeile = '71'
|
||||||
|
WHERE kontonummer = '4590';
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Werbekosten / Geschenke
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Werbekosten, Streuartikel: 41 → 54
|
||||||
|
UPDATE accounts SET euer_zeile = '54'
|
||||||
|
WHERE kontonummer IN ('4600','4605');
|
||||||
|
|
||||||
|
-- Geschenke abzugsfähig: 41 → 62 (beschränkt abziehbar)
|
||||||
|
UPDATE accounts SET euer_zeile = '62'
|
||||||
|
WHERE kontonummer IN ('4630','4631');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Reisekosten Unternehmer
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Übernachtungs-/Reisenebenkosten Unternehmer: 43 → 44
|
||||||
|
UPDATE accounts SET euer_zeile = '44'
|
||||||
|
WHERE kontonummer IN ('4670','4673','4676');
|
||||||
|
|
||||||
|
-- Verpflegungsmehraufwand Unternehmer: 43 → 64 (beschränkt abziehbar)
|
||||||
|
UPDATE accounts SET euer_zeile = '64'
|
||||||
|
WHERE kontonummer = '4674';
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Bewirtung
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Bewirtungskosten abzugsfähig (70 %): 44 → 63 (beschränkt abziehbar)
|
||||||
|
UPDATE accounts SET euer_zeile = '63'
|
||||||
|
WHERE kontonummer IN ('4650','4651','4652');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Telekommunikation / Bürobedarf
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Telefon, Internet: 47 → 43
|
||||||
|
UPDATE accounts SET euer_zeile = '43'
|
||||||
|
WHERE kontonummer IN ('4920','4925');
|
||||||
|
|
||||||
|
-- Porto, Bürobedarf, Fachliteratur: 47 → 51
|
||||||
|
UPDATE accounts SET euer_zeile = '51'
|
||||||
|
WHERE kontonummer IN ('4910','4930','4940');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Miete / Leasing bewegliche WG
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Mieten Einrichtungen, Lizenzen, Mietleasing: 48 → 47
|
||||||
|
UPDATE accounts SET euer_zeile = '47'
|
||||||
|
WHERE kontonummer IN ('4960','4964','4965');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Abschreibungen (AfA)
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- AfA immaterielle WG: 49 → 32
|
||||||
|
UPDATE accounts SET euer_zeile = '32'
|
||||||
|
WHERE kontonummer = '4822';
|
||||||
|
|
||||||
|
-- AfA Gebäude/Grundstücke: 49 → 31
|
||||||
|
UPDATE accounts SET euer_zeile = '31'
|
||||||
|
WHERE kontonummer = '4831';
|
||||||
|
|
||||||
|
-- AfA bewegliche WG (Sachanlagen, Fahrzeuge): 49 → 33
|
||||||
|
UPDATE accounts SET euer_zeile = '33'
|
||||||
|
WHERE kontonummer IN ('4830','4832');
|
||||||
|
|
||||||
|
-- GWG-Sofortabschreibung: 50 → 36
|
||||||
|
UPDATE accounts SET euer_zeile = '36'
|
||||||
|
WHERE kontonummer = '4855';
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Nicht abziehbare Betriebsausgaben → Zeile 74
|
||||||
|
-- Zeile 74 (amtl. Anlage EÜR): "Nicht abziehbare Beträge"
|
||||||
|
-- Dient intern als Kennzeichen für den separaten Ausweis in der EÜR-Ansicht.
|
||||||
|
-- ============================================================
|
||||||
|
UPDATE accounts SET euer_zeile = '74'
|
||||||
|
WHERE kontonummer IN ('4289','4320','4635','4636','4654','4656','4657','4672');
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- Sonstige Betriebsausgaben (bisher pauschal 52)
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- Versicherungen, Beiträge, Gebühren, Abgaben, nicht abziehbare VSt: 52 → 49
|
||||||
|
UPDATE accounts SET euer_zeile = '49'
|
||||||
|
WHERE kontonummer IN ('4300','4301','4306','4340','4350','4360','4366','4380','4390');
|
||||||
|
|
||||||
|
-- Fortbildungskosten: 52 → 45
|
||||||
|
UPDATE accounts SET euer_zeile = '45'
|
||||||
|
WHERE kontonummer = '4945';
|
||||||
|
|
||||||
|
-- Rechts- und Beratungskosten: 52 → 46
|
||||||
|
UPDATE accounts SET euer_zeile = '46'
|
||||||
|
WHERE kontonummer = '4950';
|
||||||
|
|
||||||
|
-- Abfallbeseitigung: 52 bleibt 52 (passt jetzt korrekt zur amtlichen Zeile 52)
|
||||||
|
-- Kein UPDATE erforderlich für 4969.
|
||||||
|
|
||||||
|
-- Bankgebühren/Zinsen, Verwahrentgelt, sonstiger Betriebsbedarf: 52 → 60
|
||||||
|
UPDATE accounts SET euer_zeile = '60'
|
||||||
|
WHERE kontonummer IN ('4900','4970','4971','4980');
|
||||||
|
|
||||||
|
-- Werkzeuge und Kleingeräte: 52 → 51 (Arbeitsmittel)
|
||||||
|
UPDATE accounts SET euer_zeile = '51'
|
||||||
|
WHERE kontonummer = '4985';
|
||||||
10
migrations/076_ust_konten_betriebseinnahme.sql
Normal file
10
migrations/076_ust_konten_betriebseinnahme.sql
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
-- 076_ust_konten_betriebseinnahme.sql
|
||||||
|
-- Vereinnahmte Umsatzsteuer-Konten als Betriebseinnahme klassifizieren
|
||||||
|
-- und EÜR-Zeile 17 zuweisen (Anlage EÜR: "Vereinnahmte Umsatzsteuer
|
||||||
|
-- sowie Umsatzsteuer auf unentgeltliche Wertabgaben").
|
||||||
|
-- Ausgenommen: 1780/1781 (USt-Vorauszahlungen ans FA) → bleiben Verbindlichkeit.
|
||||||
|
|
||||||
|
UPDATE accounts
|
||||||
|
SET kontenart = 'Betriebseinnahme',
|
||||||
|
euer_zeile = '17'
|
||||||
|
WHERE kontonummer IN ('1770','1771','1774','1776');
|
||||||
9
migrations/077_ust_vorauszahlungen_betriebsausgabe.sql
Normal file
9
migrations/077_ust_vorauszahlungen_betriebsausgabe.sql
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
-- 077_ust_vorauszahlungen_betriebsausgabe.sql
|
||||||
|
-- USt-Vorauszahlungskonten als Betriebsausgabe klassifizieren
|
||||||
|
-- und EÜR-Zeile 58 zuweisen (Anlage EÜR: "An das Finanzamt gezahlte
|
||||||
|
-- und ggf. verrechnete Umsatzsteuer").
|
||||||
|
|
||||||
|
UPDATE accounts
|
||||||
|
SET kontenart = 'Betriebsausgabe',
|
||||||
|
euer_zeile = '58'
|
||||||
|
WHERE kontonummer IN ('1780','1781');
|
||||||
|
|
@ -3,10 +3,11 @@
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test 15: Nicht abzugsfähige Betriebsausgaben (KZ 165) in der EÜR.
|
* Test 15: Nicht abzugsfähige Betriebsausgaben in der EÜR.
|
||||||
*
|
*
|
||||||
* Buchungen auf Konten mit euer_zeile='51' (z.B. 4654, 4656) dürfen nicht
|
* Buchungen auf Konten mit euer_zeile='74' (Anlage EÜR Zeile 74:
|
||||||
* in total_ausgaben oder gewinn einfließen, sondern erscheinen nur im
|
* "Nicht abziehbare Beträge", z.B. 4654, 4656) dürfen nicht in
|
||||||
|
* total_ausgaben oder gewinn einfließen, sondern erscheinen nur im
|
||||||
* separaten Abschnitt 'nicht_abzugsfaehig'.
|
* separaten Abschnitt 'nicht_abzugsfaehig'.
|
||||||
*/
|
*/
|
||||||
class NichtAbzugsfaehigEuerTest extends TestCase
|
class NichtAbzugsfaehigEuerTest extends TestCase
|
||||||
|
|
@ -26,11 +27,11 @@ class NichtAbzugsfaehigEuerTest extends TestCase
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prüfen, dass 4654 wirklich euer_zeile='51' hat
|
// Prüfen, dass 4654 wirklich euer_zeile='74' hat (seit Migration 075)
|
||||||
$kto = \Steuerkram\Database::fetchOne(
|
$kto = \Steuerkram\Database::fetchOne(
|
||||||
"SELECT euer_zeile FROM accounts WHERE kontonummer = '4654'"
|
"SELECT euer_zeile FROM accounts WHERE kontonummer = '4654'"
|
||||||
);
|
);
|
||||||
$this->assertEquals('51', $kto['euer_zeile'] ?? null, 'Konto 4654 hat euer_zeile=51');
|
$this->assertEquals('74', $kto['euer_zeile'] ?? null, 'Konto 4654 hat euer_zeile=74');
|
||||||
|
|
||||||
// Einnahme buchen (Referenz für Gewinnberechnung)
|
// Einnahme buchen (Referenz für Gewinnberechnung)
|
||||||
$belegEin = \Steuerkram\Models\Beleg::create([
|
$belegEin = \Steuerkram\Models\Beleg::create([
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue