Skip to content
Patrick Eißler edited this page Dec 23, 2025 · 6 revisions

Nachfolgende Beschreibung gibt eine Übersicht zur App. Die Beschreibungen sind teilweise sehr technisch. Die Detailseiten orientieren sich stärker an die Endnutzer.

Zweck und Hauptfunktionen

Die Time Capture App ist eine Erweiterung für ERPNext/Frappe HRMS zur präzisen Erfassung von Arbeitszeiten auf Projektebene und Aufgabenbasis. Die App ermöglicht es Unternehmen, Arbeitszeiten systematisch zu erfassen, zu validieren und mit anderen ERPNext-Modulen zu verknüpfen.

Kernfunktionen

  • Zeiterfassung: Erfassung von Arbeitszeiten mit Check-in/Check-out für Mitarbeiter
  • Projektbuchung: Zuordnung von Arbeitszeiten zu Projekten (Project) und Aufgaben (Task)
  • Automatische Pausenberechnung: Berücksichtigung von gesetzlich vorgeschriebenen Pflichtpausen
  • Integration mit Attendance: Automatische Erstellung und Synchronisation von Attendance-Dokumenten
  • Timesheet-Erstellung: Automatische Generierung von Timesheet-Einträgen bei Submission
  • Flexitime-Verwaltung: Berechnung und Verwaltung von Überstunden und Gleitzeit
  • Erinnerungssystem: Optionale Erinnerungen für ungebuchte Zeiterfassungen

Abhängigkeiten

Die App setzt auf folgenden ERPNext/Frappe-Modulen auf:

  • erpnext: Basis-Funktionalität für Projekte, Tasks und Timesheets
  • hrms: Human Resource Management System für Employee, Attendance und Leave-Verwaltung

Zentrale DocTypes

Haupt-DocTypes

  • Time Capture: Haupt-DocType für die Zeiterfassung von Mitarbeitern

    • Enthält Check-in/Check-out Zeiten
    • Verwaltet Pausen (Pflichtpausen und angegebene Pausen)
    • Bucht Arbeitszeiten auf Projekte und Tasks über Child Table Time Capture Log
    • Ist submittable und erstellt bei Submission automatisch Attendance und Timesheet-Einträge
  • Freelancer Time Capture: Separate Zeiterfassung für Freelancer

    • Ähnliche Funktionalität wie Time Capture, jedoch für Benutzer mit "Freelancer"-Rolle
    • Erstellt ebenfalls Timesheet-Einträge bei Submission
  • Time Capture Log: Child Table von Time Capture

    • Speichert einzelne Zeitbuchungen auf Projekte und Tasks
    • Enthält Duration, Project, Task und Note
  • Time Capture Settings: Single-DocType für App-Konfiguration

    • Einstellungen für Erinnerungen (Frequenz, Wochentag, etc.)
    • Standard Activity Types für Timesheets
    • Konfiguration von Pflichtpausen
  • Employee Expected Working Hours: Child Table von Employee

    • Speichert erwartete tägliche Arbeitsstunden mit Gültigkeitsdatum (valid_from)
    • Wird für Flexitime-Berechnungen verwendet
  • Flexitime Correction: Manuelle Korrekturen des Flexitime-Kontos

    • Ermöglicht manuelle Anpassungen (z.B. Startsaldo bei Systemwechsel)
    • Wird in Flexitime-Berechnungen berücksichtigt
  • Mandatory Break: Child Table von Time Capture Settings

    • Definiert Schwellenwerte für Pflichtpausen basierend auf Arbeitsdauer
    • Separate Konfiguration für Volljährige und Minderjährige

Erweiterte Standard-DocTypes

Die App erweitert folgende Standard-DocTypes mit Custom Fields:

  • Attendance:

    • Expected Working Hours: Erwartete Arbeitsstunden
    • Flexitime: Berechnete Überstunden/Gleitzeit
    • Time Capture: Verknüpfung zur ursprünglichen Zeiterfassung
  • Employee:

    • Expected Working Hours: Child Table mit erwarteten Arbeitszeiten
    • Leave Policy: Verknüpfung zur Leave Policy
  • Timesheet:

    • Time Capture: Verknüpfung zur ursprünglichen Zeiterfassung
    • Freelancer Time Capture: Verknüpfung für Freelancer
    • Freelancer User: Benutzer für Freelancer-Zeiterfassungen
  • Task:

    • Is Active: Aktivitätsstatus
    • Hourly Billed: Flag für abrechenbare Stunden

Architektur-Übersicht

Datenfluss

Employee
  └── Expected Working Hours (Child Table)
       └── Wird verwendet für Flexitime-Berechnung

Time Capture (täglich automatisch erstellt)
  ├── Time Capture Log (Child Table)
  │    └── Projekt- und Task-Zuordnungen
  └── Bei Submission:
       ├── Attendance (erstellt/aktualisiert)
       │    └── Berechnet: working_hours, expected_working_hours, flexitime
       └── Timesheet (pro Time Capture Log)
            └── Verknüpfung zu Project, Task, Customer

Integration mit Standard-Modulen

  1. HRMS Integration:

    • Employee: Erweiterung um erwartete Arbeitszeiten und Leave Policy
    • Attendance: Automatische Erstellung/Update bei Time Capture Submission
    • Leave Application: Löschung von Time Captures bei Urlaub/Krankheit
  2. Project Management Integration:

    • Project: Zuordnung von Arbeitszeiten
    • Task: Detaillierte Zeitbuchung mit Budget-Validierung
    • Timesheet: Automatische Erstellung bei Submission
  3. Scheduler Integration:

    • Tägliche Erstellung von Time Capture-Dokumenten für aktive Mitarbeiter
    • Tägliche Erstellung von "Absent"-Attendance für ungebuchte Time Captures
    • Konfigurierbare Erinnerungen für ungebuchte Zeiterfassungen

Hooks und Events

Die App nutzt folgende Frappe-Hooks:

  • doc_events:

    • Attendance: on_change, on_cancel für Metriken-Berechnung und Time Capture-Verwaltung
    • Employee: before_validate, validate für Expected Working Hours-Validierung
  • scheduler_events:

    • daily: Automatische Erstellung von Time Captures, Absent-Attendances und Erinnerungen
  • after_install: Setup von Custom Fields und Property Setters

Berechtigungen

  • Employee-Rolle: Kann eigene Time Captures erstellen, bearbeiten und submitten
  • System Manager / Accountant: Können Time Captures ohne Deadline-Beschränkung submitten
  • Leave Approver: Kann Time Captures der zugewiesenen Mitarbeiter ohne Deadline-Beschränkung submitten

Technische Komponenten

Python-Module

  • time_capture_controller.py: Zentrale Validierungs- und Erstellungslogik
  • scripts/attendance.py: Attendance-Integration und Metriken-Berechnung
  • scripts/employee.py: Employee-Validierung und Expected Working Hours-Verwaltung
  • scripts/summary_utils.py: Flexitime-Berechnungen und Summary-Funktionen

JavaScript-Module

  • public/js/utils.js: Summary-Dialog für Leave und Working Time
  • public/js/employee.js: Employee-spezifische Frontend-Funktionen

Templates

  • templates/time_capture_reminder.html: E-Mail-Template für Erinnerungen

Berichte

Die App stellt folgende Berichte zur Verfügung:

  • Working Time Summary: Übersicht über Arbeitszeiten und Flexitime
  • Leave and Working Time Summaries: Kombinierte Übersicht von Urlaub und Arbeitszeiten
  • Project Time: Projektbezogene Zeitauswertung
  • Working Time: Detaillierte Arbeitszeitanalyse

Clone this wiki locally