diff --git a/cis/private/profile/zahlungen_details.php b/cis/private/profile/zahlungen_details.php index a6d35cc72..650ee81c0 100644 --- a/cis/private/profile/zahlungen_details.php +++ b/cis/private/profile/zahlungen_details.php @@ -26,6 +26,8 @@ require_once('../../../include/organisationseinheit.class.php'); require_once('../../../include/addon.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/student.class.php'); +require_once('../../../include/prestudent.class.php'); $uid = get_uid(); @@ -66,7 +68,19 @@ $studiengang=new studiengang(); $studiengang->load($konto->studiengang_kz); $bankverbindung=new bankverbindung(); -$kontodaten = getBankverbindung($studiengang->oe_kurzbz); +// Wenn Person StudentIn ist, auch die OrgForm laden um die richtige Kontonummer anzeigen zu können +$student = new student(); +$orgform = ''; +if ($student->load($uid)) +{ + $laststatus = new prestudent(); + if ($laststatus->getLastStatus($student->prestudent_id)) + { + $orgform = $laststatus->orgform_kurzbz; + } +} + +$kontodaten = getBankverbindung($studiengang->oe_kurzbz, $orgform); $iban=$kontodaten["iban"]; $bic=$kontodaten["bic"]; @@ -156,56 +170,63 @@ $addon = new addon(); $addon->loadAddons(); foreach($addon->result as $a) { - if($a->kurzbz === "eps") - { + if($a->kurzbz === "eps") + { echo ' - + - - + + - - + + - - + + - +
Zahlung anweisenZahlung anweisen
EPS - EPS Überweisung - EPS + EPS Überweisung +
'; - } - + } + } echo ''; -function getBankverbindung($oe_kurzbz) +function getBankverbindung($oe_kurzbz, $orgform_kurzbz = null) { - $iban = ""; - $bic = ""; - $result = array(); - $bankverbindung=new bankverbindung(); - if($bankverbindung->load_oe($oe_kurzbz) && count($bankverbindung->result)>0) - { - $result["iban"]=$bankverbindung->result[0]->iban; - $result["bic"]=$bankverbindung->result[0]->bic; - return $result; - } - else - { - $organisationseinheit = new organisationseinheit(); - $organisationseinheit->load($oe_kurzbz); - if($organisationseinheit->oe_parent_kurzbz !== NULL) + $iban = ""; + $bic = ""; + $result = array(); + $bankverbindung=new bankverbindung(); + if($bankverbindung->load_oe($oe_kurzbz, $orgform_kurzbz) && count($bankverbindung->result) > 0) { - $result = getBankverbindung($organisationseinheit->oe_parent_kurzbz); - return $result; + $result["iban"] = $bankverbindung->result[0]->iban; + $result["bic"] = $bankverbindung->result[0]->bic; + return $result; + } + // Nochmal ohne $orgform_kurzbz versuchen + elseif($bankverbindung->load_oe($oe_kurzbz) && count($bankverbindung->result) > 0) + { + $result["iban"] = $bankverbindung->result[0]->iban; + $result["bic"] = $bankverbindung->result[0]->bic; + return $result; } else { - $result["iban"]=""; - $result["bic"]=""; + $organisationseinheit = new organisationseinheit(); + $organisationseinheit->load($oe_kurzbz); + if($organisationseinheit->oe_parent_kurzbz !== NULL) + { + $result = getBankverbindung($organisationseinheit->oe_parent_kurzbz, $orgform_kurzbz); + return $result; + } + else + { + $result["iban"] = ""; + $result["bic"] = ""; + } } - } } ?> diff --git a/include/bankverbindung.class.php b/include/bankverbindung.class.php index b9056f3b8..44139375e 100644 --- a/include/bankverbindung.class.php +++ b/include/bankverbindung.class.php @@ -16,8 +16,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher and + * Rudolf Hangl . */ /** * Klasse bankverbindung @@ -47,6 +47,7 @@ class bankverbindung extends basis_db public $updateamum; // timestamp public $updatevon; // bigint public $oe_kurzbz; // string + public $orgform_kurzbz; // string /** * Konstruktor @@ -95,6 +96,7 @@ class bankverbindung extends basis_db $this->insertvon = $row->insertvon; $this->ext_id = $row->ext_id; $this->oe_kurzbz = $row->oe_kurzbz; + $this->orgform_kurzbz = $row->orgform_kurzbz; return true; } else @@ -176,19 +178,20 @@ class bankverbindung extends basis_db //Neuen Datensatz einfuegen $qry = 'BEGIN;INSERT INTO public.tbl_bankverbindung (person_id, name, anschrift, blz, bic, - kontonr, iban, typ, oe_kurzbz, verrechnung, insertamum, insertvon, updateamum, updatevon) VALUES('. - $this->db_add_param($this->person_id, FHC_INTEGER).', '. - $this->db_add_param($this->name).', '. - $this->db_add_param($this->anschrift).', '. - $this->db_add_param($this->blz).', '. - $this->db_add_param($this->bic).', '. - $this->db_add_param($this->kontonr).', '. - $this->db_add_param($this->iban).', '. - $this->db_add_param($this->typ).', '. - $this->db_add_param($this->oe_kurzbz).', '. - $this->db_add_param($this->verrechnung, FHC_BOOLEAN).', now(), '. - $this->db_add_param($this->insertvon).', now(), '. - $this->db_add_param($this->updatevon).');'; + kontonr, iban, typ, oe_kurzbz, orgform_kurzbz, verrechnung, insertamum, insertvon, updateamum, updatevon) VALUES('. + $this->db_add_param($this->person_id, FHC_INTEGER).', '. + $this->db_add_param($this->name).', '. + $this->db_add_param($this->anschrift).', '. + $this->db_add_param($this->blz).', '. + $this->db_add_param($this->bic).', '. + $this->db_add_param($this->kontonr).', '. + $this->db_add_param($this->iban).', '. + $this->db_add_param($this->typ).', '. + $this->db_add_param($this->oe_kurzbz).', '. + $this->db_add_param($this->orgform_kurzbz).', '. + $this->db_add_param($this->verrechnung, FHC_BOOLEAN).', now(), '. + $this->db_add_param($this->insertvon).', now(), '. + $this->db_add_param($this->updatevon).');'; } else { @@ -212,6 +215,7 @@ class bankverbindung extends basis_db 'typ='.$this->db_add_param($this->typ).', '. 'verrechnung='.$this->db_add_param($this->verrechnung,FHC_BOOLEAN).', '. 'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '. + 'orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '. 'updateamum='.$this->db_add_param($this->updateamum).','. 'updatevon='.$this->db_add_param($this->updatevon).' '. 'WHERE bankverbindung_id='.$this->db_add_param($this->bankverbindung_id).';'; @@ -315,6 +319,7 @@ class bankverbindung extends basis_db $obj->insertvon = $row->insertvon; $obj->ext_id = $row->ext_id; $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->orgform_kurzbz = $row->orgform_kurzbz; $this->result[] = $obj; } @@ -328,11 +333,12 @@ class bankverbindung extends basis_db } /** - * Laedt die Bankverbindung einer Organisationseinheit - * @param $person_id + * Laedt die Bankverbindung einer Organisationseinheit und optional einer OrgForm + * @param string $oe_kurzbz + * @param string $orgform_kurzbz * @return true wenn ok, false im Fehlerfall */ - public function load_oe($oe_kurzbz) + public function load_oe($oe_kurzbz, $orgform_kurzbz = null) { if($oe_kurzbz==null || $oe_kurzbz=='') { @@ -342,6 +348,11 @@ class bankverbindung extends basis_db $qry = "SELECT * FROM public.tbl_bankverbindung WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz); + if($orgform_kurzbz != '') + { + $qry .= " AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz); + } + if($this->db_query($qry)) { while($row = $this->db_fetch_object()) @@ -364,6 +375,7 @@ class bankverbindung extends basis_db $obj->insertvon = $row->insertvon; $obj->ext_id = $row->ext_id; $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->orgform_kurzbz = $row->orgform_kurzbz; $this->result[] = $obj; } @@ -412,6 +424,7 @@ class bankverbindung extends basis_db $this->insertvon = $row->insertvon; $this->ext_id = $row->ext_id; $this->oe_kurzbz = $row->oe_kurzbz; + $this->orgform_kurzbz = $row->orgform_kurzbz; return true; }