diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index 816d9dd36..919d8d299 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -2519,6 +2519,7 @@ function LehrveranstaltungNotenPruefungSave() req.add('bezeichnung', 'Pruefungshonorar '+lv_studiengang+' '+lv_semester+' '+lv_bezeichnung+' '+lehrveranstaltung_id); req.add('anmerkung', satz+'€ * '+anzahl); req.add('vertragsdatum', datum); + req.add('lehrveranstaltung_id',lehrveranstaltung_id); var response = req.executePOST(); diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php index 52518346a..3084be4f9 100644 --- a/content/mitarbeiter/mitarbeiterDBDML.php +++ b/content/mitarbeiter/mitarbeiterDBDML.php @@ -467,6 +467,8 @@ if(!$error) $vertrag->bezeichnung = $_POST['bezeichnung']; $vertrag->anmerkung = $_POST['anmerkung']; $vertrag->vertragsdatum = $_POST['vertragsdatum']; + if(isset($_POST['lehrveranstaltung_id'])) + $vertrag->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; if($errormsg=='') { @@ -548,7 +550,7 @@ if(!$error) // Retour Status setzen $vertrag->vertragsstatus_kurzbz = 'retour'; $vertrag->datum = date('Y-m-d H:i:s'); - + if(!$vertrag->saveVertragsstatus(true)) $errormsg.=$vertrag->errormsg; } diff --git a/include/vertrag.class.php b/include/vertrag.class.php index 23e6e6ffb..43eab1c77 100644 --- a/include/vertrag.class.php +++ b/include/vertrag.class.php @@ -39,6 +39,7 @@ class vertrag extends basis_db public $ext_id; // bigint public $anmerkung; // text public $vertragsdatum; // date + public $lehrveranstaltung_id; // integer /** * Konstruktor @@ -63,6 +64,7 @@ class vertrag extends basis_db $this->person_id = $row->person_id; $this->anmerkung = $row->anmerkung; $this->vertragsdatum = $row->vertragsdatum; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; $this->new=false; @@ -122,6 +124,7 @@ class vertrag extends basis_db $obj->status = $row->status; $obj->anmerkung = $row->anmerkung; $obj->vertragsdatum = $row->vertragsdatum; + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; $obj->vertragstyp_bezeichnung = $row->vertragstyp_bezeichnung; @@ -583,7 +586,7 @@ class vertrag extends basis_db if($new) { $qry = "BEGIN;INSERT INTO lehre.tbl_vertrag(bezeichnung, person_id, vertragstyp_kurzbz, betrag, insertamum, insertvon, - updateamum, updatevon, anmerkung, vertragsdatum) VALUES(". + updateamum, updatevon, anmerkung, vertragsdatum,lehrveranstaltung_id) VALUES(". $this->db_add_param($this->bezeichnung).','. $this->db_add_param($this->person_id,FHC_INTEGER).','. $this->db_add_param($this->vertragstyp_kurzbz).','. @@ -593,7 +596,8 @@ class vertrag extends basis_db $this->db_add_param($this->updateamum).','. $this->db_add_param($this->updatevon).','. $this->db_add_param($this->anmerkung).','. - $this->db_add_param($this->vertragsdatum).');'; + $this->db_add_param($this->vertragsdatum).','. + $this->db_add_param($this->lehrveranstaltung_id).');'; } else @@ -606,7 +610,8 @@ class vertrag extends basis_db " updateamum=".$this->db_add_param($this->updateamum).','. " updatevon=".$this->db_add_param($this->updatevon).','. " anmerkung=".$this->db_add_param($this->anmerkung).','. - " vertragsdatum=".$this->db_add_param($this->vertragsdatum). + " vertragsdatum=".$this->db_add_param($this->vertragsdatum).','. + " lehrveranstaltung_id=".$this->db_add_param($this->lehrveranstaltung_id). " WHERE vertrag_id=".$this->db_add_param($this->vertrag_id, FHC_INTEGER,false); } @@ -874,5 +879,87 @@ class vertrag extends basis_db } } + /** + * Liefert die Vertraege zu einem Datum + * + */ + public function getVertragFromDatum($mitarbeiter_uid, $datum) + { + // Studiensemester zu Datum ermitteln + $stsem_obj = new studiensemester(); + $stsem = $stsem_obj->getSemesterFromDatum($datum); + + // Vorheriges Studiensemester + $prev = $stsem_obj->getPreviousFrom($stsem); + $stsem_obj->load($prev); + $prevstsemende = $stsem_obj->ende; + + // Alle Vertraege holen die in das Studiensemester fallen + // (Lehreinheiten und Betreuungen) + // plus Sonderhonorare die in diesem Zeitraum angelegt wurden + $qry = "SELECT + * + FROM + lehre.tbl_vertrag + WHERE + EXISTS (SELECT + 1 + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=tbl_vertrag.vertrag_id + AND studiensemester_kurzbz=".$this->db_add_param($stsem).") + OR + EXISTS (SELECT + 1 + FROM + lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=tbl_vertrag.vertrag_id + AND studiensemester_kurzbz=".$this->db_add_param($stsem).") + OR + (NOT EXISTS (SELECT + 1 + FROM + lehre.tbl_lehreinheitmitarbeiter + WHERE + vertrag_id=tbl_vertrag.vertrag_id) + AND NOT EXISTS (SELECT + 1 + FROM + lehre.tbl_projektbetreuer + WHERE + vertrag_id=tbl_vertrag.vertrag_id) + AND vertragsdatum<=".$this->db_add_param($datum)." + AND vertragsdatum>=".$this->db_add_param($prevstsemende)." + )"; + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->vertrag_id = $row->vertrag_id; + $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->betrag = $row->betrag; + $obj->person_id = $row->person_id; + $obj->anmerkung = $row->anmerkung; + $obj->vertragsdatum = $row->vertragsdatum; + + $this->result[]=$obj; + } + + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/system/checksystem.php b/system/checksystem.php index 71bba2ee1..ed363fdaf 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3436,6 +3436,19 @@ if($result = $db->db_query("SELECT 1 FROM lehre.tbl_vertragsstatus WHERE vertrag echo 'Vertragsstatus Storno hinzugefuegt'; } } + +if(!$result = @$db->db_query("SELECT lehrveranstaltung_id FROM lehre.tbl_vertrag LIMIT 1")) +{ + $qry = "ALTER TABLE lehre.tbl_vertrag ADD COLUMN lehrveranstaltung_id integer; + ALTER TABLE lehre.tbl_vertrag ADD CONSTRAINT fk_vertrag_lehrveranstaltung_id FOREIGN KEY (lehrveranstaltung_id) REFERENCES lehre.tbl_lehrveranstaltung (lehrveranstaltung_id) ON UPDATE CASCADE ON DELETE CASCADE; + "; + + if(!$db->db_query($qry)) + echo 'Vertrag: '.$db->db_last_error().'
'; + else + echo 'Vertrag: Spalte lehrveranstaltung_id hinzugefügt'; +} + echo '


'; $tabellen=array( @@ -3570,7 +3583,7 @@ $tabellen=array( "lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"), "lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_stundenplan_betriebsmittel" => array("stundenplan_betriebsmittel_id","betriebsmittel_id","stundenplandev_id","anmerkung","insertamum","insertvon"), - "lehre.tbl_vertrag" => array("vertrag_id","person_id","vertragstyp_kurzbz","bezeichnung","betrag","insertamum","insertvon","updateamum","updatevon","ext_id","anmerkung","vertragsdatum"), + "lehre.tbl_vertrag" => array("vertrag_id","person_id","vertragstyp_kurzbz","bezeichnung","betrag","insertamum","insertvon","updateamum","updatevon","ext_id","anmerkung","vertragsdatum","lehrveranstaltung_id"), "lehre.tbl_vertrag_vertragsstatus" => array("vertragsstatus_kurzbz","vertrag_id","uid","datum","ext_id","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_vertragstyp" => array("vertragstyp_kurzbz","bezeichnung"), "lehre.tbl_vertragsstatus" => array("vertragsstatus_kurzbz","bezeichnung"),