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:
Andreas Oesterreicher
2017-08-22 23:23:58 +02:00
parent d8cd786079
commit 809d65a62e
3 changed files with 154 additions and 107 deletions
+37 -45
View File
@@ -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) {}
}
}
+14 -56
View File
@@ -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();
?>
?>
+103 -6
View File
@@ -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;
}
}
}
?>