diff --git a/include/adresse.class.php b/include/adresse.class.php index 990815176..783f0b966 100644 --- a/include/adresse.class.php +++ b/include/adresse.class.php @@ -182,6 +182,55 @@ class adresse } return true; } + + // ************************************************************************* + // * Laedt alle adressen zu der Firma die uebergeben wird + // * @param $firma_id ID der Firma zu der die Adressen geladen werden sollen + // * @return true wenn ok, false im Fehlerfall + // ************************************************************************* + function load_firma($firma_id) + { + //Pruefen ob pers_id eine gueltige Zahl ist + if(!is_numeric($firma_id) || $firma_id == '') + { + $this->errormsg = 'firma_id muss eine gueltige Zahl sein'; + return false; + } + + //Lesen der Daten aus der Datenbank + $qry = "SELECT * FROM public.tbl_adresse WHERE firma_id='$firma_id'"; + + if(!$res = pg_query($this->conn,$qry)) + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage'; + return false; + } + + while($row = pg_fetch_object($res)) + { + $adr_obj = new adresse($this->conn, null, null); + + $adr_obj->adresse_id = $row->adresse_id; + $adr_obj->heimatadresse = ($row->heimatadresse=='t'?true:false); + $adr_obj->gemeinde = $row->gemeinde; + $adr_obj->name = $row->name; + $adr_obj->nation = $row->nation; + $adr_obj->ort = $row->ort; + $adr_obj->person_id = $row->person_id; + $adr_obj->plz = $row->plz; + $adr_obj->strasse = $row->strasse; + $adr_obj->typ = $row->typ; + $adr_obj->firma_id = $row->firma_id; + $adr_obj->updateamum = $row->updateamum; + $adr_obj->updatevon = $row->updatevon; + $adr_obj->insertamum = $row->insertamum; + $adr_obj->insertvon = $row->insertvon; + $adr_obj->zustelladresse = ($row->zustelladresse=='t'?true:false); + + $this->result[] = $adr_obj; + } + return true; + } // ******************************************* // * Prueft die Variablen auf Gueltigkeit @@ -190,7 +239,7 @@ class adresse function validate() { //Zahlenfelder pruefen - if(!is_numeric($this->person_id)) + if(!is_numeric($this->person_id) && $this->person_id!='') { $this->errormsg='person_id enthaelt ungueltige Zeichen:'.$this->person_id.' - adresse: '.$this->adresse_id."\n"; return false; diff --git a/skin/images/preferences-system.png b/skin/images/preferences-system.png new file mode 100644 index 000000000..9460dfc74 Binary files /dev/null and b/skin/images/preferences-system.png differ diff --git a/vilesci/personen/preinteressent_anlegen.php b/vilesci/personen/preinteressent_anlegen.php index 59dd9fd02..57ae1b01c 100644 --- a/vilesci/personen/preinteressent_anlegen.php +++ b/vilesci/personen/preinteressent_anlegen.php @@ -365,9 +365,9 @@ $stsem = new studiensemester($conn); $stsem->getNextStudiensemester('WS'); $studiensemester_kurzbz = (isset($_POST['studiensemester_kurzbz'])?$_POST['studiensemester_kurzbz']:$stsem->studiensemester_kurzbz); -if(isset($_POST['schule_id']) && $_POST['schule_id']!='') +if(isset($_REQUEST['schule_id']) && $_REQUEST['schule_id']!='') { - $schule = $_POST['schule_id']; + $schule = $_REQUEST['schule_id']; } elseif(isset($_POST['schule'])) { @@ -602,7 +602,7 @@ if(isset($_POST['save'])) window.opener.StudentProjektbetreuerMenulistPersonLoad(window.opener.document.getElementById('student-projektbetreuer-menulist-person'), '$nachname'); window.opener.MenulistSelectItemOnValue('student-projektbetreuer-menulist-person', $person->person_id); */ - die("Person $vorname $nachname wurde erfolgreich angelegt

Neuen Preinteressenten anlegen
"); + die("Person $vorname $nachname wurde erfolgreich angelegt

Neuen Preinteressenten anlegen
"); } else { @@ -742,10 +742,11 @@ foreach ($stsem->studiensemester as $row) echo ""; } echo ''; -echo 'Schule: '; echo ""; -$qry = "SELECT * FROM public.tbl_firma WHERE schule ORDER BY name"; - +$qry = "SELECT plz, ort, strasse, tbl_firma.name, firma_id + FROM public.tbl_firma LEFT JOIN public.tbl_adresse USING(firma_id) + WHERE schule ORDER BY plz, name"; //bei namen die laenger als 40 zeichen sind wird ein teil aus der mitte //herausgeschnitten damit das DD nicht zu gross wird function shortname($name) @@ -767,11 +768,11 @@ if($result = pg_query($conn, $qry)) else $selected=''; - echo ""; + echo ""; } } echo ''; -echo 'Schule ID:'; +echo 'Schule ID:'; echo ''; if(($vorname!='' && $geburtsdatum=='' && $nachname=='') || ($vorname=='' && $geburtsdatum=='' && $nachname!='') diff --git a/vilesci/personen/preinteressent_detail.php b/vilesci/personen/preinteressent_detail.php index 4f9bef681..52ccebade 100644 --- a/vilesci/personen/preinteressent_detail.php +++ b/vilesci/personen/preinteressent_detail.php @@ -73,6 +73,27 @@ echo ' - +

PreInteressenten

'; diff --git a/vilesci/stammdaten/firma_details.php b/vilesci/stammdaten/firma_details.php index c25ebebfa..c5bbfc68e 100644 --- a/vilesci/stammdaten/firma_details.php +++ b/vilesci/stammdaten/firma_details.php @@ -18,16 +18,31 @@ * Authors: Christian Paminger , * Andreas Oesterreicher and * Rudolf Hangl . + */ +/** + * Detailansicht fuer die Firmenverwaltung + * Ermoeglicht die Eingabe der Firmendaten plus zugehoeriger Adressen */ require_once('../config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/firma.class.php'); + require_once('../../include/adresse.class.php'); + require_once('../../include/nation.class.php'); + require_once('../../include/benutzerberechtigung.class.php'); if (!$conn = pg_pconnect(CONN_STRING)) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); // ******* INIT ******** $user = get_uid(); + + //Zugriffsrechte pruefen + $rechte = new benutzerberechtigung($conn); + $rechte->getBerechtigungen($user); + + if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('preinteressent') && !$rechte->isBerechtigt('assistenz')) + die('Sie haben keine Berechtigung für diese Seite'); + $htmlstr = ''; $errorstr = ''; $reloadstr = ''; @@ -42,7 +57,83 @@ $firmentyp_kurzbz = (isset($_POST['typ'])?$_POST['typ']:''); $schule = isset($_POST['schule']); - // ******* SPEICHERN ******** + $adresstyp = (isset($_POST['adresstyp'])?$_POST['adresstyp']:''); + $strasse = (isset($_POST['strasse'])?$_POST['strasse']:''); + $plz = (isset($_POST['plz'])?$_POST['plz']:''); + $ort = (isset($_POST['ort'])?$_POST['ort']:''); + $gemeinde = (isset($_POST['gemeinde'])?$_POST['gemeinde']:''); + $nation = (isset($_POST['nation'])?$_POST['nation']:''); + $heimatadresse = (isset($_POST['heimatadresse'])?true:false); + $zustelladresse = (isset($_POST['zustelladresse'])?true:false); + $zustellung = (isset($_POST['zustellung'])?true:false); + $adresse_id = (isset($_REQUEST['adresse_id'])?$_REQUEST['adresse_id']:''); + + //Loeschen einer Adresse + if(isset($_GET['deleteadresse'])) + { + if(is_numeric($adresse_id)) + { + $adresse_obj = new adresse($conn); + if(!$adresse_obj->delete($adresse_id)) + { + $errorstr = 'Fehler beim Loeschen der Adresse:'.$adresse_obj->errormsg; + } + } + } + + //Speichern einer Adresse + if(isset($_POST['saveadresse'])) + { + $adresse_obj = new adresse($conn); + + if(is_numeric($adresse_id)) + { + if($adresse_obj->load($adresse_id)) + { + $adresse_obj->new = false; + } + else + { + $errorstr = 'Adresse wurde nicht gefunden:'.$adresse_id; + $error=true; + } + } + else + { + $adresse_obj->new = true; + $adresse_obj->insertamum = date('Y-m-d H:i:s'); + $adresse_obj->insertvon = $user; + } + + if(!$error) + { + $adresse_obj->person_id=null; + $adresse_obj->strasse = $strasse; + $adresse_obj->plz = $plz; + $adresse_obj->ort = $ort; + $adresse_obj->gemeinde = $gemeinde; + $adresse_obj->nation = $nation; + $adresse_obj->typ = $adresstyp; + $adresse_obj->heimatadresse = $heimatadresse; + $adresse_obj->zustelladresse = $zustelladresse; + $adresse_obj->firma_id = $firma_id; + $adresse_obj->updateamum = date('Y-m-d H:i:s'); + $adresse_obj->updatvon = $user; + + //var_dump($adresse_obj); + + if(!$adresse_obj->save()) + { + $errorstr = 'Fehler beim Speichern der Adresse:'.$adresse_obj->errormsg; + } + else + { + $errorstr = 'Daten wurden gespeichert'; + } + } + } + + // Speichern der Firmendaten if(isset($_POST['save'])) { $firma = new firma($conn); @@ -92,67 +183,7 @@ } } - // ******* FORMULAR ********** - $firma = new firma($conn); - if($firma_id!='') - { - if (!$firma->load($firma_id)) - { - $htmlstr .= "
Firma mit der ID ".$firma_id." existiert nicht
"; - } - } - else - { - //Bei neuen Firmen wird standardmaessig Partnerfirma ausgewaehlt - $firma->firmentyp_kurzbz='Partnerfirma'; - } - - - $htmlstr .= "
\n"; - $htmlstr .= "\n"; - $htmlstr .= "
Firma
\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " \n"; - - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= ""; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " \n"; - $htmlstr .= " "; - $htmlstr .= " "; - $htmlstr .= "
Name: Typ:
EMail: Telefon: Fax:
Adresse: Anmerkung: Schule: schule?'checked':'')."
\n"; - $htmlstr .= "
\n"; - - $htmlstr .= "
".$errorstr."
\n"; ?> @@ -177,7 +208,170 @@ function confdel() load($firma_id)) + { + die('
Firma mit der ID '.$firma_id.' existiert nicht'); + } + } + else + { + //Bei neuen Firmen wird standardmaessig Partnerfirma ausgewaehlt + $firma->firmentyp_kurzbz='Partnerfirma'; + } + + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo " \n"; + echo " "; + echo " \n"; + echo " "; + echo " \n"; + + echo " "; + echo " \n"; + echo " "; + echo " \n"; + echo " "; + echo " \n"; + echo " "; + echo " \n"; + echo ""; + echo " "; + echo " \n"; + echo " "; + echo " "; + echo "
Name: Typ:
EMail: Telefon: Fax: Adresse (alt):
Anmerkung: Schule: schule?'checked':'')."
\n"; + echo "
\n"; + + echo "
".$errorstr."
\n"; + + //Nationen laden + $nation_arr = array(); + $nation = new nation($conn); + $nation->getAll(); + + foreach($nation->nation as $row) + $nation_arr[$row->code]=$row->kurztext; + + $adresstyp_arr = array('h'=>'Hauptwohnsitz','n'=>'Nebenwohnsitz','f'=>'Firma',''=>''); + + // Formular fuer die Adressdaten + echo "

Adressen:

"; + echo "
"; + echo ""; + $adresse_obj = new adresse($conn); + $adresse_obj->load_firma($firma_id); + + //Anzeigen aller Adresssen + foreach ($adresse_obj->result as $row) + { + echo ''; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + $savebuttonvalue='Neu'; + //wenn die Adressen editiert werden dann die Adressdaten laden + if(isset($_GET['editadresse'])) + { + $adresse_obj = new adresse($conn); + if($adresse_obj->load($adresse_id)) + { + $strasse = $adresse_obj->strasse; + $plz = $adresse_obj->plz; + $ort = $adresse_obj->ort; + $gemeinde = $adresse_obj->gemeinde; + $nation = $adresse_obj->nation; + $typ = $adresse_obj->typ; + $heimatadresse = $adresse_obj->heimatadresse; + $zustelladresse = $adresse_obj->zustelladresse; + $firma_id = $adresse_obj->firma_id; + $savebuttonvalue='Speichern'; + } + } + else + { + //bei einer neuen Adresse die Felder leeren + $strasse=''; + $plz=''; + $ort=''; + $gemeinde=''; + $nation = 'A'; + $typ=''; + $heimatadresse=''; + $zustelladresse=''; + $adresse_id=''; + } + + echo ""; + echo ''; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo "
STRASSEPLZORTGEMEINDENATIONTYPHEIMATZUSTELLUNG
$row->strasse$row->plz$row->ort$row->gemeinde".$nation_arr[$row->nation]."".$adresstyp_arr[$row->typ]."".($row->heimatadresse?'Ja':'Nein')."".($row->zustelladresse?'Ja':'Nein')."adresse_id&firma_id=$firma_id'>bearbeitenadresse_id&firma_id=$firma_id' onclick='return confdel()'>loeschen
"; + echo "
"; + + //eventuell die Felder im oeffnenden Fenster aktualisieren echo $reloadstr; ?>