diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php
index 8e449b12d..b5118dce4 100644
--- a/cis/private/profile/zeitsperre_resturlaub.php
+++ b/cis/private/profile/zeitsperre_resturlaub.php
@@ -31,6 +31,7 @@ require_once('../../../include/person.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/mail.class.php');
+require_once('../../../include/sancho.inc.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/zeitaufzeichnung.class.php');
@@ -65,6 +66,7 @@ if(isset($_GET['uid']))
die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte'));
}
}
+
$datum_obj = new datum();
$ma= new mitarbeiter();
@@ -119,7 +121,8 @@ $( document ).ready(function()
{
for(i in addon)
{
- addon[i].init("cis/private/profile/zeitsperre_resturlaub.php", {uid:\''.$uid.'\', holiDays: holiDays});
+
+ addon[i].init("cis/private/profile/zeitsperre_resturlaub.php", {uid:\''.$uid.'\', holiDays: holiDays});
}
}
@@ -158,6 +161,63 @@ $( document ).ready(function()
}
return [true, ""];
}
+
+function AddonCaseTimeLoadZeitsaldo(uid)
+{
+ $.ajax({
+ type: "GET",
+ dataType: "json",
+ url: "'.APP_ROOT.'/addons/casetime/vilesci/zeitsaldo.php?uid="+uid,
+ success: function (result)
+ {
+ if (result===false)
+ {
+ $("#zeitsaldo").html("error");
+ }
+ else
+ {
+ var DatumAktuell = new Date();
+ //var DatumAktuell = new Date(2016,0,11);
+ var MonatAktuell = DatumAktuell.getMonth()+1;
+ var MonatLetztes = MonatAktuell - 1;
+ var JahrAktuell = DatumAktuell.getFullYear();
+ var JahrLetztes = DatumAktuell.getFullYear();
+ var VorJahr = JahrAktuell -1;
+ if (MonatLetztes == 0)
+ {
+ MonatLetztes = 12;
+ JahrLetztes = JahrAktuell - 1;
+ }
+ var MonatVorLetztes = MonatLetztes -1;
+ var JahrVorLetztes = JahrLetztes;
+ if (MonatVorLetztes == 0)
+ {
+ MonatVorLetztes = 12;
+ JahrVorLetztes = JahrLetztes -1;
+ }
+
+
+ var zahl = parseFloat(result);
+ if (zahl > 0)
+ var faktor = 1;
+ else
+ var faktor = -1;
+ zahl = zahl * faktor;
+ var std = Math.floor(zahl);
+ var min = (zahl-Math.floor(zahl))*60;
+ min = Math.round(min);
+ var std_anzeigealt = std+"h:"+min+"m";
+
+ $(\'input[name="zeitsaldo"]\').val("Aktueller Stundensaldo: "+result +" Stunden ("+std_anzeigealt+")");
+
+ }
+ },
+ error: function(){
+ alert("Error Casetime Load");
+ }
+ });
+}
+
';
?>
@@ -339,12 +399,16 @@ function showHideStudeDropDown()
updateamum = date('Y-m-d H:i:s');
$zeitsperre->updatevon = $uid;
+ // Zeitsperretyp Beschreibung
+ $zeitsperre->loadZeitsperretyp($zeitsperre->zeitsperretyp_kurzbz);
+ $zeitsperre->beschreibung = $zeitsperre->result[0]->beschreibung;
+
if($zeitsperre->save())
{
echo "
".$p->t('global/erfolgreichgespeichert')."
";
if(URLAUB_TOOLS)
{
- if($zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz=='Urlaub')
+ //Beim Anlegen von neuen Urlauben oder neuem Zeitausgleich wird ein Mail an den Vorgesetzten versendet
+ if($zeitsperre->new && ($zeitsperre->zeitsperretyp_kurzbz=='Urlaub' || $zeitsperre->zeitsperretyp_kurzbz == 'ZA')
+ || !$zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz == 'ZA')
{
//Beim Anlegen von neuen Urlauben wird ein Mail an den Vorgesetzten versendet um diesen Freizugeben
$prsn = new person();
- $vorgesetzter = $ma->getVorgesetzte($uid);
+ $vorgesetzter = $ma->getVorgesetzte($uid);
+
if($vorgesetzter)
{
$to='';
@@ -536,16 +607,73 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
else
$jahr = $datum_obj->formatDatum($zeitsperre->vondatum, 'Y');
- $message = "Dies ist eine automatische Mail! \n".
- "$benutzer->nachname $benutzer->vorname hat einen neuen Urlaub eingetragen:\n".
- "$zeitsperre->bezeichnung von ".$datum_obj->formatDatum($zeitsperre->vondatum,'d.m.Y')." bis ".$datum_obj->formatDatum($zeitsperre->bisdatum,'d.m.Y')."\n\n".
- "Sie können diesen unter folgender Adresse freigeben:\n".
- APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr;
- $from='vilesci@'.DOMAIN;
- $mail = new mail($to, $from, 'Freigabeansuchen', $message);
- if($mail->send())
+ // Wenn ein neuer Urlaub eingetragen wurde, Freigabemail-Text
+ if ($zeitsperre->zeitsperretyp_kurzbz=='Urlaub')
{
- echo " ".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName))."";
+ if ($zeitsperre->new)
+ {
+ $mailSancho = " $benutzer->nachname $benutzer->vorname hat einen neuen Urlaub eingetragen: ";
+
+ $mailSancho.= (!empty($zeitsperre->bezeichnung) ? $zeitsperre->bezeichnung : $zeitsperre->beschreibung).
+ " von ".$datum_obj->formatDatum($zeitsperre->vondatum,'d.m.Y').
+ " bis ".$datum_obj->formatDatum($zeitsperre->bisdatum,'d.m.Y').
+ ". Sie können diesen unter folgender Adresse freigeben:
";
}
@@ -836,6 +997,12 @@ if($result = $db->db_query($qry))
}
$content_form.= '';
+//visible field für Zeitsaldo in Mail ZA
+$content_form.= '';
+
+//$content_form.= '
+
showHideStudeDropDown();'; ?>
diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php
index 0e737eaf0..efae1c91d 100644
--- a/include/zeitsperre.class.php
+++ b/include/zeitsperre.class.php
@@ -551,13 +551,13 @@ class zeitsperre extends basis_db
public function getVonBis($uid, $von, $bis, $zeitsperretyp_kurzbz = null)
{
$qry = '
- SELECT
+ SELECT
zeitsperre_id, zeitsperretyp_kurzbz, vondatum, vonstunde, bisdatum, bisstunde
- FROM
+ FROM
campus.tbl_zeitsperre
LEFT JOIN campus.tbl_zeitsperretyp USING (zeitsperretyp_kurzbz)
- WHERE
- mitarbeiter_uid = '. $this->db_add_param($uid). '
+ WHERE
+ mitarbeiter_uid = '. $this->db_add_param($uid). '
AND (
(vondatum BETWEEN '.$this->db_add_param($von).' AND '.$this->db_add_param($bis).')
OR
@@ -592,5 +592,46 @@ class zeitsperre extends basis_db
return true;
}
}
+
+ /**
+ * Laedt einen Zeitsperretyp.
+ *
+ * @param $zeitsperretyp_kurzbz
+ * @return Gibt Zeitsperretyp als Objekt zurück. True wenn ok, false im Fehlerfall.
+ */
+ public function loadZeitsperretyp($zeitsperretyp_kurzbz)
+ {
+ if(!is_string($zeitsperretyp_kurzbz))
+ {
+ $this->errormsg = 'zeitsperretyp muß ein String sein';
+ return false;
+ }
+
+ $qry = "SELECT * FROM campus.tbl_zeitsperretyp WHERE zeitsperretyp_kurzbz = ". $this->db_add_param($zeitsperretyp_kurzbz);
+
+ if(!$this->db_query($qry))
+ {
+ $this->errormsg = 'Fehler beim Laden des Datensatzes';
+ return false;
+ }
+
+ if($row = $this->db_fetch_object())
+ {
+ $obj = new StdClass();
+ $obj->zeitsperretyp_kurzbz = $row->zeitsperretyp_kurzbz;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->farbe = $row->farbe;
+
+ $this->result[]= $obj;
+ }
+ else
+ {
+ $this->errormsg = 'Zeitsperretyp konnte nicht geladen werden';
+ return false;
+ }
+
+ return true;
+ }
+
}
?>
diff --git a/locale/de-AT/urlaubstool.php b/locale/de-AT/urlaubstool.php
index 6d6edde09..5001ed725 100644
--- a/locale/de-AT/urlaubstool.php
+++ b/locale/de-AT/urlaubstool.php
@@ -37,9 +37,14 @@ $this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Si
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub';
$this->phrasen['urlaubstool/freigabeFehlt']='Urlaub wurde noch nicht freigegeben';
$this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebener Urlaub wurde gelöscht';
+$this->phrasen['urlaubstool/UrlaubGeloescht']='Urlaub wurde gelöscht';
+$this->phrasen['urlaubstool/zeitausgleichNeu']='Zeitausgleich wurde neu eingetragen';
+$this->phrasen['urlaubstool/zeitausgleichGeaendert']='Zeitausgleich wurde geändert';
+$this->phrasen['urlaubstool/zeitausgleichGeloescht']='Zeitausgleich wurde gelöscht';
+$this->phrasen['urlaubstool/xHatZeitausgleichGeloescht']='%s %s hat einen eingetragenen Zeitausgleich gelöscht';
$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt';
$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!';
-$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht';
+$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat Urlaub gelöscht';
$this->phrasen['urlaubstool/urlaubsfreigabe']='Freigabe Urlaub: ';
$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Bestätigungsmail an %s versandt';
$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von';
diff --git a/locale/en-US/urlaubstool.php b/locale/en-US/urlaubstool.php
index 697117c34..17a31c986 100644
--- a/locale/en-US/urlaubstool.php
+++ b/locale/en-US/urlaubstool.php
@@ -36,6 +36,13 @@ $this->phrasen['urlaubstool/meineZeitsperren']='My Planned Absences';
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeFehlt']='Vacation has not been approved yet';
+$this->phrasen['urlaubstool/zeitausgleichNeu']='Compensatory time was entered';
+$this->phrasen['urlaubstool/zeitausgleichGeaendert']='Compensatory time was changed';
+$this->phrasen['urlaubstool/zeitausgleichGeloescht']='Compensatory time was deleted';
+$this->phrasen['urlaubstool/xHatZeitausgleichGeloescht']='Compensatory time was deleted by %s %s';
+$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='Vacation was deleted by %s %s';
+$this->phrasen['urlaubstool/UrlaubGeloescht']='Urlaub wurde gelöscht';
+$this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Approved Vacation was deleted by %s %s';
$this->phrasen['urlaubstool/urlaubsfreigabe']='Vacation approval: ';
$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Confirmation mail to %s sent';
$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll