Fix: Migrationen EÜR-Zeilen, USt-Konten und Test 15 nachliefern
This commit is contained in:
parent
57b538bd3a
commit
a1eb573e25
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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
* in total_ausgaben oder gewinn einfließen, sondern erscheinen nur im
|
||||
* Buchungen auf Konten mit euer_zeile='74' (Anlage EÜR Zeile 74:
|
||||
* "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'.
|
||||
*/
|
||||
class NichtAbzugsfaehigEuerTest extends TestCase
|
||||
|
|
@ -26,11 +27,11 @@ class NichtAbzugsfaehigEuerTest extends TestCase
|
|||
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(
|
||||
"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)
|
||||
$belegEin = \Steuerkram\Models\Beleg::create([
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue