diff --git a/wawi/bestellung.php b/wawi/bestellung.php
index e39c664f1..fbae50232 100644
--- a/wawi/bestellung.php
+++ b/wawi/bestellung.php
@@ -1042,16 +1042,19 @@ if($_GET['method']=='update')
// wer ist freigabeberechtigt auf kostenstelle
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer($bestellung_new->kostenstelle_id, null);
- $ausgabemsg.=sendFreigabeMails($uids, $bestellung_new);
+ if(empty($uids))
+ $ausgabemsg .='Es ist niemand zur Freigabe der Kostenstelle berechtigt.
';
+ else
+ $ausgabemsg.=sendFreigabeMails($uids, $bestellung_new);
}
}
}
- // kostenstelle gibt frei
+ // Kostenstelle hat freigegeben
if(isset($_POST['btn_freigabe']) )
{
if(!isset($_POST['freigabe_oe']))
{
- // Kostenstelle gibt frei
+
// wenn status Storno vorhanden, soll nicht mehr freigegeben werden.
if($status->isStatiVorhanden($bestellung_new->bestellung_id, 'Storno'))
{
@@ -1090,7 +1093,10 @@ if($_GET['method']=='update')
{
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer(null, $o);
- $freigabe = true;
+ if(empty($uids))
+ $ausgabemsg .='Es ist niemand zur Freigabe der Kostenstelle berechtigt.
';
+ else
+ $freigabe = true;
break;
}
}
@@ -1113,7 +1119,7 @@ if($_GET['method']=='update')
}
else
{
- // OE gibt frei
+ // OE hat freigegeben
// wenn status Storno vorhanden, soll nicht mehr freigegeben werden.
if($status->isStatiVorhanden($bestellung_new->bestellung_id, 'Storno'))
{
@@ -1152,7 +1158,10 @@ if($_GET['method']=='update')
{
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer(null, $o);
- $freigabe = true;
+ if(empty($uids))
+ $ausgabemsg .='Es ist niemand zur Freigabe der Kostenstelle berechtigt.
';
+ else
+ $freigabe = true;
break;
}
}
@@ -1175,6 +1184,54 @@ if($_GET['method']=='update')
}
}
}
+
+ // es soll die freigabenachricht erneut versendet werden, an dem der zum freigeben drann ist
+ if(isset($_POST['btn_erneut_abschicken']))
+ {
+ if(!$status->isStatiVorhanden($bestellung_new->bestellung_id, 'Freigabe'))
+ {
+ // KST hat noch nicht freigegeben
+ $rechte_fg = new benutzerberechtigung();
+ $uids = $rechte_fg->getFreigabeBenutzer($bestellung_new->kostenstelle_id, null);
+ if(empty($uids))
+ $ausgabemsg .='Es ist niemand zur Freigabe der Kostenstelle berechtigt.
';
+ else
+ $ausgabemsg.=sendFreigabeMails($uids, $bestellung_new);
+ }
+ else
+ {
+ $bestellung_new->load($bestellung_id);
+
+ // wer ist freigabeberechtigt auf nächsthöhere Organisationseinheit
+ $oes = array();
+ $oes = $bestellung_new->FreigabeOe($bestellung_id);
+ $freigabe= false;
+ foreach($oes as $o)
+ {
+ if(!$status->isStatiVorhanden($bestellung_new->bestellung_id, 'Freigabe', $o))
+ {
+ $rechte_fg = new benutzerberechtigung();
+ $uids = $rechte_fg->getFreigabeBenutzer(null, $o);
+ if(empty($uids))
+ $ausgabemsg .='Es ist niemand zur Freigabe der Kostenstelle berechtigt.
';
+ else
+ $freigabe = true;
+ break;
+ }
+ }
+ if(!$freigabe == false)
+ {
+ $ausgabemsg.=sendFreigabeMails($uids, $bestellung_new);
+ // fehlermeldung wenn kein uid gefunden
+ }
+ else
+ {
+ $ausgabemsg.= 'Die Bestellung wurde komplett freigegeben
';
+ }
+
+ }
+
+ }
$_GET['method']='update';
$_GET['id']=$bestellung_new->bestellung_id;
}
@@ -1272,7 +1329,7 @@ if($_GET['method']=='update')
$disabled = '';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Bestellung') || $status->isStatiVorhanden($bestellung->bestellung_id, 'Storno') || $status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt'))
$disabled = 'disabled';
- if($rechte->isberechtigt('wawi/bestellung_advanced',null, 'suid', $bestellung->kostenstelle_id))
+ if($rechte->isberechtigt('wawi/bestellung_advanced',null, 'suid', $bestellung->kostenstelle_id) || ($rechte->isBerechtigt('wawi/freigabe', null, 'suid',$bestellung->kostenstelle_id) && $bestellung->freigegeben =='f'))
$disabled = '';
echo "