_
toggle menu eXmatrikulationsamt.de
online: 552 gäste
Themen Layout: [Standard] · Linear · Outline Thema abonnieren | Thema versenden | Thema drucken
post 30 Sep 2011, 19:29
avatar
parse error
*********

Punkte: 13746
seit: 27.05.2003

da ich gerade mal wieder viel zuviel zeit mit einem kampf gegen word/excel zugebracht hab, würde ich das ganze für die zukunft gern ein wenig automatisieren und hab mir überlegt, ob ich das nicht mit latex bzw. ein bißchen bash scripting und dann mit latex bewerkstelligen kann. ich stell mir das folgendermaßen vor:

es geht darum, eine zeitabrechnung zu machen. anfangs habe ich eine csv-datei, in der pro zeile ein datum, eine startzeit und eine endzeit jeweils im format hh:mm:ss, sowie das projekt und der milestone drin steht, sortiert nach datum.
aus den zeiten muss eine dauer berechnet werden. daraus jeweils eine gesamtzeit pro milestone und projekt, und dann die gesamtzeit über alle projekte.
das ganze muss in eine tabelle geschrieben und aus der gesamtzeit der stundenlohn berechnet und in ein rechnungsschreiben eingetragen werden. am ende sollte ein pdf rauskommen, in dem auf die erste seite das rechnungsschreiben mit rechnungswert ist, und die folgenden seiten die tabelle mit den nach projekten und milestones sortierten zeiten und dauer.

wie könnte man denn an die sache rangehen, fragte ich erst mich und jetzt euch...
ProfilPM
AntwortenZitierenTOP
post 30 Sep 2011, 19:42
avatar
dLikP
*******

Punkte: 1497
seit: 06.10.2006

Ich würd das Einlesen und die Ausgabe trennen. Für den Zwischenspeicher bietet sich SQLite an, da baut man gleich noch ein besseres "Archiv" mit auf, als mit CSV-Dateien.

Ein Parser der das File liest und die Einträge in eine SQLite Datenbank speichert. Alle nötigen Ausgaben sollten sich mit recht simplen SQL-Abfragen generieren lassen, da brauchst du vermutlich überhaupt keine Berechnungslogik mehr in den Tools (speziell Datumsrechnung kann ja schmerzhaft sein, mit SQL ein Traum). Ein anderes Script kann dir dann die nötigen Tabular-Umgebungen oder von mir aus auch das komplette Latex-File erzeugen.

Datenbankstruktur bei deiner Beschreibung mit 3 Tabellen:

1. Projekte (id, Projektname, ... (was noch wichtig ist))
2. Milestones (id, projektid, Milestonename, ... (whatever))
3. Zeit (id, projektid, milestoneid, datum, start, ende, .., (whatever))

Wobei ich hier statt Datum und einer Uhrzeit für Start/Ende eindach zweimal Datetime für Start und Ende nehmen würde. Ist dann auch kompatibler, wenn man mal Mitternacht durcharbeitet.

Und statt bash wäre Python meine Wahl, aber das ist Geschmackssache. Da alle Logik in der Datenbank steckt, würde bash genauso gehen.


--------------------
flickr
Und wenn sie kommt, fährt sie an uns vorbei
-RaT-
ProfilPM
AntwortenZitierenTOP
post 30 Sep 2011, 20:12
avatar
Diplom
********

Punkte: 1811
seit: 16.05.2007

Ich würde das einfach in Python machen und irgend eine der templating engines nutzen um am Ende das Texfile zu bauen.
Zeitrechnerei ist mit timedelta kein Problem, csv einlesen ist auch trivial. Als Templating engine dann evetuell http://jinja.pocoo.org/ und fertig.
ProfilPM
AntwortenZitierenTOP
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: