- Betriebsmittel Modul

- Konto: Bei Gegenbuchung wird der noch offene Betrag gebucht
- Konto: offene Buchungen sind jetzt Saldo!=0
This commit is contained in:
Andreas Österreicher
2007-05-31 14:43:31 +00:00
parent 164579aa78
commit b18e0d1bf1
9 changed files with 477 additions and 195 deletions
+30 -40
View File
@@ -12,12 +12,6 @@ Auflistung nach Priorität (höchste oben).
<ul>
<li> Anzahl: Anzahl stimmt nicht immer? </li>
</ul>
<h3>Konto</h3>
<ul>
<li> Gegenbuchung: Nur die Differenz gegenbuchen, nicht den
urspr&uuml;nglichen Betrag. </li>
<li> Filter offene Buchungen: Saldo!=0 </li>
</ul>
<hr>
<h2>Dokumente</h2>
<ul>
@@ -46,21 +40,10 @@ Studiengang und optional Semester muss gew&auml;hlt sein. </li>
das n&auml;chste. </li>
<li> -&gt;Student: Wenn Bewerber zum Studenten gemacht wird kommt er
automatisch ins 1. Semester. </li>
<li> Lehrverband: In der Liste und in den Details wird die
Lehrverbandsgruppe des aktiven Studiensemesters angezeigt, nicht die
aktuelle. (tbl_student_lehrverband) <br>
Wenn das Studiensemesert das aktuelle ist, wird bei &Auml;nderung auch
die Tabelle tbl_student ge&auml;ndert. </li>
<li> Student/Interessent: Automatische Auswahl des Reiters
"Studenten" wenn LV-Gruppe gew&auml;hlt wird und der Reiter
"Interessenten" aktiv ist. Und umgekehrt. </li>
<li> Incoming/Outgoing: Zus&auml;tzliche Daten m&uuml;ssen
gespeichert werden. Karteireiter beim Studenten? </li>
<li> Noten: Karteireiter (Tab) f&uuml;r die Notenverwaltung. </li>
<li> Betriebsmittel: Karteireiter (Tab) f&uuml;r die Verwaltung der
Betriebsmittel. </li>
<li> Abbrecher/Unterbrecher: Buttons beim Studenten die eine neue
Rolle anlegen (wie bei -&gt;Bewerber/Interessent). </li>
<li> Wunsch: SVNR 4stellig: gesamte Nummer wird dann aus dem
Geburtsdatum konstruiert. </li>
</ul>
@@ -90,14 +73,7 @@ die Firma anzeigen wenn die betreffende Person die Zustelladresse in
einer Firma hat<br>
</li>
</ul>
<b>LVA-Modul</b>
<ul>
<li>Bei partizipierung von Lehreinheiten eines anderen Studienganges
kommt es zu Problemen<br>
</li>
</ul>
<ul>
</ul>
<hr>
<br>
<b>FAS V2</b><br>
<ul>
@@ -111,21 +87,35 @@ moeglich nicht nur nach Lektor</li>
Assistentinen gemacht werden k&ouml;nnen (Protokoll wer schon
vorgerr&uuml;ckt ist)</li>
</ul>
<span style="font-weight: bold;"></span>
<h2>Erledigte Anforderungen<br>
</h2>
<hr>
<h2>Erledigte Anforderungen</h2>
<ul>
<li> Lehrverband: In der Liste und in den Details wird die
Lehrverbandsgruppe des aktiven Studiensemesters angezeigt, nicht die
aktuelle. (tbl_student_lehrverband) <br>
Wenn das Studiensemesert das aktuelle ist, wird bei &Auml;nderung auch
die Tabelle tbl_student ge&auml;ndert.<br>
29.5.2007 oesi<br>
</li>
<li> Student/Interessent: Automatische Auswahl des Reiters
"Studenten" wenn LV-Gruppe gew&auml;hlt wird und der Reiter
"Interessenten" aktiv ist. Und umgekehrt.<br>
29.05.2007 oesi<br>
<li> Gegenbuchung: Nur die Differenz gegenbuchen, nicht den
urspr&uuml;nglichen Betrag.
<br>31.05.2007 oesi<br><br>
</li>
<li> Filter offene Buchungen: Saldo!=0
<br>31.05.2007 oesi<br><br>
</li>
<li> Betriebsmittel: Karteireiter (Tab) f&uuml;r die Verwaltung der
Betriebsmittel.
<br>31.05.2007 oesi <br><br>
</li>
<li> Abbrecher/Unterbrecher: Buttons beim Studenten die eine neue
Rolle anlegen (wie bei -&gt;Bewerber/Interessent).
<br>31.05.2007 oesi <br><br>
</li>
<li> Lehrverband: In der Liste und in den Details wird die
Lehrverbandsgruppe des aktiven Studiensemesters angezeigt, nicht die
aktuelle. (tbl_student_lehrverband) <br>
Wenn das Studiensemesert das aktuelle ist, wird bei &Auml;nderung auch
die Tabelle tbl_student ge&auml;ndert.
<br>29.5.2007 oesi<br><br>
</li>
<li> Student/Interessent: Automatische Auswahl des Reiters
"Studenten" wenn LV-Gruppe gew&auml;hlt wird und der Reiter
"Interessenten" aktiv ist. Und umgekehrt.
<br>29.05.2007 oesi<br><br>
</li>
<li style="color: rgb(0, 0, 0);">Neben den Funktionen soll es einen
Knopf geben zum anzeigen aller Funktionen (aus allen Studiensemestern)<br>
+110 -1
View File
@@ -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;
@@ -120,7 +120,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<textbox id="student-betriebsmittel-textbox-betriebsmittel_id" disabled="true"/>
<label value="person_id" control="student-betriebsmittel-textbox-person_id"/>
<textbox id="student-betriebsmittel-textbox-person_id" disabled="true"/>
<label value="person_id" control="student-betriebsmittel-checkbox-neu"/>
<label value="Neu" control="student-betriebsmittel-checkbox-neu"/>
<checkbox id="student-betriebsmittel-checkbox-neu" disabled="true" checked="false"/>
</vbox>
<groupbox id="student-betriebsmittel-groupbox" flex="1">
+2
View File
@@ -60,6 +60,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentbetriebsmitteloverl
<toolbarbutton id="student-toolbar-refresh" label="Aktualisieren" oncommand="StudentTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbarbutton id="student-toolbar-buchung" label="Neue Buchung" oncommand="StudentKontoNeu()" disabled="false" tooltiptext="neue Buchung anlegen"/>
<toolbarbutton id="student-toolbar-zeugnis" label="Zeugnis erstellen" oncommand="StudentCreateZeugnis()" disabled="false" tooltiptext="Zeugnis erstellen"/>
<toolbarbutton id="student-toolbar-abbrecher" label="-> Abbrecher" oncommand="StudentAddRolle('Abbrecher')" disabled="false" tooltiptext="Student zum Abbrecher machen"/>
<toolbarbutton id="student-toolbar-unterbrecher" label="-> Unterbrecher" oncommand="StudentAddRolle('Unterbrecher')" disabled="false" tooltiptext="Student zum Unterbrecher machen"/>
<spacer flex="1"/>
<label id="student-toolbar-label-anzahl"/>
</toolbar>
+84 -2
View File
@@ -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 = '<?php echo APP_ROOT ?>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');
}
}
}
+135 -73
View File
@@ -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;
}
}
}
?>
+58 -73
View File
@@ -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;
}
}
+29 -4
View File
@@ -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;
}
}
}
?>
+28 -1
View File
@@ -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;
}
}
}
?>