mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
CSV Import Error Handling
- Leerzeilen ignorieren - Prüfung der Pflichtfelder Zeitsperre - Nicht Zeitaufzeichnungsrelevante Zeitsperren parallell zu Zeitaufzeichnungen möglich
This commit is contained in:
@@ -361,30 +361,35 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
}
|
||||
|
||||
//Prüfen auf vorhandene Zeitaufzeichnung
|
||||
if (isset($_POST['bisdatum']) && isset($_POST['vondatum']) && $zaufzeichnung->existsZeitaufzeichnung($uid, $_POST['vondatum'], $_POST['bisdatum']))
|
||||
if (isset($_POST['bisdatum']) && isset($_POST['vondatum'])
|
||||
&& $zaufzeichnung->existsZeitaufzeichnung($uid, $_POST['vondatum'], $_POST['bisdatum'])
|
||||
// Nur Zeitaufzeichnungsrelevante Typen sollen das speichern blockieren
|
||||
&& in_array($_POST['zeitsperretyp_kurzbz'], zeitsperre::getBlockierendeZeitsperren()))
|
||||
{
|
||||
$error = true;
|
||||
$error_msg .= $p->t('zeitsperre/zeitaufzeichnungVorhanden');
|
||||
}
|
||||
|
||||
//Prüfen auf vorhandene Zeitsperre
|
||||
if (isset($_POST['bisdatum']) && isset($_POST['vondatum']))
|
||||
if (isset($_POST['bisdatum']) && isset($_POST['vondatum'])
|
||||
&& in_array($_POST['zeitsperretyp_kurzbz'], zeitsperre::getBlockierendeZeitsperren()))
|
||||
{
|
||||
$von = $_POST['vondatum'];
|
||||
$von2 = new DateTime($von);
|
||||
$von2 = $von2->format('Y-m-d');
|
||||
$zeitsperre = new zeitsperre();
|
||||
|
||||
if ($zeitsperre->getSperreByDate($uid, $von2, null))
|
||||
if ($zeitsperre->getSperreByDate($uid, $von2, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN))
|
||||
{
|
||||
foreach ($zeitsperre->result as $z)
|
||||
{
|
||||
if ($z->zeitsperretyp_kurzbz)
|
||||
{
|
||||
$typ = $z->zeitsperretyp_kurzbz;
|
||||
}
|
||||
$error = true;
|
||||
$error_msg .= $p->t('zeitsperre/zeitsperreEingetragen', [$von, $typ]);
|
||||
// Beim editieren nicht mit dem eigenen Eintrag kollidieren
|
||||
if($_GET['type'] == 'edit_sperre' && $z->zeitsperre_id == $_GET['id'])
|
||||
continue;
|
||||
|
||||
$typ = $z->zeitsperretyp_kurzbz;
|
||||
$error = true;
|
||||
$error_msg .= $p->t('zeitsperre/zeitsperreEingetragen', [$von, $typ]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,38 +47,6 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/zeitaufzeichnung_import_csv.class.php');
|
||||
require_once('../../../include/zeitaufzeichnung_import_post.class.php');
|
||||
|
||||
/*function checkZeitsperren($p, $uid, $day)
|
||||
{
|
||||
$zs = new zeitsperre();
|
||||
$sperreVorhanden = false;
|
||||
|
||||
if( !$zs->getSperreByDate($uid, $day, null,
|
||||
zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN) )
|
||||
{
|
||||
return array(
|
||||
"status" => false,
|
||||
"msg" => 'Fehler beim Überprüfen der Zeitsperren'
|
||||
);
|
||||
}
|
||||
|
||||
if( count($zs->result) === 0 )
|
||||
{
|
||||
return array(
|
||||
"status" => true,
|
||||
"msg" => ''
|
||||
);
|
||||
} else {
|
||||
$zsdate = new DateTime($day);
|
||||
$zsdate = $zsdate->format('d.m.Y');
|
||||
$msg = $p->t("zeitaufzeichnung/zeitsperreVorhanden",
|
||||
[$zsdate, $zs->result[0]->zeitsperretyp_kurzbz]);
|
||||
return array(
|
||||
"status" => false,
|
||||
"msg" => $msg
|
||||
);
|
||||
}
|
||||
}*/
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
$sprache_obj = new sprache();
|
||||
@@ -157,8 +125,6 @@ else
|
||||
$gesperrt_bis = '2015-08-31';
|
||||
|
||||
$sperrdatum = date('c', strtotime($gesperrt_bis));
|
||||
/*$datumjetzt = strtotime("+5 weeks");
|
||||
$limitdatum = date('c', $datumjetzt);*/
|
||||
|
||||
// Uses urlencode to avoid XSS issues
|
||||
$zeitaufzeichnung_id = urlencode(isset($_GET['zeitaufzeichnung_id'])?$_GET['zeitaufzeichnung_id']:'');
|
||||
@@ -369,7 +335,7 @@ echo '
|
||||
|
||||
ret_uhrzeit = foo(now.getHours());
|
||||
ret_uhrzeit = ret_uhrzeit + ":" + foo(now.getMinutes());
|
||||
|
||||
|
||||
document.getElementById("bis_datum").value=ret_datum;
|
||||
document.getElementById("bis_uhrzeit").value=ret_uhrzeit;
|
||||
}
|
||||
@@ -387,7 +353,7 @@ echo '
|
||||
|
||||
ret_uhrzeit = foo(now.getHours());
|
||||
ret_uhrzeit = ret_uhrzeit + ":" + foo(now.getMinutes());
|
||||
|
||||
|
||||
document.getElementById("von_datum").value=ret_datum;
|
||||
document.getElementById("von_uhrzeit").value=ret_uhrzeit;
|
||||
$("#von_datum").trigger("change");
|
||||
@@ -871,33 +837,9 @@ if($kartennummer != '')
|
||||
|
||||
if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
{
|
||||
#$zeit = new zeitaufzeichnung(); // TODO(chris): make lokal
|
||||
|
||||
// TODO(chris): make lokal
|
||||
/*$projects_of_user = new projekt();
|
||||
$projects= $projects_of_user->getProjekteListForMitarbeiter($user);
|
||||
$project_kurzbz_array = array();*/
|
||||
|
||||
// TODO(chris): make lokal?
|
||||
$projektph_of_user = new projektphase();
|
||||
$projektphasen = $projektph_of_user->getProjectphaseForMitarbeiter($user); // TODO(chris): this seems to be used below
|
||||
/*$projectphasen_kurzbz_array = array();*/
|
||||
$projektphasen = $projektph_of_user->getProjectphaseForMitarbeiter($user);
|
||||
|
||||
// TODO(chris): make lokal
|
||||
/*foreach($projects as $prjct)
|
||||
{
|
||||
array_push($project_kurzbz_array, (string) $prjct->projekt_kurzbz);
|
||||
}*/
|
||||
// TODO(chris): make lokal
|
||||
/*foreach ($projektphasen as $pp)
|
||||
{
|
||||
array_push($projectphasen_kurzbz_array, (string) $pp->projektphase_id);
|
||||
}*/
|
||||
|
||||
// NOTE(chris): this is the same as projektph_of_user
|
||||
/*$projectphase = new projektphase();*/
|
||||
|
||||
// NOTE(chris): CSV Import
|
||||
if ($_FILES['csv']['error'] == 0 && isset($_POST['import']))
|
||||
{
|
||||
$zeit_csv_import = new zeitaufzeichnung_import_csv($p, $user, $sperrdatum, $_FILES['csv']['tmp_name']);
|
||||
@@ -910,24 +852,25 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
else if (isset($_POST['save']) || isset($_POST['edit']))
|
||||
{
|
||||
$zeit_post_import = new zeitaufzeichnung_import_post($p, $user, isset($_POST['edit']), [
|
||||
'aktivitaet_kurzbz' => $aktivitaet_kurzbz,
|
||||
'beschreibung' => $beschreibung,
|
||||
'bis' => $bis,
|
||||
'aktivitaet_kurzbz' => $aktivitaet_kurzbz,
|
||||
'beschreibung' => $beschreibung,
|
||||
'bis' => $bis,
|
||||
'bis_pause' => $bis_pause,
|
||||
'homeoffice' => $homeoffice,
|
||||
'homeoffice' => $homeoffice,
|
||||
'kunde_uid' => $kunde_uid,
|
||||
'oe_kurzbz_1' => $oe_kurzbz_1,
|
||||
'oe_kurzbz_2' => $oe_kurzbz_2,
|
||||
'projekt_kurzbz' => $projekt_kurzbz,
|
||||
'projektphase_id' => $projektphase_id,
|
||||
'service_id' => $service_id,
|
||||
'von' => $von,
|
||||
'von_pause' => $von_pause,
|
||||
'oe_kurzbz_1' => $oe_kurzbz_1,
|
||||
'oe_kurzbz_2' => $oe_kurzbz_2,
|
||||
'projekt_kurzbz' => $projekt_kurzbz,
|
||||
'projektphase_id' => $projektphase_id,
|
||||
'service_id' => $service_id,
|
||||
'von' => $von,
|
||||
'von_pause' => $von_pause,
|
||||
'zeitaufzeichnung_id' => $zeitaufzeichnung_id,
|
||||
]);
|
||||
$zeit_post_import->import();
|
||||
echo $zeit_post_import->OutputToHTML();
|
||||
if (!$zeit_post_import->hasErrors() && !$zeit_post_import->hasWarnings()) {
|
||||
if (!$zeit_post_import->hasErrors() && !$zeit_post_import->hasWarnings())
|
||||
{
|
||||
// Nach dem Speichern in den neu Modus springen und als Von Zeit
|
||||
// das Ende des letzten Eintrages eintragen
|
||||
$zeitaufzeichnung_id = '';
|
||||
@@ -943,169 +886,9 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
$service_id = '';
|
||||
$kunde_uid = '';
|
||||
}
|
||||
|
||||
/*
|
||||
if(isset($_POST['edit']))
|
||||
{
|
||||
if(!$zeit->load($zeitaufzeichnung_id))
|
||||
die($p->t("global/fehlerBeimLadenDesDatensatzes"));
|
||||
|
||||
$zeit->new = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$zeit->new = true;
|
||||
$zeit->insertamum = date('Y-m-d H:i:s');
|
||||
$zeit->insertvon = $user;
|
||||
}
|
||||
|
||||
$zeit->uid = $user;
|
||||
$zeit->aktivitaet_kurzbz = $aktivitaet_kurzbz;
|
||||
$zeit->start = $datum->formatDatum($von, $format = 'Y-m-d H:i:s');
|
||||
$zeit->ende = $datum->formatDatum($bis, $format = 'Y-m-d H:i:s');
|
||||
$zeit->beschreibung = $beschreibung;
|
||||
$zeit->oe_kurzbz_1 = $oe_kurzbz_1;
|
||||
$zeit->oe_kurzbz_2 = $oe_kurzbz_2;
|
||||
$zeit->updateamum = date('Y-m-d H:i:s');
|
||||
$zeit->updatevon = $user;
|
||||
$zeit->projekt_kurzbz = $projekt_kurzbz;
|
||||
$zeit->projektphase_id = $projektphase_id;
|
||||
$zeit->homeoffice = $homeoffice;
|
||||
$zeit->service_id = $service_id;
|
||||
$zeit->kunde_uid = $kunde_uid;
|
||||
$saveerror = 0;
|
||||
$extractTimeBis = $datum->formatDatum($bis, $format = 'H:i:s');
|
||||
$extractVon = $datum->formatDatum($von, $format = 'Y-m-d');
|
||||
$extractBis = $datum->formatDatum($bis, $format = 'Y-m-d');
|
||||
|
||||
$zscheck = checkZeitsperren($p, $user, $datum->formatDatum($von, $format='Y-m-d'));
|
||||
if( $zscheck['status'] === false ) {
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>' . $p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $zscheck['msg'] . '</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
elseif (!$projects_of_user->checkProjectInCorrectTime($projekt_kurzbz, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d')))
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
elseif ($datum->formatDatum($von, $format='Y-m-d') > $limitdatum || $datum->formatDatum($bis, $format='Y-m-d') > $limitdatum)
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs oder Enddatum zu weit in der Zukunft liegt.</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
elseif (!$projectphase->checkProjectphaseInCorrectTime($projektphase_id, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d')))
|
||||
{
|
||||
echo '<p id="triggerPhasenReset"><span style="color:red" ><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").':
|
||||
Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt.</b></span></p><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
elseif ((abs($von - $bis) > 0 || $extractVon != $extractBis) && $aktivitaet_kurzbz!="DienstreiseMT" && $extractTimeBis != '00:00:00')
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
elseif ($extractTimeBis == '00:00:00')
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Bitte Arbeitszeiten gemäß Arbeitsaufzeichnung Leitfaden tagesgenau abgrenzen: Nur Eingaben von 00:00 bis 23:59 erlaubt!</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
elseif (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit'])))
|
||||
{
|
||||
|
||||
$p_start = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s');
|
||||
$p_end = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s');
|
||||
|
||||
// checken ob Pause innerhalb der Arbeitszeit ist
|
||||
if ($zeit->start > $p_start || $zeit->ende < $p_end)
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Pause außerhalb der Arbeitszeit</b></span><br>';
|
||||
$saveerror = 1;
|
||||
|
||||
}
|
||||
elseif ($p_start > $p_end)
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Pausenzeiten</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Eintrag Arbeit bis zur Pause
|
||||
$zeit->ende = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s');
|
||||
if(!$zeit->save())
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
//Eintrag für die Pause
|
||||
$pause = new zeitaufzeichnung();
|
||||
$pause->new = true;
|
||||
$pause->insertamum = date('Y-m-d H:i:s');
|
||||
$pause->updateamum = date('Y-m-d H:i:s');
|
||||
$pause->updatevon = $user;
|
||||
$pause->insertvon = $user;
|
||||
$pause->uid = $user;
|
||||
$pause->aktivitaet_kurzbz = 'Pause';
|
||||
$pause->homeoffice = $homeoffice;
|
||||
$pause->start = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s');
|
||||
$pause->ende = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s');
|
||||
$pause->beschreibung = '';
|
||||
if(!$pause->save())
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
// Eintrag Arbeit ab der Pause
|
||||
if ($zeit->new == false)
|
||||
{
|
||||
$zeit->new = true;
|
||||
$zeit->insertamum = date('Y-m-d H:i:s');
|
||||
$zeit->insertvon = $user;
|
||||
}
|
||||
|
||||
$zeit->start = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s');
|
||||
$zeit->ende = $datum->formatDatum($bis, $format='Y-m-d H:i:s');
|
||||
if(!$zeit->save())
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'</b></span><br>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (!isset($_POST['genPause']))
|
||||
{
|
||||
if(!$zeit->save())
|
||||
{
|
||||
echo '<span id="triggerPhasenReset" style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'</b></span>';
|
||||
$saveerror = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ($saveerror == 0)
|
||||
{
|
||||
echo '<span style="color:green"><b>'.$p->t("global/datenWurdenGespeichert").'</b></span>';
|
||||
|
||||
// Nach dem Speichern in den neu Modus springen und als Von Zeit
|
||||
// das Ende des letzten Eintrages eintragen
|
||||
$zeitaufzeichnung_id = '';
|
||||
$uid = $zeit->uid;
|
||||
$aktivitaet_kurzbz = '';
|
||||
#$von = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende));
|
||||
#$bis = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende)+3600);
|
||||
$von = date('d.m.Y H:i', $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format = 'Y-m-d H:i:s')));
|
||||
$bis = date('d.m.Y H:i', $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format = 'Y-m-d H:i:s'))+3600);
|
||||
$beschreibung = '';
|
||||
$oe_kurzbz_1 = '';
|
||||
$oe_kurzbz_2 = '';
|
||||
$projekt_kurzbz = '';
|
||||
$projektphase_id = '';
|
||||
$service_id = '';
|
||||
$kunde_uid = '';
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Datensatz loeschen
|
||||
if(isset($_GET['type']) && $_GET['type']=='delete')
|
||||
{
|
||||
@@ -1176,7 +959,6 @@ if (isset($_GET['type']) && $_GET['type'] == 'edit')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Projekte holen zu denen der Benutzer zugeteilt ist
|
||||
$projekt = new projekt();
|
||||
|
||||
@@ -1279,10 +1061,6 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
//Formular
|
||||
echo '<br><form action="'.$_SERVER['PHP_SELF'].'?zeitaufzeichnung_id='.$zeitaufzeichnung_id.'" method="POST" onsubmit="return checkdatum()" enctype="multipart/form-data">';
|
||||
|
||||
/*echo '<table>
|
||||
<tr>
|
||||
<td rowspan="2">';
|
||||
echo '<table>';*/
|
||||
if (isset($_GET['csvimport']))
|
||||
{
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
@@ -1318,19 +1096,13 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
//Aktivitaet
|
||||
echo '<tr>';
|
||||
echo '<td>'.$p->t("zeitaufzeichnung/aktivitaet").'</td><td colspan="4">';
|
||||
//if ($za_simple == 1)
|
||||
$qry = "SELECT * FROM fue.tbl_aktivitaet where aktivitaet_kurzbz in (".$activities_str.") ORDER by sort,beschreibung";
|
||||
//else
|
||||
// $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung";
|
||||
|
||||
$qry = "SELECT * FROM fue.tbl_aktivitaet where aktivitaet_kurzbz in (".$activities_str.") ORDER by sort,beschreibung";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<SELECT name="aktivitaet" id="aktivitaet" onChange="checkPausenblock()">';
|
||||
/*
|
||||
if ($za_simple == 0)
|
||||
echo '<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
*/
|
||||
//else
|
||||
// echo '<OPTION value="Arbeit">Arbeit</OPTION>';
|
||||
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($aktivitaet_kurzbz == $row->aktivitaet_kurzbz)
|
||||
@@ -1518,7 +1290,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
</tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
}
|
||||
|
||||
|
||||
//Start/Ende
|
||||
$von_ts = $datum->mktime_fromtimestamp($datum->formatDatum($von, $format='Y-m-d H:i:s'));
|
||||
$bis_ts = $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format='Y-m-d H:i:s'));
|
||||
@@ -1533,7 +1305,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t("global/von").' - '.$p->t("global/bis").'</td>
|
||||
<td>
|
||||
<td>
|
||||
<input type="text" class="datepicker_datum" id="von_datum" name="von_datum" value="'.$db->convert_html_chars($datum->formatDatum($von, $format='d.m.Y')).'" size="9">
|
||||
<input onchange="checkZeiten()" type="text" class="timepicker" id="von_uhrzeit" name="von_uhrzeit" value="'.$db->convert_html_chars($datum->formatDatum($von, $format='H:i')).'" size="4">
|
||||
</td>';
|
||||
@@ -1716,128 +1488,116 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
$tag = $datumtag;
|
||||
if($tag!=$datumtag)
|
||||
{
|
||||
if ($datum->formatDatum($tag,'N') == '6' || $datum->formatDatum($tag,'N') == '7')
|
||||
$style = 'style="background-color:#eeeeee; font-size: 8pt;"';
|
||||
else
|
||||
$style = 'style="background-color:#DCE4EF; font-size: 8pt;"';
|
||||
|
||||
//if ($row->uid)
|
||||
//{
|
||||
if ($datum->formatDatum($tag,'N') == '6' || $datum->formatDatum($tag,'N') == '7')
|
||||
$style = 'style="background-color:#eeeeee; font-size: 8pt;"';
|
||||
else
|
||||
$style = 'style="background-color:#DCE4EF; font-size: 8pt;"';
|
||||
// zeitsperren anzeigen
|
||||
if (array_key_exists($datum->formatDatum($tag,'Y-m-d'), $zeitsperren))
|
||||
{
|
||||
$zeitsperre_text = " -- ".$zeitsperren[$datum->formatDatum($tag,'Y-m-d')]." -- ";
|
||||
$style = 'style="background-color:#cccccc; font-size: 8pt;"';
|
||||
}
|
||||
else
|
||||
$zeitsperre_text = '';
|
||||
if (isset($_GET["von_datum"]) && $datum->formatDatum($tag, 'd.m.Y') == $_GET["von_datum"])
|
||||
$style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"';
|
||||
|
||||
// zeitsperren anzeigen
|
||||
if (array_key_exists($datum->formatDatum($tag,'Y-m-d'), $zeitsperren))
|
||||
list($h1, $m1) = explode(':', $pausesumme);
|
||||
$pausesumme = $h1*3600+$m1*60;
|
||||
$tagessaldo = $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s'))-$datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s'))-3600;
|
||||
foreach($extlehrearr as $el)
|
||||
{
|
||||
if ($el["start"] > $tagesbeginn && $el["ende"] < $tagesende)
|
||||
$elsumme = $datum_obj->sumZeit($elsumme, $el["diff"]);
|
||||
}
|
||||
list($h2, $m2) = explode(':', $elsumme);
|
||||
$elsumme = $h2*3600+$m2*60;
|
||||
if ($datum->formatDatum($tag, 'Y-m-d') >= '2019-11-06')
|
||||
{
|
||||
$pausesumme = $pausesumme;
|
||||
}
|
||||
else if ($tagessaldo > 18000 && $tagessaldo < 19800 && $pflichtpause==false && $elsumme == 0)
|
||||
{
|
||||
$pausesumme = $tagessaldo-18000;
|
||||
}
|
||||
else if ($tagessaldo>18000 && $pflichtpause==false && $elsumme == 0)
|
||||
{
|
||||
$pausesumme = $pausesumme+1800;
|
||||
}
|
||||
|
||||
if ($elsumme > 0){
|
||||
$pausesumme = $pausesumme + $elsumme;
|
||||
$pflichtpause = true;
|
||||
}
|
||||
|
||||
$tagessaldo = $tagessaldo-$pausesumme;
|
||||
// fehlende Pausen berechnen
|
||||
$pausefehlt_str = '';
|
||||
|
||||
//Prüfung auf azgrelevant und blockierende Pausenfehler
|
||||
$linkExclamation = APP_ROOT. 'skin/images/exclamation.png';
|
||||
$linkInformation = APP_ROOT. 'skin/images/information.png';
|
||||
|
||||
$za = new zeitaufzeichnung();
|
||||
$verwendung = new bisverwendung();
|
||||
if ($za->checkPausenErrors($user, $tag))
|
||||
{
|
||||
$verwendung->getVerwendungDatum($user, $tag);
|
||||
foreach ($verwendung->result as $v)
|
||||
{
|
||||
$zeitsperre_text = " -- ".$zeitsperren[$datum->formatDatum($tag,'Y-m-d')]." -- ";
|
||||
$style = 'style="background-color:#cccccc; font-size: 8pt;"';
|
||||
}
|
||||
else
|
||||
$zeitsperre_text = '';
|
||||
if (isset($_GET["von_datum"]) && $datum->formatDatum($tag, 'd.m.Y') == $_GET["von_datum"])
|
||||
$style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"';
|
||||
|
||||
list($h1, $m1) = explode(':', $pausesumme);
|
||||
$pausesumme = $h1*3600+$m1*60;
|
||||
$tagessaldo = $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s'))-$datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s'))-3600;
|
||||
foreach($extlehrearr as $el)
|
||||
{
|
||||
if ($el["start"] > $tagesbeginn && $el["ende"] < $tagesende)
|
||||
$elsumme = $datum_obj->sumZeit($elsumme, $el["diff"]);
|
||||
}
|
||||
list($h2, $m2) = explode(':', $elsumme);
|
||||
$elsumme = $h2*3600+$m2*60;
|
||||
if ($datum->formatDatum($tag, 'Y-m-d') >= '2019-11-06')
|
||||
{
|
||||
$pausesumme = $pausesumme;
|
||||
}
|
||||
else if ($tagessaldo > 18000 && $tagessaldo < 19800 && $pflichtpause==false && $elsumme == 0)
|
||||
{
|
||||
$pausesumme = $tagessaldo-18000;
|
||||
}
|
||||
else if ($tagessaldo>18000 && $pflichtpause==false && $elsumme == 0)
|
||||
{
|
||||
$pausesumme = $pausesumme+1800;
|
||||
}
|
||||
|
||||
if ($elsumme > 0){
|
||||
$pausesumme = $pausesumme + $elsumme;
|
||||
$pflichtpause = true;
|
||||
}
|
||||
|
||||
$tagessaldo = $tagessaldo-$pausesumme;
|
||||
// fehlende Pausen berechnen
|
||||
$pausefehlt_str = '';
|
||||
|
||||
//Prüfung auf azgrelevant und blockierende Pausenfehler
|
||||
$linkExclamation = APP_ROOT. 'skin/images/exclamation.png';
|
||||
$linkInformation = APP_ROOT. 'skin/images/information.png';
|
||||
|
||||
$za = new zeitaufzeichnung();
|
||||
$verwendung = new bisverwendung();
|
||||
if ($za->checkPausenErrors($user, $tag))
|
||||
{
|
||||
$verwendung->getVerwendungDatum($user, $tag);
|
||||
foreach ($verwendung->result as $v)
|
||||
if ($v->azgrelevant)
|
||||
{
|
||||
if ($v->azgrelevant)
|
||||
{
|
||||
$pausefehlt_str = '<span style="color:red; font-weight:bold;"> <img src= '. $linkExclamation. '> -- Pause fehlt oder zu kurz -- </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$pausefehlt_str = '<span style="color:steelblue; font-weight:bold;"> <img src= '. $linkInformation. '> -- Pause fehlt --</span>';
|
||||
}
|
||||
$pausefehlt_str = '<span style="color:red; font-weight:bold;"> <img src= '. $linkExclamation. '> -- Pause fehlt oder zu kurz -- </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$pausefehlt_str = '<span style="color:steelblue; font-weight:bold;"> <img src= '. $linkInformation. '> -- Pause fehlt --</span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tagessaldo = date('H:i', ($tagessaldo));
|
||||
$colspan = ($za_simple)?6:8;
|
||||
echo '<tr id="tag_row_'.$datum->formatDatum($tag,'d_m_Y').'"><td '.$style.' colspan="'.$colspan.'")>';
|
||||
$tagessaldo = date('H:i', ($tagessaldo));
|
||||
$colspan = ($za_simple)?6:8;
|
||||
echo '<tr id="tag_row_'.$datum->formatDatum($tag,'d_m_Y').'"><td '.$style.' colspan="'.$colspan.'")>';
|
||||
|
||||
// Zusaetzlicher span fuer Addon Informationen
|
||||
// Zusaetzlicher span fuer Addon Informationen
|
||||
|
||||
$lang = getSprache();
|
||||
if ($lang == 'German')
|
||||
$langindex = 1;
|
||||
else
|
||||
$langindex = 2;
|
||||
echo '<span style="display: inline-block; width: 130px;"><b>'.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').'</b></span><span id="tag_'.$datum->formatDatum($tag,'d_m_Y').'">'.$zeitsperre_text.'</span>'.$pausefehlt_str;
|
||||
if ($ersumme != '00:00')
|
||||
$erstr = ' (+ '.$ersumme.' ER)';
|
||||
else
|
||||
{
|
||||
$erstr = '';
|
||||
}
|
||||
echo '</td>
|
||||
<td align="right" colspan="2" '.$style.'>
|
||||
<b>'.$p->t("zeitaufzeichnung/arbeitszeit").': '.$datum->formatDatum($tagesbeginn, $format='H:i').'-'.$datum->formatDatum($tagesende, $format='H:i').' '.$p->t("eventkalender/uhr").'</b><br>
|
||||
'.$p->t("zeitaufzeichnung/pause").':
|
||||
</td>
|
||||
<td '.$style.' align="right"><b>'.$tagessaldo.$erstr.'</b><br>'.date('H:i', ($pausesumme-3600)).'</td>
|
||||
<td '.$style.' colspan="3" align="right">';
|
||||
if ($tag > $sperrdatum)
|
||||
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item"><-</a>';
|
||||
|
||||
echo '</td></tr>';
|
||||
|
||||
|
||||
|
||||
$tag=$datumtag;
|
||||
$tagessumme='00:00';
|
||||
$pausesumme='00:00';
|
||||
$elsumme='00:00';
|
||||
$ersumme = '00:00';
|
||||
$extlehrearr = array();
|
||||
$tagesbeginn = '';
|
||||
$tagesende = '';
|
||||
$pflichtpause = false;
|
||||
$wochensaldo = $datum_obj->sumZeit($wochensaldo,$tagessaldo );
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// echo '<tr><td style="background-color:#DCE4EF; font-size: 8pt;" colspan="13"><b>'.$datum->formatDatum($row->datum,'D d.m.Y').'</b></b> <span id="tag_'.$datum->formatDatum($row->datum,'d_m_Y').'"></span></td></tr>';
|
||||
//}
|
||||
$lang = getSprache();
|
||||
if ($lang == 'German')
|
||||
$langindex = 1;
|
||||
else
|
||||
$langindex = 2;
|
||||
echo '<span style="display: inline-block; width: 130px;"><b>'.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').'</b></span><span id="tag_'.$datum->formatDatum($tag,'d_m_Y').'">'.$zeitsperre_text.'</span>'.$pausefehlt_str;
|
||||
if ($ersumme != '00:00')
|
||||
$erstr = ' (+ '.$ersumme.' ER)';
|
||||
else
|
||||
{
|
||||
$erstr = '';
|
||||
}
|
||||
echo '</td>
|
||||
<td align="right" colspan="2" '.$style.'>
|
||||
<b>'.$p->t("zeitaufzeichnung/arbeitszeit").': '.$datum->formatDatum($tagesbeginn, $format='H:i').'-'.$datum->formatDatum($tagesende, $format='H:i').' '.$p->t("eventkalender/uhr").'</b><br>
|
||||
'.$p->t("zeitaufzeichnung/pause").':
|
||||
</td>
|
||||
<td '.$style.' align="right"><b>'.$tagessaldo.$erstr.'</b><br>'.date('H:i', ($pausesumme-3600)).'</td>
|
||||
<td '.$style.' colspan="3" align="right">';
|
||||
if ($tag > $sperrdatum)
|
||||
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item"><-</a>';
|
||||
|
||||
echo '</td></tr>';
|
||||
|
||||
$tag=$datumtag;
|
||||
$tagessumme='00:00';
|
||||
$pausesumme='00:00';
|
||||
$elsumme='00:00';
|
||||
$ersumme = '00:00';
|
||||
$extlehrearr = array();
|
||||
$tagesbeginn = '';
|
||||
$tagesende = '';
|
||||
$pflichtpause = false;
|
||||
$wochensaldo = $datum_obj->sumZeit($wochensaldo,$tagessaldo );
|
||||
|
||||
}
|
||||
// Nach jeder Woche eine Summenzeile einfuegen und eine neue Tabelle beginnen
|
||||
@@ -1903,8 +1663,6 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo '</td>';
|
||||
echo '<td colspan="2"></td>';
|
||||
echo '<td>';
|
||||
//if(!isset($_GET['filter']) && ($datumtag > $sperrdatum))
|
||||
// echo '<a href="'.$_SERVER['PHP_SELF'].'?type=edit&zeitaufzeichnung_id='.$dr_arr[$datumtag]['id'].'" class="Item">'.$p->t("global/bearbeiten").'</a>';
|
||||
echo "</td>\n";
|
||||
echo "<td>";
|
||||
if(!isset($_GET['filter']) && ($datumtag > $sperrdatum))
|
||||
@@ -2006,17 +1764,8 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
</tr>
|
||||
';
|
||||
}
|
||||
|
||||
//echo $p->t("zeitaufzeichnung/gesamtdauer").": ".$db->convert_html_chars($summe); Aukommentiert. Irrelevant
|
||||
}
|
||||
echo '</table>';
|
||||
/*
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t("zeitaufzeichnung/sieSindDerzeitKeinenProjektenZugeordnet");
|
||||
}
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -19,7 +19,8 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
const PHASE = 7;
|
||||
const SERVICE = 8;
|
||||
const HOMEOFFICE = 9;
|
||||
|
||||
const ANZAHL_PFLICHTFELDER = 4;
|
||||
|
||||
protected $tmpname;
|
||||
protected $fh;
|
||||
|
||||
@@ -33,12 +34,12 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
protected $projectphasen_kurzbz_array;
|
||||
|
||||
protected $sperrdatum;
|
||||
|
||||
|
||||
protected $current_line;
|
||||
|
||||
protected $homeoffice;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param phrasen $p The Translator object
|
||||
* @param string $user The user ID
|
||||
@@ -51,19 +52,19 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
$this->user = $user;
|
||||
$this->tmpname = $filename;
|
||||
$this->sperrdatum = $sperrdatum;
|
||||
|
||||
|
||||
$this->project_kurzbz_array = [];
|
||||
$projects = $this->project->getProjekteListForMitarbeiter($user);
|
||||
foreach ($projects as $pp)
|
||||
$this->project_kurzbz_array[] = (string) $pp->projekt_kurzbz;
|
||||
|
||||
|
||||
$this->projectphasen_kurzbz_array = [];
|
||||
$projektphasen = $this->phase->getProjectphaseForMitarbeiter($user);
|
||||
foreach ($projektphasen as $pp)
|
||||
$this->projectphasen_kurzbz_array[] = (string) $pp->projektphase_id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param string $msg
|
||||
* @param boolean $prepend_current_line
|
||||
@@ -91,11 +92,11 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
$this->addError($ex->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkMimeType() {
|
||||
@@ -107,19 +108,19 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function openFileForReading() {
|
||||
if (false === ($this->fh = fopen($this->tmpname, 'r')) )
|
||||
if (false === ($this->fh = fopen($this->tmpname, 'r')) )
|
||||
{
|
||||
throw new Exception('CSV - Datei konnte nicht zum lesen geöffnet werden.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkEncoding() {
|
||||
@@ -142,7 +143,8 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
$data = null;
|
||||
$this->current_line = 0;
|
||||
while (($data = fgetcsv($this->fh, 1000, ';', '"')) !== FALSE) {
|
||||
if (false !== strpos($data[self::USER], '#') ) {
|
||||
if ((false !== strpos($data[self::USER], '#'))
|
||||
|| count($data) < self::ANZAHL_PFLICHTFELDER) {
|
||||
// ignore lines starting with #
|
||||
continue;
|
||||
}
|
||||
@@ -158,9 +160,10 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
protected function processData($data) {
|
||||
try {
|
||||
$this->checkUser($data[self::USER]);
|
||||
$this->initData($data);
|
||||
$this->checkProject($data[self::PROJEKT], $data[self::PHASE]);
|
||||
$this->checkPhase($data[self::PHASE]);
|
||||
$this->initData($data);
|
||||
|
||||
$this->checkZeitsperren($this->user, $this->datum->formatDatum($data[self::STARTDT], 'Y-m-d'));
|
||||
$this->checkSperrdatum($data[self::STARTDT]);
|
||||
$this->checkLimitdatum($data[self::STARTDT]);
|
||||
@@ -182,11 +185,11 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
/**
|
||||
* @param string $user The User ID
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkUser($user) {
|
||||
if ($user !== $this->user && (strpos($user, '#') !== false) )
|
||||
if ($user !== $this->user || (strpos($user, '#') !== false))
|
||||
{
|
||||
throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten").': Falsche UID nicht importiert (' . $user . ')');
|
||||
}
|
||||
@@ -196,7 +199,7 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
* @param string $project The Project ID or empty string
|
||||
* @param string $phase The Phase ID or empty string
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkProject($project, $phase) {
|
||||
@@ -204,13 +207,13 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
{
|
||||
throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie folgendem Projekt entweder nicht zugewiesen sind oder das Projekt schon abgeschlossen wurde: (' . $project . ')');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $phase The Phase ID or empty string
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkPhase($phase) {
|
||||
@@ -228,28 +231,31 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
foreach ([self::OE, self::PROJEKT, self::PHASE, self::SERVICE] as $key)
|
||||
if (!isset($data[$key]))
|
||||
$data[$key] = NULL;
|
||||
|
||||
if (!isset($data[self::HOMEOFFICE]))
|
||||
$data[$key] = false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $start datetimestring
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkSperrdatum($start) {
|
||||
if ($this->datum->formatDatum($start, 'Y-m-d H:i:s') < $this->sperrdatum) {
|
||||
throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Eingabe nicht möglich da vor dem Sperrdatum (' . $start . ')');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $oe_val
|
||||
* @param string $project_val
|
||||
* @param string $phase_val
|
||||
* @param string $service_val
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkVals($oe_val, $project_val, $phase_val, $service_val) {
|
||||
@@ -355,11 +361,11 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $start datestring
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function checkImporttage($start) {
|
||||
@@ -371,10 +377,10 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
} else if ($this->ende_vorher < $this->zeit->start) {
|
||||
$this->savePause();
|
||||
}
|
||||
|
||||
|
||||
$this->ende_vorher = $this->zeit->ende;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -413,7 +419,7 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
$this->anzahl++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -425,5 +431,5 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ class zeitsperre extends basis_db
|
||||
{
|
||||
const NUR_BLOCKIERENDE_ZEITSPERREN = true;
|
||||
const BLOCKIERENDE_ZEITSPERREN = "'Krank','Urlaub','ZA','DienstV','PflegeU','DienstF','CovidSB','CovidKS'";
|
||||
|
||||
|
||||
public $new; // boolean
|
||||
public $result = array(); // news Objekt
|
||||
|
||||
@@ -60,6 +60,11 @@ class zeitsperre extends basis_db
|
||||
$this->load($zeitsperre_id);
|
||||
}
|
||||
|
||||
public static function getBlockierendeZeitsperren()
|
||||
{
|
||||
return explode("','",trim(self::BLOCKIERENDE_ZEITSPERREN, '\''));
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Zeitsperren eines Benutzers wo ende>=now() ist
|
||||
* @param $uid
|
||||
@@ -390,7 +395,7 @@ class zeitsperre extends basis_db
|
||||
if( $nurblockierend ) {
|
||||
$qry .= " AND zeitsperretyp_kurzbz in (" . self::BLOCKIERENDE_ZEITSPERREN . ")";
|
||||
}
|
||||
|
||||
|
||||
if(!is_null($stunde))
|
||||
$qry.=" AND
|
||||
((vondatum=".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde).") OR vonstunde is null OR vondatum<>".$this->db_add_param($datum).") AND
|
||||
|
||||
Reference in New Issue
Block a user