';
+$error=false;
+$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports' AND schemaname != 'extension';";
+if (!$result=@$db->db_query($sql_query))
+ echo ' '.$db->db_last_error().' ';
+ else
+ while ($row=$db->db_fetch_object($result))
+ {
+ $fulltablename=$row->schemaname.'.'.$row->tablename;
+ if (!isset($tabellen[$fulltablename]))
+ {
+ echo 'Tabelle '.$fulltablename.' existiert in der DB, aber nicht in diesem Skript! ';
+ $error=true;
+ }
+ else
+ if (!$result_fields=@$db->db_query("SELECT * FROM $fulltablename LIMIT 1;"))
+ echo ' '.$db->db_last_error().' ';
+ else
+ for ($i=0; $i<$db->db_num_fields($result_fields); $i++)
+ {
+ $found=false;
+ $fieldnameDB=$db->db_field_name($result_fields,$i);
+ foreach ($tabellen[$fulltablename] AS $fieldnameARRAY)
+ if ($fieldnameDB==$fieldnameARRAY)
+ {
+ $found=true;
+ break;
+ }
+ if (!$found)
+ {
+ echo 'Attribut '.$fulltablename.'.'.$fieldnameDB.' existiert in der DB, aber nicht in diesem Skript! ';
+ $error=true;
+ }
+ }
+ }
+if($error==false)
+ echo ' Gegenpruefung fehlerfrei';
+?>
diff --git a/system/dbupdate_3.4/26173_index_webservicelog.php b/system/dbupdate_3.4/26173_index_webservicelog.php
new file mode 100644
index 000000000..6eb2b06e8
--- /dev/null
+++ b/system/dbupdate_3.4/26173_index_webservicelog.php
@@ -0,0 +1,16 @@
+db_query("SELECT * FROM pg_class WHERE relname='idx_webserivcelog_executetime'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "CREATE INDEX idx_webserivcelog_executetime ON system.tbl_webservicelog USING btree (execute_time)";
+
+ if (! $db->db_query($qry))
+ echo 'Indizes: ' . $db->db_last_error() . ' ';
+ else
+ echo 'Index fuer system.tbl_webservicelog.execute_time hinzugefuegt';
+ }
+}
diff --git a/system/dbupdate_3.4/example.php b/system/dbupdate_3.4/example.php
new file mode 100644
index 000000000..107df9ae7
--- /dev/null
+++ b/system/dbupdate_3.4/example.php
@@ -0,0 +1,15 @@
+db_query("SELECT statusgrund_id FROM public.tbl_prestudentstatus LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_prestudentstatus ADD COLUMN statusgrund_id integer;
+ ALTER TABLE public.tbl_prestudentstatus ADD CONSTRAINT fk_prestudentstatus_statusgrund FOREIGN KEY (statusgrund_id) REFERENCES public.tbl_status_grund (statusgrund_id) ON DELETE RESTRICT ON UPDATE CASCADE;";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_prestudentstatus: '.$db->db_last_error().' ';
+ else
+ echo ' public.tbl_prestudentstatus: Spalte statusgrund_id hinzugefuegt';
+}
+*/
diff --git a/version.php b/version.php
index a5c96dc55..faca83f15 100644
--- a/version.php
+++ b/version.php
@@ -21,6 +21,6 @@
**/
// Version
-$fhcomplete_version = '3.3';
+$fhcomplete_version = '3.4';
?>
diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php
index 140108a12..d085a4ed9 100644
--- a/vilesci/bis/studentenmeldung.php
+++ b/vilesci/bis/studentenmeldung.php
@@ -353,9 +353,10 @@ else
if($result = $db->db_query($qry))
{
-
$stg_kz_index = '';
+ $num_rows = $db->db_num_rows($result);
+ $row_num = 1;
while($row = $db->db_fetch_object($result))
{
$row->pre_foerderrelevant = $db->db_parse_bool($row->pre_foerderrelevant);
@@ -367,8 +368,6 @@ if($result = $db->db_query($qry))
$stg_obj = new studiengang();
if($stg_obj->load($row->studiengang_kz))
{
-
-
$maxsemester = $stg_obj->max_semester;
if($maxsemester == 0)
{
@@ -410,42 +409,62 @@ if($result = $db->db_query($qry))
$datei .= $header;
$dateiNurBewerber .= $header;
}
- if ($stg_kz_index != '' && $row->studiengang_kz != $stg_kz_index)
+ }
+
+ //Bewerberblock bei neuem Studiengang, und am Ende noch einmal
+ if (($stg_kz_index != '' && $row->studiengang_kz != $stg_kz_index) || $row_num == $num_rows)
+ {
+ // (bei Ausserordentlichen nicht anzeigen)
+ if($row->studiengang_kz!=('9'.$erhalter))
{
- $datei .= "
- ";
+ $stg_obj = new studiengang();
+
+ if($orgform_code==3 || $stg_obj->isMischform($row->studiengang_kz,$ssem) || $stg_obj->isMischform($row->studiengang_kz,$psem))
+ {
+ $orgcodes = array_unique($orgform_code_array);
+ //Mischform
+ foreach($orgcodes as $code)
+ {
+ $bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz, $code);
+ $datei.=$bewerberBlock;
+ $dateiNurBewerber.=$bewerberBlock;
+ }
+ }
+ else
+ {
+ $bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz);
+ $datei.=$bewerberBlock;
+ $dateiNurBewerber.=$bewerberBlock;
+ }
}
- $stg_kz_index = $row->studiengang_kz;
- $datei .= "
+ }
+
+ // wenn neuer Studiengang...
+ if ($row->studiengang_kz != $stg_kz_index)
+ {
+ // ...Studiengang Tag schliessen
+ if ($stg_kz_index != '')
+ {
+ $stgClose = "
+ ";
+ $datei .= $stgClose;
+ $dateiNurBewerber .= $stgClose;
+ }
+
+ // ...neuen Studiengang Tag öffnen
+ $stgOpen = "
".$row->studiengang_kz."";
+ $datei .= $stgOpen;
+ $dateiNurBewerber .= $stgOpen;
}
+ // Student Daten schreiben
$datei .= GenerateXMLStudentBlock($row);
+
+ // Studiengang kz speichern und Zeile erhöhen
+ $stg_kz_index = $row->studiengang_kz;
+ $row_num++;
}
-
- //Bewerberblock bei Ausserordentlichen nicht anzeigen
- /*if($stg_kz!=('9'.$erhalter))
- {
- $stg_obj = new studiengang();
-
- if($orgform_code==3 || $stg_obj->isMischform($stg_kz,$ssem) || $stg_obj->isMischform($stg_kz,$psem))
- {
- $orgcodes = array_unique($orgform_code_array);
- //Mischform
- foreach($orgcodes as $code)
- {
- $bewerberBlock=GenerateXMLBewerberBlock($code);
- $datei.=$bewerberBlock;
- $dateiNurBewerber.=$bewerberBlock;
- }
- }
- else
- {
- $bewerberBlock=GenerateXMLBewerberBlock();
- $datei.=$bewerberBlock;
- $dateiNurBewerber.=$bewerberBlock;
- }
- }*/
}
$footer="
@@ -722,8 +741,11 @@ if(file_exists($ddd))
{
echo 'BIS-Meldung Stg '.$stg_kz.' archivieren ';
echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' ';
- echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' - nur Bewerberdaten ';
}
+
+if(file_exists($dddNurBew))
+ echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' - nur Bewerberdaten ';
+
if(file_exists($eee))
{
echo 'BIS-Meldeübersicht der BIS-Meldung Stg '.$stg_kz.'
';
@@ -1901,11 +1923,11 @@ function GenerateXMLStudentBlock($row)
* Wenn der Parameter orgformcode uebergeben wird, werden nur die Bewerberzahlen dieser Orgform geliefert
* sonst alle
*/
-function GenerateXMLBewerberBlock($orgformcode=null)
+function GenerateXMLBewerberBlock($studiengang_kz, $orgformcode=null)
{
global $db;
global $ssem, $stgart, $psem;
- global $stg_kz, $bisdatum;
+ global $bisdatum;
global $bwlist, $orgform_kurzbz;
global $bewerbercount,$orgform_code_array;
$datei = '';
@@ -1924,11 +1946,12 @@ function GenerateXMLBewerberBlock($orgformcode=null)
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_orgform USING(orgform_kurzbz)
WHERE (studiensemester_kurzbz=".$db->db_add_param($ssem)." OR studiensemester_kurzbz=".$db->db_add_param($psem).")
- AND tbl_prestudent.studiengang_kz=".$db->db_add_param($stg_kz)."
+ AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz)."
AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).")
AND status_kurzbz='Bewerber'
AND reihungstestangetreten
";
+
if(!is_null($orgformcode))
$qrybw.=" AND tbl_orgform.code=".$db->db_add_param($orgformcode);