diff --git a/cis/public/incoming/incoming.php b/cis/public/incoming/incoming.php index 2f6d276e1..eb99c8250 100644 --- a/cis/public/incoming/incoming.php +++ b/cis/public/incoming/incoming.php @@ -507,7 +507,6 @@ else if($method=="lehrveranstaltungen") else if ($studiengang->typ == 'm') $typ = 'MA'; echo ''; - //echo ''.$lehrveranstaltung->lehrveranstaltung_id.''; echo ' '.$p->t('global/löschen').''; echo '',$studiengang_language,''; echo '',$typ,''; @@ -521,6 +520,7 @@ else if($method=="lehrveranstaltungen") '.$p->t("global/deutsch").'  '.$p->t("global/englisch").' '; + echo ''.$lehrveranstaltung->lehrveranstaltung_id.'';//Necessary for LV-Info-ADDON to get the ID for the course echo ''; } echo ''; @@ -740,14 +740,16 @@ else if($method=="lehrveranstaltungen") //Uebersicht LVs /* Erklaerung der Datumszeitraeume ab Zeile 663: - * |=============== Studiensemester ===============| - * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS - * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS - * |------------------------------| Incoming ist innerhalb oder GENAU SS da - * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS - * --------------------------------------------------------- Von und Bis ist NULL - * -------------------| Von ist NULL und bis innerhalb SS - * |----------------------- Bis ist NULL und von innerhalb SS + * |=============== Studiensemester ===============| + * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS + * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS + * |----------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend außerhalb SS + * |---------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend außerhalb SS + * |------------------------------| Incoming ist innerhalb oder GENAU SS da + * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS + * ------------------------------------------------------------ Von und Bis ist NULL + * -------------------| Von ist NULL und bis innerhalb SS + * |--------------------------- Bis ist NULL und von innerhalb SS */ $studiensemester_array = array(); @@ -795,6 +797,8 @@ else if($method=="lehrveranstaltungen") ( (bis - '$stsem->start' > '$stsem->start' - von) OR ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR + ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR (von >= '$stsem->start' AND bis <= '$stsem->ende') OR (von <= '$stsem->start' AND bis >= '$stsem->ende') OR (von IS NULL AND bis IS NULL) OR @@ -872,7 +876,7 @@ else if($method=="lehrveranstaltungen") else $typ = '-'; echo ''; - //echo ''.$row->lehrveranstaltung_id.'';If not commented, tablesorter is not working correct + if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze>0) echo ''.$p->t('global/anmelden').''; elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze==0) @@ -892,6 +896,7 @@ else if($method=="lehrveranstaltungen") '.$p->t("global/englisch").' '; echo '',($freieplaetze<$row->incoming?''.$freieplaetze.' ('.$p->t('incoming/von').' '.$row->incoming.')':$freieplaetze.' ('.$p->t('incoming/von').' '.$row->incoming.')').''; + echo ''.$row->lehrveranstaltung_id.'';//Necessary for LV-Info-ADDON to get the ID for the course echo ''; //} } diff --git a/include/firma.class.php b/include/firma.class.php index b304909ab..029e1469a 100644 --- a/include/firma.class.php +++ b/include/firma.class.php @@ -16,9 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl and. - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at>. + * Andreas Oesterreicher and + * Rudolf Hangl and. + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at>. */ /** * Klasse firma @@ -29,14 +29,14 @@ require_once(dirname(__FILE__).'/organisationseinheit.class.php'); class firma extends basis_db { - public $new; // boolean + public $new; // boolean public $result = array(); // adresse Objekt //Tabellenspalten public $firma_id; // integer public $name; // string public $anmerkung; // string - public $lieferbedingungen; // string + public $lieferbedingungen; // string public $ext_id; // integer public $insertamum; // timestamp public $insertvon; // bigint @@ -97,7 +97,7 @@ class firma extends basis_db $this->firma_id = $row->firma_id; $this->name = $row->name; $this->anmerkung = $row->anmerkung; - $this->lieferbedingungen = $row->lieferbedingungen; + $this->lieferbedingungen = $row->lieferbedingungen; $this->firmentyp_kurzbz = $row->firmentyp_kurzbz; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; @@ -151,7 +151,7 @@ class firma extends basis_db $this->errormsg = 'Anmerkung darf nicht länger als 256 Zeichen sein'; return false; } - if(mb_strlen($this->lieferbedingungen)>256) + if(mb_strlen($this->lieferbedingungen)>256) { $this->errormsg = 'Lieferbedingungen darf nicht länger als 256 Zeichen sein'; return false; @@ -177,21 +177,21 @@ class firma extends basis_db //Neuen Datensatz einfuegen $qry='INSERT INTO public.tbl_firma (name, anmerkung, lieferbedingungen, firmentyp_kurzbz, updateamum, updatevon, insertamum, insertvon, schule,steuernummer, - gesperrt,aktiv,finanzamt,partner_code) VALUES('. - $this->db_add_param($this->name).', '. - $this->db_add_param($this->anmerkung).', '. - $this->db_add_param($this->lieferbedingungen).', '. - $this->db_add_param($this->firmentyp_kurzbz).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).', '. - $this->db_add_param($this->schule, FHC_BOOLEAN).','. - $this->db_add_param($this->steuernummer).', '. - $this->db_add_param($this->gesperrt, FHC_BOOLEAN).','. - $this->db_add_param($this->aktiv, FHC_BOOLEAN).','. - $this->db_add_param($this->finanzamt, FHC_INTEGER).','. - $this->db_add_param($this->partner_code).'); '; + gesperrt,aktiv,finanzamt) VALUES('. + $this->db_add_param($this->name).', '. + $this->db_add_param($this->anmerkung).', '. + $this->db_add_param($this->lieferbedingungen).', '. + $this->db_add_param($this->firmentyp_kurzbz).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).', '. + $this->db_add_param($this->schule, FHC_BOOLEAN).','. + $this->db_add_param($this->steuernummer).', '. + $this->db_add_param($this->gesperrt, FHC_BOOLEAN).','. + $this->db_add_param($this->aktiv, FHC_BOOLEAN).','. + $this->db_add_param($this->finanzamt, FHC_INTEGER).','. + $this->db_add_param($this->partner_code).'); '; } else { @@ -207,15 +207,15 @@ class firma extends basis_db 'firma_id='.$this->db_add_param($this->firma_id).', '. 'name='.$this->db_add_param($this->name).', '. 'anmerkung='.$this->db_add_param($this->anmerkung).', '. - 'lieferbedingungen='.$this->db_add_param($this->lieferbedingungen).', '. + 'lieferbedingungen='.$this->db_add_param($this->lieferbedingungen).', '. 'updateamum= now(), '. - 'updatevon='.$this->db_add_param($this->updatevon).', '. - 'firmentyp_kurzbz='.$this->db_add_param($this->firmentyp_kurzbz).', '. - 'schule='.$this->db_add_param($this->schule, FHC_BOOLEAN).', '. - 'steuernummer='.$this->db_add_param($this->steuernummer).', '. - 'gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).', '. - 'aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '. - 'finanzamt='.$this->db_add_param($this->finanzamt, FHC_INTEGER).', '. + 'updatevon='.$this->db_add_param($this->updatevon).', '. + 'firmentyp_kurzbz='.$this->db_add_param($this->firmentyp_kurzbz).', '. + 'schule='.$this->db_add_param($this->schule, FHC_BOOLEAN).', '. + 'steuernummer='.$this->db_add_param($this->steuernummer).', '. + 'gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).', '. + 'aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '. + 'finanzamt='.$this->db_add_param($this->finanzamt, FHC_INTEGER).', '. 'partner_code='.$this->db_add_param($this->partner_code).' '. 'WHERE firma_id='.$this->db_add_param($this->firma_id, FHC_INTEGER).';'; } @@ -654,15 +654,21 @@ class firma extends basis_db } /** - * Laedt alle Firmen Standorte, und Adressen nach Suchstring und/oder eines bestimmen Firmentyps + * Laedt alle Firmen Standorte, und Adressen nach Suchstring und/oder eines bestimmen Firmentyps, und/oder einer bestimmten Organisationseinheit + * @param string $filter Optional. Searchstring. + * @param string $firmentyp_kurzbz Optional. Firmentyp + * @param boolean $standorte Default false. Wenn false, findet ein distinct on auf die firma_id statt + * @param string $oefilter Oe_kurzbz. Optional. Filtert die Firmen auf die uebergebene oe_kurzbz. * @return true wenn ok, false im Fehlerfall */ - public function searchFirma($filter='',$firmentyp_kurzbz='', $standorte=false) + public function searchFirma($filter='',$firmentyp_kurzbz='', $standorte=false, $oefilter='') { $this->result = array(); $this->errormsg = ''; - - $qry ="SELECT * FROM (SElECT "; + $oes = ''; + if ($oefilter!='') + $oes = implode("','",$oefilter); + $qry ="SELECT * FROM (SELECT "; if(!$standorte) $qry.=" distinct on(firma_id)"; $qry.=" tbl_firma.firma_id,tbl_firma.* ,tbl_standort.kurzbz,tbl_standort.adresse_id,tbl_standort.standort_id,tbl_standort.bezeichnung "; @@ -670,6 +676,8 @@ class firma extends basis_db $qry.=" FROM public.tbl_firma"; $qry.=" LEFT JOIN public.tbl_standort USING(firma_id) "; $qry.=" LEFT JOIN public.tbl_adresse on ( tbl_adresse.adresse_id=tbl_standort.adresse_id ) "; + if ($oes!='') + $qry.=" LEFT JOIN public.tbl_firma_organisationseinheit ON (tbl_firma.firma_id=tbl_firma_organisationseinheit.firma_id) "; $qry.=" WHERE 1=1"; if($filter!='') @@ -681,7 +689,7 @@ class firma extends basis_db OR lower(ort) like lower('%".$this->db_escape($filter)."%') OR lower(strasse) like lower('%".$this->db_escape($filter)."%') - OR lower(bezeichnung) like lower('%".$this->db_escape($filter)."%') + OR lower(tbl_standort.bezeichnung) like lower('%".$this->db_escape($filter)."%') OR lower(anmerkung) like lower('%".$this->db_escape($filter)."%') ".(is_numeric($filter)?" OR tbl_firma.firma_id='".$this->db_escape($filter)."'":'')." OR tbl_firma.firma_id IN (SELECT firma_id FROM public.tbl_firmatag @@ -690,6 +698,9 @@ class firma extends basis_db if($firmentyp_kurzbz!='') $qry.=" and firmentyp_kurzbz=".$this->db_add_param($firmentyp_kurzbz); + + if($oes!='') + $qry.=" and oe_kurzbz IN ('".$oes."') "; //if($filter=='' && $firmentyp_kurzbz=='') // $qry.=" limit 500 "; @@ -704,7 +715,7 @@ class firma extends basis_db $fa->firma_id = $row->firma_id; $fa->name = $row->name; $fa->anmerkung = $row->anmerkung; - $fa->lieferbedingungen = $row->lieferbedingungen; + //$fa->lieferbedingungen = $row->lieferbedingungen; $fa->firmentyp_kurzbz = $row->firmentyp_kurzbz; $fa->updateamum = $row->updateamum; $fa->updatevon = $row->updatevon; @@ -782,11 +793,12 @@ class firma extends basis_db /** * Laedt alle Firmen - Organisationseinheiten nach Firmen ID und/oder OE Kurzbz - * @param $firma_id ID die gelesen werden soll - * @param $oe_kurzbz Organisationskurzbezeichnung + * @param integer $firma_id ID die gelesen werden soll + * @param string $oe_kurzbz Organisationskurzbezeichnung + * @param string $firmentyp_kurzbz Optional. Firmentyp, der geliefert werden soll * @return true wenn ok, false im Fehlerfall */ - public function get_firmaorganisationseinheit($firma_id='',$oe_kurzbz='') + public function get_firmaorganisationseinheit($firma_id='', $oe_kurzbz='', $firmentyp_kurzbz='') { $this->result = array(); $this->errormsg = ''; @@ -806,9 +818,11 @@ class firma extends basis_db $qry.=" WHERE true "; if($firma_id!='') - $qry.=" and tbl_firma_organisationseinheit.firma_id=".$this->db_add_param($firma_id, FHC_INTEGER); + $qry.=" AND tbl_firma_organisationseinheit.firma_id=".$this->db_add_param($firma_id, FHC_INTEGER); if($oe_kurzbz!='') - $qry.=" and tbl_firma_organisationseinheit.oe_kurzbz=".$this->db_add_param($oe_kurzbz); + $qry.=" AND tbl_firma_organisationseinheit.oe_kurzbz=".$this->db_add_param($oe_kurzbz); + if($firmentyp_kurzbz!='') + $qry.=" AND firmentyp_kurzbz=".$this->db_add_param($firmentyp_kurzbz); $qry.=" ORDER BY tbl_firma.name, tbl_firma_organisationseinheit.oe_kurzbz;"; if($this->db_query($qry)) @@ -930,14 +944,14 @@ class firma extends basis_db //Neuen Datensatz einfuegen $qry='INSERT INTO public.tbl_firma_organisationseinheit (firma_id,oe_kurzbz, bezeichnung,kundennummer, updateamum, updatevon, insertamum, insertvon) VALUES('. - $this->db_add_param($this->firma_id, FHC_INTEGER).', '. - $this->db_add_param($this->oe_kurzbz).', '. - $this->db_add_param($this->bezeichnung).', '. - $this->db_add_param($this->kundennummer).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).' ); '; + $this->db_add_param($this->firma_id, FHC_INTEGER).', '. + $this->db_add_param($this->oe_kurzbz).', '. + $this->db_add_param($this->bezeichnung).', '. + $this->db_add_param($this->kundennummer).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).' ); '; } else { @@ -955,7 +969,7 @@ class firma extends basis_db 'bezeichnung='.$this->db_add_param($this->bezeichnung).', '. 'kundennummer='.$this->db_add_param($this->kundennummer).', '. 'updateamum= now(), '. - 'updatevon='.$this->db_add_param($this->updatevon).' '. + 'updatevon='.$this->db_add_param($this->updatevon).' '. 'WHERE firma_organisationseinheit_id='.$this->db_add_param($this->firma_organisationseinheit_id, FHC_INTEGER).';'; } if($this->db_query($qry)) @@ -1069,25 +1083,25 @@ class firma extends basis_db } } - /** - * Lädt Alle firmen die zu einem bestimmten mobilitaetsprogramm zugeordnet sind - * @param $mobilitaetsprogramm_code - * @return boolean - */ - function getFirmenMobilitaetsprogramm($mobilitaetsprogramm_code) - { - $qry = 'SELECT * FROM public.tbl_firma JOIN public.tbl_firma_mobilitaetsprogramm USING(firma_id) WHERE mobilitaetsprogramm_code ='.$this->db_add_param($mobilitaetsprogramm_code, FHC_INTEGER).';'; + /** + * Lädt Alle firmen die zu einem bestimmten mobilitaetsprogramm zugeordnet sind + * @param $mobilitaetsprogramm_code + * @return boolean + */ + function getFirmenMobilitaetsprogramm($mobilitaetsprogramm_code) + { + $qry = 'SELECT * FROM public.tbl_firma JOIN public.tbl_firma_mobilitaetsprogramm USING(firma_id) WHERE mobilitaetsprogramm_code ='.$this->db_add_param($mobilitaetsprogramm_code, FHC_INTEGER).';'; if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { - $fi = new firma(); + $fi = new firma(); $fi->firma_id = $row->firma_id; $fi->name = $row->name; $fi->anmerkung = $row->anmerkung; - $fi->lieferbedingungen = $row->lieferbedingungen; + $fi->lieferbedingungen = $row->lieferbedingungen; $fi->firmentyp_kurzbz = $row->firmentyp_kurzbz; $fi->updateamum = $row->updateamum; $fi->updatevon = $row->updatevon; diff --git a/vilesci/stammdaten/firma_uebersicht.php b/vilesci/stammdaten/firma_uebersicht.php index d71223c2c..457832318 100644 --- a/vilesci/stammdaten/firma_uebersicht.php +++ b/vilesci/stammdaten/firma_uebersicht.php @@ -24,6 +24,8 @@ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/firma.class.php'); require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/organisationseinheit.class.php'); +require_once('../../include/studiengang.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -41,6 +43,7 @@ if(!$rechte->isBerechtigt($berechtigung_kurzbz)) $suchen = (isset($_GET['suchen'])?$_GET['suchen']:null); $filter = (isset($_GET['filter'])?$_GET['filter']:''); $firmentypfilter = (isset($_GET['firmentypfilter'])?$_GET['firmentypfilter']:''); +$oe_kurzbz = (isset($_GET['oe_kurzbz'])?$_GET['oe_kurzbz']:''); ?> @@ -70,29 +73,52 @@ echo ''; echo ""; } echo ''; + echo ' Organisationseinheit: '; echo ' '; echo ''; echo ""; echo '
'; - echo creatList($suchen,$filter,$firmentypfilter); + echo creatList($suchen,$filter,$firmentypfilter,$oe_kurzbz); ?> errormsg=''; - $firma_finanzamt->result=array(); + $firma_finanzamt->result=array(); + $oes=''; + $oes = new organisationseinheit(); + $oes = $oes->getChilds($oe_kurzbz); //echo "Filter: ".$filter." Firmentypfilter: ".$firmentypfilter."
"; if (!is_null($suchen)) // Nur wenn Suchknopf gedrueckt wurde - $firma_finanzamt->searchFirma($filter,$firmentypfilter); + $firma_finanzamt->searchFirma($filter,$firmentypfilter,false,$oes); if($firma_finanzamt->errormsg) return 'Fehler beim Laden der Firma
'; @@ -145,6 +171,10 @@ function creatList($suchen,$filter,$firmentypfilter) } $htmlstr .= "\n"; } + else + { + $htmlstr .= "
Keine Einträge gefunden"; + } return $htmlstr; } ?>