Merge branch 'master' of https://github.com/FH-Complete/FHC-Core into feature-9896/Add_Link_to_CIS_Details

This commit is contained in:
OliiverHacker
2020-10-17 15:39:53 +02:00
8 changed files with 98 additions and 19 deletions
@@ -119,9 +119,10 @@ class Lehrveranstaltung_model extends DB_Model
* Gets all students of a Lehrveranstaltung
* @param $studiensemester_kurzbz
* @param $lehrveranstaltung_id
* @param $active optional, if true, only active students retrieved, false - only inactive, all students otherwise
* @return array|null
*/
public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id)
public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id, $active = null)
{
$query = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr,
@@ -144,8 +145,18 @@ class Lehrveranstaltung_model extends DB_Model
WHERE
vw_student_lehrveranstaltung.studiensemester_kurzbz=?
AND
vw_student_lehrveranstaltung.lehrveranstaltung_id=?
ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
vw_student_lehrveranstaltung.lehrveranstaltung_id=?";
if (isset($active))
{
if ($active === true)
$query .= " AND tbl_benutzer.aktiv";
elseif ($active === false)
$query .= " AND tbl_benutzer.aktiv = false";
}
$query .=
" ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
return $this->execQuery($query, array($studiensemester_kurzbz, $lehrveranstaltung_id));
}
@@ -33,7 +33,7 @@ class Organisationseinheit_model extends DB_Model
FROM tree JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz = oe.oe_parent_kurzbz)
)
SELECT oe_kurzbz AS id,
SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description
SUBSTRING(REGEXP_REPLACE(path, '[A-z0-9]+\|', '-', 'g') || bezeichnung, 2) AS description
FROM tree";
$parametersArray = array();
@@ -31,7 +31,10 @@ class Organisationseinheit_widget extends DropdownWidget
{
// NOTE: no need to call addSelectToModel because getRecursiveList already returns
// the correct names of the fields
$this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList());
$this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList(),
true,
$this->p->t('lehre', 'organisationseinheit'),
'No organisational unit found');
}
$this->loadDropDownView($widgetData);
@@ -518,7 +518,7 @@ if(count($zeit->result)>0)
$row_vertretung = $db->db_fetch_object($result_vertretung);
$content_table.= "<tr class='liste".($i%2)."'>
<td>$row->bezeichnung</td>
<td>$row->zeitsperretyp_kurzbz</td>
<td>$row->zeitsperretyp_beschreibung</td>
<td nowrap>".$datum_obj->convertISODate($row->vondatum)." ".($row->vonstunde!=''?'('.$row->vonstunde.')':'')."</td>
<td nowrap>".$datum_obj->convertISODate($row->bisdatum)." ".($row->bisstunde!=''?'('.$row->bisstunde.')':'')."</td>
<td>".(isset($row_vertretung->kurzbz)?$row_vertretung->kurzbz:'')."</td>
@@ -587,15 +587,15 @@ $content_form.= '<form method="POST" name="zeitsperre_form" action="'.$action.'"
$content_form.= "<table>\n";
$content_form.= '<tr><td style="width:150px">'.$p->t('zeitsperre/grund').'</td><td colspan="2" style="width:450px"><SELECT name="zeitsperretyp_kurzbz"'.$style.' onchange="showHideBezeichnungDropDown()" class="dd_breit">';
//dropdown fuer zeitsperretyp
$qry = "SELECT * FROM campus.tbl_zeitsperretyp ORDER BY zeitsperretyp_kurzbz";
$qry = "SELECT * FROM campus.tbl_zeitsperretyp ORDER BY beschreibung";
if($result = $db->db_query($qry))
{
while($row=$db->db_fetch_object($result))
{
if($zeitsperre->zeitsperretyp_kurzbz == $row->zeitsperretyp_kurzbz)
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz' selected>$row->zeitsperretyp_kurzbz - $row->beschreibung</OPTION>";
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz' selected>$row->beschreibung</OPTION>";
else
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz'$disabled>$row->zeitsperretyp_kurzbz - $row->beschreibung</OPTION>";
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz'$disabled>$row->beschreibung</OPTION>";
}
}
$content_form.= '</SELECT></td></tr>';
+59 -3
View File
@@ -280,6 +280,51 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
}
}
function deleteFromSAP($buchung)
{
global $db, $user;
if(defined('BUCHUNGEN_CHECK_SAP') && BUCHUNGEN_CHECK_SAP == true)
{
$qry = "SELECT * FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr);
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$qry = "DELETE FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr);
if($db->db_query($qry))
{
$log = new log();
$log->mitarbeiter_uid = $user;
$log->beschreibung = 'Buchungszuordnung SAP geloescht: SalesOrder:'.$row->sap_sales_order_id;
$log->sql = $qry;
if(!$log->save(true))
{
echo "Fehler beim Schreiben des Log".$log->errormsg;
return false;
}
return true;
}
else
{
echo "Fehler beim Löschen der Zahlungszuordnung";
return false;
}
}
else
{
//Gegenbuchung
}
}
else
{
echo "Zahlung nicht gefunden";
return false;
}
}
return true;
}
/**
* Prueft ob die Kontobuchung bereits ins SAP Ubertragen wurde oder noch geändert werden darf
*/
@@ -1981,7 +2026,8 @@ if(!$error)
}
else
{
if(isBuchungAllowedToChange($buchung))
if(isBuchungAllowedToChange($buchung)
|| $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid'))
{
$buchung->betrag = $_POST['betrag'];
$buchung->buchungsdatum = $_POST['buchungsdatum'];
@@ -2062,7 +2108,8 @@ if(!$error)
{
if($buchung->buchungsnr_verweis=='')
{
if(isBuchungAllowedToChange($buchung))
if(isBuchungAllowedToChange($buchung)
|| $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid'))
{
$kto = new konto();
//$buchung->betrag*(-1);
@@ -2139,8 +2186,17 @@ if(!$error)
}
else
{
if(isBuchungAllowedToChange($buchung))
$isAllowedToChange = isBuchungAllowedToChange($buchung);
if($isAllowedToChange
|| $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')
)
{
if(!$isAllowedToChange)
{
// Buchung aus SAP Zwischentabelle loeschen
deleteFromSAP($buchung);
}
if($buchung->delete($_POST['buchungsnr']))
{
$return = true;
+1
View File
@@ -188,6 +188,7 @@ class dvb extends basis_db
AND tbl_benutzer.aktiv
AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming')
AND tbl_prestudent.bismelden
AND tbl_prestudent.studiengang_kz<10000
ORDER BY tbl_prestudentstatus.datum desc LIMIT 1
";
+14 -7
View File
@@ -544,8 +544,11 @@ var FHC_TableWidget = {
options.columns = arrayTabulatorColumns;
options.data = data.dataset;
options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie)
options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables
if (options.tableWidgetHeader == 'undefined')
{
options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie)
options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables
}
options.movableColumns = true; // allows changing column order
options.tooltipsHeader = true; // set header tooltip with column title
options.placeholder = _func_placeholder(); // display text when table is empty
@@ -566,12 +569,16 @@ var FHC_TableWidget = {
// -------------------------------------------------------------------------------------------------------------
// Render tableWidgetHeader
var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML);
if (options.tableWidgetHeader == 'undefined' ||
(options.tableWidgetHeader != 'undefined' && options.tableWidgetHeader != false))
{
var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML);
// Render the collapsable div triggered by button in tableWidgetHeader
var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML);
// Render the collapsable div triggered by button in tableWidgetHeader
var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv);
tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML);
}
/**
* tableWidgetFooter is NOT rendered by default.
+1
View File
@@ -195,6 +195,7 @@ $berechtigungen = array(
array('student/noten','Notenverwaltung'),
array('student/stammdaten','Stammdaten der Studenten'),
array('student/vorrueckung','Studentenvorrückung'),
array('student/zahlungAdmin','Zahlungsadministration'),
array('system/developer','Anzeige zusätzlicher Developerinfos'),
array('system/loginasuser','Berechtigung zum Einloggen als anderer User'),
array('system/phrase','Bearbeiten von Textphrasen'),