Ich hänge ein bisschen bei dem Layout einer wiederkehrenden Mieteinnahme. Ich habe jeweils eine Tabelle angelegt für Kontakte, Liegenschaften, Wohneinheiten und Aufgaben. Jede Liegenschaft gehören Wohneinheiten und darin befinden sich Mieter. In den Wohneinheiten sind Preis hinterlegt für Warm und Kaltmiete. Die Mieteingänge haben wir bis dato in seperaten Excel Tabellen (Für jede Liegenschaftt eine) nach Monaten getrennt festgehalten. Also im Januar jede Tabelle geöffnet und geprüft ob die Mieteinnahme da ist. War diese nicht da, wurde das Feld rot markiert, wurde zuviel gezahlt wurde das Feld Gelb markiert und ich hatte ein Plus für die Nebenkosten. Wurde zu wenig bezahlt wurde das Feld gelb markiert und ich hatte ein Minus bei der Kaltmiete.
Ich versuche das nun mit SeaTable “einfacher” zu bauen, scheitere aber an einer “Idee” des eigentlichen Aufbaus. Ich habe für die Liegenschaft eigene “Views” gebaut nach Strasse getrennt, das hätte ich gerne als Basis für die Mieteinnahme damit ich dies nicht neu Tippen muss. Also am liebsten beim anlegen einer Wohneinheit (dort ist die Mieteinnahme drin) soll es sofort auch eine Möglichkeit der Mieteinnahme geben. Aber halt eben für jeden Monat separat. Aber wie bekomme ich bei “zu wenig”, “zuviel” oder “gar nicht” einen Überblick? Am liebsten hätte ich für jede Mieteineinheit gefühlt 3 Knöpfe mit “zu wenig” oder “zuviel” oder “gar nicht”, dann wird geguckt in welchem Monat ich mich befinde und automatisch wird eine neue Spalte oder Zeile eingeführt mit dem jeweiligem Monat. Problem: Dann kann ich aber von Hand die Summe nicht eintragen. In der Regel stimmen die Summen ja, das es nicht stimmt ist die Ausnahme.
Ich hoffe ich habe mich verständlich ausgedrückt, ist etwas wild ich weiss
danke für die ausführliche Beschreibung – das hilft sehr! Dein Grundaufbau mit den verlinkten Tabellen ist schon richtig gut. Das Problem liegt im Aufbau der Mieteinnahmen-Tabelle. Du denkst noch in Excel-Logik (pro Monat eine Spalte). In SeaTable funktioniert das besser mit einer Zeile pro Wohnung pro Monat.
Empfohlener Aufbau der Tabelle “Mieteinnahmen”
Spalte
Typ
Erklärung
Wohnung
Link → Wohneinheiten
Bereits vorhanden
Monat
Datum (oder Zahl 1-12)
Der Abrechnungsmonat
Jahr
Zahl
Bereits vorhanden
Soll-KM
Formel/Link-Formel
Kaltmiete aus Wohneinheit ziehen
Soll-NK
Formel/Link-Formel
Nebenkosten aus Wohneinheit ziehen
Soll-Gesamt
Formel
{Soll-KM} + {Soll-NK}
Ist-Betrag
Zahl
Hier trägst du den tatsächlichen Zahlungseingang ein
Damit bekommst du automatisch den Status pro Zahlung – ohne Buttons.
Farbliche Hervorhebung
Nutze bedingte Zeilenfarben in der Ansicht (Ansicht → Farbe → Regeln):
Grün: Status = “OK”
Rot: Status = “Nicht bezahlt”
Gelb: Status = “Zu viel” oder “Zu wenig”
Das gibt dir exakt den Überblick, den du vorher mit den farbigen Excel-Zellen hattest.
Monatliche Einträge automatisch anlegen
Damit du nicht jeden Monat manuell Zeilen anlegen musst: Erstelle eine Automation (Automationen → Periodisch ausführen → Monatlich), die per “Zeile hinzufügen”-Aktion für jede aktive Wohneinheit eine neue Zeile in der Mieteinnahmen-Tabelle erzeugt.
wow… das war mal ein absoluter Gamechanger für mich. Das hat mein Problem ziemlich auf den Punkt getroffen. Konnte es gestern Abend noch umsetzen und es sieht jetzt fast genauso aus wie ich es hier benötige. Die Automation muss ich noch in Ruhe testen aber das bekomme ich bestimmt hin.
Die Automation macht nicht ganz das was ich möchte oder ich hänge wieder.
Ich hab nun alle Daten soweit eingetragen, das funktioniert auch wunderbar.
Jetzt habe ich die Automation gebaut, wenn ein neuer Monat beginnt dann soll er eine neue Zeile einfügen.
Das tut er auch. Eine neue Zeile wird hinzugefügt.
Diese ist natürlich leer und es ist natürlich nur eine Zeile.
Klar kann ich das jetzt ca. 90 mal kopieren und bekomme 90 neue Zeilen. Ich hätte allerdings den Wunsch, dass er die View “Alle Mieten” im Endeffekt einmal kopiert (Ich kann eine Zeile so auch kopieren mit allen Inhalten), die Spalte “Ist-Mieteingang” leer macht und das jeden Monat aufs neue.
Bekomme ich das mit einer Automation hin oder muss ich mir etwas Skripten (das wird dann eine neue Herausforderung für mich )
In diesem Fall ist eine Automation mit 90 × “Lege eine Zeile an” nicht das Richtige. Wenn du die Zeilen manuell anlegen würdest, was würdest du dann tun?
Mit diesem Wissen werde ich dir helfen, ein kleines Python oder Javascript Script zu schreiben.
Aktuell sind das 89 Zeilen (Mieteingänge) mit den entsprechenden Verlinkungen zu den anderen Tabellen. Pro Monat.
Diese kann ich einfach markieren und dann auf duplizieren klicken, dann werden mir diese 89 Zeilen dupliziert.
Danach gehe ich hin und leere die Spalte “IST-Mieteingang”. Das mache ich dann jeden Monat, weil ich ja jeden Monat einen neuen Start benötige. Den neuen Monat erkennt SeaTable durch die Spalte Abrechnungsmonat wo einfach nur das aktuelle Datum angelegt wird (wie oben beschrieben).
Folgende Herausforderung ist allerdings noch da:
Sollte ich weitere Zeilen hinzufügen, sind es nicht mehr 89 sondern entsprechend mehr Eingänge. Sinnig wäre es, immer den aktuellen Monat zu kopieren und die Spalte “IST-Mieteingang” zu löschen. Dann kann man sich sicher sein, dass immer die richtige Anzahl an Zeilen kopiert wird.
Hier ein Python-Script, das du als Automation (zeitgesteuert, am 1. jeden Monats) einrichten kannst.
Was das Script macht:
Es holt alle Wohneinheiten aus der Tabelle “Wohneinheiten”
Für jede Wohneinheit wird eine neue Zeile in “Mieteinnahmen” erstellt
Der Abrechnungsmonat wird auf den aktuellen Monat gesetzt
IST-Mieteingang bleibt leer
Die Verknüpfung zur jeweiligen Wohnung wird gesetzt
Vorteil: Das Script ist unabhängig vom Vormonat. Neue Wohneinheiten (bzw. ALLE Wohneinheiten) werden automatisch berücksichtigt, ohne dass man manuell Zeilen kopieren muss. Wenn du Wohneinheiten z.B. auf Basis Ihrer Status oder sowas ausschließen willst, müsste man das noch einbauen.
Voraussetzung:
Tabelle “Wohneinheiten” mit allen Wohnungen
Tabelle “Mieteinnahmen” mit den Spalten: Wohnung (Verknüpfung → Wohneinheiten), Abrechnungsmonat (Datum), IST-Mieteingang (Zahl)
Soll-Werte (Kaltmiete, Nebenkosten etc.) sollten über Lookup-Formeln aus der verknüpften Wohneinheit kommen, dann werden sie automatisch befüllt
from seatable_api import Base, context
from datetime import datetime
base = Base(context.api_token, context.server_url)
base.auth()
TABLE = 'Mieteinnahmen'
LINK_COLUMN = 'Wohnung'
OTHER_TABLE = 'Wohneinheiten'
current_month = datetime.today().strftime('%Y-%m-01')
link_id = base.get_column_link_id(TABLE, LINK_COLUMN)
wohnungen = base.query(f"SELECT _id, Name FROM `{OTHER_TABLE}`")
if not wohnungen:
print("Keine Wohneinheiten gefunden.")
else:
for wohnung in wohnungen:
new_row = {
'Abrechnungsmonat': current_month,
'IST-Mieteingang': None,
}
result = base.append_row(TABLE, new_row)
new_row_id = result['_id']
base.add_link(
link_id, TABLE, OTHER_TABLE,
new_row_id, wohnung['_id']
)
print(f"{len(wohnungen)} Zeilen für {current_month} erstellt.")
Die Tabellen- und Spaltennamen musst du ggf. an deine Base anpassen.
Hilft dir das weiter?
Bitte versuch zu verstehen, was wir hier machen. Es bringt nichts, wenn du einfach nur ein Script kopierst und dann es dann nicht mehr funktioniert, wenn du auch nur einen Spaltennamen änderst und du dir dann nicht helfen kannst. Unsere Dokumentation zu Python-Skripten unter Python hilft dir vielleicht weiter.
ja, das hat mir massiv geholfen. In der Tat musste ich “Name” in “Geschoss” ändern aber dann läuft es und hat mir einen guten Einstieg in Python gegeben.
Ich hole mir die Eingänge über n8n aus einem anderen Programm, jetzt geht das sogar schon automatisch…
Ich liebe Seatable und jetzt beschäftige ich mich mal intensiver mit Python.
Vielen lieben Dank nochmals, Ihr habt mich einen ordentlichen Schritt weiter gebracht.