Open simonschaufi opened 10 years ago
Das ist
schon richtig so, in der Stundenerfassung ist es üblich die
Zeiten nur in Stunden anzugeben mit Kommastellen und nicht in
Stunden und Minuten.
Es ist sonst rechnerisch viel zu kompliziert. Beispiel: 9,75 h
= 9 h : 45 min 9,75 h + 0,5 h = 10,25 = simple Rechnung
Am 09.07.2014 01:14, schrieb Simon
Schaufelberger:
Ich habe das System gefunden und bin sehr begeistert davon.
Allerdings werden teilweise Daten unterschiedlich erfasst /
angezeigt.
In der Übersicht für den Benutzer zum Beispiel erscheint in der
"Std" Spalte: "9.83"
Es gibt keine 83 Minuten, man erkennt hier, dass das auf 100
bezogen ist, müsste aber auf 60 bezogen sein. Damit kann ich
mehr anfangen.
Ebenso auch links bei Monatssaldo: "-4.74 Std." und bestimmt
noch an vielen anderen Stellen...
—
Reply to this email directly or view
it on GitHub.
Bitte seien Sie doch so lieb und übernehmen nicht den kompletten Emailtext mit in die Antwort. Danke.
Das mag wohl bei 9.75 noch einfach sein aber bei 9.83 kann ich das nicht mehr so einfach im Kopf in Minuten umrechnen. Ich fände es gut, wenn man die Ansicht konfigurieren könnte, in welchem Format man die Zeit angezeigt bekommen möchte. ich habe noch kein System gesehen, das die Zeiten auf 100 bezogen ausgibt.
Kann ich mal in die Liste aufnehmen, da ich auch schon Anfragen diesbezüglich bekam. Viele Grüsse M. H.
ich kann das auch gerne selbst mal versuchen, ich bin auch php entwickler ;) Ich wollte nur mal fragen, was Sie dazu denken. PS: die Grüße können Sie gerne weg lassen :D Das ist ein Bugtracking und keine Geschäftsemail.
TIPP, falls Sie das implementieren möchten: .\include\Settings\settings.txt (neue Zeile mit Titel # wert # Info) wert sollte aufgerufen werden können mit : $_settings->_array[$zeile][0-2] .\modules\sites_admin\admin04_settings_edit.php (zum editieren dort wo es passt HTML einfügen) Speichern: sollte automatisch funktionieren (die anzahl der Zeilen $y wird per POST in der Class settings abgefragt) (Später würde ich gerne die Settings mal in einem JSON speichern zudem die Settings mit Bootstrap - Menues übersichtlicher gestalten, kam aber noch nicht dazu, das fertig zu stellen)
Für die Anzeige da wird intern halt alles dezimal berechnet und es sind viele Stellen die geändert werden müssten, ich denke da lohnt sich der Aufwad kaum, aber anbei die Dateien die mir gerade einfallen im Ordner modules: .\sites_year: sites04_year.php user04_year.php .\sites_user: user04_timetable.php admin04_timetable.php
Dann für den Ausdruck des pdf .\iinclude\time_funktion_pdf.php
Ich hoffe ich habe alles berücksichtigt.
Guten
Abend,
In der Industrie ist es üblich die Zeiten mit Komma darzustellen
und zu berechnen. Dies ist zum rechnen viel einfacher, vor allem
wenn mal was nachkontrolliert werden muss oder die Zeiten in ein
anderes System übertragen werden müssen. Jeden den ich frage,
der mit Arbeitszeiten auf dem Job im Personalwesen zu tun hat
bestätigt mir, dass es üblich ist die Zeiten in Stunden mit den
Minuten Dezimal darzustellen.
Googel mal nach Industrieminuten ;-) Von daher finde ich ist
Smalltime perfekt wie es ist!
Bitte ja nichts an den Berechnungen ändern! Wenn dann wie
Vorgeschlagen die Darstellung ändern, das ist einfach zu
realisieren und als erweiterung fänd ich es grundsätzlich gut..
Ich würde da jetz aber nicht nur über die Settings gehen zum
umschalten, sondern auch ein Separater Link im Menü oder so, wo
man die Anzeige switchen kann. So kann schnell hin und her
geswitcht werden jenachdem wie ich die Anzeige gerade möchte
oder brauche.
LG
Am 09.07.2014 19:54, schrieb Simon
Schaufelberger:
Bitte seien Sie doch so lieb und übernehmen nicht den
kompletten Emailtext mit in die Antwort. Danke.
Das mag wohl bei 9.75 noch einfach sein aber bei 9.83 kann ich
das nicht mehr so einfach im Kopf in Minuten umrechnen. Ich
fände es gut, wenn man die Ansicht konfigurieren könnte, in
welchem Format man die Zeit angezeigt bekommen möchte. ich habe
noch kein System gesehen, das die Zeiten auf 100 bezogen
ausgibt.
—
Reply to this email directly or view
it on GitHub.
Hallo zusammen,
ich habe Smalltime auch jemandem vorgeschlagen (ohne es gross zu kennen), auch dort wurde ziemlich schnell bemerkt, dass die Stunden auf 100 und nicht 60 bezogen sind. Eine Option, dies umzustellen wäre sicherlich angenehm...
Gruss
Guten Tag Herr Beck. In der Industrie wird in dezimal gerechnet. Ich habe schon mehrere Anfragen diesbezüglich und habe das in meine ToDo eingefügt. Viele Grüsse M.Heizmann
Am 25. Februar 2015 01:18:54 schrieb Peter Beck notifications@github.com:
Hallo zusammen,
ich habe Smalltime auch jemandem vorgeschlagen (ohne es gross zu kennen), auch dort wurde ziemlich schnell bemerkt, dass die Stunden auf 100 und nicht 60 bezogen sind. Eine Option, dies umzustellen wäre sicherlich angenehm...
Gruss
Reply to this email directly or view it on GitHub: https://github.com/itmastergmbh/SmallTime/issues/11#issuecomment-75880282
ich habe das problem für unsere installation wie folgt gelöst:
in include/time_funktionen.php eine funktion hinzugefügt:
function convertFloatToHHMM($in){
$hh=(int) $in;
$mm=fmod((float)$in, 1);
$format='%02d:%02d';
if (($hh<0)&&($mm<0)){
$mm=abs($mm);
}
if (($hh>=0)&&($mm<0)){
$mm=abs($mm);
$format='-%02d:%02d';
}
return sprintf($format, $hh, $mm * 60);
}
und dann an stellen an denen ich HH:MM anstatt der Dezimalwerte sehen will diese Funktion ein die Ausgabe eingebunden
z.B. in modules/sites_user/user04_timetable.php
//-------------------------------------------------------------------------
// Fusszeile mit den Summen
//-------------------------------------------------------------------------
?>
<tr>
<td COLSPAN=3 class=td_background_info width=70 align=center></td>
<td COLSPAN=<?php echo $t; ?> class=td_background_info width=550 align = left>Sollstunden :
<?php
echo convertFloatToHHMM($_monat->_SummeSollProMonat); ?> Std.</td>
<td class=td_background_info width=40 align=center><?php if($_monat->_SummeWorkProMonat>0) echo convertFloatToHHMM($_monat->_SummeWorkProMonat) ?></td>
<td class=td_background_info width=40 align=center><?php
if($_monat->_SummeSaldoProMonat>0){
echo convertFloatToHHMM(number_format($_monat->_SummeSaldoProMonat, 2, '.', ''));
}elseif($_monat->_SummeSaldoProMonat<0){
echo "<font class=minus>". convertFloatToHHMM(number_format($_monat->_SummeSaldoProMonat, 2, '.', '')). "</font>";
}
?>
</td>
<td COLSPAN=<?php echo $a; ?> class=td_background_info width=50 align=center><?php echo convertFloatToHHMM($_monat->_SummeAbsenzProMonat)?></td>
<?php
if($_settings->_array[18][1]) echo "<td class=td_background_info width=16 align=center> </td>";
?>
</tr>
In modules/sites_user/user03_stat.php zB.:
Zeile 60:
echo "<td class=td_background_tag align=left>".convertFloatToHHMM(number_format($_jahr->_saldo_t, 2, '.', ''))." Std.</td>";
Zeile 87:
echo "<td class=td_background_tag align=left>".convertFloatToHHMM(number_format($_monat->_SummeSaldoProMonat, 2, '.', ''))." Std.</td>";
Gleiches in einigen Zeilen in /modules/sites_year/user04_year.php
Leider zeigt es mir in der /modules/sites_year/user04_year.php also in der Jahresübersicht keine Minuswerte an, dort steht dann 00:00 :(
Habs hinbekommen, muss zB. lauten
. convertFloatToHHMM(number_format($anzeige[$year]['Summ']['Saldo'], 2, '.', '')) .
Falls Interesse besteht kann ich gerne meine veränderten Files zur Verfügung stellen. Es ist dort durchgehend kein Dezimal mehr, sondern nur mehr Std:Min. mit der oben genannten Funktion.
Die commits der letzten Monate/Jahre habe ich manuell ebenfalls mit rein genommen. Ein Update ist ja nicht mehr möglich, da es alles retour auf Dezimal bringen würde!
Hallo DKeppi,
ich interessiere mich für die geänderten Files. Ich würde mich freuen. MfG
Falls Interesse besteht kann ich gerne meine veränderten Files zur Verfügung stellen. Es ist dort durchgehend kein Dezimal mehr, sondern nur mehr Std:Min. mit der oben genannten Funktion.
Die commits der letzten Monate/Jahre habe ich manuell ebenfalls mit rein genommen. Ein Update ist ja nicht mehr möglich, da es alles retour auf Dezimal bringen würde!
Hier meine Files! Habe vorab noch meine User aus dem Data Verzeichnis entfernt und den Admin auf Standard gestellt.
Perfekt, vielen Dank!!
Hallo zusammen,
ich habe die modifizierten Dateien von DKeppi verwendet, nur habe ich da leider ein kleines Rechenproblem.
Ich hänge mal zwei Screenshots ran, um das genauer zu erläutern. Mal rechnet es richtig und mal wird mir immer eine Minute abgezogen. Habt ihr vielleicht eine Idee woran das liegen könnte?
Gruss ChrisSka
Hab dieselben Probleme mit der Rundung, mal ist es 1 Minute zu viel, mal eine zu wenig.
Zudem habe ich soeben bemerkt, dass ich bei den auszuzahlenden Stunden nur ganze Stunden angeben kann. Um meine Jahressumme auf 0 zu bringen, müsste ich aber zB. 80:10 eingeben können, oder zumindest 80,16 Klappt leider beides nicht!
Versuchen Sie anstelle eines Kommas ein Punkt bei Dezimal
Am 30. November 2021 08:18:57 schrieb DKeppi @.***>:
Hab dieselben Probleme mit der Rundung, mal ist es 1 Minute zu viel, mal eine zu wenig. Zudem habe ich soeben bemerkt, dass ich bei den auszuzahlenden Stunden nur ganze Stunden angeben kann. Um meine Jahressumme auf 0 zu bringen, müsste ich aber zB. 80:10 eingeben können, oder zumindest 80,16 Klappt leider beides nicht!— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
Perfekt :)
Hallo zusammen,
Hat vielleicht jemand das Problem mit dem Rechenproblem irgendwie lösen können?
Auch ein Zusatz in der Function convertFloatToHHMM bei dem Befehl $mm=abs($mm); Ein + 0.01 hat leider keine Auswirkung -> $mm=abs($mm) + 0.01;
Bei den Anzeigen (z.B. admin04.timetable.php : Zeile 89 usw.) echo GetTimeHM(number_format($_monat->_MonatsArray[$z][13], 2, '.', ''));
// Funktion für die Darstellung in h:m (z.B. in include/time_funktionen.php integrieren) function GetTimeHM($time) { $time = explode('.', $time); $min = round($time[1] / 100 * 60, 0); $min = str_pad($min, 2, "0", STR_PAD_LEFT); return $time[0] . ':' . $min; }
// Tooggle Darstellung per GET? // ---------------------------------------------------------------------------- // TOGGLE -> Time Dezimal or h:min // ---------------------------------------------------------------------------- if (!isset($_COOKIE["time"])) { setcookie("time", 0, time() + (3600 * 1000)); }
if (isset($_GET['ToggleTime'])) { if ($_COOKIE["time"] == 0) { setcookie("time", 1, time() + (3600 1000)); return 1; } else { setcookie("time", 0, time() + (3600 1000)); return 0; } }
Sollte eigentlich dann funktionieren und könnte per GET umgeschaltet werden.
Hallo,
habe die "function GetTimeHM($time)" in time_funktionen.php integriert und die Einträge erstmal in der admin04_timetable.php abgeändert. Die Summe pro Tag passen erstmal. Aber das Monatsgesamtergebnis ganz unten in der Tabelle sollte eigentlich die Summe der obigen Werte ermitteln, da passt das Ergebnis leider nicht. Da kann ich nicht die Funktion GetTimeHM verwenden, da ich dort nicht in einem Array bin. Oder liege ich da irgendwie falsch?
Wie integriere ich die Funktion GetTimeHM, wenn er nicht in einem Array ist? z.B bei der PDF-Ausgabe. Dort wird er momentan mit -> convertFloatToHHMM(number_format($_jahr->_saldo_t)); ausgegeben und somit falsch wie vorher.
Den zweiten Teil mit dem Toggle hab ich nicht ganz verstanden? Muss der auch in die time_funktionen.php mit rein oder wo muss der hin bzw brauch in den für die HH:MM Anzeige überhaupt?
Salü, vermutlich meinst Du in der Datei Zeile 146 oder 148. Diese zeigt ja die Zeit in z.B. 5.75 an: number_format($_monat->_SummeSaldoProMonat, 2, '.', ''); und 5:45 sollte augegeben werden mit (sollte es auf jeden Fall, ohne das geprüft zu haben) GetTimeHM(number_format($_monat->_SummeSaldoProMonat, 2, '.', ''));
Die Saldi und Berechnungen sind hier in der Klasse: $_monat) PDF das selbe: $_jahr->_saldo_t da ist das ganze in dezimal
Toggle = Schalter zwischen 0 und 1 also, wenn 0 dann setzte 1, wenn 1 dann setze 0 $_GET['ToggleTime'] = GET Variable vorhanden, Schalter umlegen z.B. admin.php?ToggleTime oder admin.php?xxxxxxxxxxxxxxxxxxxxxxxx&ToggleTime
Jetzt könnte die Funktion dann noch erweitert werden, wenn das Cookie 1 ist, dass die Zeit in h:min angezeigt wird function GetTimeHM($time) { if ($_COOKIE["time"]) { $time = explode('.', $time); $min = round($time[1] / 100 * 60, 0); $min = str_pad($min, 2, "0", STR_PAD_LEFT); return $time[0] . ':' . $min; } else { return $time; } }
In etwa in der Art, aber es ist an vielen Stellen umzuprogrammieren. Leider auch Texte in der Klasse vom Monat (z.B. Ferienberechnungen usw. ) Ist sehr viel Arbeit, viel Vergnügen. Ich würde mir überlegen nur die Monatsansicht, also die Tageszeiten umzusetzen ;)
Guten Abend zusammen,
habe es mir leichter gemacht und die neue Function "GetTimeHM" in die vorhandene Function "convertFloatToHHMM($in)" eingefügt und das alte rausgelöscht. Somit spare ich mir die Änderungen in den Dateien. Funktioniert alles soweit.
Habe nur noch ein paar Kleinigkeiten wo ich einfach nicht weiter komme.
1. Update Gebe gerade auch ältere Monate ein. Dort werden die Monate entweder richtig berechnet oder es weicht immer so eine Minute ab, entweder runter oder hoch. Habe mir auch die Timestamps konvertiert, um zusehen ob da irgendwelche Daten nicht stimmen, hatte eher an Sekunden gedacht, sodass hier hoch- bzw. abgerundet wird. Aber leider nicht der Fall. Ändere ich eine Stempelzeit um eine Minute. so sollte es ja dann passen, aber NEIN, es werden dann 2 Minuten abgezogen --> Gesamtzeit liegt bei 160:31 ; nach Änderung um eine Minute steht dann 160:29
2. Update Habe in der Function den letzten Parameter auf 1 gesetzt. ->$min = round($time[1] / 100 * 60, 1); Dann erhalte ich nach der Zeitangabe eine Kommastelle, z.B. 8:55.2 Daher entstehen wahrscheinlich diese Rechenfehler. Diese Kommastellen erhalte ich nur bei Stempelzeiten die nicht im 15min Schritten liegen (xx:15,xx:30,xx:45,xx:00) Beispielstempelzeit xx:50 -> x:25.2; xx:55 -> x:34.8
So stehts bei mir in der time_funktionen_pdf.php: $pdf->Cell(72,5,"Sollstunden: " . convertFloatToHHMM($_monat->_SummeSollProMonat) . " Std.",1,'','L', '1'); $pdf->Cell(13,5,convertFloatToHHMM($_monat->_SummeWorkProMonat),1,'','C', '1'); $pdf->Cell(13,5,convertFloatToHHMM($_monat->_SummeSaldoProMonat),1,'','C', '1'); $pdf->Cell(14,5,convertFloatToHHMM($_monat->_SummeAbsenzProMonat),1,'','C', '1');
Füge ich hier bei Sollstunden das number_format ein, erhalte ich eine weisse Seite. Bei den anderen 3, wird der Zellhintergrund weiss und die Zeit aufgerundet, also 3:30 wird zu 4:00
Echt komisch. Mit PDF erstellen in PHP bin ich leider noch nicht so erfahren, wie man sieht ;-)
Ich habe das System gefunden und bin sehr begeistert davon. Allerdings werden teilweise Daten unterschiedlich erfasst / angezeigt.
In der Übersicht für den Benutzer zum Beispiel erscheint in der "Std" Spalte: "9.83"
Es gibt keine 83 Minuten, man erkennt hier, dass das auf 100 bezogen ist, müsste aber auf 60 bezogen sein. Damit kann ich mehr anfangen.
Ebenso auch links bei Monatssaldo: "-4.74 Std." und bestimmt noch an vielen anderen Stellen...