diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php
index 0200f6468..f6205f67f 100644
--- a/application/models/education/Projektbetreuer_model.php
+++ b/application/models/education/Projektbetreuer_model.php
@@ -54,18 +54,28 @@ class Projektbetreuer_model extends DB_Model
$qry = "SELECT DISTINCT ON (pers.person_id) pers.person_id, betreuerart_kurzbz, vorname, nachname,
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
anrede, titelpre, titelpost, gebdatum, geschlecht, pa.projekttyp_kurzbz,
- ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid
- FROM lehre.tbl_projektarbeit pa
- JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id)
- JOIN public.tbl_person pers USING (person_id)
- LEFT JOIN public.tbl_benutzer ben USING (person_id)
- LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid
- WHERE ben.aktiv
- AND projektarbeit_id = ?
- AND betreuerart_kurzbz = ?
- ORDER BY pers.person_id, CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter account first*/
- CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, /*user with account first*/
- ben.insertamum";
+ ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid,
+ (
+ SELECT kontakt
+ FROM public.tbl_kontakt
+ WHERE kontakttyp = 'email'
+ AND person_id = pers.person_id
+ ORDER BY
+ CASE WHEN zustellung THEN 0 ELSE 1 END,
+ insertamum DESC NULLS LAST
+ LIMIT 1
+ ) AS private_email
+ FROM lehre.tbl_projektarbeit pa
+ JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id)
+ JOIN public.tbl_person pers USING (person_id)
+ LEFT JOIN public.tbl_benutzer ben USING (person_id)
+ LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid
+ WHERE (ben.aktiv OR ben.aktiv IS NULL)
+ AND projektarbeit_id = ?
+ AND betreuerart_kurzbz = ?
+ ORDER BY pers.person_id, CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter account first*/
+ CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, /*user with account first*/
+ ben.insertamum";
return $this->execQuery($qry, array($projektarbeit_id, $betreuerart_kurzbz));
}
@@ -102,7 +112,7 @@ class Projektbetreuer_model extends DB_Model
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum
FROM lehre.tbl_projektbetreuer betr
- JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
+ JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
diff --git a/cis/private/lehre/abgabe_lektor.php b/cis/private/lehre/abgabe_lektor.php
index 414c5e423..069f3caf3 100644
--- a/cis/private/lehre/abgabe_lektor.php
+++ b/cis/private/lehre/abgabe_lektor.php
@@ -75,8 +75,7 @@ $sql_query = "SELECT
WHERE public.tbl_benutzer.person_id=lehre.tbl_projektbetreuer.person_id
AND public.tbl_benutzer.uid=".$db->db_add_param($getuid).")
".($showall?'':' AND public.tbl_benutzer.aktiv AND lehre.tbl_projektarbeit.note IS NULL ')."
- AND (betreuerart_kurzbz='Betreuer' OR betreuerart_kurzbz='Begutachter' OR betreuerart_kurzbz='Erstbegutachter'
- OR betreuerart_kurzbz='Zweitbegutachter' OR betreuerart_kurzbz='Erstbetreuer')
+ AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Zweitbegutachter', 'Erstbetreuer', 'Senatsvorsitz', 'Senatspruefer')
ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy
ORDER BY nachname";
diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php
index a508de098..ed33add27 100644
--- a/cis/private/lehre/abgabe_lektor_details.php
+++ b/cis/private/lehre/abgabe_lektor_details.php
@@ -121,9 +121,9 @@ $titel = $projektarbeit_obj->titel;
$student_uid = $projektarbeit_obj->student_uid;
// paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden
-$num_rows_sem = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id);
+$paIsCurrent = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id);
-if(!is_numeric($num_rows_sem) || $num_rows_sem < 0)
+if(!is_numeric($paIsCurrent) || $paIsCurrent < 0)
{
echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
";
}
@@ -143,27 +143,28 @@ if($num_rows_endupload < 0)
}
// Zweitbegutachter holen
-if($betreuerart=="Erstbegutachter")
+if(in_array($betreuerart, array('Erstbegutacher', 'Senatsvorsitz')))
{
- $projektbetreuer = new projektbetreuer();
- $alleBegutachter = $projektbetreuer->getProjektbetreuer($projektarbeit_id);
+ $alleBegutachter = new projektbetreuer();
+ $alleBegutachterRes = $alleBegutachter->getProjektbetreuer($projektarbeit_id);
- if ($alleBegutachter)
+ if ($alleBegutachterRes)
{
- $alleBegutachterResults = $projektbetreuer->result;
-
- foreach ($alleBegutachterResults as $begutachter)
+ $zweitbetreuerArr = array();
+ foreach ($alleBegutachter->result as $begutachter)
{
- if ($begutachter->betreuerart_kurzbz == "Erstbegutachter")
+ if (in_array($begutachter->betreuerart_kurzbz, array('Erstbegutacher', 'Senatsvorsitz')))
{
+ // dem Erstbetreuer zugewiesene Zweitbetreuer holen
$erstbetreuer_id = $begutachter->person_id;
- $zweitbegutachter = $projektbetreuer->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid);
- break;
+ $zweitbegutachter = new projektbetreuer();
+ $zweitbegutachterRes = $zweitbegutachter->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid);
+ if ($zweitbegutachterRes) $zweitbetreuerArr = array_merge($zweitbetreuerArr, $zweitbegutachter->result);
}
}
// Mail mit Token an Zweitbegutachter senden
- if ($zweitbegutachter && $num_rows_sem >= 1 && isset($_GET['zweitbegutachtertoken']))
+ if ($zweitbegutachterRes && $paIsCurrent >= 1 && isset($_GET['zweitbegutachtertoken']) && isset($_GET['zweitbetreuer_person_id']))
{
$qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid);
if(!$result_std=$db->db_query($qry_std))
@@ -173,15 +174,24 @@ if($betreuerart=="Erstbegutachter")
else
{
$row_std=@$db->db_fetch_object($result_std);
- $mailres = sendZweitbegutachterMail($zweitbegutachter, $erstbetreuer_id, $row_std);
+ foreach ($zweitbetreuerArr as $zbg)
+ {
+ // if Zweitbetreuer is the one for which token was requested, send mail
+ if ($zbg->person_id == $_GET['zweitbetreuer_person_id'])
+ {
+ $mailres = sendZweitbegutachterMail($zbg, $erstbetreuer_id, $row_std);
- if ($mailres)
- {
- echo "
".$p->t('abgabetool/zweitbegutachterMailGesendet', $zweitbegutachter->email)."
";
- }
- else
- {
- echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zweitbegutachter->email."
";
+ if ($mailres)
+ {
+ echo "
"
+ .$p->t('abgabetool/zweitbegutachterMailGesendet', array($zbg->voller_name, $zbg->email))
+ ."
";
+ }
+ else
+ {
+ echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zbg->email."
";
+ }
+ }
}
}
}
@@ -465,7 +475,7 @@ $htmlstr .= "
| ".$p->t('abgabetool/student').": ".$db->convert_html_chars($studentenname)." | "; $htmlstr .= ""; -$semester_benotbar = $num_rows_sem >= 1; +$semester_benotbar = $paIsCurrent >= 1; $endupload_vorhanden = $num_rows_endupload >= 1; if ($semester_benotbar && $endupload_vorhanden) @@ -498,30 +508,46 @@ else } $htmlstr .= " | ||||||||
| " . $p->t('abgabetool/titel') . ": ".$db->convert_html_chars($titel)." | ".$p->t('abgabetool/studentenansicht')." | "; $htmlstr .= "||||||||
" . $p->t('abgabetool/zweitBegutachter') . ": " . $zweitbegutachter->voller_name . "";
-
- // keine Mail -> Fehler anzeigen
- if (!isset($zweitbegutachter->email))
- $htmlstr .= " ";
-
- // Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist
- if (isset($zweitbegutachter->email) && !isset($zweitbegutachter->uid) && $num_rows_sem >= 1)
+ $htmlstr .= " | ";
+ $bart = '';
+ foreach($zweitbetreuerArr as $zweitbetreuer)
{
- $htmlstr .= "";
- }
+ if ($bart !== $zweitbetreuer->betreuerart_kurzbz)
+ {
+ $htmlstr .= ($zweitbetreuer->betreuerart_kurzbz == 'Senatspruefer' ? $p->t('abgabetool/senatsPruefer') : $p->t('abgabetool/zweitBegutachter'));
+ $htmlstr .= ": ";
+ $bart = $zweitbetreuer->betreuerart_kurzbz;
+ }
+ else
+ $htmlstr .= ", ";
+ $htmlstr .= "" . $zweitbetreuer->voller_name . "";
+
+ // keine Mail -> Fehler anzeigen
+ if (!isset($zweitbetreuer->email))
+ $htmlstr .= " ";
+
+ // Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist
+ if (isset($zweitbetreuer->email) && !isset($zweitbetreuer->uid) && $paIsCurrent >= 1)
+ {
+ $htmlstr .= "";
+ }
+ }
$htmlstr .= " | \n";
$htmlstr .= "\n"; $htmlstr .= " | \n"; @@ -545,122 +571,122 @@ $htmlstr .= " | ||||||
| ".$p->t('abgabetool/details')." | -".$p->t('lvplan/sem')." | -".$p->t('lvplan/stg')." | -".$p->t('global/mail')." | -".$p->t('abgabetool/betreuer')." | -".$p->t('abgabetool/typ')." | -".$p->t('abgabetool/titel')." | - "; - $htmlstr .= "|||
|---|---|---|---|---|---|---|---|---|---|
| ".$p->t('abgabetool/upload')." | \n"; - elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt)) - { - $htmlstr .= ""; - - if (!is_null($row->babgeschickt)) - $htmlstr .= "".$p->t('abgabetool/projektbeurteilungErstDownload').""; - - if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt)) - $htmlstr .= "/"; - - if (!is_null($row->zweitbetreuer_abgeschickt)) - $htmlstr .= "".$p->t('abgabetool/projektbeurteilungZweitDownload').""; - - $htmlstr .= " | "; - } else - { - $htmlstr .= ""; - } - - - $htmlstr .= " | ".$row->studiensemester_kurzbz." | \n"; - $htmlstr .= "".strtoupper($row->typ.$row->kurzbz)." | \n"; - $htmlstr .= "";
-
- $qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person
- JOIN public.tbl_benutzer USING(person_id)
- JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
- WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";";
- if($result_betr=$db->db_query($qry_betr))
- {
- if($row_betr=$db->db_fetch_object($result_betr))
- {
- $htmlstr.=" ";
- }
- else
- {
- $htmlstr.="UID unknown!";
- }
- }
- $htmlstr .= " | ";
- $htmlstr .= " ".$htmlstr1." | \n"; - $htmlstr .= "".$db->convert_html_chars($row->prjbez)." | \n"; - $htmlstr .= "".$db->convert_html_chars($row->titel)." | \n"; -// $htmlstr .= "".$db->convert_html_chars($row->betreuerart_kurzbz)." | \n"; - $htmlstr .= "
| ".$p->t('abgabetool/details')." | +".$p->t('lvplan/sem')." | +".$p->t('lvplan/stg')." | +".$p->t('global/mail')." | +".$p->t('abgabetool/betreuer')." | +".$p->t('abgabetool/typ')." | +".$p->t('abgabetool/titel')." | + "; + $htmlstr .= "|||
|---|---|---|---|---|---|---|---|---|---|
| ".$p->t('abgabetool/upload')." | \n"; + elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt)) + { + $htmlstr .= ""; + + if (!is_null($row->babgeschickt)) + $htmlstr .= "".$p->t('abgabetool/projektbeurteilungErstDownload').""; + + if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt)) + $htmlstr .= "/"; + + if (!is_null($row->zweitbetreuer_abgeschickt)) + $htmlstr .= "".$p->t('abgabetool/projektbeurteilungZweitDownload').""; + + $htmlstr .= " | "; + } else + { + $htmlstr .= "".$row->note." | "; + } + + + $htmlstr .= "".$row->studiensemester_kurzbz." | \n"; + $htmlstr .= "".strtoupper($row->typ.$row->kurzbz)." | \n"; + $htmlstr .= "";
+
+ $qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person
+ JOIN public.tbl_benutzer USING(person_id)
+ JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
+ WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";";
+ if($result_betr=$db->db_query($qry_betr))
+ {
+ if($row_betr=$db->db_fetch_object($result_betr))
+ {
+ $htmlstr.=" ";
+ }
+ else
+ {
+ $htmlstr.="UID unknown!";
+ }
+ }
+ $htmlstr .= " | ";
+ $htmlstr .= " ".$htmlstr1." | \n"; + $htmlstr .= "".$db->convert_html_chars($row->prjbez)." | \n"; + $htmlstr .= "".$db->convert_html_chars($row->titel)." | \n"; +// $htmlstr .= "".$db->convert_html_chars($row->betreuerart_kurzbz)." | \n"; + $htmlstr .= "
Zugangstoken: " . $zweitbetr->zugangstoken . "
" : ""; - - $mailres = sendSanchoMail( - 'ParbeitsbeurteilungEndupload', - $zweitbetmaildata, - $zweitbetr->email, - "Masterarbeitsbetreuung", - 'sancho_header_min_bw.jpg', - 'sancho_footer_min_bw.jpg', - $user . "@" . DOMAIN - ); - - if (!$mailres) + foreach ($zweitbegutachterResults as $begutachter) { - echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "Zugangstoken: " . $begutachterMitToken->zugangstoken . "
" : ""; + + $mailres = sendSanchoMail( + 'ParbeitsbeurteilungEndupload', + $zweitbetmaildata, + $begutachterMitToken->email, + $subject, + 'sancho_header_min_bw.jpg', + 'sancho_footer_min_bw.jpg', + $user . "@" . DOMAIN + ); + + if (!$mailres) + { + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "