mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Der Mitarbeiterexport im FAS exportiert nun nicht mehr die Mitarbeiter
des Ausgewählten Filters sondern die markierten Mitarbeiter. Wenn keine Mitarbeiter markiert wurden werden alle angezeigten Mitarbeiter exportiert
This commit is contained in:
@@ -623,7 +623,7 @@ function MitarbeiterAuswahl()
|
||||
// ***** Termine *****
|
||||
document.getElementById('mitarbeiter-termine').setAttribute('src','termine.xul.php?mitarbeiter_uid='+uid);
|
||||
}
|
||||
|
||||
|
||||
// ***** UDF *****
|
||||
if (document.getElementById('mitarbeiter-tabs').selectedItem == document.getElementById('mitarbeiter-tab-udf'))
|
||||
{
|
||||
@@ -915,56 +915,48 @@ function MitarbeiterNeu()
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Exportiert die Daten in ein Excel File
|
||||
// * Excel Export der Mitarbeiter
|
||||
// ****
|
||||
function MitarbeiterExport()
|
||||
{
|
||||
var treeMitarbeiter=document.getElementById('mitarbeiter-tree');
|
||||
var treeMitarbeiterMenu=document.getElementById('tree-menu-mitarbeiter');
|
||||
var col = treeMitarbeiterMenu.columns ? treeMitarbeiterMenu.columns["tree-menu-mitarbeiter-col-filter"] : "tree-menu-mitarbeiter-col-filter";
|
||||
var filter=treeMitarbeiterMenu.view.getCellText(treeMitarbeiterMenu.currentIndex,col);
|
||||
cols = treeMitarbeiter.getElementsByTagName('treecol');
|
||||
|
||||
var url = "<?php echo APP_ROOT; ?>content/statistik/mitarbeiterexport.xls.php";
|
||||
var attributes="?type=mitarbeiter";
|
||||
if (filter=="Studiengangsleiter")
|
||||
attributes+="&stgl=true";
|
||||
if (filter=="Fachbereichsleiter")
|
||||
attributes+="&fbl=true";
|
||||
if (filter=="Alle")
|
||||
attributes+="&alle=true";
|
||||
if (filter=="Aktive")
|
||||
attributes+="&aktiv=true";
|
||||
if (filter=="FixAngestellte")
|
||||
attributes+="&fix=true&aktiv=true";
|
||||
if (filter=="FixAngestellteAlle")
|
||||
attributes+="&fix=true";
|
||||
if (filter=="Inaktive")
|
||||
attributes+="&aktiv=false";
|
||||
if (filter=="Karenziert")
|
||||
attributes+="&karenziert=true";
|
||||
if (filter=="Ausgeschieden")
|
||||
attributes+="&ausgeschieden=true";
|
||||
if (filter=="FreiAngestellte")
|
||||
attributes+="&fix=false&aktiv=true";
|
||||
if (filter=="FreiAngestellteAlle")
|
||||
attributes+="&fix=false";
|
||||
|
||||
url+=attributes;
|
||||
spalte=0;
|
||||
for(i in cols)
|
||||
var tree = document.getElementById('mitarbeiter-tree');
|
||||
var data='';
|
||||
//Wenn nichts markiert wurde -> alle exportieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
if(cols[i].hidden==false)
|
||||
if(tree.view)
|
||||
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
|
||||
else
|
||||
return false;
|
||||
|
||||
for (var v=0; v < items; v++)
|
||||
{
|
||||
url += "&spalte"+spalte+"="+MitarbeiterDetailgetSpaltenname(cols[i].id);
|
||||
spalte=spalte+1;
|
||||
var mitarbeiter_uid = getTreeCellText(tree, 'mitarbeiter-treecol-uid', v);
|
||||
data = data+';'+mitarbeiter_uid;
|
||||
}
|
||||
}
|
||||
//url+='&spalte0=titelpre&spalte1=vorname&spalte2=vornamen&spalte3=familienname&spalte4=uid';
|
||||
else
|
||||
{
|
||||
var start = new Object();
|
||||
var end = new Object();
|
||||
var numRanges = tree.view.selection.getRangeCount();
|
||||
var paramList= '';
|
||||
var anzahl=0;
|
||||
|
||||
//alert(url);
|
||||
//window.open(url,"","chrome,status=no, modal, width=400, height=250, centerscreen, resizable");
|
||||
window.location.href=url;
|
||||
//alle markierten personen holen
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
mitarbeiter_uid = getTreeCellText(tree, 'mitarbeiter-treecol-uid', v);
|
||||
data = data+';'+mitarbeiter_uid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
action = '<?php echo APP_ROOT; ?>content/statistik/mitarbeiterexport.xls.php';
|
||||
OpenWindowPost(action, data);
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -1992,9 +1984,9 @@ function MitarbeiterUDFIFrameLoad()
|
||||
{
|
||||
//Ausgewaehlte person_id holen
|
||||
var person_id = getTreeCellText(tree, 'mitarbeiter-treecol-person_id', tree.currentIndex);
|
||||
|
||||
|
||||
url = 'udf.xul.php?person_id='+person_id;
|
||||
document.getElementById('mitarbeiter-udf').setAttribute('src', url);
|
||||
}
|
||||
catch(e) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,59 +36,13 @@ $db = new basis_db();
|
||||
$user = get_uid();
|
||||
loadVariables($user);
|
||||
|
||||
//Parameter holen
|
||||
|
||||
if (isset($_GET['fix']))
|
||||
$fix = $_GET['fix'];
|
||||
else
|
||||
$fix=null;
|
||||
|
||||
if (isset($_GET['stgl']))
|
||||
$stgl = ($_GET['stgl'] == 'true' ? true : false);
|
||||
else
|
||||
$stgl=null;
|
||||
|
||||
if (isset($_GET['fbl']))
|
||||
$fbl = $_GET['fbl'];
|
||||
else
|
||||
$fbl=null;
|
||||
|
||||
if (isset($_GET['aktiv']))
|
||||
$aktiv = $_GET['aktiv'];
|
||||
else
|
||||
$aktiv=null;
|
||||
|
||||
if (isset($_GET['karenziert']))
|
||||
$karenziert = $_GET['karenziert'];
|
||||
else
|
||||
$karenziert=null;
|
||||
|
||||
if (isset($_GET['ausgeschieden']))
|
||||
$ausgeschieden = $_GET['ausgeschieden'];
|
||||
else
|
||||
$ausgeschieden=null;
|
||||
|
||||
if (isset($_GET['zustelladresse']))
|
||||
$zustelladresse = $_GET['zustelladresse'];
|
||||
else
|
||||
$zustelladresse = null;
|
||||
|
||||
// Die Spalten die Exportiert werden sollen, werden per GET uebergeben
|
||||
// spalte1=nachname, spalte2=vorname, spalte3=gebdatum, ...
|
||||
$anzSpalten = 0;
|
||||
$varname = 'spalte'.(string)$anzSpalten;
|
||||
while (isset($_GET[$varname]))
|
||||
{
|
||||
$spalte[$anzSpalten] = $_GET[$varname];
|
||||
$anzSpalten++;
|
||||
$varname = 'spalte'.(string)$anzSpalten;
|
||||
}
|
||||
|
||||
$zustelladresse = true;
|
||||
$data = $_POST['data'];
|
||||
$uids= explode(';',$data);
|
||||
|
||||
// Mitarbeiter holen
|
||||
$mitarbeiterDAO = new mitarbeiter();
|
||||
$mitarbeiterDAO->getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $ausgeschieden, $semester_aktuell);
|
||||
//$mitarbeiterDAO->getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $ausgeschieden, $semester_aktuell);
|
||||
$mitarbeiterDAO->getMitarbeiterArray($uids);
|
||||
|
||||
//Sortieren der Eintraege nach Nachname, Vorname
|
||||
//Umlaute werden ersetzt damit diese nicht unten angereiht werden
|
||||
@@ -106,6 +60,10 @@ foreach ($mitarbeiterDAO->result as $key => $foo)
|
||||
|
||||
array_multisort($nachname, SORT_ASC, $vorname, SORT_ASC, $mitarbeiterDAO->result);
|
||||
|
||||
$spalte = array('titelpre', 'vorname', 'vornamen', 'nachname', 'titelpost','gebdatum','svnr','ersatzkennzeichen',
|
||||
'aktiv','personalnummer', 'kurzbz','fixangestellt','lektor');
|
||||
$anzSpalten = count($spalte);
|
||||
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
$workbook->setVersion(8);
|
||||
@@ -193,7 +151,7 @@ foreach ($mitarbeiterDAO->result as $mitarbeiter)
|
||||
if (mb_strlen($row->ort) > $maxlength[$col])
|
||||
$maxlength[$col] = mb_strlen($row->ort);
|
||||
$worksheet->write($zeile, $col, $row->ort);
|
||||
|
||||
|
||||
$col++;
|
||||
if ($row->firma_id != '')
|
||||
{
|
||||
@@ -210,15 +168,15 @@ foreach ($mitarbeiterDAO->result as $mitarbeiter)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$col++;
|
||||
|
||||
|
||||
// UDF
|
||||
if (isset($mitarbeiter->p_udf_values))
|
||||
{
|
||||
$udfPerson = json_decode($mitarbeiter->p_udf_values);
|
||||
if (is_object($udfPerson)) $udfPerson = (array)$udfPerson;
|
||||
|
||||
|
||||
foreach($udfTitlesPerson as $udfTitle)
|
||||
{
|
||||
if (isset($udfPerson[$udfTitle['name']]))
|
||||
@@ -234,7 +192,7 @@ foreach ($mitarbeiterDAO->result as $mitarbeiter)
|
||||
else if(is_array($udfPerson[$udfTitle['name']]) && isset($udfTitle['enum']))
|
||||
{
|
||||
$toWrite = $udf->dropdownListValuesToString($udfPerson[$udfTitle['name']], $udfTitle['enum']);
|
||||
|
||||
|
||||
if (mb_strlen($toWrite) > $maxlength[$col])
|
||||
{
|
||||
$maxlength[$col] = mb_strlen($toWrite);
|
||||
@@ -263,4 +221,4 @@ $worksheet->setColumn($col, $col, $maxlength[$col] + 2);
|
||||
|
||||
$workbook->close();
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -647,25 +647,25 @@ class mitarbeiter extends benutzer
|
||||
{
|
||||
$hasUDF = false;
|
||||
$udf = new UDF();
|
||||
|
||||
|
||||
$qry = "SELECT DISTINCT ON(mitarbeiter_uid) *,
|
||||
tbl_benutzer.aktiv as aktiv,
|
||||
tbl_mitarbeiter.insertamum,
|
||||
tbl_mitarbeiter.insertvon,
|
||||
tbl_mitarbeiter.updateamum,
|
||||
tbl_mitarbeiter.updatevon";
|
||||
|
||||
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
{
|
||||
$qry .= ", public.tbl_person.udf_values AS p_udf_values";
|
||||
}
|
||||
|
||||
|
||||
$qry .= " FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid))
|
||||
JOIN public.tbl_person USING(person_id))
|
||||
LEFT JOIN public.tbl_benutzerfunktion USING(uid)
|
||||
LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid)
|
||||
WHERE true";
|
||||
|
||||
|
||||
if($fix=='true')
|
||||
$qry .= " AND fixangestellt=true";
|
||||
if($fix=='false')
|
||||
@@ -740,7 +740,7 @@ class mitarbeiter extends benutzer
|
||||
|
||||
|
||||
$qry.=';';
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
@@ -793,7 +793,7 @@ class mitarbeiter extends benutzer
|
||||
{
|
||||
$obj->p_udf_values = $row->p_udf_values;
|
||||
}
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
@@ -1324,5 +1324,102 @@ class mitarbeiter extends benutzer
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Mitarbeiter die uebergeben werden
|
||||
*
|
||||
* @param $uid_arr
|
||||
* @return boolean
|
||||
*/
|
||||
public function getMitarbeiterArray($uid_arr)
|
||||
{
|
||||
if(count($uid_arr)==0)
|
||||
return true;
|
||||
|
||||
$hasUDF = false;
|
||||
$udf = new UDF();
|
||||
|
||||
$qry = "SELECT DISTINCT ON(mitarbeiter_uid) *,
|
||||
tbl_benutzer.aktiv as aktiv,
|
||||
tbl_mitarbeiter.insertamum,
|
||||
tbl_mitarbeiter.insertvon,
|
||||
tbl_mitarbeiter.updateamum,
|
||||
tbl_mitarbeiter.updatevon";
|
||||
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
{
|
||||
$qry .= ", public.tbl_person.udf_values AS p_udf_values";
|
||||
}
|
||||
|
||||
$qry .= " FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid))
|
||||
JOIN public.tbl_person USING(person_id))
|
||||
LEFT JOIN public.tbl_benutzerfunktion USING(uid)
|
||||
LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid)
|
||||
WHERE uid in(".$this->db_implode4SQL($uid_arr).")";;
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new mitarbeiter();
|
||||
|
||||
$obj->person_id = $row->person_id;
|
||||
$obj->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$obj->geburtsnation = $row->geburtsnation;
|
||||
$obj->sprache = $row->sprache;
|
||||
$obj->anrede = $row->anrede;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->gebdatum = $row->gebdatum;
|
||||
$obj->gebort = $row->gebort;
|
||||
$obj->gebzeit = $row->gebzeit;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
$obj->homepage = $row->homepage;
|
||||
$obj->svnr = $row->svnr;
|
||||
$obj->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$obj->familienstand = $row->familienstand;
|
||||
$obj->geschlecht = $row->geschlecht;
|
||||
$obj->anzahlkinder = $row->anzahlkinder;
|
||||
$obj->bnaktiv = $this->db_parse_bool($row->aktiv);
|
||||
$obj->uid = $row->uid;
|
||||
$obj->personalnummer = $row->personalnummer;
|
||||
$obj->telefonklappe = $row->telefonklappe;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->lektor = $this->db_parse_bool($row->lektor);
|
||||
$obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
|
||||
$obj->bismelden = $this->db_parse_bool($row->bismelden);
|
||||
$obj->stundensatz = $row->stundensatz;
|
||||
$obj->ausbildungcode = $row->ausbildungcode;
|
||||
$obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
$obj->standort_id = $row->standort_id;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
$obj->alias = $row->alias;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
$obj->urlaubstageprojahr = $row->urlaubstageprojahr;
|
||||
$obj->resturlaubstage = $row->resturlaubstage;
|
||||
|
||||
if ($hasUDF)
|
||||
{
|
||||
$obj->p_udf_values = $row->p_udf_values;
|
||||
}
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user