Sebastian Walz 860d31cee1
Tohu vaBohu
2023-04-21 00:22:52 +02:00

302 lines
14 KiB
Nix

{ common, core, double, ... }:
let
inherit(common) Account Section;
inherit(core) debug time;
Level
= {
Kleinst = 0;
Klein = 1;
Mittel = 2;
Gross = 3;
};
in
{
level ? Level.Kleinst,
method ? "Umsatz",
...
}:
[
# Aktiva nach § 266 Abs. 2 HGB
(
Section "Aktiva" "Aktiva"
[
(
if level >= Level.Klein
then
Section "A" "Anlagevermögen"
[
(
if level >= Level.Mittel
then
Section "I" "Immaterielle Vermögensgegenstände"
[
(Account "1" { title = "Selbst geschaffene gewerbliche Schutzrechte und ähnliche Rechte und Werte"; })
(Account "2" { title = "Entgeltlich erworbene Konzessionen, gewerbliche Schutzrechte und ähnliche Rechte und Werte sowie Lizenzen an solchen Rechten und Werten"; })
(Account "3" { title = "Geschäfts- oder Firmenwert"; })
(Account "4" { title = "Geleistete Anzahlungen"; })
]
else
Account "I" { title = "Immaterielle Vermögensgegenstände"; }
)
(
if level >= Level.Mittel
then
Section "II" "Sachanlagen"
[
(Account "1" { title = "Grundstücke, grundstücksgleiche Rechte und Bauten einschließlich der Bauten auf fremden Grundstücken"; })
(Account "2" { title = "Technische Anlagen und Maschinen"; })
(Account "3" { title = "Andere Anlagen, Betriebs- und Geschäftsausstattung"; })
(Account "4" { title = "Geleistete Anzahlungen und Anlagen im Bau"; })
]
else
Account "II" { title = "Sachanlagen"; }
)
(
if level >= Level.Mittel
then
Section "III" "Finanzanlagen"
[
(Account "1" { title = "Anteile an verbundenen Unternehmen"; })
(Account "2" { title = "Ausleihungen an verbundene Unternehmen"; })
(Account "3" { title = "Beteiligungen"; })
(Account "4" { title = "Ausleihungen an Unternehmen, mit denen ein Beteiligungsverhältnis besteht"; })
(Account "5" { title = "Wertpapiere des Anlagevermögens"; })
(Account "6" { title = "Sonstige Ausleihungen"; })
]
else
Account "III" { title = "Finanzanlagen"; }
)
]
else
Account "A" { title = "Anlagevermögen"; }
)
(
if level >= Level.Klein
then
Section "B" "Umlaufvermögen"
[
(
if level >= Level.Mittel
then
Section "I" "Vorräte"
[
(Account "1" { title = "Roh-, Hilfs- und Betriebsstoffe"; })
(Account "2" { title = "Unfertige Erzeugnisse, unfertige Leistungen"; })
(Account "3" { title = "Fertige Erzeugnisse und Waren"; })
(Account "4" { title = "Geleistete Anzahlungen"; })
]
else
Account "I" { title = "Vorräte"; }
)
(
if level >= Level.Mittel
then
Section "II" "Forderungen"
[
(Account "1" { title = "Forderungen aus Lieferungen und Leistungen"; })
(Account "2" { title = "Forderungen gegen verbundene Unternehmen"; })
(Account "3" { title = "Forderungen gegen Unternehmen, mit denen ein Beteiligungsverhältnis besteht"; })
(
if level >= Level.Gross
then
Section "4" "Sonstige Vermögensgegenstände"
[
(Account "1" { title = "Abziehbare Vorsteuer"; })
]
else
Account "4" { title = "Sonstige Vermögensgegenstände"; }
)
]
else
Account "II" { title = "Forderungen"; }
)
(
if level >= Level.Mittel
then
Section "III" "Wertpapiere"
[
(Account "1" { title = "Anteile an verbundenen Unternehmen"; })
(Account "2" { title = "Sonstige Wertpapiere"; })
]
else
Account "III" { title = "Wertpapiere"; }
)
(
if level >= Level.Gross
then
Section "IV" "Sonstiges Umlaufvermögen"
[
(Account "1" { title = "Kassenbestand"; })
(Account "2" { title = "Bundesbankguthaben"; })
(Account "3" { title = "Bank"; })
(Account "4" { title = "Schecks"; })
]
else
Account "IV" { title = "Sonstiges Umlaufvermögen"; }
)
]
else
Account "B" { title = "Umlaufvermögen"; }
)
(Account "C" { title = "Rechnungsabgrenzungsposten"; })
(Account "D" { title = "Aktive latente Steuern"; })
(Account "E" { title = "Aktiver Unterschiedsbetrag aus der Vermögensverrechnung"; })
]
)
# Passiva nach § 266 Abs. 3 HGB
(
Section "Passiva" "Passiva"
[
(
if level >= Level.Klein
then
Section "A" "Eigenkapital"
[
(Account "I" { title = "Gezeichnetes Kapital"; })
(Account "II" { title = "Kapitalrücklage"; })
(
if level >= Level.Mittel
then
Section "III" "Gewinnrücklagen"
[
(Account "1" { title = "Gesetzliche Rücklage"; })
(Account "2" { title = "Rücklage für Anteile an einem herrschenden oder mehrheitlich beteiligten Unternehmen"; })
(Account "3" { title = "Satzungsmäßige Rücklagen"; })
(Account "4" { title = "Andere Gewinnrücklagen"; })
]
else
Account "III" { title = "Gewinnrücklagen"; }
)
(Account "IV" { title = "Gewinn-/Verlustvortrag"; })
(Account "V" { title = "Jahresüberschuß/-fehlbetrag"; })
]
else
Account "A" { title = "Eigenkapital"; }
)
(
if level >= Level.Mittel
then
Section "B" "Rückstellungen"
[
(Account "1" { title = "Rückstellungen für Pensionen und ähnliche Verpflichtungen"; })
(Account "2" { title = "Steuerrückstellungen"; })
(Account "3" { title = "Sonstige Rückstellungen"; })
]
else
Account "B" { title = "Rückstellungen"; }
)
(
if level >= Level.Mittel
then
Section "C" "Verbindlichkeiten"
[
(Account "1" { title = "Anleihen davon konvertibel"; })
(Account "2" { title = "Verbindlichkeiten gegenüber Kreditinstituten"; })
(Account "3" { title = "Erhaltene Anzahlungen auf Bestellungen"; })
(Account "4" { title = "Verbindlichkeiten aus Lieferungen und Leistungen"; })
(Account "5" { title = "Verbindlichkeiten aus der Annahme gezogener Wechsel und der Ausstellung eigener Wechsel"; })
(Account "6" { title = "Verbindlichkeiten gegenüber verbundenen Unternehmen"; })
(Account "7" { title = "Verbindlichkeiten gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht"; })
(
if level >= Level.Gross
then
Section "8" "Sonstige Verbindlichkeiten, davon aus Steuern, davon im Rahmen der sozialen Sicherheit"
[
(Account "1" { title = "Umsatzsteuer"; })
]
else
Account "8" { title = "Sonstige Verbindlichkeiten, davon aus Steuern, davon im Rahmen der sozialen Sicherheit"; }
)
]
else
Account "C" { title = "Verbindlichkeiten"; }
)
(Account "D" { title = "Rechnungsabgrenzungsposten"; })
(Account "E" { title = "Passive latente Steuern"; })
]
)
# Gewinn- und Verlustrechnung nach § 275 Abs. 5 HGB
(
Section "GuV" "Gewinn- und Verlustrechnung"
(
if level == Level.Kleinst
then
[
(Account "1" { title = "Umsatzerlöse"; })
(Account "2" { title = "Sonstige Erträge"; })
(Account "3" { title = "Materialaufwand"; })
(Account "4" { title = "Personalaufwand"; })
(Account "5" { title = "Abschreibungen"; })
(Account "6" { title = "Sonstige Aufwendungen"; })
(Account "7" { title = "Steuern"; })
]
else if method == "Umsatz"
then
[
]
else if method == "Gesamt"
then
[
]
else
debug.panic "GuV"
''
GuV kann entweder für eine Kleinstkapitalgesellschaften (§ 267a HGB) nach § 275 Abs. 5,
nach § 275 Abs. 2 im Gesamtkostenverfahren (method=Gesamt) oder
nach § 275 Abs. 2 Umsatzkostenverfahren (method=Umsatz) erstellt werden!
''
)
)
]
/*
events
= {
balance#: { ... } -> ~Transaction
= { ... } @ accounts:
{
dateTime = 0;
credit = { "Passiva-A.I" = betrag; };
debit = { "Aktiva-B.IV.3" = betrag; };
description = "Jemand zahlt seinen*ihren Anteil ein";
};
formatAccountNames#: { ... } -> ...
= { ... }:
{
balance = "Bestandskonten";
assets = "Aktive Konten";
liabilities = "Passive Konten";
outcome = "Erfolgskonten";
revenues = "Ertragskonten";
expenses = "Aufwandskonten";
};
formatBalanceTitle
= { name, dateTime, ... }:
"Bilanz von ${name} am ${time.formatDate dateTime "deu"}";
formatBalanceNames
= { ... }:
{
credit = "Haben";
debit = "Soll";
total = "Gesamt";
difference = "Saldo";
};
formatOutcomeTitle
= { name, from, till, ... }:
"Gewinn- und Verlustrechnung von ${name} zwischen ${time.formatDate from "deu"} und ${time.formatDate till "deu"}";
formatOutcomeTotal
= { ... }:
"Jahresüberschuss/-fehlbetrag";
filterSection
= { level, ... }:
level <= 0;
initialTransaction
= { dateTime, ... }:
{ description = "Vorjahresbilanz ${time.formatDate dateTime "deu"}"; };
};
*/