diff --git a/content/ToDo_FASo.html b/content/ToDo_FASo.html
index 9a9ec92dc..d020e9c7e 100644
--- a/content/ToDo_FASo.html
+++ b/content/ToDo_FASo.html
@@ -12,12 +12,6 @@ Auflistung nach Priorität (höchste oben).
Anzahl: Anzahl stimmt nicht immer?
-
Konto
-
-
Gegenbuchung: Nur die Differenz gegenbuchen, nicht den
-ursprünglichen Betrag.
-
Filter offene Buchungen: Saldo!=0
-
Dokumente
@@ -46,21 +40,10 @@ Studiengang und optional Semester muss gewählt sein.
das nächste.
->Student: Wenn Bewerber zum Studenten gemacht wird kommt er
automatisch ins 1. Semester.
-
Lehrverband: In der Liste und in den Details wird die
-Lehrverbandsgruppe des aktiven Studiensemesters angezeigt, nicht die
-aktuelle. (tbl_student_lehrverband)
-Wenn das Studiensemesert das aktuelle ist, wird bei Änderung auch
-die Tabelle tbl_student geändert.
-
Student/Interessent: Automatische Auswahl des Reiters
-"Studenten" wenn LV-Gruppe gewählt wird und der Reiter
-"Interessenten" aktiv ist. Und umgekehrt.
+
Incoming/Outgoing: Zusätzliche Daten müssen
gespeichert werden. Karteireiter beim Studenten?
Noten: Karteireiter (Tab) für die Notenverwaltung.
-
Betriebsmittel: Karteireiter (Tab) für die Verwaltung der
-Betriebsmittel.
-
Abbrecher/Unterbrecher: Buttons beim Studenten die eine neue
-Rolle anlegen (wie bei ->Bewerber/Interessent).
Wunsch: SVNR 4stellig: gesamte Nummer wird dann aus dem
Geburtsdatum konstruiert.
@@ -90,14 +73,7 @@ die Firma anzeigen wenn die betreffende Person die Zustelladresse in
einer Firma hat
-LVA-Modul
-
-
Bei partizipierung von Lehreinheiten eines anderen Studienganges
-kommt es zu Problemen
-
-
-
-
+ FAS V2
@@ -111,21 +87,35 @@ moeglich nicht nur nach Lektor
Assistentinen gemacht werden können (Protokoll wer schon
vorgerrückt ist)
-
-
Erledigte Anforderungen
-
+
+
Erledigte Anforderungen
-
Lehrverband: In der Liste und in den Details wird die
-Lehrverbandsgruppe des aktiven Studiensemesters angezeigt, nicht die
-aktuelle. (tbl_student_lehrverband)
-Wenn das Studiensemesert das aktuelle ist, wird bei Änderung auch
-die Tabelle tbl_student geändert.
-29.5.2007 oesi
-
-
Student/Interessent: Automatische Auswahl des Reiters
-"Studenten" wenn LV-Gruppe gewählt wird und der Reiter
-"Interessenten" aktiv ist. Und umgekehrt.
-29.05.2007 oesi
+
Gegenbuchung: Nur die Differenz gegenbuchen, nicht den
+ ursprünglichen Betrag.
+ 31.05.2007 oesi
Betriebsmittel: Karteireiter (Tab) für die Verwaltung der
+ Betriebsmittel.
+ 31.05.2007 oesi
+
+
Abbrecher/Unterbrecher: Buttons beim Studenten die eine neue
+ Rolle anlegen (wie bei ->Bewerber/Interessent).
+ 31.05.2007 oesi
+
+
Lehrverband: In der Liste und in den Details wird die
+ Lehrverbandsgruppe des aktiven Studiensemesters angezeigt, nicht die
+ aktuelle. (tbl_student_lehrverband)
+ Wenn das Studiensemesert das aktuelle ist, wird bei Änderung auch
+ die Tabelle tbl_student geändert.
+ 29.5.2007 oesi
+
+
Student/Interessent: Automatische Auswahl des Reiters
+ "Studenten" wenn LV-Gruppe gewählt wird und der Reiter
+ "Interessenten" aktiv ist. Und umgekehrt.
+ 29.05.2007 oesi
Neben den Funktionen soll es einen
Knopf geben zum anzeigen aller Funktionen (aus allen Studiensemestern)
diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index d7378810c..4f3c6d035 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -43,6 +43,7 @@ require_once('../../include/akte.class.php');
require_once('../../include/konto.class.php');
require_once('../../include/dokument.class.php');
require_once('../../include/studiensemester.class.php');
+require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
$user = get_uid();
@@ -720,7 +721,9 @@ if(!$error)
{
if($buchung->buchungsnr_verweis=='')
{
- $buchung->betrag = $buchung->betrag*(-1);
+ $kto = new konto($conn, null, true);
+ //$buchung->betrag*(-1);
+ $buchung->betrag = $kto->getDifferenz($_POST['buchungsnr']);
$buchung->buchungsdatum = date('Y-m-d');
$buchung->mahnspanne = '0';
$buchung->buchungsnr_verweis = $buchung->buchungsnr;
@@ -912,6 +915,112 @@ if(!$error)
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
+ elseif(isset($_POST['type']) && $_POST['type']=='savebetriebsmittel')
+ {
+ //Speichert eine Betriebsmittelzuordnung
+ $bm = new betriebsmittel($conn, null, true);
+
+ //Nachschauen ob dieses Betriebsmittel schon existiert
+ if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer']))
+ {
+ if(count($bm->result)>0)
+ {
+ //Wenn ein Eintrag gefunden wurde, dann wird die Beschreibung aktualisiert
+ if($bm->load($bm->result[0]->betriebsmittel_id))
+ {
+ $bm->beschreibung = $_POST['beschreibung'];
+ if(!$bm->save(false))
+ {
+ $return = false;
+ $error = true;
+ $errormsg = 'Fehler beim Speichern des Betriebsmittels';
+ }
+ else
+ {
+ $betriebsmittel_id = $bm->betriebsmittel_id;
+ }
+ }
+ else
+ {
+ $return = false;
+ $error = true;
+ $errormsg = 'Gefundener Eintrag konnte nicht geladen werden!?!?';
+ }
+ }
+ else
+ {
+ //Wenn kein Eintrag gefunden wurde, dann wird ein neuer Eintrag angelegt
+ $bm->betriebsmitteltyp = $_POST['betriebsmitteltyp'];
+ $bm->nummer = $_POST['nummer'];
+ $bm->beschreibung = $_POST['beschreibung'];
+ $bm->reservieren = false;
+ $bm->ort_kurzbz = null;
+ $bm->insertamum = date('Y-m-d H:i:s');
+ $bm->insertvon = $user;
+
+ if($bm->save(true))
+ {
+ $betriebsmittel_id = $bm->betriebsmittel_id;
+ }
+ else
+ {
+ $error = true;
+ $return = false;
+ $errormsg = 'Fehler beim Anlegen des Betriebsmittels';
+ }
+ }
+
+ //Zuordnung Betriebsmittel-Person anlgegen
+ $bmp = new betriebsmittelperson($conn, null, null, true);
+ if($_POST['neu']!='true')
+ {
+ if($bmp->load($betriebsmittel_id, $_POST['person_id']))
+ {
+ $bmp->updateamum = date('Y-m-d H:i:s');
+ $bmp->updatevon = $user;
+ $bmp->new = false;
+ }
+ else
+ {
+ $error = true;
+ $return = false;
+ $errormsg = 'Fehler beim laden der Betriebmittelperson Zuordnung';
+ }
+ }
+ else
+ {
+ $bmp->insertamum = date('Y-m-d H:i:s');
+ $bmp->insertvon = $user;
+ $bmp->new = true;
+ }
+
+ if(!$error)
+ {
+ $bmp->person_id = $_POST['person_id'];
+ $bmp->betriebsmittel_id=$betriebsmittel_id;
+ $bmp->anmerkung = $_POST['anmerkung'];
+ $bmp->kaution = str_replace(',','.',$_POST['kaution']);
+ $bmp->ausgegebenam = $_POST['ausgegebenam'];
+ $bmp->retouram = $_POST['retouram'];
+
+ if($bmp->save())
+ {
+ $return = true;
+ $data = $betriebsmittel_id;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = $bmp->errormsg;
+ }
+ }
+ }
+ else
+ {
+ $errormsg = 'Fehler:'.$bm->errormsg;
+ $return = false;
+ }
+ }
else
{
$return = false;
diff --git a/content/student/studentbetriebsmitteloverlay.xul.php b/content/student/studentbetriebsmitteloverlay.xul.php
index 3026c4ee6..4e029417f 100644
--- a/content/student/studentbetriebsmitteloverlay.xul.php
+++ b/content/student/studentbetriebsmitteloverlay.xul.php
@@ -120,7 +120,7 @@ echo '';
-
+
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index 1979b78fb..8c3232411 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -60,6 +60,8 @@ echo '
+
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 5510c6709..79eb48838 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -951,7 +951,7 @@ function StudentAnmeldungreihungstestHeute()
var now = new Date();
var jahr = now.getFullYear();
- monat = now.getMonth();
+ monat = now.getMonth()+1;
if(monat<10) monat='0'+monat;
tag = now.getDate();
if(tag<10) tag='0'+tag;
@@ -1497,6 +1497,34 @@ function StudentBetriebsmittelDetailDisableFields(val)
document.getElementById('student-betriebsmittel-textbox-ausgegebenam').disabled=val;
document.getElementById('student-betriebsmittel-textbox-retouram').disabled=val;
document.getElementById('student-betriebsmittel-button-speichern').disabled=val;
+
+ if(val)
+ StudentBetriebsmittelDetailResetFields();
+}
+
+// ****
+// * Resetet die Betriebsmitteldetail Felder
+// ****
+function StudentBetriebsmittelDetailResetFields()
+{
+ var now = new Date();
+ var jahr = now.getFullYear();
+
+ var monat = now.getMonth()+1;
+
+ if(monat<10)
+ monat='0'+monat;
+ var tag = now.getDate();
+ if(tag<10)
+ tag='0'+tag;
+
+ document.getElementById('student-betriebsmittel-menulist-betriebsmitteltyp').value='Zutrittskarte';
+ document.getElementById('student-betriebsmittel-textbox-nummer').value='';
+ document.getElementById('student-betriebsmittel-textbox-beschreibung').value='';
+ document.getElementById('student-betriebsmittel-textbox-kaution').value='';
+ document.getElementById('student-betriebsmittel-textbox-anmerkung').value='';
+ document.getElementById('student-betriebsmittel-textbox-ausgegebenam').value=jahr+'-'+monat+'-'+tag;
+ document.getElementById('student-betriebsmittel-textbox-retouram').value='';
}
// ****
@@ -1593,9 +1621,63 @@ function StudentBetriebsmittelDetailSpeichern()
}
else
{
- StudentBetriebsmittelSelectBetriebsmittel_id=betriebsmittel_id;
+ StudentBetriebsmittelSelectBetriebsmittel_id=val.dbdml_data;
StudentBetriebsmittelSelectPerson_id=person_id;
StudentBetriebsmittelTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
}
+}
+
+// ****
+// * Neues Betriebsmittel anlegen
+// ****
+function StudentBetriebsmittelNeu()
+{
+ document.getElementById('student-betriebsmittel-checkbox-neu').checked=true;
+ StudentBetriebsmittelDetailDisableFields(false);
+ StudentBetriebsmittelDetailResetFields();
+ document.getElementById('student-betriebsmittel-textbox-person_id').value = document.getElementById('student-prestudent-textbox-person_id').value;
+}
+
+// ****
+// * Fuegt eine Rolle zu einem Studenten hinzu
+// ****
+function StudentAddRolle(rolle)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('student-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ //Ausgewaehlte ID holen
+ var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
+ var prestudent_id=tree.view.getCellText(tree.currentIndex,col);
+
+ if(confirm('Diesen Studenten zum '+rolle+' machen?'))
+ {
+ var url = 'content/student/studentDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ req.add('type', 'addrolle');
+
+ req.add('prestudent_id', prestudent_id);
+ req.add('rolle_kurzbz', rolle);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response);
+
+ if (!val.dbdml_return)
+ {
+ if(val.dbdml_errormsg=='')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ }
+ else
+ {
+ StudentTreeRefresh();
+ SetStatusBarText('Rolle hinzugefuegt');
+ }
+ }
}
\ No newline at end of file
diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php
index 9aaaf381a..51b13b795 100644
--- a/include/betriebsmittel.class.php
+++ b/include/betriebsmittel.class.php
@@ -29,6 +29,7 @@ class betriebsmittel
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
+ var $result;
var $done=false; // @var boolean
//Tabellenspalten
@@ -66,14 +67,58 @@ class betriebsmittel
}
}
- /**
- * Laedt das Betriebsmittel mit der ID $betriebsmittel_id
- * @param $betriebsmittel_id ID des zu ladenden Betriebsmittel
- * @return true wenn ok, false im Fehlerfall
- */
+ // **************************************************************
+ // * Laedt das Betriebsmittel mit der ID $betriebsmittel_id
+ // * @param $betriebsmittel_id ID des zu ladenden Betriebsmittel
+ // * @return true wenn ok, false im Fehlerfall
+ // ***************************************************************
function load($betriebsmittel_id)
{
- //noch nicht implementiert
+ if(!is_numeric($betriebsmittel_id))
+ {
+ $this->errormsg = 'Betriebsmittel_id ist ungueltig';
+ return false;
+ }
+
+ $qry = "SELECT * FROM public.tbl_betriebsmittel WHERE betriebsmittel_id='$betriebsmittel_id'";
+
+ if($result = pg_query($this->conn, $qry))
+ {
+ if($row = pg_fetch_object($result))
+ {
+ $this->betriebsmittel_id = $row->betriebsmittel_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $this->nummer = $row->nummer;
+ $this->reservieren = ($row->reservieren=='t'?true:false);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->updateamum = $row->updateamum;
+ $this->udpatevon = $row->updatevon;
+ $this->insertvon = $row->insertvon;
+ $this->insertamum = $row->insertamum;
+ $this->ext_id = $row->ext_id;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim laden der Daten';
+ return false;
+ }
+ }
+
+ // *************************************
+ // * Prueft die Daten vor dem Speichern
+ // * auf Gueltigkeit
+ // *************************************
+ function validate()
+ {
+ return true;
}
// ************************************************
@@ -86,23 +131,26 @@ class betriebsmittel
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
- /**
- * Speichert den aktuellen Datensatz in die Datenbank
- * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
- * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id aktualisiert
- * @return true wenn ok, false im Fehlerfall
- */
- function save()
+
+ // *******************************************************************************
+ // * Speichert den aktuellen Datensatz in die Datenbank
+ // * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
+ // * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id aktualisiert
+ // * @return true wenn ok, false im Fehlerfall
+ // *******************************************************************************
+ function save($new=null)
{
- $this->done=false;
-
- if($this->new)
+ if($new==null)
+ $new=$this->new;
+
+ if(!$this->validate())
+ return false;
+
+ if($new)
{
- //Neuen Datensatz einfuegen
-
- $qry='INSERT INTO public.tbl_betriebsmittel (betriebsmittel_id, beschreibung, betriebsmitteltyp, nummer, reservieren, ort_kurzbz,
+ //Neuen Datensatz einfuegen
+ $qry='INSERT INTO public.tbl_betriebsmittel (beschreibung, betriebsmitteltyp, nummer, reservieren, ort_kurzbz,
ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
- $this->addslashes($this->betriebsmittel_id).', '.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->betriebsmitteltyp).', '.
$this->addslashes($this->nummer).', '.
@@ -115,71 +163,53 @@ class betriebsmittel
}
else
{
- $qryz="SELECT * FROM public.tbl_betriebsmittel WHERE betriebsmittel_id='$this->betriebsmittel_id';";
- if($resultz = pg_query($this->conn, $qryz))
+ if(!is_numeric($this->betriebsmittel_id))
{
- while($rowz = pg_fetch_object($resultz))
+ $this->errormsg = 'Betriebsmittel_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ $qry='UPDATE public.tbl_betriebsmittel SET '.
+ 'betriebsmitteltyp='.$this->addslashes($this->betriebsmitteltyp).', '.
+ 'beschreibung='.$this->addslashes($this->beschreibung).', '.
+ //'nummer='.$this->addslashes($this->nummer).', '.
+ 'reservieren='.($this->reservieren?'true':'false').', '.
+ 'ort_kurzbz='.$this->addslashes($this->ort_kurzbz).', '.
+ 'ext_id='.$this->addslashes($this->ext_id).', '.
+ 'updateamum= now(), '.
+ 'updatevon='.$this->addslashes($this->updatevon).' '.
+ 'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).';';
+ }
+
+ if(pg_query($this->conn, $qry))
+ {
+ if($new)
+ {
+ $qry = "SELECT currval('public.tbl_betriebsmittel_betriebsmittel_id_seq') as id;";
+ if($result = pg_query($this->conn, $qry))
{
- $update=false;
- if($rowz->beschreibung!=$this->beschreibung) $update=true;
- if($rowz->betriebsmitteltyp!=$this->betriebsmitteltyp) $update=true;
- //if($rowz->nummer!=$this->nummer) $update=true;
- if($rowz->reservieren!=$this->reservieren) $update=true;
- if($rowz->ort_kurzbz!=$this->ort_kurzbz) $update=true;
-
- if($update)
+ if($row = pg_fetch_object($result))
{
- $qry='UPDATE public.tbl_betriebsmittel SET '.
- 'betriebsmitteltyp='.$this->addslashes($this->betriebsmitteltyp).', '.
- 'beschreibung='.$this->addslashes($this->beschreibung).', '.
- //'nummer='.$this->addslashes($this->nummer).', '.
- 'reservieren='.($this->reservieren?'true':'false').', '.
- 'ort_kurzbz='.$this->addslashes($this->ort_kurzbz).', '.
- 'ext_id='.$this->addslashes($this->ext_id).', '.
- 'updateamum= now(), '.
- 'updatevon='.$this->addslashes($this->updatevon).' '.
- 'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).';';
- $this->done=true;
+ $this->betriebsmittel_id = $row->id;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim lesen der Sequence';
+ return false;
}
}
- }
- else
- {
- return false;
- }
- }
- if ($this->done)
- {
- if(pg_query($this->conn, $qry))
- {
- //Log schreiben
- /*$sql = $qry;
- $qry = "SELECT nextval('log_seq') as id;";
- if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
- {
- $this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
- return false;
- }
-
- $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
- if(pg_query($this->conn, $qry))
- return true;
else
{
- $this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
+ $this->errormsg = 'Fehler beim lesen der Sequence';
return false;
- } */
- return true;
- }
- else
- {
- $this->errormsg = "*****\nFehler beim Speichern des Betriebsmittel-Datensatzes: ID:".$this->betriebsmittel_id." Schlüsseltyp: ".$this->betriebsmitteltyp."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n";
- return false;
+ }
}
+ return true;
}
else
{
- return true;
+ $this->errormsg = "Fehler beim Speichern des Betriebsmittel-Datensatzes";
+ return false;
}
}
@@ -192,5 +222,37 @@ class betriebsmittel
{
//noch nicht implementiert!
}
+
+ function getBetriebsmittel($betriebsmitteltyp, $nummer)
+ {
+ $qry = "SELECT * FROM public.tbl_betriebsmittel WHERE betriebsmitteltyp='".addslashes($betriebsmitteltyp)."' AND nummer='".addslashes($nummer)."' ORDER BY updateamum DESC";
+
+ if($result = pg_query($this->conn, $qry))
+ {
+ while($row = pg_fetch_object($result))
+ {
+ $bm = new betriebsmittel($this->conn, null, null);
+
+ $bm->betriebsmittel_id = $row->betriebsmittel_id;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $bm->nummer = $row->nummer;
+ $bm->reservieren = $row->reservieren;
+ $bm->ort_kurzbz = $row->ort_kurzbz;
+ $bm->updateamum = $row->updateamum;
+ $bm->updatevon = $row->updatevon;
+ $bm->insertamum = $row->insertamum;
+ $bm->insertvon = $row->insertvon;
+
+ $this->result[] = $bm;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim laden der Daten';
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
diff --git a/include/betriebsmittelperson.class.php b/include/betriebsmittelperson.class.php
index 6fa2aa9f7..ec46d19e5 100644
--- a/include/betriebsmittelperson.class.php
+++ b/include/betriebsmittelperson.class.php
@@ -131,6 +131,35 @@ class betriebsmittelperson
}
}
+ function validate()
+ {
+ if(!is_numeric($this->kaution))
+ {
+ $this->errormsg = 'Kaution ist ungueltig';
+ return false;
+ }
+
+ if($this->ausgegebenam!='' && !ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$this->ausgegebenam))
+ {
+ $this->errormsg = 'Ausgegeben am Datum ist ungueltig';
+ return false;
+ }
+
+ if($this->retouram!='' && !ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$this->retouram))
+ {
+ $this->errormsg = 'Ausgegeben am Datum ist ungueltig';
+ return false;
+ }
+
+ if(strlen($this->anmerkung)>256)
+ {
+ $this->errormsg = 'Anmerkung darf nicht laenger als 256 Zeichen sein';
+ return false;
+ }
+
+ return true;
+ }
+
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden datenbankkritische
@@ -146,13 +175,18 @@ class betriebsmittelperson
// * Speichert den aktuellen Datensatz in die Datenbank
// * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
// * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id, $person_id aktualisiert
+ // * @param $new
// * @return true wenn ok, false im Fehlerfall
// ******************************************************************************************
- function save()
+ function save($new=null)
{
- $this->done=false;
+ if(!$this->validate())
+ return false;
- if($this->new)
+ if($new==null)
+ $new = $this->new;
+
+ if($new)
{
//Neuen Datensatz einfuegen
@@ -167,87 +201,38 @@ class betriebsmittelperson
$this->addslashes($this->ext_id).', now(), '.
$this->addslashes($this->insertvon).', now(), '.
$this->addslashes($this->updatevon).');';
- $this->done=true;
}
else
{
//Pruefen ob betriebsmittel_id eine gueltige Zahl ist
- if(!is_numeric($this->betriebsmittel_id))
- {
- $this->errormsg = "betriebsmittel_id muss eine gueltige Zahl sein: ".$this->betriebsmittel_id." (".$this->person_id.")\n";
- return false;
- }
-
- $qryz="SELECT * FROM public.tbl_betriebsmittelperson WHERE betriebsmittel_id='$this->betriebsmittel_id' AND person_id='$this->person_id';";
- if($resultz = pg_query($this->conn, $qryz))
- {
- while($rowz = pg_fetch_object($resultz))
- {
- $update=false;
- if($rowz->betriebsmittel_id!=$this->betriebsmittel_id) $update=true;
- if($rowz->person_id!=$this->person_id) $update=true;
- if($rowz->anmerkung!=$this->anmerkung) $update=true;
- if($rowz->kaution!=$this->kaution) $update=true;
- if($rowz->ausgegebenam!=$this->ausgegebenam) $update=true;
- if($rowz->retouram!=$this->retouram) $update=true;
- if($rowz->ext_id!=$this->ext_id) $update=true;
-
- if($update)
- {
- $qry='UPDATE public.tbl_betriebsmittelperson SET '.
- 'betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).', '.
- 'person_id='.$this->addslashes($this->person_id).', '.
- 'anmerkung='.$this->addslashes($this->anmerkung).', '.
- 'kaution='.$this->addslashes($this->kaution).', '.
- 'ausgegebenam='.$this->addslashes($this->ausgegebenam).', '.
- 'retouram='.$this->addslashes($this->retouram).', '.
- 'ext_id='.$this->addslashes($this->ext_id).', '.
- 'updateamum= now(), '.
- 'updatevon='.$this->addslashes($this->updatevon).' '.
- 'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).
- ' AND person_id='.$this->addslashes($this->person_id).';';
- $this->done=true;
- }
- }
- }
- else
+ if(!is_numeric($this->betriebsmittel_id) || !is_numeric($this->person_id))
{
+ $this->errormsg = "betriebsmittel_id und Person_id muessen gueltige Zahlen sein: ".$this->betriebsmittel_id." (".$this->person_id.")\n";
return false;
}
+
+ $qry='UPDATE public.tbl_betriebsmittelperson SET '.
+ 'betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).', '.
+ 'person_id='.$this->addslashes($this->person_id).', '.
+ 'anmerkung='.$this->addslashes($this->anmerkung).', '.
+ 'kaution='.$this->addslashes($this->kaution).', '.
+ 'ausgegebenam='.$this->addslashes($this->ausgegebenam).', '.
+ 'retouram='.$this->addslashes($this->retouram).', '.
+ 'ext_id='.$this->addslashes($this->ext_id).', '.
+ 'updateamum= now(), '.
+ 'updatevon='.$this->addslashes($this->updatevon).' '.
+ 'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).
+ ' AND person_id='.$this->addslashes($this->person_id).";";
}
- if ($this->done)
- {
- if(pg_query($this->conn, $qry))
- {
- //Log schreiben
- /*$sql = $qry;
- $qry = "SELECT nextval('log_seq') as id;";
- if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
- {
- $this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
- return false;
- }
-
- $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
- if(pg_query($this->conn, $qry))
- return true;
- else
- {
- $this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
- return false;
- } */
- return true;
- }
- else
- {
- $this->errormsg = "*****\nFehler beim Speichern des Betriebsmittelperson-Datensatzes: ID:".$this->person_id." Betriebsmittel-ID: ".$this->betriebsmittel_id."\n".$qry."\n".pg_errormessage($this->conn)."\n*****\n";
-
- return false;
- }
+
+ if(pg_query($this->conn, $qry))
+ {
+ return true;
}
else
{
- return true;
+ $this->errormsg = "Fehler beim Speichern der Betriebsmittelperson";
+ return false;
}
}
diff --git a/include/konto.class.php b/include/konto.class.php
index f40079d08..da32bff13 100644
--- a/include/konto.class.php
+++ b/include/konto.class.php
@@ -336,14 +336,14 @@ class konto
//Alle Buchungen und 'darunterliegende' holen die noch offen sind
$qry = "SELECT * FROM public.tbl_konto
WHERE buchungsnr in (SELECT buchungsnr FROM public.tbl_konto as konto_a WHERE
- betrag*(-1)>(SELECT CASE WHEN sum(betrag) is null THEN 0
+ (betrag + (SELECT CASE WHEN sum(betrag) is null THEN 0
ELSE sum(betrag) END
- FROM public.tbl_konto WHERE buchungsnr_verweis=konto_a.buchungsnr)
+ FROM public.tbl_konto WHERE buchungsnr_verweis=konto_a.buchungsnr))<>0
AND person_id='$person_id') OR
buchungsnr_verweis in (SELECT buchungsnr FROM public.tbl_konto as konto_a WHERE
- betrag*(-1)>(SELECT CASE WHEN sum(betrag) is null THEN 0
+ (betrag + (SELECT CASE WHEN sum(betrag) is null THEN 0
ELSE sum(betrag) END
- FROM public.tbl_konto WHERE buchungsnr_verweis=konto_a.buchungsnr)
+ FROM public.tbl_konto WHERE buchungsnr_verweis=konto_a.buchungsnr))<>0
AND person_id='$person_id') ORDER BY buchungsdatum";
}
else
@@ -416,5 +416,30 @@ class konto
return false;
}
}
+
+ // ******************************
+ // * Berechnet den offenen Betrag
+ // * einer Buchung
+ // ******************************
+ function getDifferenz($buchungsnr)
+ {
+ $qry = "SELECT sum(betrag) as differenz FROM public.tbl_konto WHERE buchungsnr='$buchungsnr' OR buchungsnr_verweis='$buchungsnr'";
+
+ if($result = pg_query($this->conn, $qry))
+ {
+ if($row = pg_fetch_object($result))
+ return $row->differenz*(-1);
+ else
+ {
+ $this->errormsg = 'Fehler beim ermitteln der Differenz';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim ermitteln der Differenz';
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
diff --git a/include/student.class.php b/include/student.class.php
index 1e231200b..4d794fce7 100644
--- a/include/student.class.php
+++ b/include/student.class.php
@@ -372,6 +372,33 @@ class student extends benutzer
return false;
}
}
-
+
+ // ****************************************
+ // * Laedt die UID anhand der Prestudent_id
+ // * @param prestudent_id
+ // * @return uid wenn ok, false wenn Fehler
+ // ****************************************
+ function getUid($prestudent_id)
+ {
+ $qry = "SELECT student_uid FROM public.tbl_student WHERE prestudent_id='$prestudent_id'";
+
+ if($result = pg_query($this->conn, $qry))
+ {
+ if($row = pg_fetch_object($result))
+ {
+ return $row->student_uid;
+ }
+ else
+ {
+ $this->errormsg = 'Student nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim laden der Daten';
+ return false;
+ }
+ }
}
?>
\ No newline at end of file