This commit is contained in:
Andreas Österreicher
2011-02-22 09:04:25 +00:00
parent b61d510ac6
commit eab9fb1a2a
4 changed files with 179 additions and 10 deletions
+43
View File
@@ -953,5 +953,48 @@ class benutzerberechtigung extends basis_db
return false;
}
}
public function getKostenstelleUser($kostenstelle_id)
{
$qry = "SELECT
distinct uid, a.art,
CASE WHEN a.berechtigung_kurzbz is null
THEN tbl_rolleberechtigung.berechtigung_kurzbz
ELSE a.berechtigung_kurzbz END as berechtigung_kurzbz
FROM
(
SELECT * FROM system.tbl_benutzerrolle WHERE kostenstelle_id='".addslashes($kostenstelle_id)."'
UNION
SELECT * FROM system.tbl_benutzerrolle WHERE
oe_kurzbz = (SELECT oe_kurzbz FROM wawi.tbl_kostenstelle WHERE kostenstelle_id='".addslashes($kostenstelle_id)."')
OR oe_kurzbz IN(
WITH RECURSIVE oes(oe_parent_kurzbz) as
(
SELECT oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=(SELECT oe_kurzbz FROM wawi.tbl_kostenstelle WHERE kostenstelle_id='".addslashes($kostenstelle_id)."')
UNION ALL
SELECT o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz
)
SELECT oe_parent_kurzbz
FROM oes)
) as a
LEFT JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz)
WHERE (start is null OR start<=now()) AND (ende is null OR ende>=now()) AND negativ=false";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new benutzerberechtigung();
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$obj->uid = $row->uid;
$obj->art = $row->art;
$this->berechtigungen[] = $obj;
}
}
}
}
?>
+26 -5
View File
@@ -360,15 +360,36 @@ class firma extends basis_db
*/
public function getAll($firma_search = null)
{
$qry = "SElECT * FROM public.tbl_firma";
if (!empty($firma_search))
{
$qry.= " WHERE ";
$matchcode=mb_strtoupper(addslashes(str_replace(array('<','>',' ',';','*','_','-',',',"'",'"'),"%",$firma_search)));
$qry.=" UPPER(trim(public.tbl_firma.name)) like '%".$matchcode."%'";
$matchcode=mb_strtoupper(addslashes(str_replace(array('<','>',' ',';','*','_','-',',',"'",'"'),"%",$firma_search)));
//Zuerst werden die Ergebnisse geliefert, die mit $filter_search beginnen
//danach jene Ergebnisse bei denen $filter_search innerhalb des Namens vorkommt
$qry = "
SELECT
firma_id, name, anmerkung, firmentyp_kurzbz, updateamum, updatevon, insertamum, insertvon,
ext_id, schule, steuernummer, gesperrt, aktiv, finanzamt, '1' as sort
FROM public.tbl_firma
WHERE
UPPER(trim(public.tbl_firma.name)) like '".$matchcode."%'
UNION
SELECT
firma_id, name, anmerkung, firmentyp_kurzbz, updateamum, updatevon, insertamum, insertvon,
ext_id, schule, steuernummer, gesperrt, aktiv, finanzamt, '2' as sort
FROM public.tbl_firma
WHERE
UPPER(trim(public.tbl_firma.name)) like '%".$matchcode."%'
AND UPPER(trim(public.tbl_firma.name)) NOT like '".$matchcode."%'
ORDER BY sort, name, firma_id";
}
else
{
$qry = "SELECT * FROM public.tbl_firma ORDER BY name";
}
$qry.= " ORDER BY NAME";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
+5 -1
View File
@@ -67,7 +67,11 @@ $menu=array
'name'=>'Firma', 'link'=>'firma.php', 'target'=>'content','permissions'=>array('wawi/firma'),
'FirmaNeu'=>array('name'=>'Neu', 'link'=>'firma.php?method=new', 'target'=>'content'),
'FirmaSuchen'=>array('name'=>'Suchen', 'link'=>'firma.php', 'target'=>'content'),
)
),
'Berechtigungen'=>array
(
'name'=>'Berechtigungen', 'link'=>'berechtigung.php', 'target'=>'content',
),
),
'Berichte'=> array
(
+105 -4
View File
@@ -94,6 +94,10 @@ if(isset($_POST['save']))
$fax_id = $_POST['fax_id'];
$telefon_id = $_POST['telefon_id'];
$email_id = $_POST['email_id'];
$kundennummer_erhalter_id = $_POST['kundennummer_erhalter_id'];
$kundennummer_erhalter = $_POST['kundennummer_erhalter'];
$kundennummer_gmbh_id = $_POST['kundennummer_gmbh_id'];
$kundennummer_gmbh = $_POST['kundennummer_gmbh'];
$errormsg='';
@@ -141,6 +145,74 @@ if(isset($_POST['save']))
if($firma->save())
{
//Kundennummer Erhalter
if($kundennummer_erhalter_id!='' || $kundennummer_erhalter!='')
{
$firma_oe = new firma();
if($kundennummer_erhalter_id!='')
{
if(!$firma_oe->load_firmaorganisationseinheit($kundennummer_erhalter_id))
{
$error = true;
$errormsg.='Fehler beim Laden der Organisationseinheitenzuordnung';
}
$firma_oe->new = false;
}
else
{
$firma_oe->firma_id = $firma->firma_id;
$firma_oe->new = true;
$firma_oe->oe_kurzbz='etw';
$firma_oe->insertamum = date('Y-m-d H:i:s');
$firma_oe->insertvon = $user;
}
$firma_oe->updateamum = date('Y-m-d H:i:s');
$firma_oe->updatevon = $user;
$firma_oe->kundennummer=$kundennummer_erhalter;
if(!$firma_oe->saveorganisationseinheit())
{
$error = true;
$errormsg.='Fehler beim Speichern der Kundennummer:'.$firma_oe->errormsg;
}
}
//Kundennummer GmbH
if($kundennummer_gmbh_id!='' || $kundennummer_gmbh!='')
{
$firma_oe = new firma();
if($kundennummer_gmbh_id!='')
{
if(!$firma_oe->load_firmaorganisationseinheit($kundennummer_gmbh_id))
{
$error = true;
$errormsg.='Fehler beim Laden der Organisationseinheitenzuordnung';
}
$firma_oe->new = false;
}
else
{
$firma_oe->firma_id = $firma->firma_id;
$firma_oe->new = true;
$firma_oe->oe_kurzbz='gmbh';
$firma_oe->insertamum = date('Y-m-d H:i:s');
$firma_oe->insertvon = $user;
}
$firma_oe->updateamum = date('Y-m-d H:i:s');
$firma_oe->updatevon = $user;
$firma_oe->kundennummer=$kundennummer_gmbh;
if(!$firma_oe->saveorganisationseinheit())
{
$error = true;
$errormsg.='Fehler beim Speichern der Kundennummer:'.$firma_oe->errormsg;
}
}
//Adressdatensatz anlegen/updaten
$adresse = new adresse();
@@ -314,6 +386,10 @@ if($method=='new' || $method=='update')
$email_id='';
$telefon_id='';
$anmerkung='';
$kundennummer_erhalter='';
$kundennummer_erhalter_id='';
$kundennummer_gmbh='';
$kundennummer_gmbh_id='';
if($method=='new')
echo '<h1>Neue Firma</h1>';
@@ -333,6 +409,21 @@ if($method=='new' || $method=='update')
$anmerkung = $firma->anmerkung;
$firma_id = $firma->firma_id;
$firma_oe = new firma();
$firma_oe->get_firmaorganisationseinheit($firma_id,'etw');
if(isset($firma_oe->result[0]))
{
$kundennummer_erhalter = $firma_oe->result[0]->kundennummer;
$kundennummer_erhalter_id = $firma_oe->result[0]->firma_organisationseinheit_id;
}
$firma_oe = new firma();
$firma_oe->get_firmaorganisationseinheit($firma_id,'gmbh');
if(isset($firma_oe->result[0]))
{
$kundennummer_gmbh = $firma_oe->result[0]->kundennummer;
$kundennummer_gmbh_id = $firma_oe->result[0]->firma_organisationseinheit_id;
}
//Standort Laden
$standort = new standort();
$standort->load_firma($firma_id);
@@ -382,14 +473,16 @@ if($method=='new' || $method=='update')
<input type="hidden" name="telefon_id" value="'.$telefon_id.'">
<input type="hidden" name="fax_id" value="'.$fax_id.'">
<input type="hidden" name="email_id" value="'.$email_id.'">
<input type="hidden" name="kundennummer_erhalter_id" value="'.$kundennummer_erhalter_id.'">
<input type="hidden" name="kundennummer_gmbh_id" value="'.$kundennummer_gmbh_id.'">
<table>
<tr>
<td>Name:</td>
<td><input type="text" name="name" maxlength="128" size="50" value="'.$name.'"/></td>
<td><input type="text" name="name" maxlength="128" size="80" value="'.$name.'"/></td>
</tr>
<tr>
<td>Straße:</td>
<td><input type="text" name="strasse" size="30" maxlength="256" value="'.$strasse.'"/></td>
<td><input type="text" name="strasse" size="40" maxlength="256" value="'.$strasse.'"/></td>
</tr>
<tr>
<td>Plz / Ort:</td>
@@ -427,11 +520,19 @@ if($method=='new' || $method=='update')
</tr>
<tr>
<td>E-Mail:</td>
<td><input type="text" name="email" maxlength="128" value="'.$email.'"/></td>
<td><input type="text" name="email" maxlength="128" size="40" value="'.$email.'"/></td>
</tr>
<tr>
<td>Kundennummer Erhalter:</td>
<td><input type="text" name="kundennummer_erhalter" maxlength="128" value="'.$kundennummer_erhalter.'"/></td>
</tr>
<tr>
<td>Kundennummer GmbH:</td>
<td><input type="text" name="kundennummer_gmbh" maxlength="128" value="'.$kundennummer_gmbh.'"/></td>
</tr>
<tr>
<td>Anmerkungen:</td>
<td><textarea name="anmerkung" cols="30" rows="3">'.$anmerkung.'</textarea></td>
<td><textarea name="anmerkung" cols="50" rows="3">'.$anmerkung.'</textarea></td>
</tr>
<tr>
<td></td>