Beim Test der Oberflaeche im Browser gefunden:
- addrechnung.tpl fragte die gespeicherte Anrede als $rechnung.anr1 ab
(die Daten heissen anrede1) und gab sie ohne Klammern aus. Beim
Bearbeiten von Angeboten/Briefen erschien deshalb immer die
Standard-Anrede, eine geaenderte ging beim erneuten Speichern verloren.
- |escape innerhalb von {if}-Bedingungen wieder entfernt (dort ohne
Wirkung, gehoert nicht dorthin).
- UTF-8-BOM aus sechs Dateien entfernt; makepdf.php gab es auf jeder
Rechnungsseite vor dem HTML aus.
- makeImageFromPDF() loeschte bei der Aufraeumrunde auch .gitkeep;
Pfade fuer convert per escapeshellarg().
- constants.php: Instanzname auch unter Windows (getcwd() mit
Backslashes) korrekt; KV_CONFIG_PATH als Config-Pfad fuer lokale Tests.
Im Browser getestet (lokaler PHP-Webserver, migrierte Testdatenbank):
Login mit Sonderzeichen-Passwort, Entwurf automatisch speichern und
laden, Rechnung mit Umlauten/Anfuehrungszeichen/HTML im Artikelnamen und
Komma-Betraegen speichern, Anzeige als PDF (Original und Kopie),
Kundensuche nach Dokumenten mit Umlaut, Artikelnamen escaped, Storno,
Kopie auf andere Adresse, Umschlag, Angebot mit eigener Anrede anlegen und
wieder bearbeiten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
355 lines
16 KiB
PHP
355 lines
16 KiB
PHP
<?php
|
|
|
|
function generateSalt() {
|
|
|
|
$c = explode(" ", ". / a A b B c C d D e E f F g G h H i I j J k K l L m M n N o O p P q Q r R s S t T u U v V w W x X y Y z Z 0 1 2 3 4 5 6 7 8 9");
|
|
$ks = array_rand($c, 16);
|
|
|
|
$s = "";
|
|
foreach($ks as $k) { $s .= $c[$k]; }
|
|
|
|
return $s;
|
|
|
|
}
|
|
|
|
function createUser($dbconn,$nick, $pass, $vname, $nname, $mail, $rights,$telpriv=0,$telmob=0, $weekhours=0, $sahours=0, $rfid="",$vacationdays=0)
|
|
{
|
|
$salt = "$6$rounds=5000$".generateSalt()."$";
|
|
$pass = crypt($pass,$salt);
|
|
mysqli_query($dbconn, "INSERT INTO user SET vname = '".mysql_escape_string($vname)."',
|
|
nname = '".mysql_escape_string($nname)."',
|
|
nick = '".mysql_escape_string($nick)."',
|
|
pass = '".mysql_escape_string($pass)."',
|
|
mail = '".mysql_escape_string($mail)."',
|
|
tel_mobil = '".mysql_escape_string($telmob)."',
|
|
tel_priv = '".mysql_escape_string($telpriv)."',
|
|
salt = '".mysql_escape_string($salt)."',
|
|
weekhours = '".mysql_escape_string($weekhours)."',
|
|
sahours = '".mysql_escape_string($sahours)."',
|
|
rfid = '".mysql_escape_string($rfid)."',
|
|
vacationdays = '".mysql_escape_string($vacationdays)."',
|
|
rights = '".mysql_escape_string($rights)."'") or $err=error("Benutzer konnte nicht angelegt werden: <br />".formaterror(mysqli_error($dbconn)));
|
|
if(!$err)
|
|
{
|
|
message("Benutzer erfolgreich angelegt");
|
|
return mysqli_insert_id($dbconn);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function urlaub_remaining($dbconn, $userid, $startyear = 9999)
|
|
{
|
|
if($startyear > Date("Y")){
|
|
$startyear = Date("Y");
|
|
}
|
|
if($startyear == Date("Y")){
|
|
$date = "termtime > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y')";
|
|
}
|
|
else{
|
|
$date = "termtime > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y') AND termtime < STR_TO_DATE('01.01.".Date("Y")."','%d.%m.%Y')";
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT sahours, vacationdays, YEAR(timelog_start), MONTH(timelog_start),DAY(timelog_start) FROM user WHERE id = '".$userid."'") or $err=error("Urlaubstage nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$sa = $res[0];
|
|
$days = $res[1];
|
|
$startY = $res[2];
|
|
$startM = $res[3];
|
|
$startD = $res[4];
|
|
if($startY == Date("Y")){
|
|
if($startD != 1){ //1/12 Urlaubsanspruch für jeden vollen Monat
|
|
$startM++;
|
|
}
|
|
$days = $days/12*(13-$startM);
|
|
}
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) > 1 AND DAYOFWEEK(termtime) < 7 AND ".$date." AND typ = 0 AND user = '".$userid."'") or $err=error("Urlaubstage an Wochentagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$return = $return+1;
|
|
}
|
|
|
|
if($sa > 0){
|
|
//Samstage: (später evtl nur 1/2 Urlaubstag)
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) = 7 AND ".$date." AND typ = 0 AND user = '".$userid."'") or $err=error("Urlaubstage an Samstagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$return = $return+1;
|
|
}
|
|
}
|
|
//include altlasten
|
|
if($startyear == Date("Y")){
|
|
$qry = mysqli_query($dbconn, "SELECT YEAR(last_generated) FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
if($res[0] < Date("Y")){
|
|
generate_altlasten($dbconn,$userid);
|
|
}
|
|
}
|
|
else{
|
|
$qry = mysqli_query($dbconn, "INSERT INTO altlasten SET ma_id = '".$userid."'") or $err=error("Altlasten nicht angelegt <br />".formaterror(mysqli_error($dbconn)));
|
|
$qry = mysqli_query($dbconn, "SELECT YEAR(last_generated) FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
if($res[0] < date("Y")){
|
|
generate_altlasten($dbconn,$userid);
|
|
}
|
|
}
|
|
}
|
|
$qry = mysqli_query($dbconn, "SELECT vacationdays FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$days = $days + $res[0];
|
|
}
|
|
}
|
|
|
|
$return = $days - $return;
|
|
if($err)
|
|
{
|
|
$return = 0;
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
function getWorkingDays($startDate, $endDate){
|
|
$begin=strtotime($startDate);
|
|
$end=strtotime($endDate);
|
|
if($begin>$end){
|
|
echo "startdate is in the future! <br />";
|
|
return 0;
|
|
}
|
|
else{
|
|
$no_days=0;
|
|
$weekends=0;
|
|
while($begin<=$end){
|
|
if(feiertag_bayern(idate("d",$begin), idate("m",$begin), idate("Y",$begin)) == ""){
|
|
$no_days++; // no of days in the given interval
|
|
$what_day=date("w",$begin);
|
|
if($what_day==0) { // 6 weekend days
|
|
$sundays++;
|
|
}
|
|
else if($what_day==6) { // weekend days
|
|
$saturdays++;
|
|
}
|
|
}
|
|
else
|
|
$feiertage++;
|
|
$begin+=86400; // +1 day
|
|
};
|
|
|
|
$working_days=$no_days-$saturdays-$sundays;
|
|
return array($working_days,$saturdays,$feiertage);
|
|
}
|
|
}
|
|
|
|
function generate_altlasten($dbconn,$userid){
|
|
$qry = mysqli_query($dbconn, "SELECT YEAR(last_generated), vacationdays, hours FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
if($res[0] < 2013){
|
|
$res[0] = 2013;
|
|
}
|
|
$vacdays = $res[1];
|
|
$altstd = $res[2];
|
|
echo "überstd...";
|
|
$altstd += ueberstunden($dbconn, $userid, $res[0]);
|
|
echo "urlaub...";
|
|
$vacdays += urlaub_remaining($dbconn, $userid, $res[0]);
|
|
echo "insert";
|
|
$qry = mysqli_query($dbconn, "UPDATE altlasten SET last_generated = STR_TO_DATE('01.01.".Date("Y")."','%d.%m.%Y'), vacationdays = ".$vacdays.", hours = ".$altstd."") or $err=error("Altlasten nicht geändert <br />".formaterror(mysqli_error($dbconn)));
|
|
}
|
|
}
|
|
|
|
function ueberstunden($dbconn, $userid, $startyear = 9999)
|
|
{
|
|
if($startyear > Date("Y")){
|
|
$startyear = Date("Y");
|
|
}
|
|
if($startyear == Date("Y")){
|
|
$enddate = "DATE_SUB(NOW(),INTERVAL 1 DAY)";
|
|
$date=date_create();
|
|
date_sub($date,date_interval_create_from_date_string("1 days"));
|
|
$workdaysend = date_format($date,"Y-m-d");
|
|
}
|
|
else{
|
|
$enddate = "STR_TO_DATE('01.01.".Date("Y")."','%d.%m.%Y')";
|
|
$workdaysend = Date("Y-m-d",strtotime("01.01.".Date("Y")));
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT weekhours, sahours, vacationdays, DATE_FORMAT(timelog_start,'%Y-%m-%d'), YEAR(timelog_Start) FROM user WHERE id = '".$userid."'") or $err=error("Urlaubstage nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$weekhours = $res[0];
|
|
$sahours = $res[1];
|
|
$vacdays = $res[2];
|
|
$logStart = $res[3];
|
|
if($res[4] < $startyear){
|
|
$logStart = $startyear."-01-01";
|
|
}
|
|
}
|
|
|
|
|
|
//Urlaubstage vergangen:
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) > 1 AND DAYOFWEEK(termtime) < 7 AND typ = 0 AND user = '".$userid."' AND termtime < ".$enddate." AND termtime > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y')") or $err=error("Urlaubstage an Wochentagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$urlaub = $urlaub + 1;
|
|
}
|
|
|
|
if($sahours > 0){
|
|
//Samstage: (später evtl nur 1/2 Urlaubstag)
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) = 7 AND typ = 0 AND user = '".$userid."' AND termtime < ".$enddate." AND termtime > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y')") or $err=error("Urlaubstage an Samstagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$saurlaub = $saurlaub + 1;
|
|
}
|
|
}
|
|
$krank = 0;
|
|
$sakrank = 0;
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) > 1 AND DAYOFWEEK(termtime) < 7 AND typ = 5 AND user = '".$userid."' AND termtime < ".$enddate." AND termtime > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y')") or $err=error("Urlaubstage an Wochentagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$krank = $krank + 1;
|
|
}
|
|
|
|
if($sahours > 0){
|
|
//Samstage: (später evtl nur 1/2 Urlaubstag)
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) = 7 AND typ = 5 AND user = '".$userid."' AND termtime < ".$enddate." AND termtime > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y')") or $err=error("Urlaubstage an Samstagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$sakrank = $sakrank + 1;
|
|
}
|
|
}
|
|
|
|
$caldays = getWorkingDays($logStart, $workdaysend);
|
|
$caldays[0] = $caldays[0] - $urlaub - $krank;
|
|
$caldays[1] = $caldays[1] - $saurlaub - $sakrank;
|
|
$sollstunden = $caldays[0] * ($weekhours/5);
|
|
//echo $userid.": ".$sollstunden."<br />";
|
|
if($sahours > 0){
|
|
$sollstunden = $sollstunden + $caldays[1] * ($sahours);
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT SUM(floor(TIME_TO_SEC(SUBTIME(TIMEDIFF(gehen,kommen),MAKETIME(FLOOR(pause_mins/60), pause_mins % 60, 0)))/60)) AS iststunden FROM zeiten WHERE ma_id = '".$userid."' AND gehen < ".$enddate." AND gehen > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y') AND TIME(kommen) >= '07:30:00' GROUP BY ma_id ") or $err=error("Zeiten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$iststunden = $res[0]/60;
|
|
}
|
|
else
|
|
$return = 0;
|
|
$qry = mysqli_query($dbconn, "SELECT SUM(floor(TIME_TO_SEC(ADDTIME(TIMEDIFF(STR_TO_DATE(CONCAT(DATE(kommen), ' ', MAKETIME(7,30,0)), '%Y-%m-%d %H:%i:%s'),gehen),MAKETIME(FLOOR(pause_mins/60), pause_mins % 60, 0)))/60)) AS iststunden FROM zeiten WHERE ma_id = '".$userid."' AND gehen < ".$enddate." AND gehen > STR_TO_DATE('01.01.".$startyear."','%d.%m.%Y') AND TIME(kommen) < '07:30:00' GROUP BY ma_id ") or $err=error("Zeiten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
|
|
$iststunden -= $res[0]/60;
|
|
}
|
|
|
|
if($err)
|
|
{
|
|
$return = 0;
|
|
}
|
|
//include altlasten when calculating current year
|
|
if($startyear == Date("Y")){
|
|
$qry = mysqli_query($dbconn, "SELECT YEAR(last_generated) FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
if($res[0] < Date("Y")){
|
|
generate_altlasten($dbconn,$userid);
|
|
}
|
|
}
|
|
else{
|
|
$qry = mysqli_query($dbconn, "INSERT INTO altlasten SET ma_id = '".$userid."'") or $err=error("Altlasten nicht angelegt <br />".formaterror(mysqli_error($dbconn)));
|
|
$qry = mysqli_query($dbconn, "SELECT YEAR(last_generated) FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
if($res[0] < date("Y")){
|
|
generate_altlasten($dbconn,$userid);
|
|
}
|
|
}
|
|
}
|
|
$qry = mysqli_query($dbconn, "SELECT hours FROM altlasten WHERE ma_id = '".$userid."'") or $err=error("Altlasten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$iststunden = $iststunden + $res[0];
|
|
}
|
|
}
|
|
|
|
|
|
return $iststunden - $sollstunden;
|
|
}
|
|
|
|
function ueberstunden_month($dbconn, $userid, $month, $year)
|
|
{
|
|
|
|
$enddate = "NOW()";
|
|
$workdaysend = Date("Y-m-d");
|
|
$enddate = "DATE_SUB(NOW(),INTERVAL 1 DAY)";
|
|
$date=date_create();
|
|
date_sub($date,date_interval_create_from_date_string("1 days"));
|
|
$workdaysend = date_format($date,"Y-m-d");
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT weekhours, sahours, vacationdays FROM user WHERE id = '".$userid."'") or $err=error(">Userbedingungen <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$weekhours = $res[0];
|
|
$sahours = $res[1];
|
|
$vacdays = $res[2];
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) > 1 AND DAYOFWEEK(termtime) < 7 AND typ = 0 AND user = '".$userid."' AND MONTH(termtime) = '".$month."' AND YEAR(termtime) = '".$year."' AND DAY(termtime) <= DAY(".$enddate.")") or $err=error("Urlaubstage an Wochentagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$urlaub = $urlaub + 1;
|
|
}
|
|
|
|
if($sa > 0){
|
|
//Samstage: (später evtl nur 1/2 Urlaubstag)
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) = 7 AND typ = 0 AND user = '".$userid."' AND MONTH(termtime) = '".$month."' AND YEAR(termtime) = '".$year."'") or $err=error("Urlaubstage an Samstagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$saurlaub = $saurlaub + 1;
|
|
}
|
|
}
|
|
|
|
$krank = 0;
|
|
$sakrank = 0;
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) > 1 AND DAYOFWEEK(termtime) < 7 AND typ = 5 AND user = '".$userid."' AND MONTH(termtime) = '".$month."' AND YEAR(termtime) = '".$year."' AND DAY(termtime) <= DAY(".$enddate.")") or $err=error("Urlaubstage an Wochentagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$krank = $krank + 1;
|
|
}
|
|
|
|
if($sa > 0){
|
|
//Samstage: (später evtl nur 1/2 Urlaubstag)
|
|
$qry = mysqli_query($dbconn, "SELECT DATE_FORMAT(termtime,'%d.%m.%Y') FROM termin WHERE DAYOFWEEK(termtime) = 7 AND typ = 5 AND user = '".$userid."' AND MONTH(termtime) = '".$month."' AND YEAR(termtime) = '".$year."'") or $err=error("Urlaubstage an Samstagen nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
while($res = mysqli_fetch_array($qry)){
|
|
if(feiertag_bayern(substr($res[0],0,2), substr($res[0],3,2),substr($res[0],6,4)) == "")
|
|
$sakrank = $sakrank + 1;
|
|
}
|
|
}
|
|
|
|
if($month == date("m") and $year == date("Y")){
|
|
$endday = date("d")-1;
|
|
}
|
|
else{
|
|
$endday = date("t",strtotime($year."-".$month."-".date("t",strtotime($year."-".$month."-01"))));
|
|
}
|
|
$caldays = getWorkingDays($year."-".$month."-01", $year."-".$month."-".$endday);
|
|
$caldays[0] = $caldays[0] - $urlaub - $krank;
|
|
$caldays[1] = $caldays[1] - $saurlaub - $sakrank;
|
|
|
|
$sollstunden = $caldays[0] * ($weekhours/5);
|
|
if($sa > 0){
|
|
$sollstunden = $sollstunden + $caldays[1] * ($sahours);
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT SUM(floor(TIME_TO_SEC(SUBTIME(TIMEDIFF(gehen,kommen),MAKETIME(FLOOR(pause_mins/60), pause_mins % 60, 0)))/60)) AS iststunden FROM zeiten WHERE ma_id = '".$userid."' AND MONTH(gehen) = '".$month."' AND YEAR(gehen) = '".$year."' AND TIME(kommen) >= '07:30:00' GROUP BY ma_id ") or $err=error("Zeiten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$iststunden = $res[0]/60;
|
|
}
|
|
else
|
|
$return = 0;
|
|
$qry = mysqli_query($dbconn, "SELECT SUM(floor(TIME_TO_SEC(SUBTIME(TIMEDIFF(gehen,STR_TO_DATE(CONCAT(DATE(gehen), ' ', MAKETIME(7,30,0)), '%Y-%m-%d %H:%i:%s')),MAKETIME(FLOOR(pause_mins/60), pause_mins % 60, 0)))/60)) AS iststunden FROM zeiten WHERE ma_id = '".$userid."' AND MONTH(gehen) = '".$month."' AND YEAR(gehen) = '".$year."' AND TIME(kommen) < '07:30:00' GROUP BY ma_id ") or $err=error("Zeiten nicht ermittelbar <br />".formaterror(mysqli_error($dbconn)));
|
|
if($res = mysqli_fetch_array($qry)){
|
|
$iststunden += $res[0]/60;
|
|
}
|
|
if($err)
|
|
{
|
|
$return = 0;
|
|
}
|
|
|
|
return $iststunden - $sollstunden;
|
|
}
|
|
|
|
|
|
?>
|