mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 10:22:18 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
Regular → Executable
+46
-28
@@ -26,12 +26,12 @@ require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/person.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$sprache = getSprache();
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
//$rechte = new benutzerberechtigung();
|
||||
//$rechte->getBerechtigungen($user);
|
||||
|
||||
|
||||
//if(!$rechte->isBerechtigt('basis/service'))
|
||||
// die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
@@ -42,7 +42,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<head>
|
||||
<title>'.$p->t("services/service").'</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
@@ -50,20 +50,36 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>';
|
||||
|
||||
// Load Addons to get Moodle_Path
|
||||
$addon_obj = new addon();
|
||||
if ($addon_obj->loadAddons())
|
||||
{
|
||||
if (count($addon_obj->result) > 0)
|
||||
{
|
||||
foreach ($addon_obj->result as $row)
|
||||
{
|
||||
if (file_exists('../../../addons/'.$row->kurzbz.'/config.inc.php'))
|
||||
include_once('../../../addons/'.$row->kurzbz.'/config.inc.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#myTable").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0]],
|
||||
widgets: [\'zebra\']
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
function ContentPopUp (Adresse)
|
||||
|
||||
function ContentPopUp (Adresse)
|
||||
{
|
||||
Content = window.open(Adresse, "Content", "width=800,height=500,scrollbars=yes");
|
||||
Content.focus();
|
||||
@@ -82,28 +98,29 @@ echo '<SELECT name="oe_kurzbz">
|
||||
<OPTION value="">-- '.$p->t("global/alle").' --</OPTION>';
|
||||
|
||||
$oe = new organisationseinheit();
|
||||
//$oe->getAll();
|
||||
$oe->loadArray($oe->getChilds('Infrastruktur'),'bezeichnung');
|
||||
$oe->getAll();
|
||||
//$oe->loadArray($oe->getChilds('Infrastruktur'),'bezeichnung');
|
||||
foreach($oe->result as $row)
|
||||
{
|
||||
if($row->oe_kurzbz==$oe_kurzbz)
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
echo '<OPTION value="'.$row->oe_kurzbz.'" '.$selected.'>'.$row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung.'</OPTION>';
|
||||
$serv_tmp = new service();
|
||||
if($serv_tmp->getServicesOrganisationseinheit($row->oe_kurzbz, true))
|
||||
{
|
||||
if (! empty($serv_tmp->result))
|
||||
echo '<OPTION value="'.$row->oe_kurzbz.'" '.$selected.'>'.$row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung.'</OPTION>';
|
||||
}
|
||||
}
|
||||
echo '</SELECT>
|
||||
<input type="submit" value="'.$p->t("services/filtern").'" />
|
||||
</form>';
|
||||
|
||||
|
||||
if($oe_kurzbz!='')
|
||||
{
|
||||
// Wenn der OE keine Services zugeteilt sind, dann die Services der untergeordneten OE laden
|
||||
if($service->getServicesOrganisationseinheit($oe_kurzbz, true))
|
||||
if (empty($service->result))
|
||||
if(!$service->getSubServicesOrganisationseinheit($oe_kurzbz,'oe_kurzbz,bezeichnung',true))
|
||||
die($service->errormsg);
|
||||
$service->getServicesOrganisationseinheit($oe_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -117,8 +134,6 @@ echo '<table class="tablesorter" id="myTable">
|
||||
<th>'.$p->t("global/bezeichnung").'</th>
|
||||
<th>'.$p->t("services/leistung").'</th>
|
||||
<th>'.$p->t("services/design").'</th>
|
||||
<th>'.$p->t("services/betrieb").'</th>
|
||||
<th>'.$p->t("services/operativ").'</th>
|
||||
<th>'.$p->t("services/details").'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -126,7 +141,7 @@ echo '<table class="tablesorter" id="myTable">
|
||||
|
||||
foreach($service->result as $row)
|
||||
{
|
||||
if ($row->content_id!='')
|
||||
if ($row->content_id != '' || $row->ext_id != '')
|
||||
{
|
||||
$person = new person();
|
||||
$person->getPersonFromBenutzer($row->design_uid);
|
||||
@@ -139,12 +154,15 @@ foreach($service->result as $row)
|
||||
$operativ = $person->nachname.' '.$person->vorname;
|
||||
echo '<tr>';
|
||||
echo '<td>',$row->oe_kurzbz,'</td>';
|
||||
echo '<td>'.($row->content_id!=''?'<a href="../../../cms/content.php?content_id='.$row->content_id.'">'.$row->bezeichnung.'</a>':$row->bezeichnung).'</td>';
|
||||
echo '<td><b>'.$row->bezeichnung.'</b></td>';
|
||||
echo '<td>',$row->beschreibung,'</td>';
|
||||
echo '<td><nobr><a href="../profile/index.php?uid='.$row->design_uid.'">',$design,'</a></nobr></td>';
|
||||
echo '<td><nobr><a href="../profile/index.php?uid='.$row->betrieb_uid.'">',$betrieb,'</a></nobr></td>';
|
||||
echo '<td><nobr><a href="../profile/index.php?uid='.$row->operativ_uid.'">',$operativ,'</a></nobr></td>';
|
||||
echo '<td>'.($row->content_id!=''?'<a href="../../../cms/content.php?content_id='.$row->content_id.'">Details</a>':'').'</td>';
|
||||
//echo '<td><nobr><a href="../profile/index.php?uid='.$row->betrieb_uid.'">',$betrieb,'</a></nobr></td>';
|
||||
//echo '<td><nobr><a href="../profile/index.php?uid='.$row->operativ_uid.'">',$operativ,'</a></nobr></td>';
|
||||
echo '<td>'.($row->content_id!=''?'<a href="../../../cms/content.php?content_id='.$row->content_id.'">Details</a>':'');
|
||||
if (defined("ADDON_MOODLE_PATH"))
|
||||
echo ' '.($row->ext_id!=''?'<a href="'.ADDON_MOODLE_PATH.'course/view.php?id='.$row->ext_id.'" target="_blank">Beschreibung</a>':'');
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
@@ -152,4 +170,4 @@ echo '</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -305,9 +305,9 @@ function jahresplan_veranstaltungskategorie_kalenderanzeige($veranstaltung,$wart
|
||||
// Kalenderanzeige Erzeugen
|
||||
$showHTML='';
|
||||
$showHTML.='<table class="tabcontent">';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for ($iTmpMonat=$iTmpMinMonate;$iTmpMonat<=$iTmpMaxMonate;$iTmpMonat++)
|
||||
{
|
||||
// Je Monat begin der Woche und Ende KW ermitteln
|
||||
@@ -374,17 +374,17 @@ function jahresplan_veranstaltungskategorie_kalenderanzeige($veranstaltung,$wart
|
||||
|
||||
$iTmpMinKW=(isset($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][0])?$veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][0]:1);
|
||||
$iTmpMaxKW=(isset($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat])?$veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][count($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat])-1]:1);
|
||||
|
||||
|
||||
for ($iTmpWochenIndex=0;$iTmpWochenIndex<count($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat]);$iTmpWochenIndex++)
|
||||
{
|
||||
|
||||
|
||||
if (!isset($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][$iTmpWochenIndex]))
|
||||
{
|
||||
echo "<br>".$p->t('eventkalender/wochenindexWurdeNichtGefunden',array($iTmpWochenIndex))."<br>";
|
||||
break;
|
||||
break;
|
||||
}
|
||||
$iTmpWoche=$veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][$iTmpWochenIndex];
|
||||
|
||||
|
||||
$nowWeek=(int)date("W", mktime(0,0,0,date("m"),date("d"),date("y")));
|
||||
|
||||
// Fuer alle WochenTage das Script Anzeige,Verstecken erzeugen
|
||||
@@ -401,7 +401,7 @@ function jahresplan_veranstaltungskategorie_kalenderanzeige($veranstaltung,$wart
|
||||
// Wochenzeile Start
|
||||
$showHTML.='<tr>';
|
||||
|
||||
|
||||
|
||||
// Die KW hat keine Daten - Initialisieren mit Array
|
||||
if (!isset($veranstaltung_kalender[$Jahr][$iTmpMonat]['Woche'][$iTmpMonat][$iTmpWoche]))
|
||||
{
|
||||
@@ -437,7 +437,7 @@ function jahresplan_veranstaltungskategorie_kalenderanzeige($veranstaltung,$wart
|
||||
{
|
||||
if (!isset($veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTimestamp'][$iTmpWoche][$iTmpTag]))
|
||||
continue;
|
||||
|
||||
|
||||
$iTmpTimeStamp=$veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTimestamp'][$iTmpWoche][$iTmpTag];
|
||||
|
||||
if (isset($veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTag'][$iTmpWoche][$iTmpTag]))
|
||||
@@ -577,7 +577,7 @@ function jahresplan_veranstaltungskategorie_kalenderanzeige($veranstaltung,$wart
|
||||
$showHTML.='</div>';
|
||||
$showHTML.='</td>';
|
||||
$showHTML.='</tr></table></td>';
|
||||
|
||||
|
||||
} // 7 Tage Container Ende
|
||||
$showHTML.='</tr>';
|
||||
}
|
||||
@@ -643,7 +643,7 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
$iTmpInitDay=mktime(0, 0, 0, $iTmpMonat ,(1 - ($iTmpTagNr==0?7:$iTmpTagNr)) + 1, $Jahr);
|
||||
if (empty($iTmpInitDay))
|
||||
die("<p>Fehler bei Monat $iTmpZwMonat ,Tag (1 - ($iTmpTagNr==0?7:$iTmpTagNr) )+1, Jahr $Jahr </p>");
|
||||
|
||||
|
||||
}
|
||||
|
||||
// KalenderInit
|
||||
@@ -659,7 +659,7 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
$iTmpZwWochentag=(int)date('w',$iTmpInitDay);
|
||||
$iTmpZwWochentagname=date('D',$iTmpInitDay);
|
||||
$iTmpZw_jjjjmmtt=date('Ymd',$iTmpInitDay);
|
||||
|
||||
|
||||
$veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTimestamp'][$iTmpWoche][$iTmpTag]=$iTmpInitDay;
|
||||
$veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTimestampDatum'][$iTmpWoche][$iTmpTag]=$iTmpZw_jjjjmmtt;
|
||||
$veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTag'][$iTmpWoche][$iTmpZwWochentag]=array();
|
||||
@@ -668,7 +668,7 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
$iTmpMinKW=1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
for ($iTmpWoche=$iTmpMinKW;$iTmpWoche<=$iTmpMaxKW;$iTmpWoche++)
|
||||
{
|
||||
$veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][]=$iTmpWoche;
|
||||
@@ -689,8 +689,8 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
}
|
||||
}
|
||||
$veranstaltung_next=$veranstaltung_tabelle;
|
||||
|
||||
|
||||
|
||||
|
||||
if (count($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat])<4)
|
||||
{
|
||||
die('Es wurden keine Wochen gefunden? '.__FILE__.' Parameter Line: '.__LINE__);
|
||||
@@ -698,18 +698,18 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
|
||||
for ($iTmpWochenIndex=0;$iTmpWochenIndex<count($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat]);$iTmpWochenIndex++)
|
||||
{
|
||||
|
||||
|
||||
if (!isset($veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][$iTmpWochenIndex]))
|
||||
{
|
||||
echo "<br>".$p->t('eventkalender/wochenindexWurdeNichtGefunden',array($iTmpWochenIndex))."<br>";
|
||||
break;
|
||||
break;
|
||||
}
|
||||
$iTmpWoche=$veranstaltung_kalender[$Jahr]['VerarbeitenWochen'][$iTmpMonat][$iTmpWochenIndex];
|
||||
|
||||
// Keine weitere Vearbeitungen mehr noetig
|
||||
if (!is_array($veranstaltung_next) || count($veranstaltung_next)<1)
|
||||
continue;
|
||||
|
||||
|
||||
for ($iTmpTag=0;$iTmpTag<7;$iTmpTag++)
|
||||
{
|
||||
$iTmpInitDay=$veranstaltung_kalender[$Jahr][$iTmpMonat]['WochenTimestamp'][$iTmpWoche][$iTmpTag];
|
||||
@@ -727,7 +727,7 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
// es werden nur mehr die Tage die noch nicht verarbeitet sind im next gemerkt
|
||||
$veranstaltung=$veranstaltung_next;
|
||||
$veranstaltung_next=array();
|
||||
|
||||
|
||||
reset($veranstaltung);
|
||||
for ($iTmpVeranstaltung=0;$iTmpVeranstaltung<count($veranstaltung);$iTmpVeranstaltung++)
|
||||
{
|
||||
@@ -751,7 +751,7 @@ function jahresplan_veranstaltungskategorie_kalendererzeugen($veranstaltung_tabe
|
||||
} // Ende For Woche
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $veranstaltung_kalender;
|
||||
}
|
||||
|
||||
@@ -900,7 +900,7 @@ global $p;
|
||||
// Erzeugen PopUp URL fuer Entfernen
|
||||
// Url
|
||||
$cTmpScriptWartung=' onclick="if (!confirm(\' '.$p->t('eventkalender/wollenSieWirklichIdXYloeschen',array($veranstaltung_tabelle[$iTmpZehler]->veranstaltung_id)).' ?\')) {return false;} ; callWindows(\'jahresplan_veranstaltung.php?work=del&veranstaltung_id='.$veranstaltung_tabelle[$iTmpZehler]->veranstaltung_id.'\',\'Veranstaltung_Loeschen\');" ';
|
||||
|
||||
|
||||
// Loeschen Icon und Text
|
||||
$showHTML.='<td id="jh_va_delrow'.$iTmpZehler.'" '.$cTmpScriptWartung.'>
|
||||
<img title="ID '.$veranstaltung_tabelle[$iTmpZehler]->veranstaltung_id.' '.$p->t("global/entfernen").' '.$veranstaltung_tabelle[$iTmpZehler]->titel.'" height="14px" src="../../../skin/images/date_delete.png" alt="entfernen Veranstaltung" border="0">
|
||||
@@ -1097,4 +1097,34 @@ function jahresplan_date_to_timestamp($string="")
|
||||
}
|
||||
return $cTmpWert;
|
||||
}
|
||||
?>
|
||||
|
||||
function printlinks($text)
|
||||
{
|
||||
// Volle Links
|
||||
$pattern = '~[a-z]+://\S+~';
|
||||
|
||||
if($num_found = preg_match_all($pattern, $text, $out))
|
||||
{
|
||||
foreach($out[0] as $link)
|
||||
{
|
||||
echo '<a href="'.$link.'" target="_blank">'.$link.'</a><br>';
|
||||
}
|
||||
}
|
||||
|
||||
if(defined('JAHRESPLAN_TICKET_LINK'))
|
||||
{
|
||||
// TicketsIds mit #1234
|
||||
$pattern = '~\#[0-9]+~';
|
||||
|
||||
if($num_found = preg_match_all($pattern, $text, $out))
|
||||
{
|
||||
foreach($out[0] as $ticketnr)
|
||||
{
|
||||
$id = mb_substr($ticketnr,1);
|
||||
$link = JAHRESPLAN_TICKET_LINK.$id;
|
||||
echo '<a href="'.$link.'" target="_blank">'.$link.'</a><br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -20,60 +20,60 @@
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------------------
|
||||
/*
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------------------
|
||||
/*
|
||||
* Veranstaltungsdaten - Pflege
|
||||
*
|
||||
* Aktionen: Anzeige, Anlage, Aenderung und Loeschen
|
||||
* Ansicht : Voll oder Popup (window.opener)
|
||||
* Ansicht : Voll oder Popup (window.opener)
|
||||
*
|
||||
* Zusatz : Reservierungsinformationen
|
||||
* koennen im Veranstaltungszeitraum dazu gefuegt werden
|
||||
*
|
||||
* Zusatz : Reservierungsinformationen
|
||||
* koennen im Veranstaltungszeitraum dazu gefuegt werden
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
// ---------------- CIS Include Dateien einbinden
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
|
||||
// ---------------- Datenbank-Verbindung
|
||||
// ---------------- Datenbank-Verbindung
|
||||
include_once('../../../include/person.class.php');
|
||||
include_once('../../../include/benutzer.class.php');
|
||||
include_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
// ---------------- Jahresplan Classe und Allg.Funktionen
|
||||
|
||||
// ---------------- Jahresplan Classe und Allg.Funktionen
|
||||
include_once('../../../include/jahresplan.class.php');
|
||||
include_once('jahresplan_funktionen.inc.php');
|
||||
|
||||
|
||||
if (!$is_wartungsberechtigt)
|
||||
die($p->t("global/keineBerechtigungFuerDieseSeite")).('<a href="javascript:history.back()">'.$p->t("global/zurueck").'</a>');
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Init
|
||||
// ------------------------------------------------------------------------------------------
|
||||
$error='';
|
||||
|
||||
$error='';
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Request Parameter
|
||||
// Request Parameter
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Parameter Veranstaltungskategorie
|
||||
$veranstaltungskategorie_kurzbz=trim((isset($_REQUEST['veranstaltungskategorie_kurzbz']) ? $_REQUEST['veranstaltungskategorie_kurzbz']:''));
|
||||
// Parameter Veranstaltung
|
||||
$veranstaltung_id=trim((isset($_REQUEST['veranstaltung_id']) ? $_REQUEST['veranstaltung_id']:''));
|
||||
$work=trim((isset($_REQUEST['work']) ? $_REQUEST['work']:''));
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Datenlesen fuer Anzeige
|
||||
// a) verarbeiten wenn Request Parameter 'work' - save(update) oder del
|
||||
// b) alle Veranstaltung lesen
|
||||
if (!empty($work))
|
||||
{
|
||||
|
||||
|
||||
$Jahresplan->InitVeranstaltung();
|
||||
// Nur Berechtigte duerfen auch noch nicht freigegebene Sehen
|
||||
// Nur Berechtigte duerfen auch noch nicht freigegebene Sehen
|
||||
$Jahresplan->show_only_public_kategorie=($is_mitarbeiter?false:true);
|
||||
$Jahresplan->freigabe=($is_wartungsberechtigt?false:true);
|
||||
if ($work=='save')
|
||||
@@ -113,18 +113,18 @@
|
||||
if (window.opener && !window.opener.closed) {
|
||||
if (confirm("Soll die Hauptseite neu aufgebaut werden?")) {
|
||||
window.opener.location.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($work=='del')
|
||||
{
|
||||
if(!$veranstaltung=$Jahresplan->deleteVeranstaltung($veranstaltung_id))
|
||||
{
|
||||
{
|
||||
$error=$p->t("global/fehlerBeimLoeschenDesEintrags").$Jahresplan->errormsg;
|
||||
}
|
||||
else
|
||||
@@ -137,34 +137,34 @@
|
||||
if (window.opener && !window.opener.closed) {
|
||||
if (confirm("'.$p->t("eventkalender/sollDieHauptseiteNeuAufgebautWerden").'?")) {
|
||||
window.opener.location.reload();
|
||||
}
|
||||
}
|
||||
this.close();
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
';
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Kategorie - Daten lesen fuer Kategorieselect
|
||||
// Kategorie - Daten lesen fuer Kategorieselect
|
||||
// Veranstaltungskategorien ohne Selektionsbedingung
|
||||
// ------------------------------------------------------------------------------------------
|
||||
$Jahresplan->InitVeranstaltungskategorie();
|
||||
// Nur Berechtigte duerfen auch noch nicht freigegebene Sehen
|
||||
// Nur Berechtigte duerfen auch noch nicht freigegebene Sehen
|
||||
$Jahresplan->show_only_public_kategorie=($is_mitarbeiter?false:true);
|
||||
if (!$veranstaltungskategorie=$Jahresplan->loadVeranstaltungskategorie())
|
||||
die($Jahresplan->errormsg);
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Daten lesen fuer Anzeige der
|
||||
// Veranstaltungen mit Selektionsbedingung
|
||||
// ------------------------------------------------------------------------------------------
|
||||
if (!empty($veranstaltung_id))
|
||||
{
|
||||
$Jahresplan->InitVeranstaltung();
|
||||
// Nur Berechtigte duerfen auch noch nicht freigegebene Sehen
|
||||
$Jahresplan->InitVeranstaltung();
|
||||
// Nur Berechtigte duerfen auch noch nicht freigegebene Sehen
|
||||
$Jahresplan->show_only_public_kategorie=($is_mitarbeiter?false:true);
|
||||
$Jahresplan->freigabe=($is_wartungsberechtigt?false:true);
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
if ($veranstaltungen=$Jahresplan->loadVeranstaltung())
|
||||
{
|
||||
$veranstaltungen=jahresplan_funk_veranstaltung_extend($veranstaltungen);
|
||||
while (list($key, $value) = each($veranstaltungen))
|
||||
while (list($key, $value) = each($veranstaltungen))
|
||||
{
|
||||
$veranstaltung[$key]=$value;
|
||||
}
|
||||
@@ -187,16 +187,16 @@
|
||||
die($Jahresplan->errormsg);
|
||||
}
|
||||
// Plausib
|
||||
if (!is_array($veranstaltung) || count($veranstaltung)<1 || !isset($veranstaltung["veranstaltung_id"]))
|
||||
if (!is_array($veranstaltung) || count($veranstaltung)<1 || !isset($veranstaltung["veranstaltung_id"]))
|
||||
{
|
||||
$work='new';
|
||||
}
|
||||
}
|
||||
}
|
||||
else // Reload ohne Datenverarbeitung , die Aufrufparameter in die Datentabelle uebertragen fuer Value der Inputfelder
|
||||
{
|
||||
$veranstaltung=$_REQUEST;
|
||||
}
|
||||
?>
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
@@ -208,11 +208,11 @@
|
||||
</script>
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
<!--
|
||||
form {display:inline;}
|
||||
label {text-align:right;}
|
||||
iframe {display:inline;width: 100%;border:0px;}
|
||||
|
||||
|
||||
.cursor_hand {cursor:pointer;vertical-align: top;white-space : nowrap;}
|
||||
.ausblenden {display:none;}
|
||||
.footer_zeile {color: silver;}
|
||||
@@ -220,153 +220,153 @@
|
||||
</style>
|
||||
<script language="JavaScript1.2" type="text/javascript">
|
||||
<!--
|
||||
function PruefeDatum(Datum,Startjahr,Endjahr)
|
||||
{
|
||||
var Datum, Tag, Monat, Jahr, Laenge, tageMonat;
|
||||
Laenge=Datum.length;
|
||||
|
||||
var datum_int = new Date();
|
||||
|
||||
function PruefeDatum(Datum,Startjahr,Endjahr)
|
||||
{
|
||||
var Datum, Tag, Monat, Jahr, Laenge, tageMonat;
|
||||
Laenge=Datum.length;
|
||||
|
||||
var datum_int = new Date();
|
||||
|
||||
if (!parseInt(Startjahr) || Startjahr<1000)
|
||||
{
|
||||
{
|
||||
Startjahr = datum_int.getFullYear();
|
||||
Startjahr = Startjahr - 1;
|
||||
}
|
||||
|
||||
|
||||
Startjahr = Startjahr - 1;
|
||||
}
|
||||
|
||||
|
||||
if (!parseInt(Endjahr) || Endjahr<1000)
|
||||
{
|
||||
Endjahr = datum_int.getFullYear();
|
||||
Endjahr = Endjahr +1;
|
||||
}
|
||||
|
||||
if (Laenge==10 && Datum.substring(2,3)=="." && Datum.substring(5,6)==".")
|
||||
{
|
||||
Tag=parseInt(Datum.substring(0,2),10);
|
||||
Monat=parseInt(Datum.substring(3,5),10);
|
||||
Jahr=parseInt(Datum.substring(6,10),10);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Monat==4 || Monat==6 || Monat==9 || Monat==11)
|
||||
{
|
||||
tageMonat=30;
|
||||
}
|
||||
else if (Monat==1 || Monat==3 || Monat==5 || Monat==7 || Monat==8
|
||||
|| Monat==10 || Monat==12)
|
||||
{
|
||||
tageMonat=31;
|
||||
}
|
||||
else if(Monat==2 && Jahr%4==0 && Jahr%100!=0 || Jahr%400==0)
|
||||
{
|
||||
tageMonat=29;
|
||||
}
|
||||
else if(Monat==2 && Jahr%4!=0 || Jahr%100==0 && Jahr%400!=0)
|
||||
{
|
||||
tageMonat=28;
|
||||
}
|
||||
|
||||
if (Tag>=1 && Tag<=tageMonat && Monat>=1 && Monat<=12 && Jahr>=Startjahr && Jahr<=Endjahr)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (Laenge==10 && Datum.substring(2,3)=="." && Datum.substring(5,6)==".")
|
||||
{
|
||||
Tag=parseInt(Datum.substring(0,2),10);
|
||||
Monat=parseInt(Datum.substring(3,5),10);
|
||||
Jahr=parseInt(Datum.substring(6,10),10);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Monat==4 || Monat==6 || Monat==9 || Monat==11)
|
||||
{
|
||||
tageMonat=30;
|
||||
}
|
||||
else if (Monat==1 || Monat==3 || Monat==5 || Monat==7 || Monat==8
|
||||
|| Monat==10 || Monat==12)
|
||||
{
|
||||
tageMonat=31;
|
||||
}
|
||||
else if(Monat==2 && Jahr%4==0 && Jahr%100!=0 || Jahr%400==0)
|
||||
{
|
||||
tageMonat=29;
|
||||
}
|
||||
else if(Monat==2 && Jahr%4!=0 || Jahr%100==0 && Jahr%400!=0)
|
||||
{
|
||||
tageMonat=28;
|
||||
}
|
||||
|
||||
if (Tag>=1 && Tag<=tageMonat && Monat>=1 && Monat<=12 && Jahr>=Startjahr && Jahr<=Endjahr)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Tag<1 || Tag>tageMonat)
|
||||
//alert("Kein gueltiges Datum - Tag ("+ Tag +" >1 und <"+ tageMonat+" ) Datum!\nBitte Datum "+ Datum +" in der Form: TT.MM.JJJJ eingeben!");
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
//alert("Kein gueltiges Datum - Tag ("+ Tag +" >1 und <"+ tageMonat+" ) Datum!\nBitte Datum "+ Datum +" in der Form: TT.MM.JJJJ eingeben!");
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
else if (Monat<1 || Monat>12)
|
||||
//alert("Kein gueltiges Datum - Monat ("+ Monat +"> 1 und <12 ) Datum!\nBitte Datum "+ Datum +" in der Form: TT.MM.JJJJ eingeben!");
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
else if (Jahr<Startjahr || Jahr>Endjahr )
|
||||
//alert("Kein gueltiges Datum - Jahr ("+ Jahr +"> "+Startjahr+" und <"+Endjahr+" ) Datum!\nBitte Datum "+ Datum +" in der Form: TT.MM.JJJJ eingeben!");
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
else
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
else
|
||||
//alert("Kein gueltiges Datum!\nBitte Datum "+ Datum +" in der Form: TT.MM.JJJJ eingeben!");
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
return false;
|
||||
}
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function TimestampDatumZeit(Datum,Zeit,Startjahr,Endjahr)
|
||||
{
|
||||
var Datum, Tag, Monat, Jahr, Laenge,Stunde,Minute;
|
||||
Laenge=Zeit.length;
|
||||
var datum = new Date();
|
||||
var Endjahr = datum.getYear();
|
||||
|
||||
function TimestampDatumZeit(Datum,Zeit,Startjahr,Endjahr)
|
||||
{
|
||||
var Datum, Tag, Monat, Jahr, Laenge,Stunde,Minute;
|
||||
Laenge=Zeit.length;
|
||||
var datum = new Date();
|
||||
var Endjahr = datum.getYear();
|
||||
Endjahr = Endjahr +10;
|
||||
var Startjahr = datum.getYear();
|
||||
Startjahr = Startjahr - 10;
|
||||
Startjahr = Startjahr - 10;
|
||||
if (!PruefeDatum(Datum,Startjahr,Endjahr))
|
||||
return false;
|
||||
|
||||
Tag=parseInt(Datum.substring(0,2),10);
|
||||
Monat=parseInt(Datum.substring(3,5),10);
|
||||
Jahr=parseInt(Datum.substring(6,10),10);
|
||||
|
||||
|
||||
if (Laenge==5 && Zeit.substring(2,3)==":")
|
||||
{
|
||||
Stunde=parseInt(Zeit.substring(0,2),10);
|
||||
Minute=parseInt(Zeit.substring(3,5),10);
|
||||
}
|
||||
|
||||
else if (Laenge==4 && Zeit.substring(1,2)==":")
|
||||
{
|
||||
Stunde=parseInt(Zeit.substring(0,1),10);
|
||||
Minute=parseInt(Zeit.substring(2,4),10);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>!");
|
||||
return false;
|
||||
|
||||
Tag=parseInt(Datum.substring(0,2),10);
|
||||
Monat=parseInt(Datum.substring(3,5),10);
|
||||
Jahr=parseInt(Datum.substring(6,10),10);
|
||||
|
||||
|
||||
if (Laenge==5 && Zeit.substring(2,3)==":")
|
||||
{
|
||||
Stunde=parseInt(Zeit.substring(0,2),10);
|
||||
Minute=parseInt(Zeit.substring(3,5),10);
|
||||
}
|
||||
|
||||
else if (Laenge==4 && Zeit.substring(1,2)==":")
|
||||
{
|
||||
Stunde=parseInt(Zeit.substring(0,1),10);
|
||||
Minute=parseInt(Zeit.substring(2,4),10);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("<?php echo $p->t("eventkalender/keinGueltigesDatum");?>!");
|
||||
return false;
|
||||
}
|
||||
Monat=Monat-1;
|
||||
//if (Monat<1) Monat=1;
|
||||
var timestamp = (new Date(Jahr,Monat,Tag,Stunde,Minute).getTime()/1000);
|
||||
var timestamp = (new Date(Jahr,Monat,Tag,Stunde,Minute).getTime()/1000);
|
||||
return timestamp;
|
||||
|
||||
|
||||
}
|
||||
|
||||
var InfoWin;
|
||||
var InfoWin;
|
||||
function callWindows(url,nameID)
|
||||
{
|
||||
// width=(Pixel) - erzwungene Fensterbreite
|
||||
// height=(Pixel) - erzwungene Fensterhöhe
|
||||
// resizable=yes/no - Größe fest oder veränderbar
|
||||
// scrollbars=yes/no - fenstereigene Scrollbalken
|
||||
// toolbar=yes/no - fenstereigene Buttonleiste
|
||||
// status=yes/no - fenstereigene Statuszeile
|
||||
// directories=yes/no - fenstereigene Directory-Buttons (Netscape)
|
||||
// menubar=yes/no - fenstereigene Menüleiste
|
||||
// location=yes/no - fenstereigenes Eingabe-/Auswahlfeld für URLs
|
||||
|
||||
// width=(Pixel) - erzwungene Fensterbreite
|
||||
// height=(Pixel) - erzwungene Fensterhöhe
|
||||
// resizable=yes/no - Größe fest oder veränderbar
|
||||
// scrollbars=yes/no - fenstereigene Scrollbalken
|
||||
// toolbar=yes/no - fenstereigene Buttonleiste
|
||||
// status=yes/no - fenstereigene Statuszeile
|
||||
// directories=yes/no - fenstereigene Directory-Buttons (Netscape)
|
||||
// menubar=yes/no - fenstereigene Menüleiste
|
||||
// location=yes/no - fenstereigenes Eingabe-/Auswahlfeld für URLs
|
||||
|
||||
if (InfoWin) {
|
||||
InfoWin.close();
|
||||
}
|
||||
InfoWin=window.open(url,nameID,"copyhistory=no,directories=no,location=no,dependent=no,toolbar=yes,menubar=no,status=no,resizable=yes,scrollbars=yes, width=800,height=800,left=60, top=15");
|
||||
InfoWin=window.open(url,nameID,"copyhistory=no,directories=no,location=no,dependent=no,toolbar=yes,menubar=no,status=no,resizable=yes,scrollbars=yes, width=800,height=800,left=60, top=15");
|
||||
InfoWin.focus();
|
||||
InfoWin.setTimeout("window.close()",800000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!window.opener || window.opener.closed) {
|
||||
document.write('<h1> <?php echo $p->t("eventkalender/veranstaltungBearbeiten");?> </h1> [ <a href="index.php"><?php echo $p->t("eventkalender/veranstaltungen");?></a> | <a href="jahresplan_veranstaltung.php"><?php echo $p->t("eventkalender/veranstaltungBearbeiten");?></a> | <a href="jahresplan_kategorie.php"><?php echo $p->t("eventkalender/kategorie");?></a> ] <?php echo $userNAME; ?><br/><br/>');
|
||||
} else {
|
||||
window.resizeTo(800,800);
|
||||
}
|
||||
|
||||
|
||||
-->
|
||||
</script>
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
<?php
|
||||
|
||||
// Defaultwerte
|
||||
$cTmpCheckHeute = date("d.m.Y", mktime(0,0,0,date("m"),date("d"),date("y")));
|
||||
@@ -387,7 +387,7 @@
|
||||
{
|
||||
$veranstaltung['ende_timestamp']=$cTmpTimestampEnde;
|
||||
}
|
||||
|
||||
|
||||
// Wartungsmenue URL
|
||||
$cTmpScriptWartungVeranstaltung='javascript:callWindows("jahresplan_veranstaltung.php?work=show&veranstaltung_id=","Veranstaltung_Aenderung");';
|
||||
$cTmpScriptWartungKategorie='javascript:callWindows("jahresplan_kategorie.php?work=show&veranstaltungskategorie_kurzbz=","Kategorie_Aenderung");';
|
||||
@@ -399,7 +399,7 @@
|
||||
|
||||
<form accept-charset="UTF-8" name="selVeranstaltung" target="_self" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
|
||||
<table cellpadding="10" cellspacing="0">
|
||||
|
||||
|
||||
<tr>
|
||||
<td><label for="veranstaltung_id">ID</label></td>
|
||||
<td>
|
||||
@@ -408,9 +408,9 @@
|
||||
</td>
|
||||
|
||||
<td title="<?php echo $p->t("eventkalender/neuanlage")?> <?php echo date("d.m.Y",$veranstaltung['start_timestamp']);?>" class="cursor_hand" onclick="self.location.href='<?php echo $_SERVER['PHP_SELF'].'?start_timestamp='.(isset($veranstaltung['start_timestamp'])?$veranstaltung['start_timestamp']:$cTmpTimestampStart).'&ende_timestamp='.(isset($veranstaltung['ende_timestamp'])?$veranstaltung['ende_timestamp']:$cTmpTimestampEnde) ;?>';" ><?php echo $p->t("eventkalender/neuanlage")?> <img border="0" alt="Neuanlage" src="../../../skin/images/date_add.png" ></td>
|
||||
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><label for="veranstaltung_id"><?php echo $p->t("eventkalender/kategorie")?></label></td>
|
||||
<td><select name="veranstaltungskategorie_kurzbz">
|
||||
@@ -424,12 +424,12 @@
|
||||
// Check Space
|
||||
$veranstaltungskategorie[$iTmpZehler]->veranstaltungskategorie_kurzbz=trim($veranstaltungskategorie[$iTmpZehler]->veranstaltungskategorie_kurzbz);
|
||||
$veranstaltungskategorie[$iTmpZehler]->bezeichnung=trim($veranstaltungskategorie[$iTmpZehler]->bezeichnung);
|
||||
|
||||
|
||||
$cURL='jahresplan_bilder.php?time='.time().'&'.(strlen($veranstaltungskategorie[$iTmpZehler]->bild)<800?'heximg='.$veranstaltungskategorie[$iTmpZehler]->bild:'veranstaltungskategorie_kurzbz='.$veranstaltungskategorie[$iTmpZehler]->veranstaltungskategorie_kurzbz);
|
||||
$veranstaltungskategorie[$iTmpZehler]->bild_image='<img height="20" border="0" alt="Kategoriebild" titel="'.$veranstaltungskategorie[$iTmpZehler]->bezeichnung.'" src="'.$cURL.'">';
|
||||
|
||||
|
||||
echo '<option '.(!empty($veranstaltungskategorie[$iTmpZehler]->farbe)?' style="background-color:#'.$veranstaltungskategorie[$iTmpZehler]->farbe.'" ':'').' '.(isset($veranstaltung['veranstaltungskategorie_kurzbz']) && $veranstaltung['veranstaltungskategorie_kurzbz']==$veranstaltungskategorie[$iTmpZehler]->veranstaltungskategorie_kurzbz?' selected="selected" ':'').' value="'.$veranstaltungskategorie[$iTmpZehler]->veranstaltungskategorie_kurzbz.'">'.$veranstaltungskategorie[$iTmpZehler]->bezeichnung.'</option>';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select></td>
|
||||
@@ -482,18 +482,30 @@
|
||||
</select>
|
||||
<?php echo $p->t("eventkalender/ganztaegigeVeranstaltung")?>
|
||||
<input <?php echo ( ($veranstaltung['start_zeit']=='00:00' && $veranstaltung['ende_zeit']=='23:45')?' checked="checked" ':'' ); ?> type="checkbox" value="1" onclick="if (this.checked!=false) {window.document.selVeranstaltung.Zeit1.options.selectedIndex=0;window.document.selVeranstaltung.Zeit2.options.selectedIndex=(window.document.selVeranstaltung.Zeit2.options.length - 1); }; var time_stamp=TimestampDatumZeit(window.document.selVeranstaltung.Datum1.value,window.document.selVeranstaltung.Zeit1.value); if (time_stamp) {window.document.selVeranstaltung.start.value=time_stamp; }; time_stamp=TimestampDatumZeit(window.document.selVeranstaltung.Datum2.value,window.document.selVeranstaltung.Zeit2.value); if (time_stamp) {window.document.selVeranstaltung.ende.value=time_stamp; };" name="tmpGanztag" >
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="beschreibung"><?php echo $p->t("global/titel")?></label></td>
|
||||
<td><textarea rows="3" cols="80" id="beschreibung" name="beschreibung" onblur="if (this.value=='') {this.value=this.defaultValue;}" onfocus="if (this.value=='<?php echo constEingabeFehlt; ?>') { this.value='';}"><?php echo (isset($veranstaltung['beschreibung'])?$veranstaltung['beschreibung']:constEingabeFehlt);?></textarea></td>
|
||||
</tr>
|
||||
|
||||
<td>
|
||||
<textarea rows="3" cols="80" id="beschreibung" name="beschreibung" onblur="if (this.value=='') {this.value=this.defaultValue;}" onfocus="if (this.value=='<?php echo constEingabeFehlt; ?>') { this.value='';}"><?php echo (isset($veranstaltung['beschreibung'])?$veranstaltung['beschreibung']:constEingabeFehlt);?></textarea>
|
||||
<?php
|
||||
if(isset($veranstaltung['beschreibung']))
|
||||
echo printlinks($veranstaltung['beschreibung']);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="inhalt"><?php echo $p->t("global/beschreibung")?></label></td>
|
||||
<td><textarea rows="3" cols="80" id="inhalt" name="inhalt"><?php echo (isset($veranstaltung['inhalt'])?$veranstaltung['inhalt']:'');?></textarea></td>
|
||||
</tr>
|
||||
<td>
|
||||
<textarea rows="3" cols="80" id="inhalt" name="inhalt"><?php echo (isset($veranstaltung['inhalt'])?$veranstaltung['inhalt']:'');?></textarea>
|
||||
<?php
|
||||
if(isset($veranstaltung['inhalt']))
|
||||
echo printlinks($veranstaltung['inhalt']);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
@@ -521,7 +533,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr class="ausblenden">
|
||||
<td colspan="2">
|
||||
<input type="Text" value="<?php echo (!isset($veranstaltung['insertvon']) || empty($veranstaltung['insertvon'])?$user:$veranstaltung['insertvon'] ); ?>" name="insertvon" >
|
||||
@@ -548,12 +560,12 @@
|
||||
|
||||
<?php
|
||||
echo '<p class="error">'.$error.'</p>';
|
||||
|
||||
|
||||
$veranstaltung_id=(isset($veranstaltung['veranstaltung_id'])?$veranstaltung['veranstaltung_id']:$veranstaltung_id);
|
||||
if (!empty($veranstaltung_id))
|
||||
{
|
||||
echo '<hr>'.jahresplan_veranstaltung_detail_user($veranstaltung,$is_wartungsberechtigt);
|
||||
echo '<a href="javascript:callWindows(\'jahresplan_reservierung.php?veranstaltung_id='.$veranstaltung_id.'&openfirst=1&startDatum='.(isset($veranstaltung['start_timestamp'])?$veranstaltung['start_timestamp']:mktime(12,0,0,date("m"),date("d"),date("y"))).'&endeDatum='.(isset($veranstaltung['ende_timestamp'])?$veranstaltung['ende_timestamp']:mktime(13,0,0,date("m"),date("d"),date("y"))).'\',\'Reservierung\');">'.$p->t("eventkalender/reservierungenInEinemNeuenFensterAnzeigen").'.</a>';
|
||||
echo '<a href="javascript:callWindows(\'jahresplan_reservierung.php?veranstaltung_id='.$veranstaltung_id.'&openfirst=1&startDatum='.(isset($veranstaltung['start_timestamp'])?$veranstaltung['start_timestamp']:mktime(12,0,0,date("m"),date("d"),date("y"))).'&endeDatum='.(isset($veranstaltung['ende_timestamp'])?$veranstaltung['ende_timestamp']:mktime(13,0,0,date("m"),date("d"),date("y"))).'\',\'Reservierung\');">'.$p->t("eventkalender/reservierungenInEinemNeuenFensterAnzeigen").'.</a>';
|
||||
echo '<iframe id="reservierung" src="jahresplan_reservierung.php?veranstaltung_id='.$veranstaltung_id.'&startDatum='.(isset($veranstaltung['start_timestamp'])?$veranstaltung['start_timestamp']:mktime(12,0,0,date("m"),date("d"),date("y"))).'&endeDatum='.(isset($veranstaltung['ende_timestamp'])?$veranstaltung['ende_timestamp']:mktime(13,0,0,date("m"),date("d"),date("y"))).'"></iframe>';
|
||||
}
|
||||
else
|
||||
@@ -562,4 +574,4 @@
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*
|
||||
*
|
||||
* Description: This file creates a studentlist with students' profile fotos
|
||||
* by a given studiengangs- and lehrveranstaltungs ID (and eventually a given lehreinheit ID).
|
||||
* If fotos are locked by student, a dummy picture is inserted instead of the students foto.
|
||||
* EXCEPTION: if user has admins or assitents rights, ALL students' fotos are iserted (even locked ones)
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
@@ -60,7 +60,7 @@ $lv->load($lvid);
|
||||
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($user);
|
||||
|
||||
|
||||
if (!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's') && !check_lektor_lehrveranstaltung($user, $lvid, $studiensemester))
|
||||
die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen');
|
||||
|
||||
@@ -85,11 +85,11 @@ $qry = "SELECT DISTINCT ON
|
||||
gruppe,
|
||||
gruppe_kurzbz,
|
||||
stg_typ
|
||||
FROM
|
||||
FROM
|
||||
campus.vw_lehreinheit
|
||||
WHERE
|
||||
WHERE
|
||||
lehrveranstaltung_id=" . $db->db_add_param($lvid, FHC_INTEGER) . "
|
||||
AND
|
||||
AND
|
||||
studiensemester_kurzbz=" . $db->db_add_param($studiensemester);
|
||||
if ($lehreinheit != '')
|
||||
$qry .= " AND lehreinheit_id=" . $db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
@@ -111,8 +111,8 @@ if ($result = $db->db_query($qry)) {
|
||||
if ($row->gruppe_kurzbz == '')
|
||||
$gruppen_string = trim($row->kuerzel . '-' . $row->semester);
|
||||
else
|
||||
$gruppen_string = $row->gruppe_kurzbz;
|
||||
|
||||
$gruppen_string = $row->gruppe_kurzbz;
|
||||
|
||||
$gruppen_string_arr[] = $gruppen_string;
|
||||
}
|
||||
}
|
||||
@@ -122,10 +122,10 @@ $studiengruppe = implode(", ", array_unique($gruppen_string_arr));
|
||||
|
||||
//get studiengangstyp-bezeichnung
|
||||
$qry = "SELECT
|
||||
bezeichnung
|
||||
FROM
|
||||
public.tbl_studiengangstyp
|
||||
WHERE
|
||||
bezeichnung
|
||||
FROM
|
||||
public.tbl_studiengangstyp
|
||||
WHERE
|
||||
typ =" . $db->db_add_param($stg_typ);
|
||||
|
||||
if ($result = $db->db_query($qry)) {
|
||||
@@ -148,43 +148,43 @@ $data = array(
|
||||
//**************************** students data *******************************
|
||||
//load students-data
|
||||
$qry = 'SELECT DISTINCT ON
|
||||
(nachname, vorname, person_id)
|
||||
vorname,
|
||||
nachname,
|
||||
(nachname, vorname, person_id)
|
||||
vorname,
|
||||
nachname,
|
||||
matrikelnr,
|
||||
tbl_studentlehrverband.semester,
|
||||
tbl_studentlehrverband.verband,
|
||||
tbl_studentlehrverband.semester,
|
||||
tbl_studentlehrverband.verband,
|
||||
tbl_studentlehrverband.gruppe,
|
||||
(SELECT
|
||||
status_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
WHERE
|
||||
prestudent_id=tbl_student.prestudent_id
|
||||
ORDER BY
|
||||
(SELECT
|
||||
status_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
WHERE
|
||||
prestudent_id=tbl_student.prestudent_id
|
||||
ORDER BY
|
||||
datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_studiengang.kurzbz,
|
||||
tbl_studiengang.typ,
|
||||
tbl_bisio.bisio_id,
|
||||
tbl_bisio.von,
|
||||
tbl_bisio.bis,
|
||||
tbl_bisio.bisio_id,
|
||||
tbl_bisio.von,
|
||||
tbl_bisio.bis,
|
||||
tbl_student.studiengang_kz AS stg_kz_student,
|
||||
tbl_zeugnisnote.note,
|
||||
tbl_mitarbeiter.mitarbeiter_uid,
|
||||
tbl_person.matr_nr,
|
||||
tbl_person.geschlecht,
|
||||
tbl_person.foto,
|
||||
tbl_zeugnisnote.note,
|
||||
tbl_mitarbeiter.mitarbeiter_uid,
|
||||
tbl_person.matr_nr,
|
||||
tbl_person.geschlecht,
|
||||
tbl_person.foto,
|
||||
tbl_person.foto_sperre
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
|
||||
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
|
||||
LEFT JOIN lehre.tbl_zeugnisnote ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
|
||||
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
|
||||
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
WHERE
|
||||
@@ -214,7 +214,7 @@ if ($result = $db->db_query($qry)) {
|
||||
while ($row = $db->db_fetch_object($result)) {
|
||||
if ($row->status != 'Abbrecher' && $row->status != 'Unterbrecher') {
|
||||
$anzahl_studierende++;
|
||||
|
||||
|
||||
if ($row->status == 'Incoming') //Incoming
|
||||
$zusatz = '(i)';
|
||||
else
|
||||
@@ -231,9 +231,9 @@ if ($result = $db->db_query($qry)) {
|
||||
|
||||
if ($row->stg_kz_student == $a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz .= '(a.o.)';
|
||||
|
||||
|
||||
//allow admin and assistenz to see ALL fotos (even if locked by user)
|
||||
if ($show_all_fotos)
|
||||
if ($show_all_fotos)
|
||||
$row->foto_sperre = 'f';
|
||||
|
||||
//create foto (if not locked by student OR if fotolist is created by admin or assistenz)
|
||||
@@ -241,7 +241,7 @@ if ($result = $db->db_query($qry)) {
|
||||
$foto_src = $row->foto;
|
||||
$foto_url = sys_get_temp_dir() . '/foto' . trim($row->matrikelnr) . '.jpg';
|
||||
$foto_url_arr[] = $foto_url;
|
||||
|
||||
|
||||
//create writeable file
|
||||
if (!$foto = fopen($foto_url, 'w'))
|
||||
die("Das Bild konnte nicht erstellt werden");
|
||||
@@ -250,15 +250,19 @@ if ($result = $db->db_query($qry)) {
|
||||
{
|
||||
die("Das Bild konnte nicht erstellt werden");
|
||||
}
|
||||
|
||||
|
||||
//add foto to document
|
||||
$doc->addImage($foto_url, trim($row->matrikelnr) . '.jpg', 'image/jpg');
|
||||
}
|
||||
elseif ($row->foto == '')
|
||||
{
|
||||
{
|
||||
$foto_url = '';
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$foto_url = '';
|
||||
}
|
||||
|
||||
//create studiengruppe
|
||||
$student_studiengruppe = strtoupper($row->typ.$row->kurzbz.'-'.$row->semester);
|
||||
|
||||
@@ -268,7 +272,7 @@ if ($result = $db->db_query($qry)) {
|
||||
'nachname' => mb_strtoupper($row->nachname, 'UTF-8'),
|
||||
'personenkennzeichen' => trim($row->matrikelnr),
|
||||
'geschlecht' => $row->geschlecht,
|
||||
'foto_gesperrt' => $row->foto_sperre, // f/t
|
||||
'foto_gesperrt' => $row->foto_sperre, // f/t
|
||||
'foto_url' => $foto_url,
|
||||
'studiengruppe' => $student_studiengruppe,
|
||||
'verband' => trim($row->verband),
|
||||
@@ -289,7 +293,7 @@ $doc->addDataArray($data, 'fotoliste');
|
||||
//set doc name
|
||||
$doc->setFilename('Fotoliste_'.$stg_bezeichnung.'_'.$studiensemester.'_'.$lv_bezeichnung);
|
||||
|
||||
//create doc in format required
|
||||
//create doc in format required
|
||||
if (!$doc->create($output))
|
||||
die($doc->errormsg);
|
||||
|
||||
@@ -301,4 +305,4 @@ $doc->close();
|
||||
|
||||
//unlink fotos from tmp-folder
|
||||
foreach ($foto_url_arr as $foto_url)
|
||||
unlink($foto_url);
|
||||
unlink($foto_url);
|
||||
|
||||
+75
-65
@@ -16,8 +16,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
|
||||
*/
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
@@ -29,20 +29,20 @@ $sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
if(!isset($_REQUEST['grp']))
|
||||
if (!isset($_REQUEST['grp']))
|
||||
die('Falsche Parameter');
|
||||
|
||||
if(mb_strlen($_REQUEST['grp'])>32)
|
||||
|
||||
if (mb_strlen($_REQUEST['grp'])>32)
|
||||
die('Grp ungueltig');
|
||||
|
||||
|
||||
//Pruefen ob es eine gueltige Gruppe ist
|
||||
$gruppe = new gruppe();
|
||||
if(!$gruppe->exists($_REQUEST['grp']))
|
||||
if (!$gruppe->exists($_REQUEST['grp']))
|
||||
{
|
||||
//Wenn es keine Gruppe in der DB ist, kann es
|
||||
//noch ein Studierendenverteiler sein
|
||||
//bif_std
|
||||
if(!preg_match('/^\D\D\D_std$/', $_REQUEST['grp']))
|
||||
if (!preg_match('/^\D\D\D_std$/', $_REQUEST['grp']))
|
||||
{
|
||||
die('Ungueltige Gruppe');
|
||||
}
|
||||
@@ -52,38 +52,35 @@ function mail_id_generator()
|
||||
mt_srand((double)microtime()*1000000);
|
||||
|
||||
/* Laenge des Passwortes dem Zufall ueberlassen */
|
||||
$length = 6; //mt_rand(6, 6);
|
||||
$length = 6;
|
||||
$fix_similar = '';
|
||||
$valid_charset = "";
|
||||
|
||||
/* Stelle ein Charset zusammen */
|
||||
if (!$valid_charset)
|
||||
{
|
||||
// deactivated, regarding an case sensitive issue
|
||||
//$valid_charset .= 'ABCDEFGHIJKLMNOPQRSTUVXYZ';
|
||||
$valid_charset .= 'abcdefghijklmnopqrstuvxyz';
|
||||
$valid_charset .= '0123456789';
|
||||
//$valid_charset .= '!@_-';
|
||||
}
|
||||
|
||||
$charset_length = mb_strlen($valid_charset);
|
||||
|
||||
if ($charset_length == 0) return false;
|
||||
|
||||
/* Initialisieren - Auswahl von chars bis definierte Anzahl erreicht */
|
||||
$mail_id = "";
|
||||
while(strlen($mail_id) < $length)
|
||||
{
|
||||
/* Waehle einen zufaelligen char aus */
|
||||
$char = $valid_charset[mt_rand(0, ($charset_length-1))];
|
||||
|
||||
/* Abgleich von gleich aussehenden chars */
|
||||
if (($fix_similar && !strpos('O01lI5S', $char)) || !$fix_similar) $mail_id .= $char;
|
||||
/* Stelle ein Charset zusammen */
|
||||
if (!$valid_charset)
|
||||
{
|
||||
$valid_charset .= 'abcdefghijklmnopqrstuvxyz';
|
||||
$valid_charset .= '0123456789';
|
||||
}
|
||||
return $mail_id;
|
||||
|
||||
$charset_length = mb_strlen($valid_charset);
|
||||
|
||||
if ($charset_length == 0) return false;
|
||||
|
||||
/* Initialisieren - Auswahl von chars bis definierte Anzahl erreicht */
|
||||
$mail_id = '';
|
||||
while (strlen($mail_id) < $length)
|
||||
{
|
||||
/* Waehle einen zufaelligen char aus */
|
||||
$char = $valid_charset[mt_rand(0, ($charset_length-1))];
|
||||
|
||||
/* Abgleich von gleich aussehenden chars */
|
||||
if (($fix_similar && !strpos('O01lI5S', $char)) || !$fix_similar) $mail_id .= $char;
|
||||
}
|
||||
return $mail_id;
|
||||
}
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -92,48 +89,61 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
|
||||
</head>
|
||||
<body>';
|
||||
|
||||
if(isset($_REQUEST['token']) && isset($_REQUEST['grp']))
|
||||
if (isset($_REQUEST['token']) && isset($_REQUEST['grp']))
|
||||
{
|
||||
echo '
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/mailverteiler').'</font></td>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/status').'</font></td>
|
||||
</tr>';
|
||||
|
||||
<tr>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/mailverteiler').'</font></td>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/status').'</font></td>
|
||||
</tr>';
|
||||
|
||||
/* Generate an random String */
|
||||
$mail_id=mail_id_generator();
|
||||
$mail_id = mail_id_generator();
|
||||
|
||||
/* call the shellpart at polyxena */
|
||||
$command = "ssh -p 22022 root@polyxena sudo /root/bin/mlistin.sh " . $_REQUEST['grp'] . " " . $mail_id . " 2>&1";
|
||||
exec($command);
|
||||
/* Command to unlock Mailgroup */
|
||||
$command = "ssh -i /etc/apache2/id_mail_provisioning mailadmins@bifrost2 ".$_REQUEST['grp'] . " " . $mail_id;
|
||||
|
||||
/* ffe, 20051020 - do a little logging */
|
||||
$message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n";
|
||||
$output = array();
|
||||
exec($command, $output, $retval);
|
||||
|
||||
$filet = fopen(LOG_PATH.'.htmlistopen.log', "a");
|
||||
fwrite($filet, $message, mb_strlen($message));
|
||||
fclose($filet);
|
||||
if ($retval === 0)
|
||||
{
|
||||
// Add Log Message
|
||||
$message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n";
|
||||
|
||||
// for the users
|
||||
echo "
|
||||
<tr>
|
||||
<td><a href='mailto:".$_REQUEST['grp'].$mail_id."@".DOMAIN."'>".$db->convert_html_chars($_REQUEST['desc'])."</a></td>
|
||||
<td>".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.")</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>
|
||||
<p>".$p->t('mailverteiler/klickenZumSchicken')."</p>
|
||||
$filet = fopen(LOG_PATH.'.htmlistopen.log', "a");
|
||||
fwrite($filet, $message, mb_strlen($message));
|
||||
fclose($filet);
|
||||
|
||||
<p>".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
";
|
||||
echo "
|
||||
<tr>
|
||||
<td><a href='mailto:".$_REQUEST['grp'].$mail_id."@".DOMAIN."'>".$db->convert_html_chars($_REQUEST['desc'])."</a></td>
|
||||
<td>".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.")</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>
|
||||
<p>".$p->t('mailverteiler/klickenZumSchicken')."</p>
|
||||
|
||||
<p>".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."</p>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
'.$p->t('mailverteiler/oeffnenFehlgeschlagen').'
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
echo '</table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($_REQUEST['grp']=="")
|
||||
if ($_REQUEST['grp'] == '')
|
||||
{
|
||||
exit();
|
||||
}
|
||||
@@ -142,7 +152,7 @@ else
|
||||
echo $p->t('mailverteiler/bestaetigeOeffnen',array($_REQUEST['grp']))." : <a href=\"".$_SERVER['SCRIPT_NAME']."?grp=".$_REQUEST['grp']."&desc=".$db->convert_html_chars($_REQUEST['desc'])."&token=1\">".$p->t('mailverteiler/bestaetige')."</a>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
|
||||
@@ -19,8 +19,9 @@
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>
|
||||
* Manfred Kindl <kindlm@technikum.wien.at>.
|
||||
* Manfred Kindl <kindlm@technikum.wien.at>
|
||||
* Gerald Raab <raab@technikum-wien.at>
|
||||
* Alexei Karpenko <karpenko@technikum-wien.at>
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
@@ -648,7 +649,6 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
$service_id = '';
|
||||
$kunde_uid = '';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -719,13 +719,15 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$anzprojekte = count($projekt->result);
|
||||
echo "<table width='100%'>
|
||||
<tr>
|
||||
<td>
|
||||
<a href='".$_SERVER['PHP_SELF']."' style='font-size: larger;'>".$p->t("zeitaufzeichnung/neu")."</a>
|
||||
|
||||
<a href='".$_SERVER['PHP_SELF']."?csvimport=1' style='font-size: larger;'>CSV Import</a>
|
||||
<td>
|
||||
<a href='".$_SERVER['PHP_SELF']."' style='font-size: larger;'>".$p->t("zeitaufzeichnung/neu")."</a><a style='font-size: larger; text-decoration: none; cursor: default'> | </a>
|
||||
|
||||
<a href='".$_SERVER['PHP_SELF']."?csvimport=1' style='font-size: larger;'>CSV Import</a><a style='font-size: larger; text-decoration: none; cursor: default'> | </a>
|
||||
|
||||
<a href='".$_SERVER['PHP_SELF']."?csvexport=1' style='font-size: larger;'>CSV Export</a>
|
||||
</td>
|
||||
<a href='".$_SERVER['PHP_SELF']."?csvexport=1' style='font-size: larger;'>CSV Export</a>";
|
||||
if($anzprojekte > 0)
|
||||
echo "<a style='font-size: larger; text-decoration: none; cursor: default'> | </a><a href='".$_SERVER['PHP_SELF']."?projektexport=1' style='font-size: larger;'>Projektexport</a>";
|
||||
echo "</td>
|
||||
<td class='menubox' height='10px'>";
|
||||
if ($p->t("dms_link/handbuchZeitaufzeichnung")!='')
|
||||
{
|
||||
@@ -739,14 +741,68 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo "</td>
|
||||
</tr>
|
||||
</table>";
|
||||
echo '<table>
|
||||
<tr>
|
||||
<td rowspan="2">';
|
||||
echo '<table>';
|
||||
if (isset($_GET['projektexport']))
|
||||
{
|
||||
$projektexpurl = dirname($_SERVER["PHP_SELF"]) .'/zeitaufzeichnung_projektliste.php';
|
||||
$aktjahr = intval(date("Y"));
|
||||
$aktmonat = intval(date("m")) - 1;
|
||||
$jahreanz = 3;
|
||||
echo '<form action="'.$projektexpurl.'" method="GET">';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '<tr><td>Projektexport</td>';
|
||||
echo '<td align="center">Monat: <select id="projexpmonat" name="projexpmonat">';
|
||||
for($i=1;$i<13;$i++)
|
||||
{
|
||||
$selected = ($i == $aktmonat)?'selected = "selected"':'';
|
||||
echo '<option value="'.$i.'" '.$selected.'>'.$monatsname[1][$i - 1].'</option>';
|
||||
}
|
||||
echo '</select></td>';
|
||||
echo '<td align="center">Jahr: <select id="projexpjahr" name="projexpjahr">';
|
||||
for(;$jahreanz>0;$jahreanz--)
|
||||
{
|
||||
echo '<option value="'.$aktjahr.'">'.$aktjahr.'</option>';
|
||||
$aktjahr--;
|
||||
}
|
||||
echo '</select></td>';
|
||||
echo '<td align="right"><input type="submit" value="Export" name="projexport"></td></tr>';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
//Formular
|
||||
echo '<br><form action="'.$_SERVER['PHP_SELF'].'?zeitaufzeichnung_id='.$zeitaufzeichnung_id.'" method="POST" onsubmit="return checkdatum()" enctype="multipart/form-data">';
|
||||
|
||||
echo '<table>
|
||||
/* echo '<table>
|
||||
<tr>
|
||||
<td rowspan="2">';
|
||||
echo '<table>';
|
||||
echo '<table>';*/
|
||||
if (isset($_GET['csvimport']))
|
||||
{
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '<tr><td>CSV-Import</td><td colspan="2"><input type="file" name="csv" value="" /></td><td align="right"><input type="submit" value="Import" name="import"></td></tr>';
|
||||
echo '<tr><td></td><td colspan="3">Informationen zum Format der CSV-Datei s. Leitfaden Arbeitszeitaufzeichnung</td></tr>';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
}
|
||||
else
|
||||
echo '<input type="file" name="csv" value="" style="display:none">';
|
||||
|
||||
if (isset($_GET['csvexport']))
|
||||
{
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST" onsubmit="return checkdatumCSVExp(\'exp_von_datum\', \'exp_bis_datum\')">';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '<tr><td>CSV-Export</td>';
|
||||
echo '<td>Startdatum: <input class="datepicker_datum" id="exp_von_datum" name="exp_von_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('first day of previous month')).'" /></td>';
|
||||
echo '<td align="right">Enddatum: <input class="datepicker_datum" id="exp_bis_datum" name="exp_bis_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('last day of previous month')).'" /></td>';
|
||||
echo '<td align="right"><input type="submit" value="Export" name="export"></td></tr>';
|
||||
echo '<tr><td></td><td colspan="3"></td></tr>';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
//Projekte werden nicht angezeigt wenn es keine gibt
|
||||
if($anzprojekte > 0)
|
||||
{
|
||||
@@ -948,14 +1004,6 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo '<input type="submit" value="'.$p->t("global/aendern").'" name="edit"> ';
|
||||
echo '<input type="submit" value="'.$p->t("zeitaufzeichnung/alsNeuenEintragSpeichern").'" name="save"></td></tr>';
|
||||
}
|
||||
if (isset($_GET['csvimport']))
|
||||
{
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '<tr><td>CSV-Import</td><td colspan="2"><input type="file" name="csv" value="" /></td><td align="right"><input type="submit" value="Import" name="import"></td></tr>';
|
||||
echo '<tr><td></td><td colspan="3">Informationen zum Format der CSV-Datei s. Leitfaden Arbeitszeitaufzeichnung</td></tr>';
|
||||
}
|
||||
else
|
||||
echo '<input type="file" name="csv" value="" style="display:none">';
|
||||
echo '</table>';
|
||||
|
||||
echo '</td><td valign="top"><span id="zeitsaldo"></span><br><br><div id="monatsliste"></span></td></tr>';
|
||||
@@ -998,20 +1046,6 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo '</td></tr>';
|
||||
echo '</table>';
|
||||
echo '</form>';
|
||||
if (isset($_GET['csvexport']))
|
||||
{
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST" onsubmit="return checkdatumCSVExp(\'exp_von_datum\', \'exp_bis_datum\')">';
|
||||
echo '<table>';
|
||||
echo '<tr><td colspan="5"><hr></td></tr>';
|
||||
echo '<tr><td width = "18%">CSV-Export</td>';
|
||||
echo '<td>Startdatum: <input class="datepicker_datum" id="exp_von_datum" name="exp_von_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('first day of previous month')).'" /></td>';
|
||||
echo '<td width = "8%"> </td>';
|
||||
echo '<td>Enddatum: <input class="datepicker_datum" id="exp_bis_datum" name="exp_bis_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('last day of previous month')).'" /></td>';
|
||||
echo '<td align="right" width="23%"><input type="submit" value="Export" name="export"></td></tr>';
|
||||
echo '<tr><td></td><td colspan="3"></td></tr>';
|
||||
echo '</table>';
|
||||
echo '</form>';
|
||||
}
|
||||
echo '<hr>';
|
||||
echo '<h3>'.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'</h3>';
|
||||
if ($alle===true)
|
||||
|
||||
@@ -0,0 +1,544 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Alexei Karpenko <karpenko@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Creates a project list from the zeitaufzeichnung for a given user, month and year
|
||||
* Shows total worktime (IST-Arbeitszeit without breaks or externe Lehre) for each workday
|
||||
* together with sums of worktime and work package descriptions for each project.
|
||||
*/
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/globals.inc.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/Excel/excel.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../include/zeitaufzeichnung.class.php');
|
||||
require_once('../../../include/projekt.class.php');
|
||||
|
||||
if (!isset($_GET['projexpmonat']))
|
||||
die("Parameter monat fehlt");
|
||||
if (!isset($_GET['projexpjahr']))
|
||||
die("Parameter jahr fehlt");
|
||||
|
||||
$uid = get_uid();
|
||||
$benutzer = new benutzer();
|
||||
if (!$benutzer->load($uid))
|
||||
die($p->t("zeitaufzeichnung/benutzerWurdeNichtGefunden", array($uid)));
|
||||
|
||||
$month = $_GET['projexpmonat'];
|
||||
$year = $_GET['projexpjahr'];
|
||||
|
||||
$monthtext = $monatsname[1][$month - 1];
|
||||
$username = $benutzer->vorname." ".$benutzer->nachname;
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$mitarbeiter->load($uid);
|
||||
$persnr = $mitarbeiter->personalnummer;
|
||||
$daysinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
|
||||
|
||||
$date = new datum();
|
||||
$ztauf = new zeitaufzeichnung();
|
||||
|
||||
$ztauf->getListeUserFromTo($uid, $year.'-'.$month.'-01', $year.'-'.$month.'-'.$daysinmonth);
|
||||
|
||||
//objects for one projectline of list (corresponds to one day)
|
||||
$projectlines = [];
|
||||
$dayStart = $dayEnd = '';
|
||||
$projectnames = $tosubtract = $allpauseranges = [];
|
||||
$toignore = ['Pause', 'LehreExtern'];
|
||||
$ztaufdata = $ztauf->result;
|
||||
$monthsums = [0 => 0.00];
|
||||
|
||||
//sprt list by startdate ascending (if not already done in zeitaufzeichnung class)
|
||||
usort($ztaufdata, function ($ztaufa, $ztaufb)
|
||||
{
|
||||
$date = new datum();
|
||||
return $date->mktime_fromtimestamp($ztaufa->start) - $date->mktime_fromtimestamp($ztaufb->start);
|
||||
}
|
||||
);
|
||||
|
||||
//fill projectlines with data
|
||||
for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
{
|
||||
$ztaufrow = $ztaufdata[$i];
|
||||
$day = intval($date->formatDatum($ztaufrow->ende, 'd'));
|
||||
//first entry for a day
|
||||
$isFirstEntry = !isset($projectlines[$day]);
|
||||
|
||||
//last entry for a day (next entry is different day)
|
||||
$isLastEntry = !array_key_exists($i + 1, $ztaufdata) || intval($date->formatDatum($ztaufdata[$i + 1]->ende, 'd')) != $day;
|
||||
|
||||
if (in_array($ztaufrow->aktivitaet_kurzbz, $toignore))
|
||||
{
|
||||
$subtraction = new stdClass();
|
||||
$subtraction->start = $ztaufrow->start;
|
||||
$subtraction->ende = $ztaufrow->ende;
|
||||
$subtraction->diff = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
$subtraction->typ = $ztaufrow->aktivitaet_kurzbz;
|
||||
$tosubtract[] = $subtraction;
|
||||
|
||||
//save all pause ranges
|
||||
if($ztaufrow->aktivitaet_kurzbz == $toignore[0])
|
||||
{
|
||||
$prevpause = null;
|
||||
if(sizeof($allpauseranges)>0)
|
||||
{
|
||||
$prevpause = $allpauseranges[sizeof($allpauseranges) - 1];
|
||||
}
|
||||
|
||||
//first pause or no overlap to previous pause - add pauserange
|
||||
if( is_null($prevpause ) || $prevpause->ende <= $ztaufrow->start )
|
||||
{
|
||||
$pauserange = new stdClass();
|
||||
$pauserange->start = $ztaufrow->start;
|
||||
$pauserange->ende = $ztaufrow->ende;
|
||||
$allpauseranges[] = $pauserange;
|
||||
}
|
||||
//pause overlap - change pause ende
|
||||
elseif($prevpause->ende > $ztaufrow->start )
|
||||
{
|
||||
$allpauseranges[sizeof($allpauseranges) - 1]->ende = $ztaufrow->ende;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (($dayStart == '' || $date->mktime_fromtimestamp($date->formatDatum($dayStart, $format = 'Y-m-d H:i:s')) > $date->mktime_fromtimestamp($date->formatDatum($ztaufrow->start, $format = 'Y-m-d H:i:s'))) && $ztaufrow->aktivitaet_kurzbz != $toignore[1])
|
||||
$dayStart = $ztaufrow->start;
|
||||
if (($dayEnd == '' || $date->mktime_fromtimestamp($date->formatDatum($dayEnd, $format = 'Y-m-d H:i:s')) < $date->mktime_fromtimestamp($date->formatDatum($ztaufrow->ende, $format = 'Y-m-d H:i:s'))) && $ztaufrow->aktivitaet_kurzbz != $toignore[1])
|
||||
$dayEnd = $ztaufrow->ende;
|
||||
|
||||
if ($isFirstEntry)
|
||||
{
|
||||
$projectlines[$day] = new stdClass();
|
||||
$projectlines[$day]->arbeitszeit = '';
|
||||
$projectlines[$day]->projekte = [];
|
||||
}
|
||||
|
||||
if (isset($ztaufrow->projekt_kurzbz))
|
||||
{
|
||||
//Project already in projectline - add to worktime and description
|
||||
if (array_key_exists($ztaufrow->projekt_kurzbz, $projectlines[$day]->projekte))
|
||||
{
|
||||
$laststart =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->laststart;
|
||||
$lastende =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->lastende;
|
||||
|
||||
$toadd = 0.00;
|
||||
//case 1: there is no overlap, just add project time difference
|
||||
if ($date->mktime_fromtimestamp($ztaufrow->start) > $date->mktime_fromtimestamp($lastende))
|
||||
{
|
||||
$toadd = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
$laststart = $ztaufrow->start;
|
||||
$lastende = $ztaufrow->ende;
|
||||
$newprojecttime = new stdClass();
|
||||
$newprojecttime->start = $ztaufrow->start;
|
||||
$newprojecttime->ende = $ztaufrow->ende;
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->alleZeiten[] = $newprojecttime;
|
||||
}
|
||||
//case 2: overlap - add only part of the time
|
||||
elseif ($date->mktime_fromtimestamp($ztaufrow->start) < $date->mktime_fromtimestamp($lastende) && $date->mktime_fromtimestamp($ztaufrow->ende) > $date->mktime_fromtimestamp($lastende))
|
||||
{
|
||||
$toadd = ($date->mktime_fromtimestamp($ztaufrow->ende) - $date->mktime_fromtimestamp($lastende)) / 3600;
|
||||
$lastende = $ztaufrow->ende;
|
||||
$alleZeiten =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->alleZeiten;
|
||||
$index = count($alleZeiten);
|
||||
$alleZeiten[$index-1]->ende = $ztaufrow->ende;
|
||||
}
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->stunden += $toadd;
|
||||
|
||||
//concatenate descriptions "working packages" for each project
|
||||
if (!empty($ztaufrow->beschreibung))
|
||||
{
|
||||
$packagecounter = ++$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->arbeitspakete;
|
||||
if ($packagecounter == 1)
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->beschreibung = $ztaufrow->beschreibung;
|
||||
else
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->beschreibung .= " | ".str_replace(array("\r\n", "\r", "\n"), " ", $ztaufrow->beschreibung);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//add new project to projectline
|
||||
$newproject = new stdClass();
|
||||
$newproject->laststart = $ztaufrow->start;
|
||||
$newproject->lastende = $ztaufrow->ende;
|
||||
$newprojecttime = new stdClass();
|
||||
$newprojecttime->start = $ztaufrow->start;
|
||||
$newprojecttime->ende = $ztaufrow->ende;
|
||||
$newproject->alleZeiten = [];
|
||||
$newproject->alleZeiten[] = $newprojecttime;
|
||||
$newproject->stunden = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
$newproject->arbeitspakete = 0;//counter for tracking number of descriptions (work packages)
|
||||
$newproject->beschreibung = '';
|
||||
if (!empty($ztaufrow->beschreibung))
|
||||
{
|
||||
$newproject->beschreibung = str_replace(array("\r\n", "\r", "\n"), " ", $ztaufrow->beschreibung);
|
||||
$newproject->arbeitspakete++;
|
||||
}
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz] = $newproject;
|
||||
|
||||
//add new project to array with unique project names
|
||||
if (!in_array($ztaufrow->projekt_kurzbz, $projectnames))
|
||||
$projectnames[] = $ztaufrow->projekt_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
if ($isLastEntry)
|
||||
{
|
||||
$worktime_unix = $date->mktime_fromtimestamp($date->formatDatum($dayEnd, $format = 'Y-m-d H:i:s')) - $date->mktime_fromtimestamp($date->formatDatum($dayStart, $format = 'Y-m-d H:i:s'));
|
||||
$worktimehours = $worktime_unix / 3600;
|
||||
|
||||
$projectlines[$day]->arbeitszeit = $worktimehours;
|
||||
$pauseSubtracted = 0.00;
|
||||
$lehreExternExists = false;
|
||||
|
||||
//subtract Pauses and LehreExtern
|
||||
foreach ($tosubtract as $subtraction)
|
||||
{
|
||||
if ($subtraction->typ == $toignore[0])
|
||||
{
|
||||
$projectlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$pauseSubtracted += $subtraction->diff;
|
||||
}
|
||||
elseif ($subtraction->typ == $toignore[1] && $subtraction->start >= $dayStart && $subtraction->ende <= $dayEnd)
|
||||
{
|
||||
$projectlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$lehreExternExists = true;
|
||||
}
|
||||
}
|
||||
|
||||
//subtract pauses from Project worktimes
|
||||
foreach($allpauseranges as $pauserange)
|
||||
{
|
||||
foreach($projectlines[$day]->projekte as $name => $project)
|
||||
{
|
||||
foreach($projectlines[$day]->projekte[$name]->alleZeiten as $zeit)
|
||||
{
|
||||
if($pauserange->start >= $zeit->start && $pauserange->ende <= $zeit->ende)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
break;
|
||||
}
|
||||
elseif($pauserange->start < $zeit->ende && $pauserange->start > $zeit->start)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($zeit->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
//break;
|
||||
}
|
||||
elseif($pauserange->ende > $zeit->start && $pauserange->ende< $zeit->ende)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($zeit->start)) / 3600;
|
||||
//break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//worktime with no break greater 6 -> compulsory break of half an hour
|
||||
if ($pauseSubtracted < 0.5 && !$lehreExternExists)
|
||||
{
|
||||
if ($projectlines[$day]->arbeitszeit >= 6.5)
|
||||
$projectlines[$day]->arbeitszeit -= 0.5;
|
||||
|
||||
//ensure that no worktime gets smaller than 6 hours because of compulsory break
|
||||
elseif ($projectlines[$day]->arbeitszeit > 6)
|
||||
$projectlines[$day]->arbeitszeit -= $projectlines[$day]->arbeitszeit - 6;
|
||||
}
|
||||
|
||||
$projectlines[$day]->arbeitszeit = floor($projectlines[$day]->arbeitszeit * 100) / 100;
|
||||
|
||||
foreach($projectlines[$day]->projekte as $name => $project)
|
||||
{
|
||||
$projecthours =& $projectlines[$day]->projekte[$name]->stunden;
|
||||
$projecthours = floor($projecthours * 100) / 100;
|
||||
if (array_key_exists($name, $monthsums))
|
||||
$monthsums[$name] += $projecthours;
|
||||
else
|
||||
$monthsums[$name] = $projecthours;
|
||||
}
|
||||
|
||||
$dayStart = $dayEnd = '';
|
||||
$tosubtract = $allpauseranges = [];
|
||||
$monthsums[0] += $projectlines[$day]->arbeitszeit;
|
||||
}
|
||||
}
|
||||
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
$workbook->setVersion(8);
|
||||
|
||||
// sending HTTP headers
|
||||
$workbook->send("Projektliste_".$month."_".$year.".xls");
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("Projektliste");
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
// Define formats
|
||||
$format_heading_left =& $workbook->addFormat();
|
||||
$format_heading_left->setBold();
|
||||
$format_heading_left->setAlign('center');
|
||||
$format_heading_left->setAlign('vcenter');
|
||||
$format_heading_left->setBottom(2);
|
||||
$format_heading_left->setLeft(2);
|
||||
$format_heading_left->setTop(2);
|
||||
|
||||
$format_heading_right =& $workbook->addFormat();
|
||||
$format_heading_right->setBold();
|
||||
$format_heading_right->setAlign('right');
|
||||
$format_heading_right->setRight(2);
|
||||
$format_heading_right->setTop(2);
|
||||
|
||||
$format_heading_right_bottomline =& $workbook->addFormat();
|
||||
$format_heading_right_bottomline->setAlign('right');
|
||||
$format_heading_right_bottomline->setRight(2);
|
||||
$format_heading_right_bottomline->setBottom(2);
|
||||
|
||||
$format_bold_centered_toprightline =& $workbook->addFormat();
|
||||
$format_bold_centered_toprightline->setBorder(1);
|
||||
$format_bold_centered_toprightline->setBold();
|
||||
$format_bold_centered_toprightline->setAlign('center');
|
||||
$format_bold_centered_toprightline->setVAlign('vcenter');
|
||||
$format_bold_centered_toprightline->setTop(2);
|
||||
$format_bold_centered_toprightline->setRight(2);
|
||||
|
||||
$format_bold_centered_bottomline =& $workbook->addFormat();
|
||||
$format_bold_centered_bottomline->setBorder(1);
|
||||
$format_bold_centered_bottomline->setBold();
|
||||
$format_bold_centered_bottomline->setAlign('center');
|
||||
$format_bold_centered_bottomline->setVAlign('vcenter');
|
||||
$format_bold_centered_bottomline->setBottom(2);
|
||||
|
||||
$format_bold_centered_bottomrightline =& $workbook->addFormat();
|
||||
$format_bold_centered_bottomrightline->setBorder(1);
|
||||
$format_bold_centered_bottomrightline->setBold();
|
||||
$format_bold_centered_bottomrightline->setAlign('center');
|
||||
$format_bold_centered_bottomrightline->setVAlign('vcenter');
|
||||
$format_bold_centered_bottomrightline->setBottom(2);
|
||||
$format_bold_centered_bottomrightline->setRight(2);
|
||||
|
||||
$format_bold_centered_alllines =& $workbook->addFormat();
|
||||
$format_bold_centered_alllines->setBorder(2);
|
||||
$format_bold_centered_alllines->setBold();
|
||||
$format_bold_centered_alllines->setAlign('center');
|
||||
$format_bold_centered_alllines->setVAlign('vcenter');
|
||||
|
||||
$format_cell_rightline =& $workbook->addFormat();
|
||||
$format_cell_rightline->setBorder(1);
|
||||
$format_cell_rightline->setVAlign('vcenter');
|
||||
$format_cell_rightline->setRight(2);
|
||||
|
||||
$format_cell_centered =& $workbook->addFormat();
|
||||
$format_cell_centered->setBorder(1);
|
||||
$format_cell_centered->setAlign('center');
|
||||
$format_cell_centered->setVAlign('vcenter');
|
||||
|
||||
$format_cell_centered_leftline =& $workbook->addFormat();
|
||||
$format_cell_centered_leftline->setBorder(1);
|
||||
$format_cell_centered_leftline->setAlign('center');
|
||||
$format_cell_centered_leftline->setVAlign('vcenter');
|
||||
$format_cell_centered_leftline->setLeft(2);
|
||||
|
||||
$format_cell_centered_rightline =& $workbook->addFormat();
|
||||
$format_cell_centered_rightline->setBorder(1);
|
||||
$format_cell_centered_rightline->setAlign('center');
|
||||
$format_cell_centered_rightline->setVAlign('vcenter');
|
||||
$format_cell_centered_rightline->setRight(2);
|
||||
|
||||
$format_cell_centered_topbottomleftline =& $workbook->addFormat();
|
||||
$format_cell_centered_topbottomleftline->setBorder(1);
|
||||
$format_cell_centered_topbottomleftline->setAlign('center');
|
||||
$format_cell_centered_topbottomleftline->setVAlign('vcenter');
|
||||
$format_cell_centered_topbottomleftline->setLeft(2);
|
||||
$format_cell_centered_topbottomleftline->setBottom(2);
|
||||
$format_cell_centered_topbottomleftline->setTop(2);
|
||||
|
||||
$format_cell_centered_topbottomrightline =& $workbook->addFormat();
|
||||
$format_cell_centered_topbottomrightline->setBorder(1);
|
||||
$format_cell_centered_topbottomrightline->setAlign('center');
|
||||
$format_cell_centered_topbottomrightline->setVAlign('vcenter');
|
||||
$format_cell_centered_topbottomrightline->setRight(2);
|
||||
$format_cell_centered_topbottomrightline->setBottom(2);
|
||||
$format_cell_centered_topbottomrightline->setTop(2);
|
||||
|
||||
$format_cell_centered_alllines =& $workbook->addFormat();
|
||||
$format_cell_centered_alllines->setBorder(2);
|
||||
$format_cell_centered_alllines->setAlign('center');
|
||||
$format_cell_centered_alllines->setVAlign('vcenter');
|
||||
|
||||
//define column widths
|
||||
$nrProjects = sizeof($projectnames);
|
||||
$daywidth = 4;
|
||||
$totalworktimewidth = 10;
|
||||
$worktimewidth = 8;
|
||||
$worksheet->setColumn(0, 1, $daywidth);
|
||||
$worksheet->setColumn(2, 2, $totalworktimewidth);
|
||||
|
||||
//calculate max width for project descriptions
|
||||
$maxwidthprojects = $totalworktimewidth * (12 - $nrProjects);
|
||||
$projectcolumnwidths = array_fill_keys($projectnames, $worktimewidth);
|
||||
|
||||
//set project column width depending on project description widths
|
||||
foreach ($projectlines as $line)
|
||||
{
|
||||
foreach ($line->projekte as $key => $project)
|
||||
{
|
||||
if ($projectcolumnwidths[$key] < strlen($project->beschreibung))
|
||||
$projectcolumnwidths[$key] = strlen($project->beschreibung);
|
||||
}
|
||||
}
|
||||
|
||||
//distribute width remainder evenly among projects
|
||||
if ($nrProjects != 0)
|
||||
$remwidth = ($maxwidthprojects - array_sum($projectcolumnwidths)) / $nrProjects;
|
||||
|
||||
foreach ($projectcolumnwidths as $projectname => $width)
|
||||
$projectcolumnwidths[$projectname] += $remwidth;
|
||||
|
||||
//calculating spaces for centering global header texts
|
||||
$numberspaces = ($maxwidthprojects - 10 - strlen($username));
|
||||
$spacesstringFirst = "";
|
||||
|
||||
while ($numberspaces > 0)
|
||||
{
|
||||
$spacesstringFirst .= " ";
|
||||
$numberspaces--;
|
||||
}
|
||||
|
||||
$numberspaces = ($maxwidthprojects - 14 - strlen($persnr));
|
||||
$spacesstringSecond = "";
|
||||
while ($numberspaces > 0)
|
||||
{
|
||||
$spacesstringSecond .= " ";
|
||||
$numberspaces--;
|
||||
}
|
||||
|
||||
$spalte = $zeile = 0;
|
||||
|
||||
//write global header
|
||||
$lastspalte = ($nrProjects > 0) ? 2 + sizeof($projectnames) * 2 : 14;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 2);
|
||||
$worksheet->write($zeile, $spalte, $monthtext." ".$year, $format_heading_left);
|
||||
$worksheet->write($zeile + 1, $spalte, "", $format_heading_left);
|
||||
|
||||
$worksheet->setMerge($zeile, $spalte + 3, $zeile, $lastspalte);
|
||||
$worksheet->setMerge($zeile + 1, $spalte + 3, $zeile + 1, $lastspalte);
|
||||
$worksheet->write($zeile, $spalte + 3, "Projektliste gedruckt am:".$spacesstringFirst.$username, $format_heading_right);
|
||||
$worksheet->write($zeile, $lastspalte, '', $format_heading_right);
|
||||
$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringSecond.'Personal-Nr.:'.$persnr, $format_heading_right_bottomline);
|
||||
$worksheet->write($zeile + 1, $lastspalte, '', $format_heading_right_bottomline);
|
||||
$zeile += 3;
|
||||
|
||||
//general options
|
||||
$worksheet->setLandscape();
|
||||
$worksheet->hideGridlines();
|
||||
$worksheet->hideScreenGridlines();
|
||||
|
||||
//write table header
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, "Tag", $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte++, "", $format_bold_centered_alllines);
|
||||
$worksheet->setMerge($zeile, ++$spalte, $zeile + 1, $spalte);
|
||||
$worksheet->write($zeile, $spalte, "Arbeitszeit", $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, "", $format_bold_centered_alllines);
|
||||
$spalte++;
|
||||
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $project, $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile, $spalte + 1, "", $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile + 1, $spalte, "Stunden", $format_bold_centered_bottomline);
|
||||
$worksheet->write($zeile + 1, $spalte + 1, "Tätigkeit", $format_bold_centered_bottomrightline);
|
||||
$spalte += 2;
|
||||
}
|
||||
$zeile += 2;
|
||||
|
||||
//write table body
|
||||
for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++)
|
||||
{
|
||||
//write day and weekday
|
||||
$spalte = 0;
|
||||
$monthstr = ($month < 10) ? '0'.$month : $month;
|
||||
$daystr = ($daysnmbr < 10) ? '0'.$daysnmbr : $daysnmbr;
|
||||
$datestring = $year.'-'.$monthstr.'-'.$daystr;
|
||||
$weekday = substr($tagbez[1][$date->formatDatum($datestring, 'N')], 0, 2);
|
||||
$worksheet->write($zeile, $spalte++, $weekday, $format_cell_centered_leftline);
|
||||
$worksheet->write($zeile, $spalte++, $daysnmbr, $format_cell_centered_rightline);
|
||||
|
||||
if (array_key_exists($daysnmbr, $projectlines))
|
||||
{
|
||||
//write worktime
|
||||
$worksheet->write($zeile, $spalte++, number_format($projectlines[$daysnmbr]->arbeitszeit, 2, ",", "."), $format_cell_centered_rightline);
|
||||
$spaltetemp = $spalte;
|
||||
//write projects
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
if (array_key_exists($project, $projectlines[$daysnmbr]->projekte))
|
||||
{
|
||||
$worksheet->setColumn($spalte, $spalte, $worktimewidth);
|
||||
$worksheet->write($zeile, $spalte++, number_format($projectlines[$daysnmbr]->projekte[$project]->stunden, 2, ",", "."), $format_cell_centered_leftline);
|
||||
$worksheet->setColumn($spalte, $spalte, $projectcolumnwidths[$project]);
|
||||
$worksheet->write($zeile, $spalte++, $projectlines[$daysnmbr]->projekte[$project]->beschreibung, $format_cell_rightline);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_leftline);
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_rightline);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//write empty cells
|
||||
$worksheet->write($zeile, $spalte, '0,00', $format_cell_centered_rightline);
|
||||
$toskip = sizeof($projectnames) * 2;
|
||||
for ($i = 0; $i <= $toskip; $i++)
|
||||
{
|
||||
if ($i % 2 == 0)
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_rightline);
|
||||
else
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered);
|
||||
}
|
||||
}
|
||||
$zeile++;
|
||||
}
|
||||
|
||||
if ($nrProjects < 1)
|
||||
//no projects - merge all cells and write notice
|
||||
{
|
||||
$worksheet->setMerge(3, 3, 4 + $daysinmonth, $lastspalte);
|
||||
$worksheet->write(3, 3, "keine Projekte vorhanden", $format_bold_centered_alllines);
|
||||
$worksheet->write(3, $lastspalte, "", $format_bold_centered_alllines);
|
||||
}
|
||||
|
||||
//write monthly sums
|
||||
$spalte = 0;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, 'Summe:', $format_bold_centered_alllines);
|
||||
$spalte += 2;
|
||||
$worksheet->write($zeile, $spalte++, number_format($monthsums[0], 2, ",", "."), $format_cell_centered_alllines);
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
$worksheet->write($zeile, $spalte++, number_format($monthsums[$project], 2, ",", "."), $format_cell_centered_topbottomleftline);
|
||||
$worksheet->write($zeile, $spalte++, "", $format_cell_centered_topbottomrightline);
|
||||
}
|
||||
|
||||
$worksheet->fitToPages(1, 1);
|
||||
$workbook->close();
|
||||
|
||||
Reference in New Issue
Block a user