neue Funktion ZGVMasterNation setzen

This commit is contained in:
manu
2021-05-27 16:22:47 +02:00
parent 0285e3fc92
commit 39668890f2
2 changed files with 252 additions and 187 deletions
+140 -154
View File
@@ -339,11 +339,11 @@ class dokument extends basis_db
}
$qry = "SELECT tbl_dokumentprestudent.* , tbl_dokument.*
FROM public.tbl_dokumentprestudent
FROM public.tbl_dokumentprestudent
JOIN public.tbl_dokument USING(dokument_kurzbz)
LEFT JOIN public.tbl_vorlage ON (tbl_dokumentprestudent.dokument_kurzbz = tbl_vorlage.vorlage_kurzbz)
WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
if(!$archivdokumente)
{
$qry.=" AND (tbl_vorlage.archivierbar = FALSE OR tbl_vorlage.archivierbar IS NULL)";
@@ -401,7 +401,7 @@ class dokument extends basis_db
}
$qry = "SELECT tbl_dokument.* , tbl_dokumentstudiengang.*
FROM public.tbl_dokument
FROM public.tbl_dokument
JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz)
LEFT JOIN public.tbl_vorlage ON (tbl_dokument.dokument_kurzbz = tbl_vorlage.vorlage_kurzbz)
WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
@@ -836,11 +836,11 @@ class dokument extends basis_db
return false;
}
}
/**
* Liefert die Studiengänge bei denen das übergebene Dokument benötigt wird
* @param string $dokument_kurzbz Kurzbz des Dokuments
* @param integer $person_id Optional. Die Dokumente werden zusätzlich auf die Studiengänge eingeschränkt für die sich eine Person beworben hat.
* @param integer $person_id Optional. Die Dokumente werden zusätzlich auf die Studiengänge eingeschränkt für die sich eine Person beworben hat.
* @return object Objekt mit den Studiengängen oder false.
*/
public function getStudiengaengeDokument($dokument_kurzbz, $person_id = null)
@@ -854,7 +854,7 @@ class dokument extends basis_db
AND person_id =".$this->db_add_param($person_id, FHC_INTEGER)."
AND tbl_prestudentstatus.status_kurzbz = 'Interessent'
AND get_rolle_prestudent (prestudent_id, NULL) NOT IN ('Abgewiesener','Abbrecher')
ORDER BY kuerzel";
if($result = $this->db_query($qry))
@@ -869,12 +869,12 @@ class dokument extends basis_db
$stg_obj->studiengang_kz = $row->studiengang_kz;
$stg_obj->english = $row->english;
$stg_obj->stufe = $row->stufe;
$this->result[] = $stg_obj;
}
return $stg_obj;
}
else
else
return false;
}
else
@@ -882,181 +882,167 @@ class dokument extends basis_db
$this->errormsg="Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* Akzeptiert ein bestimmtes Dokument
* Optional kann auch eine studiengang_kz uebergeben werden, ob speziell dort das Dokument akzeptiert wurde
* @param $dokument_kurzbz
* @param $person_id
* @param $studiengang_kz integer oder array aus mehreren studiengang_kz
* @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert
*/
function akzeptiereDokument($dokument_kurzbz, $person_id)
{
$db = new basis_db();
$arrayDoksZuAkzeptieren = array();
//get Prestudent_ids
$qry = "SELECT
prestudent_id
FROM
tbl_prestudent ps, tbl_studiengang sg
WHERE
ps.studiengang_kz = sg.studiengang_kz
AND sg.typ = 'm'
AND person_id = ".$this->db_add_param($person_id)."
AND not exists(
SELECT *
from tbl_dokumentprestudent dok
where dok.prestudent_id = ps.prestudent_id
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).")";
//echo var_dump($qry);
//for all prestudents
//gibt ein Array von zu akzeptierenden Dokumenten zurück
if($db->db_query($qry))
* Akzeptiert ein bestimmtes Dokument
* @param char $dokument_kurzbz Bezeichner Dokument.
* @param int $person_id Personenkennzeichen.
* @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert
*/
protected function akzeptiereDokument($dokument_kurzbz, $person_id)
{
$num_rows = $db->db_num_rows();
// Wenn kein ergebnis return 0 sonst ID
if ($num_rows>0)
$db = new basis_db();
$arrayDoksZuAkzeptieren = array();
//get Prestudent_ids
$qry = "SELECT
prestudent_id
FROM
tbl_prestudent ps, tbl_studiengang sg
WHERE
ps.studiengang_kz = sg.studiengang_kz
AND sg.typ = 'm'
AND person_id = ".$this->db_add_param($person_id)."
AND not exists(
SELECT *
from tbl_dokumentprestudent dok
where dok.prestudent_id = ps.prestudent_id
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).")";
//echo var_dump($qry);
//for all prestudents
//gibt ein Array von zu akzeptierenden Dokumenten zurück
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
$num_rows = $db->db_num_rows();
// Wenn kein ergebnis return 0 sonst ID
if ($num_rows > 0)
{
//echo var_dump($row->prestudent_id);
$arrayDoksZuAkzeptieren[] = $row->prestudent_id;
}
//print_r($arrayDoksZuAkzeptieren);
//und jetzt für alle prestudent_ids das Dokument akzeptieren
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
//echo $qry;
foreach ($arrayDoksZuAkzeptieren AS $prestudent_id){
$qry.= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id . ")";
if (next($arrayDoksZuAkzeptieren)==true){
$qry.= ",";
while ($row = $db->db_fetch_object())
{
//echo var_dump($row->prestudent_id);
$arrayDoksZuAkzeptieren[] = $row->prestudent_id;
}
}
$qry.= ";";
//print_r($arrayDoksZuAkzeptieren);
echo $qry;
//und jetzt für alle prestudent_ids das Dokument akzeptieren
if($this->db_query($qry))
{
echo " Jawoll: query ausgeführt";
return true;
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
//echo $qry;
foreach ($arrayDoksZuAkzeptieren as $prestudent_id)
{
$qry .= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id. ")";
if (next($arrayDoksZuAkzeptieren) == true)
{
$qry .= ",";
}
}
$qry .= ";";
echo $qry;
if ($this->db_query($qry))
{
echo " Jawoll: query ausgeführt";
return true;
}
else
{
$this->errormsg = 'Fehler beim Akzeptieren';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Akzeptieren';
return false;
echo " Keine zu akzeptierenden Doks vorhanden";
}
return true;
}
else
{
echo "keine zu akzeptierenden Doks vorhanden";
}
return true;
return false;
}
else
return false;
}
/**
* entakzeptiert ein bestimmtes Dokument
* Optional kann auch eine studiengang_kz uebergeben werden, ob speziell dort das Dokument entakzeptiert wurde
* @param $dokument_kurzbz
* @param $person_id
* @param $studiengang_kz integer oder array aus mehreren studiengang_kz
* @return boolean true wenn entakzeptiert, false wenn noch nicht entakzeptiert
*/
function entakzeptiereDokument($dokument_kurzbz, $person_id)
{
$db = new basis_db();
$arrayDoksZuEntakzeptieren = array();
//get Prestudent_ids
$qry = "SELECT
prestudent_id
from
tbl_dokumentprestudent
join
tbl_prestudent using (prestudent_id)
where
person_id = ".$this->db_add_param($person_id)."
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz);
// echo var_dump($qry);
//for all prestudents
//gibt ein Array von zu Entakzeptierenden Dokumenten zurück
if($db->db_query($qry))
* entakzeptiert ein bestimmtes Dokument
* @param char $dokument_kurzbz Kurzbezeichnung des zu entakzeptierenden Dokuments.
* @param int $person_id Personenkennzeichen.
* @return boolean true wenn entakzeptiert, false wenn noch nicht entakzeptiert
*/
protected function entakzeptiereDokument($dokument_kurzbz, $person_id)
{
$num_rows = $db->db_num_rows();
// Wenn kein ergebnis return 0 sonst ID
if ($num_rows>0)
$db = new basis_db();
$arrayDoksZuEntakzeptieren = array();
//get Prestudent_ids
$qry = "SELECT
prestudent_id
from
tbl_dokumentprestudent
join
tbl_prestudent using (prestudent_id)
where
person_id = ".$this->db_add_param($person_id)."
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz);
// echo var_dump($qry);
//gibt ein Array von zu Entakzeptierenden Dokumenten zurück
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
$num_rows = $db->db_num_rows();
// Wenn kein ergebnis return 0 sonst ID
if ($num_rows > 0)
{
//echo var_dump($row->prestudent_id);
$arrayDoksZuEntakzeptieren[] = $row->prestudent_id;
}
print_r($arrayDoksZuEntakzeptieren);
//und jetzt für alle prestudent_ids das Dokument Entakzeptieren
$qry = "DELETE FROM public.tbl_dokumentprestudent WHERE prestudent_id in (";
//echo $qry;
foreach ($arrayDoksZuEntakzeptieren AS $prestudent_id){
$qry.= $prestudent_id;
if (next($arrayDoksZuEntakzeptieren)==true){
$qry.= ",";
while ($row = $db->db_fetch_object())
{
//echo var_dump($row->prestudent_id);
$arrayDoksZuEntakzeptieren[] = $row->prestudent_id;
}
}
$qry.= ");";
print_r($arrayDoksZuEntakzeptieren);
echo $qry;
//und jetzt für alle prestudent_ids das Dokument Entakzeptieren
if($this->db_query($qry))
{
echo " Jawoll: query ausgeführt";
return true;
$qry = "DELETE FROM public.tbl_dokumentprestudent WHERE prestudent_id in (";
//echo $qry;
foreach ($arrayDoksZuEntakzeptieren as $prestudent_id)
{
$qry .= $prestudent_id;
if (next($arrayDoksZuEntakzeptieren) == true)
{
$qry .= ",";
}
}
$qry .= ") AND dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).";";
echo $qry;
if ($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Entakzeptieren';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Entakzeptieren';
return false;
echo " Keine Entzuakzeptierenden Doks vorhanden";
}
return true;
}
else
{
echo "keine Entzuakzeptierenden Doks vorhanden";
}
return true;
return false;
}
else
return false;
}
}
+112 -33
View File
@@ -2232,51 +2232,44 @@ class prestudent extends person
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag besitzt, der die ZGV Master ersetzt
* @param integer $person_id
* @param int $person_id ID der zu überprüfenden Person.
* @return true wenn vorhanden
* false wenn nicht vorhanden
* false und errormsg wenn Fehler aufgetreten ist
*/
public function existsZGVIntern($person_id)
* false und errormsg wenn Fehler aufgetreten ist
*/
public function existsZGVIntern($person_id)
{
if (!is_numeric($person_id))
{
if(!is_numeric($person_id))
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
AND typ in ('b','m','d')";
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
AND typ in ('b','m','d')";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
if ($row->anzahl > 0)
{
if($row->anzahl>0)
{
$this->errormsg = '';
return true;
}
else
{
$this->errormsg = '';
return false;
}
$this->errormsg = '';
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
$this->errormsg = '';
return false;
}
}
@@ -2286,5 +2279,91 @@ class prestudent extends person
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Befüllt MasterZGV Nation mit Österreich
* @param int $person_id Personenkennzeichen.
* @return true wenn erfolgreich durchgeführt
* false und errormsg wenn ein Fehler aufgetreten ist
*/
public function setManationZGV($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$db = new basis_db();
$arrayleereManations = array();
//all prestudent_ids mit leerer ZGV_Nation
$qry = "SELECT
*
FROM
public.tbl_prestudent
JOIN
public.tbl_studiengang USING (studiengang_kz)
WHERE
person_id = ".$this->db_add_param($person_id)."
AND
zgvmanation is NULL
AND
typ in ('m','d')";
if ($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
if ($num_rows > 0)
{
while ($row = $db->db_fetch_object())
{
//echo var_dump($row->prestudent_id);
$arrayleereManations[] = $row->prestudent_id;
}
print_r($arrayleereManations);
$qry = "UPDATE
public.tbl_prestudent
SET
zgvmanation = 'A'
WHERE
prestudent_id in (";
foreach ($arrayleereManations as $prestudent_id)
{
$qry .= $prestudent_id;
if (next($arrayleereManations) == true)
{
$qry .= ",";
}
}
$qry .= ");";
echo $qry;
if ($this->db_query($qry))
{
echo " ZGV-Master Nation A eingetragen!";
return true;
}
else
{
$this->errormsg = 'Fehler beim Eintragen zgvMasternation';
return false;
}
}
else
echo " Keine leere ZGVManation gefunden";
return true;
}
}
}