ADD: added einnahmen, ausgaben and bilanz

This commit is contained in:
hwinkel
2026-03-24 14:48:32 +01:00
parent 1bbeaf2c34
commit 6d8c4b615f
32 changed files with 2982 additions and 10 deletions
@@ -0,0 +1,18 @@
-- CreateTable
CREATE TABLE `betriebsausgaben` (
`id` VARCHAR(191) NOT NULL,
`companyId` VARCHAR(191) NOT NULL,
`kategorie` ENUM('WAREN_ROHSTOFFE', 'GERINGWERTIGE_WIRTSCHAFTSGUETER', 'ABSCHREIBUNGEN', 'MIETE', 'STROM_WASSER', 'TELEKOMMUNIKATION', 'FORTBILDUNG_MESSEN', 'BEITRAEGE', 'VERSICHERUNGEN', 'WERBEKOSTEN', 'ZINSEN', 'REISEKOSTEN', 'REPARATUREN_INSTANDHALTUNG', 'BUEROBEDARF', 'REPRAESENTATIONSKOSTEN', 'SONSTIGER_BETRIEBSBEDARF', 'NEBENKOSTEN_GELDVERKEHR') NOT NULL,
`betrag` DECIMAL(10, 2) NOT NULL,
`datum` DATETIME(3) NOT NULL,
`beschreibung` TEXT NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL,
INDEX `betriebsausgaben_companyId_idx`(`companyId`),
INDEX `betriebsausgaben_datum_idx`(`datum`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `betriebsausgaben` ADD CONSTRAINT `betriebsausgaben_companyId_fkey` FOREIGN KEY (`companyId`) REFERENCES `companies`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,18 @@
-- CreateTable
CREATE TABLE `betriebseinnahmen` (
`id` VARCHAR(191) NOT NULL,
`companyId` VARCHAR(191) NOT NULL,
`kategorie` ENUM('PRIVATEINLAGEN', 'DARLEHEN', 'STEUERERSTATTUNGEN', 'VERSICHERUNGSERSTATTUNGEN', 'ZINSERTRAEGE', 'VERMIETUNG_VERPACHTUNG', 'VERAEUSSERUNGSERLOES', 'EIGENVERBRAUCH', 'SONSTIGE_EINNAHMEN') NOT NULL,
`betrag` DECIMAL(10, 2) NOT NULL,
`datum` DATETIME(3) NOT NULL,
`beschreibung` TEXT NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL,
INDEX `betriebseinnahmen_companyId_idx`(`companyId`),
INDEX `betriebseinnahmen_datum_idx`(`datum`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `betriebseinnahmen` ADD CONSTRAINT `betriebseinnahmen_companyId_fkey` FOREIGN KEY (`companyId`) REFERENCES `companies`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,20 @@
-- CreateTable
CREATE TABLE `anlagegueter` (
`id` VARCHAR(191) NOT NULL,
`companyId` VARCHAR(191) NOT NULL,
`bezeichnung` VARCHAR(191) NOT NULL,
`anschaffungsdatum` DATETIME(3) NOT NULL,
`anschaffungskosten` DECIMAL(10, 2) NOT NULL,
`nutzungsdauerJahre` INTEGER NOT NULL,
`restwert` DECIMAL(10, 2) NOT NULL DEFAULT 0,
`beschreibung` TEXT NULL,
`aktiv` BOOLEAN NOT NULL DEFAULT true,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL,
INDEX `anlagegueter_companyId_idx`(`companyId`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `anlagegueter` ADD CONSTRAINT `anlagegueter_companyId_fkey` FOREIGN KEY (`companyId`) REFERENCES `companies`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE `betriebseinnahmen` MODIFY `kategorie` ENUM('FUSSPFLEGE', 'PRIVATEINLAGEN', 'DARLEHEN', 'STEUERERSTATTUNGEN', 'VERSICHERUNGSERSTATTUNGEN', 'ZINSERTRAEGE', 'VERMIETUNG_VERPACHTUNG', 'VERAEUSSERUNGSERLOES', 'EIGENVERBRAUCH', 'SONSTIGE_EINNAHMEN') NOT NULL;
+89 -3
View File
@@ -67,9 +67,12 @@ model Company {
archivedAt DateTime?
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
customers Customer[]
invoices Invoice[]
services Service[]
customers Customer[]
invoices Invoice[]
services Service[]
betriebsausgaben Betriebsausgabe[]
betriebseinnahmen Betriebseinnahme[]
anlagegueter Anlagegut[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@ -143,6 +146,89 @@ enum InvoiceStatus {
DELETED
}
enum EinnahmeKategorie {
FUSSPFLEGE
PRIVATEINLAGEN
DARLEHEN
STEUERERSTATTUNGEN
VERSICHERUNGSERSTATTUNGEN
ZINSERTRAEGE
VERMIETUNG_VERPACHTUNG
VERAEUSSERUNGSERLOES
EIGENVERBRAUCH
SONSTIGE_EINNAHMEN
}
model Betriebseinnahme {
id String @id @default(cuid())
companyId String
company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)
kategorie EinnahmeKategorie
betrag Decimal @db.Decimal(10, 2)
datum DateTime
beschreibung String? @db.Text
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([companyId])
@@index([datum])
@@map("betriebseinnahmen")
}
model Anlagegut {
id String @id @default(cuid())
companyId String
company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)
bezeichnung String
anschaffungsdatum DateTime
anschaffungskosten Decimal @db.Decimal(10, 2)
nutzungsdauerJahre Int
restwert Decimal @db.Decimal(10, 2) @default(0)
beschreibung String? @db.Text
aktiv Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([companyId])
@@map("anlagegueter")
}
enum AusgabeKategorie {
WAREN_ROHSTOFFE
GERINGWERTIGE_WIRTSCHAFTSGUETER
ABSCHREIBUNGEN
MIETE
STROM_WASSER
TELEKOMMUNIKATION
FORTBILDUNG_MESSEN
BEITRAEGE
VERSICHERUNGEN
WERBEKOSTEN
ZINSEN
REISEKOSTEN
REPARATUREN_INSTANDHALTUNG
BUEROBEDARF
REPRAESENTATIONSKOSTEN
SONSTIGER_BETRIEBSBEDARF
NEBENKOSTEN_GELDVERKEHR
}
model Betriebsausgabe {
id String @id @default(cuid())
companyId String
company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)
kategorie AusgabeKategorie
betrag Decimal @db.Decimal(10, 2)
datum DateTime
beschreibung String? @db.Text
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([companyId])
@@index([datum])
@@map("betriebsausgaben")
}
model InvoiceItem {
id String @id @default(cuid())
invoiceId String