.Net Winforms Tool um Zeiterfassungen (Abwesenheiten) von TimeCard nach GDI oder Clockodo nach GDI zu exportieren
.msi
-Datei von GitHub Releases herunterladen und installieren
Wichtig: Es muss der verschlüsselte Datenbank ConnectionString als Benutzer-Umgebungsvariable COIT_TOOLKIT_DATABASE_CONNECTIONSTRING
zur Verfügung stehen.
Beim Programmstart wird in den GitHub Releases automatisch nach Updates gesucht und diese installiert.
Der Anwender kann abwesenheitstypen auf 3 verschiedene Zustände Mappen:
- Ausgeschlossene Verknüpfung (Wird gar nicht in der Tabelle angezeigt)
- Verknüpfung ohne Export (Wird in der Tabelle angezeigt aber nicht im Export übernommen)
- Verknüpfung mit Export (Wird in der Tabelle angezeigt und landet in der Export Datei)
Je nach Workflow kann man sich verschiedene Konfigurationen vorbereiten und nach Bedarf zwischen ihnen wechseln.
Wenn eine neue Version released werden soll, muss nur ein neuer GitHub Release mit einem Tag im Format x.x.x
erstellt werden.
Das Deployment startet daraufhin in einer GitHub Action durch den gepushten Tag automatisch.
Die .NET Version für den Publish
workflow wird in der global.json
festgelegt und muss in der Zukunft eventuell angepasst werden.
Um die notwendigen Packages aus dem privaten Package-Manager der co-IT aus GitHub zu laden, wird eine eigene nuget.config
benötigt.
- Stelle sicher, dass die GitHub Cli bei dir installiert ist (winget)
- Falls du bisher noch nie eine
nuget.config
anlegen musstest führegh auth login --scopes read:packages
aus und verknüpfge deinen GitHub Account - Lege eine
nuget.config
Datei mit dem folgenden Inhalt an
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="github" value="https://nuget.pkg.github.com/co-IT/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="{Nutzername}" />
<add key="ClearTextPassword" value="{Token}" />
</github>
</packageSourceCredentials>
</configuration>
- Führe
gh api user -q ".login"
aus und ersetze{Nutzername}
in dernuget.config
mit dem Ergebnis - Führe
gh auth token
aus und ersetze{Token}
in dernuget.config
mit dem Ergebnis
In Zukunft, kannst du diese nuget.config
auch für andere Tools und Projekte nutzen, die Zugriff auf den co-IT GitHub package manager benötigen und musst nicht mehr den Schritten von oben folgen
- JSON mit Clodotypen entfernen und dafür direkt abrufen
Hierzu kann man beziehungen Festlegen und für einen gewissen Zeitraum die Daten exportieren.
Ordner:
- config
- Hier liegen Json Konfigurations Dateien um mit den APIs von Clockodo, Timecard und GDI zu kommunizieren
- Configuration
- Hier werden die Konfiguration ins Programm geladen
- Mapping
- Hier werden die Daten zusammengeführt
- Specifications
- UserForms
- Hier liegen die einzelnen WindowsFormsFenster
Für die Abfrage über die API muss man Für Clockodo und Timecard einen API Schlüssel und API Benutzter mitgeben.
die Konfigurationen liegen auf unterschiedlichen pfaden
Clockodo Konfiguration: config/clockodo-settings.json Timecard Konfigurationen: config/timecard-settings.json GDI Konfiguration: config/gdi-settings.json
Clockodo-GDI-Mapping (Verknüpfungen): config/clockodo-mapping-settings.json Timecard-GDI-Mapping (Verknüpfungen): config/timecard-mapping-settings.json
TimeCard:
- Artzbesuch
- Todefall 1.Grad
- Dienstgang
- JAZ
- Istzeit
- Krank
- Pause
- Schule
- Sollzeit
- Urlaub
- Zeitausgleich (nicht nutzen)
- Feiertag
- Eigene Hochzeit
- Kind Krank
- Home Office
- Urlaub Umzug
- Im Haus
- Dienstreise
- Kundenbesuch
- Krank ohne Krankenschein
- Krank mit Krankenschein
- Abwesenheit Teilzeitkraft
Clockodo:
- Normaler Urlaubtag
- Sonderurlaub
- Überstundenabbau
- Krankheit
- Krankheit eines Kindes
- Schule / Weiterbildung
- Mutterschutz
- Home Office -Arbeit außer Haus
- Sonderurlaub
- Krankheit (unbezahlt)
- Krankheit eines Kindes (unbezahlt)
- Quarantäne
- Militär-/ersatzdienst
- eAU Übergangstyp
GDI:
- Kind Krankheit
- Erholungsurlaub
- Sonderurlaub
- Lohnfortzahlung mit AU
- Bescheinigung (mit AAG) krank
- Lohnfortzahlung ohne AU
- Bescheinigung (mit AAG) krank
Benutzt folgende Libraries:
- coIT.Libraries.Clockodo-Old
- coIT.Libraries.Gdi
- coIT.Libraries.TimeCard