From 13d1fb8fa08e8e1951e5cf2422c95702ec42a23d Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Wed, 11 Nov 2015 12:56:44 +0100 Subject: [PATCH] Class Foerdervertrag added added attribute studiensemester to reihungstest new database table foerdervertrag --- include/foerdervertrag.class.php | 238 +++++++++++++++++++++++++++++++ include/reihungstest.class.php | 26 +++- system/checksystem.php | 56 +++++++- 3 files changed, 313 insertions(+), 7 deletions(-) create mode 100644 include/foerdervertrag.class.php diff --git a/include/foerdervertrag.class.php b/include/foerdervertrag.class.php new file mode 100644 index 000000000..4e78d2bfa --- /dev/null +++ b/include/foerdervertrag.class.php @@ -0,0 +1,238 @@ + + */ +/** + * Klasse Reihungstest + * @create 10-01-2007 + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class foerdervertrag extends basis_db +{ + public $new; // boolean + public $result = array(); + + //Tabellenspalten + public $foerdervertag_id;// integer + public $studiengang_kz; // integer + public $foerdergeber; // string + public $foerdersatz; // integer + public $foerdergruppe; // string + public $gueltigvon; // string + public $gueltigbis; // string + public $erlaeuterungen; // string + public $insertamum; // timestamp + public $insertvon; // bigint + public $updateamum; // timestamp + public $updatevon; // bigint + + /** + * Konstruktor + * @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null) + */ + public function __construct($foerdervertag_id=null) + { + parent::__construct(); + + if(!is_null($foerdervertag_id)) + $this->load($foerdervertag_id); + } + + /** + * Laedt den Fördervertrag mit der ID $foerdervertag_id + * @param $foerdervertag_id ID des zu ladenden Fördervertrags + * @return true wenn ok, false im Fehlerfall + */ + public function load($foerdervertag_id) + { + if(!is_numeric($foerdervertag_id)) + { + $this->errormsg = 'Foerdervertag_id ist ungueltig'; + return false; + } + + $qry = "SELECT * FROM public.tbl_foerdervertrag WHERE foerdervertag_id=".$this->db_add_param($foerdervertag_id, FHC_INTEGER, false); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->foerdervertag_id = $row->foerdervertag_id; + $this->studiengang_kz = $row->studiengang_kz; + $this->foerdergeber = $row->foerdergeber; + $this->foerdersatz = $row->foerdersatz; + $this->foerdergruppe = $row->foerdergruppe; + $this->gueltigvon = $row->gueltigvon; + $this->gueltigbis = $row->gueltigbis; + $this->erlaeuterungen = $row->erlaeuterungen; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + return true; + } + else + { + $this->errormsg = 'Foerdervertrag existiert nicht'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Reihungstests'; + return false; + } + } + + /** + * Liefert alle Förderverträge + */ + public function getAll($stg_kz=null) + { + $qry = "SELECT * FROM public.tbl_foerdervertrag "; + if($stg_kz!=null) + $qry.=" WHERE studiengang_kz=".$this->db_add_param($stg_kz); + $qry.=";"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new foerdervertrag(); + + $obj->foerdervertrag_id = $row->foerdervertrag_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->foerdergeber = $row->foerdergeber; + $obj->foerdersatz = $row->foerdersatz; + $obj->foerdergruppe = $row->foerdergruppe; + $obj->gueltigvon = $row->gueltigvon; + $obj->gueltigbis = $row->gueltigbis; + $obj->erlaeuterungen = $row->erlaeuterungen; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Förderverträge.'; + return false; + } + } + + /** + * Prueft die Variablen auf Gueltigkeit + * @return true wenn ok, false im Fehlerfall + */ + private function validate() + { + //Zahlenfelder pruefen + if(!is_numeric($this->studiengang_kz)) + { + $this->errormsg='studiengang_kz enthaelt ungueltige Zeichen'; + return false; + } + + $this->errormsg = ''; + return true; + } + + /** + * 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 $reihungstest_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function save() + { + if(!$this->validate()) + return false; + + if($this->new) + { + //Neuen Datensatz einfuegen + + $qry='BEGIN; INSERT INTO public.tbl_foerdervertrag (studiengang_kz, foerdergeber, foerdersatz, foerdergruppe, gueltigvon, gueltigbis, erlaeuterungen, + insertamum, insertvon) VALUES('. + $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. + $this->db_add_param($this->foerdergeber).', '. + $this->db_add_param($this->foerdersatz).', '. + $this->db_add_param($this->foerdergruppe).', '. + $this->db_add_param($this->gueltigvon).', '. + $this->db_add_param($this->gueltigbis).', '. + $this->db_add_param($this->erlaeuterungen).', now(),'. + $this->db_add_param($this->insertvon).');'; + } + else + { +// $qry='UPDATE public.tbl_reihungstest SET '. +// 'studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. +// 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '. +// 'anmerkung='.$this->db_add_param($this->anmerkung).', '. +// 'datum='.$this->db_add_param($this->datum).', '. +// 'uhrzeit='.$this->db_add_param($this->uhrzeit).', '. +// 'updateamum= now(), '. +// 'updatevon='.$this->db_add_param($this->updatevon).', '. +// 'max_teilnehmer='.$this->db_add_param($this->max_teilnehmer).', '. +// 'oeffentlich='.$this->db_add_param($this->oeffentlich, FHC_BOOLEAN).', '. +// 'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).', '. +// 'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).' '. +// 'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';'; + } + + if($this->db_query($qry)) + { + if($this->new) + { + $qry = "SELECT currval('public.seq_foerdervertrag_foerdervertrag_id') as id"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->foerdervertrag_id = $row->id; + $this->db_query('COMMIT'); + return true; + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } +} diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index b9ba63a8e..bcfef7f53 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -46,6 +46,7 @@ class reihungstest extends basis_db public $freigeschaltet=false; // boolean public $oeffentlich=false; // boolean public $max_teilnehmer; // integer + public $studiensemester_kurzbz; //string /** * Konstruktor @@ -92,6 +93,7 @@ class reihungstest extends basis_db $this->max_teilnehmer = $row->max_teilnehmer; $this->oeffentlich = $this->db_parse_bool($row->oeffentlich); $this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet); + $this->studiensemester_kurzbz =$row->studiensemester_kurzbz; return true; } else @@ -139,6 +141,7 @@ class reihungstest extends basis_db $obj->max_teilnehmer = $row->max_teilnehmer; $obj->oeffentlich = $this->db_parse_bool($row->oeffentlich); $obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet); + $obj->studiensemester_kurzbz =$row->studiensemester_kurzbz; $this->result[] = $obj; } @@ -195,7 +198,7 @@ class reihungstest extends basis_db //Neuen Datensatz einfuegen $qry='BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit, - insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet) VALUES('. + insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet, studiensemester_kurzbz) VALUES('. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->ort_kurzbz).', '. $this->db_add_param($this->anmerkung).', '. @@ -205,7 +208,8 @@ class reihungstest extends basis_db $this->db_add_param($this->updatevon).','. $this->db_add_param($this->max_teilnehmer).','. $this->db_add_param($this->oeffentlich, FHC_BOOLEAN).','. - $this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).');'; + $this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).','. + $this->db_add_param($this->studiensemester_kurzbz).');'; } else { @@ -219,10 +223,11 @@ class reihungstest extends basis_db 'updatevon='.$this->db_add_param($this->updatevon).', '. 'max_teilnehmer='.$this->db_add_param($this->max_teilnehmer).', '. 'oeffentlich='.$this->db_add_param($this->oeffentlich, FHC_BOOLEAN).', '. - 'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).' '. + 'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).', '. + 'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).' '. 'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';'; } - + if($this->db_query($qry)) { if($this->new) @@ -266,12 +271,18 @@ class reihungstest extends basis_db * @param $order (optional) * @return true wenn ok, sonst false */ - public function getReihungstest($studiengang_kz,$order=null) + public function getReihungstest($studiengang_kz,$order=null,$studiensemester_kurzbz=null) { $qry = "SELECT * FROM public.tbl_reihungstest WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + if ($studiensemester_kurzbz!=null) + $qry .=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING, false); + if ($order!=null) - $qry .=" ORDER BY ".$order.";"; + $qry .=" ORDER BY ".$order; + + + $qry.= ";"; if($this->db_query($qry)) { @@ -293,6 +304,7 @@ class reihungstest extends basis_db $obj->max_teilnehmer = $row->max_teilnehmer; $obj->oeffentlich = $this->db_parse_bool($row->oeffentlich); $obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet); + $obj->studiensemester_kurzbz =$row->studiensemester_kurzbz; $this->result[] = $obj; } @@ -341,6 +353,7 @@ class reihungstest extends basis_db $obj->max_teilnehmer = $row->max_teilnehmer; $obj->oeffentlich = $this->db_parse_bool($row->oeffentlich); $obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet); + $obj->studiensemester_kurzbz =$row->studiensemester_kurzbz; $this->result[] = $obj; } @@ -381,6 +394,7 @@ class reihungstest extends basis_db $obj->max_teilnehmer = $row->max_teilnehmer; $obj->oeffentlich = $this->db_parse_bool($row->oeffentlich); $obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet); + $obj->studiensemester_kurzbz =$row->studiensemester_kurzbz; $this->result[] = $obj; } diff --git a/system/checksystem.php b/system/checksystem.php index 347d50df4..0a459da3e 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3756,6 +3756,60 @@ if($result = @$db->db_query("SELECT * FROM information_schema.tables WHERE table } } +//Spalte studiensemester_kurzbz für Reihungstest +if(!$result = @$db->db_query("SELECT studiensemester_kurzbz FROM public.tbl_reihungstest LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN studiensemester_kurzbz varchar(16); + ALTER TABLE public.tbl_reihungstest ADD CONSTRAINT fk_reihungsteset_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_reihungstest: '.$db->db_last_error().'
'; + else + echo 'public.tbl_reihungstest: Spalte studiensemester_kurzbz hinzugefuegt'; +} + +//Tabelle public.tbl_foerdervertrag +if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_foerdervertrag LIMIT 1;")) +{ + $qry = "CREATE TABLE public.tbl_foerdervertrag + ( + foerdervertrag_id integer NOT NULL, + studiengang_kz integer NOT NULL, + foerdergeber varchar(256), + foerdersatz numeric(8,2), + foerdergruppe varchar(256), + gueltigvon varchar(16), + gueltigbis varchar(16), + erlaeuterungen text, + insertamum timestamp, + insertvon varchar(32), + updateamum timestamp, + updatevon varchar(32) + ); + + CREATE SEQUENCE public.seq_foerdervertrag_foerdervertrag_id + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT pk_foerdervertrag PRIMARY KEY (foerdervertrag_id); + ALTER TABLE public.tbl_foerdervertrag ALTER COLUMN foerdervertrag_id SET DEFAULT nextval('public.seq_foerdervertrag_foerdervertrag_id'); + + ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiengang FOREIGN KEY (studiengang_kz) REFERENCES public.tbl_studiengang (studiengang_kz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiensemester_gueltigvon FOREIGN KEY (gueltigvon) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE public.tbl_foerdervertrag ADD CONSTRAINT fk_foerdervertrag_studiensemester_gueltigbis FOREIGN KEY (gueltigbis) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + + GRANT SELECT ON public.tbl_foerdervertrag TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON public.tbl_foerdervertrag TO vilesci; + GRANT SELECT, UPDATE ON public.seq_foerdervertrag_foerdervertrag_id TO vilesci; + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_foerdervertrag: '.$db->db_last_error().'
'; + else + echo ' public.tbl_foerdervertrag: Tabelle hinzugefuegt
'; +} echo '


'; @@ -3955,7 +4009,7 @@ $tabellen=array( "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation"), "public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung"), "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"), - "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich"), + "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz"), "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"), "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id"),