Added Preorderbilling permissions
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<li class="breadcrumb-item active">Bepreisung</li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Preise</h4>
|
||||
<h4 class="page-title">Kampagnenmanagement Preise</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="card-body mb-3 bg-light">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h4 class="header-title">Preise</h4>
|
||||
<h4 class="header-title">Kampagnenmanagement Preise</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -49,24 +49,36 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<?php foreach($netoperators as $netoperator): // TODO: Netoperators als Tabs anzeigen ?>
|
||||
<?php //foreach([new Address(5668), new Address(4803)] as $netoperator): // TODO: Netoperators als Tabs anzeigen ?>
|
||||
<h4><?=$netoperator->getCompanyOrName()?> (<?=$netoperator->id?>)</h4>
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
|
||||
<h4>Produkte</h4>
|
||||
<ul class="nav nav-tabs mb-0" id="netop-tabs" role="tablist">
|
||||
<?php $i = 0; foreach($netoperators as $netoperator): ?>
|
||||
<li class="nav-item" role="presentation">
|
||||
<!--a class="nav-link active" id="netop-<?=$netoperator->id?>-tab" data-toggle="tab" data-target="#netop-<?=$netoperator->id?>"><?=$netoperator->getCompanyOrName()?> (<?=$netoperator->id?>)</a-->
|
||||
<a href="#netop-<?=$netoperator->id?>" class="nav-link <?=($i === 0) ? "active" : ""?>" id="netop-<?=$netoperator->id?>-tab" data-toggle="pill" data-target="#netop-<?=$netoperator->id?>" type="button" role="tab" aria-controls="netop-<?=$netoperator->id?>" aria-selected="<?=($i === 0) ? "true" : "false"?>">
|
||||
<?=$netoperator->getCompanyOrName()?>
|
||||
</a>
|
||||
</li>
|
||||
<?php $i++; endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content mt-0 pt-0" id="netop-tabs-content">
|
||||
<?php $i = 0; foreach($netoperators as $netoperator): ?>
|
||||
<div class="tab-pane fade <?=($i === 0) ? "show active" : ""?>" id="netop-<?=$netoperator->id?>" role="tabpanel">
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
|
||||
<h4>Produkte für Netzbetreiber <?=$netoperator->getCompanyOrName()?></h4>
|
||||
<?php foreach($products as $product): ?>
|
||||
<?php $product->setNetoperatorId($netoperator->id) ?>
|
||||
<?php $product->setTodayDate($today_date); ?>
|
||||
<?php //$prices = (array_key_exists($netoperator->id, $product->prices)) ? $product->prices[$netoperator->id] : false; ?>
|
||||
<div class="card">
|
||||
<div class="card mt-4">
|
||||
<div class="card-header" >
|
||||
<h4 class="pointer"
|
||||
data-toggle="collapse" data-target="#price-detail-<?=$netoperator->id?>-<?=$product->id?>"
|
||||
id="price-detail-<?=$netoperator->id?>-<?=$product->id?>-collapse" data-collapse-indicator="fa-chevron" onclick="toggleCollapseIndicator(this)"
|
||||
>
|
||||
<i class="fas fa-fw fa-chevron-right collapse-indicator"></i> Preiseinstellungen für <span class="text-pink"><?=$product->name?></span>
|
||||
<i class="fas fa-fw fa-chevron-right collapse-indicator"></i> <span class="text-pink"><?=$product->name?></span>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="card-body mb-3 collapse" id="price-detail-<?=$netoperator->id?>-<?=$product->id?>">
|
||||
@@ -79,17 +91,13 @@
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
|
||||
|
||||
|
||||
<?php $i++; endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -162,5 +170,23 @@
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(() => {
|
||||
|
||||
var hash = window.location.hash.substring(1);
|
||||
var match = hash.match(/product-(\d+)(?:-(\d)+)?/);
|
||||
console.log(match);
|
||||
if(match && typeof match[1] !== 'undefined') {
|
||||
var netop = match[1];
|
||||
|
||||
console.log('$("#netop-' + netop + '-tab").tab("show");');
|
||||
$("#netop-" + netop + "-tab").tab('show');
|
||||
if(typeof match[2] !== 'undefined') {
|
||||
let prod_id = match[2];
|
||||
$("#price-detail-" + netop + "-" + prod_id).collapse('toggle');
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
@@ -8,7 +8,95 @@
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="row" id="netop-<?=$netoperator->id?>-<?=$product->id?>">
|
||||
<?php
|
||||
$current_price = $product->getCurrentPrice($today_date, true);
|
||||
$current_regular_price = $product->getCurrentRegularPrice($today_date, true);
|
||||
$first_price = $product->getFirstPrice($today_date);
|
||||
?>
|
||||
<div class="col-7">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Aktuelle Preise für <?=$product->getTodayDate()?></h4>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>INET</th>
|
||||
<th>INET+TV</th>
|
||||
<th>CATV</th>
|
||||
<th>Passive</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Heute gültiger Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_inet, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_inet_tv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_catv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_passive, 2, ",", ".")?></td>
|
||||
<td>
|
||||
<?=$current_price->description?>
|
||||
<?php if($current_price->end_date): ?>
|
||||
bis <?=(new DateTime($current_price->end_date))->format("d.m.Y")?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>Derzeit regulärer Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_inet, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_inet_tv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_catv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_passive, 2, ",", ".")?></td>
|
||||
<td><?=$current_regular_price->description?></td>
|
||||
</tr><tr>
|
||||
<td>Initialpreis</td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_inet, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_inet_tv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_catv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_passive, 2, ",", ".")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Preise Netzdurchdringung</h4>
|
||||
|
||||
<h5>Heute gültige Preise</h5>
|
||||
Gültig von: <?=($current_price->start_date) ? (new DateTime($current_price->start_date))->format("d.m.Y") : ""?><br />
|
||||
Gültig bis: <?=($current_price->end_date) ? (new DateTime($current_price->end_date))->format("d.m.Y") : ""?>
|
||||
<table class="table table-sm table-striped table-hover">
|
||||
<tr>
|
||||
<th>Gruppe</th>
|
||||
<th>INET</th>
|
||||
<th>INET+TV</th>
|
||||
<th>CATV</th>
|
||||
<th>Passive</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0 - 15%</td>
|
||||
<td><?=$current_price->price_inet?></td>
|
||||
<td><?=$current_price->price_inet_tv?></td>
|
||||
<td><?=$current_price->price_catv?></td>
|
||||
<td><?=$current_price->price_passive?></td>
|
||||
</tr>
|
||||
<?php foreach($current_price->marketsharediscounts as $bracket => $discount): ?>
|
||||
<tr>
|
||||
<td><?=$bracket?>% - <?=($bracket+5)?>%</td>
|
||||
<td><?=$discount->price_inet?></td>
|
||||
<td><?=$discount->price_inet_tv?></td>
|
||||
<td><?=$discount->price_catv?></td>
|
||||
<td><?=$discount->price_passive?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-5">
|
||||
<form method="post" action="<?=self::getUrl("PreorderProduct", "save")?>">
|
||||
|
||||
@@ -39,7 +127,7 @@
|
||||
<td class="text-monospace"><?=($line->end_date) ? (new DateTime($line->end_date))->format("d.m.Y") : "-"?></td>
|
||||
<td><?=(is_array($line->campaigns) && count($line->campaigns)) ? count($line->campaigns) : ""?></td>
|
||||
<td><?=$line->description?></td>
|
||||
<td><?=$line->creator->name?></td>
|
||||
<td title="Erstellt <?=date("d.m.Y", $line->create)?>"><?=$line->creator->name?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
@@ -213,97 +301,6 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
$current_price = $product->getCurrentPrice($today_date, true);
|
||||
$current_regular_price = $product->getCurrentRegularPrice($today_date, true);
|
||||
$first_price = $product->getFirstPrice($today_date);
|
||||
?>
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Aktuelle Preise für <?=$product->getTodayDate()?></h4>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>INET</th>
|
||||
<th>INET+TV</th>
|
||||
<th>CATV</th>
|
||||
<th>Passive</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Heute gültiger Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_inet, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_inet_tv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_catv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_passive, 2, ",", ".")?></td>
|
||||
<td>
|
||||
<?=$current_price->description?>
|
||||
<?php if($current_price->end_date): ?>
|
||||
bis <?=(new DateTime($current_price->end_date))->format("d.m.Y")?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>Derzeit regulärer Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_inet, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_inet_tv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_catv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_passive, 2, ",", ".")?></td>
|
||||
<td><?=$current_regular_price->description?></td>
|
||||
</tr><tr>
|
||||
<td>Initialpreis</td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_inet, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_inet_tv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_catv, 2, ",", ".")?></td>
|
||||
<td class="text-monospace">€ <?=number_format($first_price->price_passive, 2, ",", ".")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Preise Netzdurchdringung</h4>
|
||||
|
||||
<h5>Heute gültige Preise</h5>
|
||||
Gültig von: <?=($current_price->start_date) ? (new DateTime($current_price->start_date))->format("d.m.Y") : ""?><br />
|
||||
Gültig bis: <?=($current_price->end_date) ? (new DateTime($current_price->end_date))->format("d.m.Y") : ""?>
|
||||
<table class="table table-sm table-striped table-hover">
|
||||
<tr>
|
||||
<th>Gruppe</th>
|
||||
<th>INET</th>
|
||||
<th>INET+TV</th>
|
||||
<th>CATV</th>
|
||||
<th>Passive</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0 - 15%</td>
|
||||
<td><?=$current_price->price_inet?></td>
|
||||
<td><?=$current_price->price_inet_tv?></td>
|
||||
<td><?=$current_price->price_catv?></td>
|
||||
<td><?=$current_price->price_passive?></td>
|
||||
</tr>
|
||||
<?php foreach($current_price->marketsharediscounts as $bracket => $discount): ?>
|
||||
<tr>
|
||||
<td><?=$bracket?>% - <?=($bracket+5)?>%</td>
|
||||
<td><?=$discount->price_inet?></td>
|
||||
<td><?=$discount->price_inet_tv?></td>
|
||||
<td><?=$discount->price_catv?></td>
|
||||
<td><?=$discount->price_passive?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -8,8 +8,69 @@
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="row" id="netop-<?=$netoperator->id?>-<?=$product->id?>">
|
||||
<?php
|
||||
$current_price = $product->getCurrentPrice($today_date, true);
|
||||
$current_regular_price = $product->getCurrentRegularPrice($today_date, true);
|
||||
$first_price = $product->getFirstPrice($today_date);
|
||||
?>
|
||||
<div class="col-7">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Aktuelle Preise für <?=$product->getTodayDate()?></h4>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>Heute gültiger Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_setup, 2, ",", ".")?></td>
|
||||
<td>
|
||||
<?=$current_price->description?>
|
||||
<?php if($current_price->end_date): ?>
|
||||
bis <?=(new DateTime($current_price->end_date))->format("d.m.Y")?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>Derzeit regulärer Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_setup, 2, ",", ".")?></td>
|
||||
<td><?=$current_regular_price->description?></td>
|
||||
</tr><tr>
|
||||
<td>Initialpreis <span class="text-monospace">€ <?=number_format($first_price->price_setup, 2, ",", ".")?></span></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Preis Pro Kampagne</h4>
|
||||
<table class="table table-sm table-striped table-hover">
|
||||
<tr>
|
||||
<th>Kampagne</th>
|
||||
<th>Preis</th>
|
||||
<th>Gültig von</th>
|
||||
<th>Gültig bis</th>
|
||||
<th>Beschreibung</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<?php foreach($campaigns as $campaign): ?>
|
||||
<?php $cprice = $product->getCampaignPrice($campaign->id, $today_date); ?>
|
||||
<tr>
|
||||
<td><?=$campaign->name?></td>
|
||||
<td class="text-monospace">€ <?=number_format($cprice->price_setup, 2, ",", ".")?></td>
|
||||
<td class="text-monospace"><?=($cprice->start_date) ? (new DateTime($cprice->start_date))->format("d.m.Y") : "-"?></td>
|
||||
<td class="text-monospace"><?=($cprice->end_date) ? (new DateTime($cprice->end_date))->format("d.m.Y") : "-"?></td>
|
||||
<td><?=$cprice->description?></td>
|
||||
<td><?=$product->getTodayDate()?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-5">
|
||||
<form method="post" action="<?=self::getUrl("PreorderProduct", "save")?>">
|
||||
|
||||
<div class="form-group">
|
||||
@@ -33,7 +94,7 @@
|
||||
<td class="text-monospace"><?=($line->end_date) ? (new DateTime($line->end_date))->format("d.m.Y") : "-"?></td>
|
||||
<td><?=(is_array($line->campaigns) && count($line->campaigns)) ? count($line->campaigns) : ""?></td>
|
||||
<td><?=$line->description?></td>
|
||||
<td><?=$line->creator->name?></td>
|
||||
<td title="Erstellt <?=date("d.m.Y H:i", $line->create)?>"><?=$line->creator->name?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
@@ -121,70 +182,4 @@
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
$current_price = $product->getCurrentPrice($today_date, true);
|
||||
$current_regular_price = $product->getCurrentRegularPrice($today_date, true);
|
||||
$first_price = $product->getFirstPrice($today_date);
|
||||
?>
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Aktuelle Preise für <?=$product->getTodayDate()?></h4>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>Heute gültiger Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_price->price_setup, 2, ",", ".")?></td>
|
||||
<td>
|
||||
<?=$current_price->description?>
|
||||
<?php if($current_price->end_date): ?>
|
||||
bis <?=(new DateTime($current_price->end_date))->format("d.m.Y")?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>Derzeit regulärer Preis</th>
|
||||
<td class="text-monospace">€ <?=number_format($current_regular_price->price_setup, 2, ",", ".")?></td>
|
||||
<td><?=$current_regular_price->description?></td>
|
||||
</tr><tr>
|
||||
<td>Initialpreis <span class="text-monospace">€ <?=number_format($first_price->price_setup, 2, ",", ".")?></span></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Preis Pro Kampagne</h4>
|
||||
<table class="table table-sm table-striped table-hover">
|
||||
<tr>
|
||||
<th>Kampagne</th>
|
||||
<th>Preis</th>
|
||||
<th>Gültig von</th>
|
||||
<th>Gültig bis</th>
|
||||
<th>Beschreibung</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<?php foreach($campaigns as $campaign): ?>
|
||||
<?php $cprice = $product->getCampaignPrice($campaign->id, $today_date); ?>
|
||||
<tr>
|
||||
<td><?=$campaign->name?></td>
|
||||
<td class="text-monospace">€ <?=number_format($cprice->price_setup, 2, ",", ".")?></td>
|
||||
<td class="text-monospace"><?=($cprice->start_date) ? (new DateTime($cprice->start_date))->format("d.m.Y") : "-"?></td>
|
||||
<td class="text-monospace"><?=($cprice->end_date) ? (new DateTime($cprice->end_date))->format("d.m.Y") : "-"?></td>
|
||||
<td><?=$cprice->description?></td>
|
||||
<td><?=$product->getTodayDate()?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,377 +1,516 @@
|
||||
<?php
|
||||
$siteTitle = "Benutzer";
|
||||
$siteTitle = "Benutzer";
|
||||
?>
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
|
||||
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php"); ?>
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box">
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a></li>
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("User")?>">Benutzer</a></li>
|
||||
<li class="breadcrumb-item"><?=($action == "edit") ? "bearbeiten" : "neu"?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Benutzer</h4>
|
||||
<div class="col-12">
|
||||
<div class="page-title-box">
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a>
|
||||
</li>
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("User")?>">Benutzer</a></li>
|
||||
<li class="breadcrumb-item"><?=($action == "edit") ? "bearbeiten" : "neu"?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Benutzer</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="row">
|
||||
<div class="col-lg">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h4 class="header-title mb-3">Benutzer bearbeiten</h4>
|
||||
<form method="post" action="<?=$this->getUrl("User", "save")?>">
|
||||
<!-- Main content -->
|
||||
<div class="row">
|
||||
<div class="col-lg">
|
||||
<div class="card bg-light">
|
||||
<div class="card-body">
|
||||
<h4 class="header-title mb-3">Benutzer bearbeiten</h4>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<form method="post" action="<?=$this->getUrl("User","save")?>">
|
||||
<input type="hidden" name="id" value="<?=$user->id?>" />
|
||||
<div class="form-group">
|
||||
<label for="username">Username:</label>
|
||||
<input type="text" id="username" name="username" class="form-control" value="<?=$user->username?>" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name">Name:</label>
|
||||
<input type="text" id="name" name="name" class="form-control" value="<?=$user->name?>" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">Email:</label>
|
||||
<input type="text" id="email" name="email" class="form-control" value="<?=$user->email?>" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mobile">Handy Nr.:</label>
|
||||
<input type="text" id="mobile" placeholder="+436641234xxx" name="mobile" class="form-control" value="<?=$user->mobile?>" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="address_id">Firma/Person:</label>
|
||||
<select name="address_id" id="address_id" class="form-control">
|
||||
<option value=""></option>
|
||||
<?php foreach($addresses as $address): ?>
|
||||
<option value="<?=$address->id?>" <?=($address->id == $user->address_id || $address->id == $user->address_id) ? "selected='selected'" : ""?>><?=($address->company) ? $address->company : $address->getFullName()?><?=($address->customer_number) ? " (".$address->customer_number.")" : ""?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="admin">Admin:</label>
|
||||
<select name="admin" id="admin" class="form-control" <?=($user->id == 1) ? "disabled='disabled'" : ""?>>
|
||||
<option value="false" <?=(isset($user) && !$user->isAdmin()) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=(isset($user) && $user->isAdmin() || $user->id == 1) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="employee"><?=TT_SYSOWNER_NAME_HTML?> Mitarbeiter:</label>
|
||||
<select name="employee" id="employee" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("employee")) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("employee")) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group <?=(!isset($user) || !$user->is("employee")) ? "hidden" : ""?>" id="employee-number-container">
|
||||
<label for="employee_number"><?=TT_SYSOWNER_NAME_HTML?> Mitarbeiternummer:</label>
|
||||
<input type="text" id="employee_number" name="employee_number" class="form-control" value="<?=(isset($user)) ? (new WorkerFlag($user->id, "employee_number"))->value() : ""?>" />
|
||||
</div>
|
||||
<div class="form-group <?=(!isset($user) || !$user->is("employee")) ? "hidden" : ""?>" id="project-api-key-container">
|
||||
<label for="project_api_key">OpenProject API Key:</label>
|
||||
<input type="text" id="project_api_key" name="project_api_key" class="form-control" value="<?=(isset($user)) ? (new WorkerFlag($user->id, "project_api_key"))->value() : ""?>" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="technician">Techniker:</label>
|
||||
<select name="technician" id="technician" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("technician")) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("technician")) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group" id="preorderfront-container">
|
||||
<label for="preorderfront">Preorder Frontdesk (Semi-Readonly):</label>
|
||||
<select name="preorderfront" id="preorderfront" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderfront")) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderfront")) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorder-reporting-container">
|
||||
<label for="preorderaddressreporting">Preorder Address Reporting API User:</label>
|
||||
<select name="preorderaddressreporting" id="preorderaddressreporting" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderaddressreporting")) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderaddressreporting")) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
<small>z.B. Meridiam</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorderlogistics-container">
|
||||
<label for="preorderlogistics">Preorder Logistikpartner:</label>
|
||||
<select name="preorderlogistics" id="preorderlogistics" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderlogistics")) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderlogistics")) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password">Password:</label>
|
||||
<input type="password" id="password" name="password" class="form-control" value="" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password2">Repeat Password:</label>
|
||||
<input type="password" id="password2" name="password2" class="form-control" value="" />
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="form-group">
|
||||
<label for="twofactorrequired">2FA erzwingen:</label>
|
||||
<select name="twofactorrequired" id="twofactorrequired" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->twofactorrequired) ? "selected='selected'" : ""?>>No</option>
|
||||
<option value="true" <?=( (!isset($user) || !$user->id) || (isset($user) && $user->twofactorrequired)) ? "selected='selected'" : ""?>>Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<h4 class="card-title mb-3">Beschränkungen</h4>
|
||||
|
||||
<div class="form-group" id="preorder-network-container">
|
||||
<label for="preorder_networks">Preorder Netzgebiete:</label>
|
||||
<?php
|
||||
$pns = [];
|
||||
if($user->id) {
|
||||
$pns = json_decode((new WorkerFlag($user->id,"preorder_networks"))->value());
|
||||
if(!$pns) {
|
||||
$pns = [];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<select name="preorder_networks[]" id="preorder_networks" class="form-control" multiple="multiple">
|
||||
<?php foreach(NetworkModel::getAll() as $network): ?>
|
||||
<option value="<?=$network->id?>" <?=(in_array($network->id, $pns)) ? "selected='selected'" : ""?>><?=$network->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<small>Beschränkt Benutzer auf Netzgebiete. Überschreibt Netzgebiete der Firma. Wenn leer werden Netzgebiete der Firma angezeigt</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorderreadonly-container">
|
||||
<label for="preorderreadonly">Preorder Readonly:</label>
|
||||
<select name="preorderreadonly" id="preorderreadonly" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderreadonly")) ? "selected='selected'" : ""?>>Read/Write</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderreadonly")) ? "selected='selected'" : ""?>>Readonly</option>
|
||||
</select>
|
||||
</div>
|
||||
<input type="hidden" name="id" value="<?=$user->id?>"/>
|
||||
<div class="form-group">
|
||||
<label for="username">Username:</label>
|
||||
<input type="text" id="username" name="username" class="form-control"
|
||||
value="<?=$user->username?>"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name">Name:</label>
|
||||
<input type="text" id="name" name="name" class="form-control"
|
||||
value="<?=$user->name?>"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">Email:</label>
|
||||
<input type="text" id="email" name="email" class="form-control"
|
||||
value="<?=$user->email?>"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mobile">Handy Nr.:</label>
|
||||
<input type="text" id="mobile" placeholder="+436641234xxx" name="mobile"
|
||||
class="form-control" value="<?=$user->mobile?>"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="address_id">Firma/Person:</label>
|
||||
<select name="address_id" id="address_id" class="form-control">
|
||||
<option value=""></option>
|
||||
<?php foreach($addresses as $address): ?>
|
||||
<option value="<?=$address->id?>" <?=($address->id == $user->address_id || $address->id == $user->address_id) ? "selected='selected'" : ""?>><?=($address->company) ? $address->company : $address->getFullName()?><?=($address->customer_number) ? " (" . $address->customer_number . ")" : ""?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="admin">Admin:</label>
|
||||
<select name="admin" id="admin"
|
||||
class="form-control" <?=($user->id == 1) ? "disabled='disabled'" : ""?>>
|
||||
<option value="false" <?=(isset($user) && !$user->isAdmin()) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->isAdmin() || $user->id == 1) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="technician">Techniker:</label>
|
||||
<select name="technician" id="technician" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("technician")) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("technician")) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="employee"><?=TT_SYSOWNER_NAME_HTML?> Mitarbeiter:</label>
|
||||
<select name="employee" id="employee" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("employee")) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("employee")) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group <?=(!isset($user) || !$user->is("employee")) ? "hidden" : ""?>"
|
||||
id="employee-number-container">
|
||||
<label for="employee_number"><?=TT_SYSOWNER_NAME_HTML?> Mitarbeiternummer:</label>
|
||||
<input type="text" id="employee_number" name="employee_number" class="form-control"
|
||||
value="<?=(isset($user)) ? (new WorkerFlag($user->id, "employee_number"))->value() : ""?>"/>
|
||||
</div>
|
||||
<div class="form-group <?=(!isset($user) || !$user->is("employee")) ? "hidden" : ""?>"
|
||||
id="project-api-key-container">
|
||||
<label for="project_api_key">OpenProject API Key:</label>
|
||||
<input type="text" id="project_api_key" name="project_api_key" class="form-control"
|
||||
value="<?=(isset($user)) ? (new WorkerFlag($user->id, "project_api_key"))->value() : ""?>"/>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<h4 class="card-title mb-3">Modulberechtigungen</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Building]" id="can_building" value="1" <?=($user && $user->can("Building")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_building" class="form-check-label">Objekte & Anschlüsse (Gebäude)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Pipework]" id="can_pipework" value="1" <?=$user && $user->can("Pipework") ? "checked='checked'" : ""?> />
|
||||
<label for="can_pipework" class="form-check-label">Tiefbau</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Linework]" id="can_linework" value="1" <?=$user && $user->can("Linework") ? "checked='checked'" : ""?> />
|
||||
<label for="can_linework" class="form-check-label">Leitungsbau</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Patching]" id="can_patching" value="1" <?=$user && $user->can("Patching") ? "checked='checked'" : ""?> />
|
||||
<label for="can_patching" class="form-check-label">Patching</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Filestore]" id="can_filestore" value="1" <?=$user && $user->can("Filestore") ? "checked='checked'" : ""?> />
|
||||
<label for="can_filestore" class="form-check-label">Filestore (Netzbau)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Cpeprovisioning]" id="can_cpeprovisioning" value="1" <?=$user && $user->can("Cpeprovisioning") ? "checked='checked'" : ""?> />
|
||||
<label for="can_cpeprovisioning" class="form-check-label">CPE Provisioning</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Cpeshipping]" id="can_cpeshipping" value="1" <?=$user && $user->can("Cpeshipping") ? "checked='checked'" : ""?> />
|
||||
<label for="can_cpeshipping" class="form-check-label">CPE Versand</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Voipnumbering]" id="can_voipnumbering" value="1" <?=$user && $user->can("Voipnumbering") ? "checked='checked'" : ""?> />
|
||||
<label for="can_voipnumbering" class="form-check-label">VOIP Nummernverwaltung</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Preorder]" id="can_preorder" value="1" <?=$user && $user->can("Preorder") ? "checked='checked'" : ""?> />
|
||||
<label for="can_preorder" class="form-check-label">Vorbestellung</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Order]" id="can_order" value="1" <?=$user && $user->can("Order") ? "checked='checked'" : ""?> />
|
||||
<label for="can_order" class="form-check-label">Bestellung</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Billing]" id="can_billing" value="1" <?=$user && $user->can("Billing") ? "checked='checked'" : ""?> />
|
||||
<label for="can_billing" class="form-check-label">Verrechnung</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="card-title mb-3 mt-3">Lager</h4>
|
||||
<div class="form-group">
|
||||
<label for="password">Password:</label>
|
||||
<input type="password" id="password" name="password" class="form-control" value=""/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password2">Repeat Password:</label>
|
||||
<input type="password" id="password2" name="password2" class="form-control"
|
||||
value=""/>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[WarehouseAdmin]" id="can_warehouse_admin" value="1" <?=($user && $user->can("WarehouseAdmin")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_warehouse_admin" class="form-check-label">Lager-Admin</label>
|
||||
<hr/>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="twofactorrequired">2FA erzwingen:</label>
|
||||
<select name="twofactorrequired" id="twofactorrequired" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->twofactorrequired) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=((!isset($user) || !$user->id) || (isset($user) && $user->twofactorrequired)) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[WarehouseUser]" id="can_warehouse_user" value="1" <?=($user && $user->can("WarehouseUser")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_warehouse_user" class="form-check-label">Lager-User</label>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<h4 class="card-title mb-3">Preorder</h4>
|
||||
|
||||
<div class="form-group" id="preorderfront-container">
|
||||
<label for="preorderfront">Preorder Frontdesk (Semi-Readonly):</label>
|
||||
<select name="preorderfront" id="preorderfront" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderfront")) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderfront")) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorder-reporting-container">
|
||||
<label for="preorderaddressreporting">Preorder Address Reporting API User:</label>
|
||||
<select name="preorderaddressreporting" id="preorderaddressreporting"
|
||||
class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderaddressreporting")) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderaddressreporting")) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
<small>z.B. Meridiam</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorderlogistics-container">
|
||||
<label for="preorderlogistics">Preorder Logistikpartner:</label>
|
||||
<select name="preorderlogistics" id="preorderlogistics" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderlogistics")) ? "selected='selected'" : ""?>>
|
||||
No
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderlogistics")) ? "selected='selected'" : ""?>>
|
||||
Yes
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorder-network-container">
|
||||
<label for="preorder_networks">Preorder Netzgebiete:</label>
|
||||
<?php
|
||||
$pns = [];
|
||||
if($user->id) {
|
||||
$pns = json_decode((new WorkerFlag($user->id, "preorder_networks"))->value());
|
||||
if(!$pns) {
|
||||
$pns = [];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<select name="preorder_networks[]" id="preorder_networks" class="form-control"
|
||||
multiple="multiple">
|
||||
<?php foreach(NetworkModel::getAll() as $network): ?>
|
||||
<option value="<?=$network->id?>" <?=(in_array($network->id, $pns)) ? "selected='selected'" : ""?>><?=$network->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<small>Beschränkt Benutzer auf Netzgebiete. Überschreibt Netzgebiete der Firma. Wenn
|
||||
leer werden Netzgebiete der Firma angezeigt</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="preorderreadonly-container">
|
||||
<label for="preorderreadonly">Preorder Readonly:</label>
|
||||
<select name="preorderreadonly" id="preorderreadonly" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderreadonly")) ? "selected='selected'" : ""?>>
|
||||
Read/Write
|
||||
</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderreadonly")) ? "selected='selected'" : ""?>>
|
||||
Readonly
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<h4 class="mt-2">Preorder Module</h4>
|
||||
<div class="row mt-3">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Preorderpricing]"
|
||||
id="can_preorderpricing"
|
||||
value="1" <?=($user && $user->can("Preorderpricing")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_preorderpricing" class="form-check-label">Preorder
|
||||
Bepreisung</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input"
|
||||
name="can[PreorderpricingReadonly]" id="can_preorderpricingreadonly"
|
||||
value="1" <?=$user && $user->can("PreorderpricingReadonly") ? "checked='checked'" : ""?> />
|
||||
<label for="can_preorderpricingreadonly" class="form-check-label">Preorder
|
||||
Bepreisung Readonly</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Preorderbilling]"
|
||||
id="can_preorderbilling"
|
||||
value="1" <?=($user && $user->can("Preorderbilling")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_preorderbilling" class="form-check-label">Preorder
|
||||
Verrechnung</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input"
|
||||
name="can[PreorderbillingReadonly]" id="can_preorderbillingreadonly"
|
||||
value="1" <?=$user && $user->can("PreorderbillingReadonly") ? "checked='checked'" : ""?> />
|
||||
<label for="can_preorderbillingreadonly" class="form-check-label">Preorder
|
||||
Verrechnung Readonly</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<h4 class="card-title mb-3">Modulberechtigungen</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Building]"
|
||||
id="can_building"
|
||||
value="1" <?=($user && $user->can("Building")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_building" class="form-check-label">Objekte & Anschlüsse
|
||||
(Gebäude)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Pipework]"
|
||||
id="can_pipework"
|
||||
value="1" <?=$user && $user->can("Pipework") ? "checked='checked'" : ""?> />
|
||||
<label for="can_pipework" class="form-check-label">Tiefbau</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Linework]"
|
||||
id="can_linework"
|
||||
value="1" <?=$user && $user->can("Linework") ? "checked='checked'" : ""?> />
|
||||
<label for="can_linework" class="form-check-label">Leitungsbau</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Patching]"
|
||||
id="can_patching"
|
||||
value="1" <?=$user && $user->can("Patching") ? "checked='checked'" : ""?> />
|
||||
<label for="can_patching" class="form-check-label">Patching</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Filestore]"
|
||||
id="can_filestore"
|
||||
value="1" <?=$user && $user->can("Filestore") ? "checked='checked'" : ""?> />
|
||||
<label for="can_filestore" class="form-check-label">Filestore
|
||||
(Netzbau)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Cpeprovisioning]"
|
||||
id="can_cpeprovisioning"
|
||||
value="1" <?=$user && $user->can("Cpeprovisioning") ? "checked='checked'" : ""?> />
|
||||
<label for="can_cpeprovisioning" class="form-check-label">CPE
|
||||
Provisioning</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Cpeshipping]"
|
||||
id="can_cpeshipping"
|
||||
value="1" <?=$user && $user->can("Cpeshipping") ? "checked='checked'" : ""?> />
|
||||
<label for="can_cpeshipping" class="form-check-label">CPE Versand</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Voipnumbering]"
|
||||
id="can_voipnumbering"
|
||||
value="1" <?=$user && $user->can("Voipnumbering") ? "checked='checked'" : ""?> />
|
||||
<label for="can_voipnumbering" class="form-check-label">VOIP
|
||||
Nummernverwaltung</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Preorder]"
|
||||
id="can_preorder"
|
||||
value="1" <?=$user && $user->can("Preorder") ? "checked='checked'" : ""?> />
|
||||
<label for="can_preorder" class="form-check-label">Vorbestellung</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Order]"
|
||||
id="can_order"
|
||||
value="1" <?=$user && $user->can("Order") ? "checked='checked'" : ""?> />
|
||||
<label for="can_order" class="form-check-label">Bestellung</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Billing]"
|
||||
id="can_billing"
|
||||
value="1" <?=$user && $user->can("Billing") ? "checked='checked'" : ""?> />
|
||||
<label for="can_billing" class="form-check-label">Verrechnung</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="card-title mb-3 mt-3">Lager</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[WarehouseAdmin]"
|
||||
id="can_warehouse_admin"
|
||||
value="1" <?=($user && $user->can("WarehouseAdmin")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_warehouse_admin"
|
||||
class="form-check-label">Lager-Admin</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[WarehouseUser]"
|
||||
id="can_warehouse_user"
|
||||
value="1" <?=($user && $user->can("WarehouseUser")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_warehouse_user" class="form-check-label">Lager-User</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[WarehouseEShop]"
|
||||
id="can_warehouse_e_shop"
|
||||
value="1" <?=($user && $user->can("WarehouseEShop")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_warehouse_e_shop" class="form-check-label">Energie
|
||||
Steiermark Shop</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="card-title mb-3 mt-3">Zusatzberechtigungen</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Fibu]"
|
||||
id="can_fibu"
|
||||
value="1" <?=($user && $user->can("Fibu")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_fibu" class="form-check-label">Buchhaltung</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Statistics]"
|
||||
id="can_statistics"
|
||||
value="1" <?=($user && $user->can("Statistics")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_statistics" class="form-check-label">Statistiken
|
||||
anzeigen</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="submit" name="submit" value="Speichern" class="btn btn-primary"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[WarehouseEShop]" id="can_warehouse_e_shop" value="1" <?=($user && $user->can("WarehouseEShop")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_warehouse_e_shop" class="form-check-label">Energie Steiermark Shop</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="card-title mb-3 mt-3">Zusatzberechtigungen</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Fibu]" id="can_fibu" value="1" <?=($user && $user->can("Fibu")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_fibu" class="form-check-label">Buchhaltung</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" name="can[Statistics]" id="can_statistics" value="1" <?=($user && $user->can("Statistics")) ? "checked='checked'" : ""?> />
|
||||
<label for="can_statistics" class="form-check-label">Statistiken anzeigen</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="form-group">
|
||||
<input type="submit" name="submit" value="Speichern" class="btn btn-primary" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($user->id): ?>
|
||||
</form>
|
||||
|
||||
<?php if($user->id): ?>
|
||||
<div class="row">
|
||||
<div class="col-lg">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">API Key</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" value="<?=$user->apikey?>" disabled="disabled" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<form method="post" action="<?=self::getUrl("User", "generateApikey")?>">
|
||||
<input type="hidden" name="id" value="<?=$user->id?>" />
|
||||
<?php if($user->apikey): ?>
|
||||
<button type="submit" class="btn btn-outline-primary" onclick="if(!confirm('Achtung: Dadurch wird der bisherige API Key ungültig. Wirklich neuen API Key generieren?')) return false;">Neuen API Key generieren</button>
|
||||
<?php else: ?>
|
||||
<button type="submit" class="btn btn-outline-primary">API Key generieren</button>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">API Key</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" value="<?=$user->apikey?>" disabled="disabled"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<form method="post" action="<?=self::getUrl("User", "generateApikey")?>">
|
||||
<input type="hidden" name="id" value="<?=$user->id?>"/>
|
||||
<?php if($user->apikey): ?>
|
||||
<button type="submit" class="btn btn-outline-primary"
|
||||
onclick="if(!confirm('Achtung: Dadurch wird der bisherige API Key ungültig. Wirklich neuen API Key generieren?')) return false;">
|
||||
Neuen API Key generieren
|
||||
</button>
|
||||
<?php else: ?>
|
||||
<button type="submit" class="btn btn-outline-primary">API Key generieren</button>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
$("#address_id").select2({
|
||||
allowClear: true,
|
||||
placeholder: ""
|
||||
});
|
||||
$("#preorder_networks").select2({
|
||||
allowClear: true,
|
||||
placeholder: "",
|
||||
closeOnSelect: false
|
||||
});
|
||||
|
||||
<?php if(!$user || (!$user->is("preorderfront") && !$user->is("preorderaddressreporting")) ): ?>
|
||||
//$("#preorder-network-container").hide();
|
||||
<?php endif; ?>
|
||||
<?php if($user && ($user->is("preorderfront")) ): ?>
|
||||
//$("#preorder-reporting-container").hide();
|
||||
<?php endif; ?>
|
||||
<?php if($user && ($user->is("preorderaddressreporting")) ): ?>
|
||||
//$("#preorderfront-container").hide();
|
||||
<?php endif; ?>
|
||||
|
||||
$("select[name=preorderfront]").change(function() {
|
||||
if($("select[name=preorderfront]").val() == "true") {
|
||||
$("#preorder-reporting-container").hide(500);
|
||||
} else {
|
||||
$("#preorder-reporting-container").show(500);
|
||||
}
|
||||
});
|
||||
|
||||
// preorder-reporting-container
|
||||
$("select[name=preorderaddressreporting]").change(function() {
|
||||
if($("select[name=preorderaddressreporting]").val() == "true") {
|
||||
$("#preorderfront-container").hide(400);
|
||||
} else {
|
||||
$("#preorderfront-container").show(400);
|
||||
}
|
||||
});
|
||||
|
||||
$("#employee").change(function() {
|
||||
if($("#employee").val() == "true") {
|
||||
$("#employee-number-container").show(400);
|
||||
} else {
|
||||
$("#employee-number-container").hide(400);
|
||||
}
|
||||
});
|
||||
});
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
|
||||
$(document).ready(function () {
|
||||
$("#address_id").select2({
|
||||
allowClear: true,
|
||||
placeholder: ""
|
||||
});
|
||||
$("#preorder_networks").select2({
|
||||
allowClear: true,
|
||||
placeholder: "",
|
||||
closeOnSelect: false
|
||||
});
|
||||
|
||||
<?php if(!$user || (!$user->is("preorderfront") && !$user->is("preorderaddressreporting")) ): ?>
|
||||
//$("#preorder-network-container").hide();
|
||||
<?php endif; ?>
|
||||
<?php if($user && ($user->is("preorderfront")) ): ?>
|
||||
//$("#preorder-reporting-container").hide();
|
||||
<?php endif; ?>
|
||||
<?php if($user && ($user->is("preorderaddressreporting")) ): ?>
|
||||
//$("#preorderfront-container").hide();
|
||||
<?php endif; ?>
|
||||
|
||||
$("select[name=preorderfront]").change(function () {
|
||||
if ($("select[name=preorderfront]").val() == "true") {
|
||||
$("#preorder-reporting-container").hide(500);
|
||||
} else {
|
||||
$("#preorder-reporting-container").show(500);
|
||||
}
|
||||
});
|
||||
|
||||
// preorder-reporting-container
|
||||
$("select[name=preorderaddressreporting]").change(function () {
|
||||
if ($("select[name=preorderaddressreporting]").val() == "true") {
|
||||
$("#preorderfront-container").hide(400);
|
||||
} else {
|
||||
$("#preorderfront-container").show(400);
|
||||
}
|
||||
});
|
||||
|
||||
$("#employee").change(function () {
|
||||
if ($("#employee").val() == "true") {
|
||||
$("#employee-number-container").show(400);
|
||||
} else {
|
||||
$("#employee-number-container").hide(400);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>
|
||||
@@ -59,40 +59,40 @@
|
||||
</a>
|
||||
<ul class="submenu">
|
||||
<?php if($me->is(["Admin"])): ?>
|
||||
<li class="has-sub-submenu font-weight-bold"><a>Betriebsstammdaten</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Address")?>"><i class="fad fa-fw fa-user text-info"></i> Personen & Firmen</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Product")?>"><i class="far fa-fw fa-rectangle-list text-info"></i> Produkte</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Productgroup")?>"><i class="far fa-fw fa-list-tree text-info"></i> Produktgruppen</a></li>
|
||||
<li class="has-sub-submenu font-weight-bold"><a>Betriebsstammdaten</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Address")?>"><i class="fad fa-fw fa-user text-info"></i> Personen & Firmen</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Product")?>"><i class="far fa-fw fa-rectangle-list text-info"></i> Produkte</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Productgroup")?>"><i class="far fa-fw fa-list-tree text-info"></i> Produktgruppen</a></li>
|
||||
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Network")?>"><i class="fad fa-fw fa-network-wired text-info"></i> Netzgebiete</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Network")?>"><i class="fad fa-fw fa-network-wired text-info"></i> Netzgebiete</a></li>
|
||||
|
||||
<li class="" ><a href="<?=self::getUrl("Pop")?>"><i class="fad fa-fw fa-house text-info"></i> Pops</a></li>
|
||||
<li class="" ><a href="<?=self::getUrl("Pop")?>"><i class="fad fa-fw fa-house text-info"></i> Pops</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if($me->is(["Admin"]) || ($me->is("netowner","lineplanner","pipeplanner","pipeworker","lineworker","salespartner"))): ?>
|
||||
<li class=""><a href="<?=self::getUrl("Device")?>"><i class="fad fa-fw fa-router text-info "></i> Devices</a></li>
|
||||
<li class=""><a href="<?=self::getUrl("Device")?>"><i class="fad fa-fw fa-router text-info "></i> Devices</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if($me->is(["Admin"])): ?>
|
||||
<li class="has-sub-submenu"><a href="<?=self::getUrl("User")?>"><i class="fad fa-fw fa-users text-info"></i> Benutzer</a></li>
|
||||
<li class="has-sub-submenu font-weight-bold mt-1 mobile-hide"><a>Grundstammdaten</a></li>
|
||||
<li class="has-sub-submenu"><a href="<?=self::getUrl("User")?>"><i class="fad fa-fw fa-users text-info"></i> Benutzer</a></li>
|
||||
<li class="has-sub-submenu font-weight-bold mt-1 mobile-hide"><a>Grundstammdaten</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if($me->is(["Admin"]) || ($me->is("netowner") && $me->hasGwrNetworks())): ?>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("AddressDB")?>"><i class="fas fa-fw fa-city text-info "></i> GWR / AddressDB</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("AddressDB")?>"><i class="fas fa-fw fa-city text-info "></i> GWR / AddressDB</a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($me->is(["Admin"])): ?>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("OpenAccessId")?>"><i class="fad fa-fw fa-link-simple text-info"></i> Open Access IDs</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Producttech")?>"><i class="fad fa-fw fa-microchip text-info"></i> Technologien</a></li>
|
||||
<li class=""><a href="<?=self::getUrl("Mailtemplate")?>"><i class="fad fa-fw fa-mail-bulk text-info"></i> Emailtemplates</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("HistoricTicket")?>"><i class="fad fa-fw fa-headset text-info"></i> Historische Tickets</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("OpenAccessId")?>"><i class="fad fa-fw fa-link-simple text-info"></i> Open Access IDs</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("Producttech")?>"><i class="fad fa-fw fa-microchip text-info"></i> Technologien</a></li>
|
||||
<li class=""><a href="<?=self::getUrl("Mailtemplate")?>"><i class="fad fa-fw fa-mail-bulk text-info"></i> Emailtemplates</a></li>
|
||||
<li class="mobile-hide"><a href="<?=self::getUrl("HistoricTicket")?>"><i class="fad fa-fw fa-headset text-info"></i> Historische Tickets</a></li>
|
||||
<?php if($me->can("Fibu")): ?><li class="mobile-hide"><a href="<?=self::getUrl("Vatgroup")?>"><i class="fas fa-fw fa-circle-dollar-to-slot text-info"></i> Steuersätze</a></li><?php endif; ?>
|
||||
<!--<li><a href="<?=self::getUrl("Contractconfig")?>"><i class="fad fa-gear text-info"></i> ContractConfig</a></li>-->
|
||||
<!--<li><a href="<?=self::getUrl("Contractconfig")?>"><i class="fad fa-gear text-info"></i> ContractConfig</a></li>-->
|
||||
<?php endif; ?>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($me->is(["Admin"])): ?>
|
||||
<?php if($me->is(["Admin", "netowner", "salespartner"]) && ($me->is("employee") || $me->can(["Fibu", "Billing", "Preorderpricing", "Preorderbilling"]))): ?>
|
||||
<li class="has-submenu mobile-hide">
|
||||
<a href="#">
|
||||
<i class="fas fa-fw fa-money-from-bracket"></i> Backoffice <div class="arrow-down"></div>
|
||||
@@ -102,11 +102,21 @@
|
||||
<?php if ($me->can('Fibu')): ?><li><a href="<?= self::getUrl("Calendar") ?>"><i class="far fa-fw fa-calendar-circle-user text-info"></i> Kalender Verwaltung</a></li><?php endif; ?>
|
||||
<li><a href="<?=self::getUrl("Contract")?>"><i class="far fa-fw fa-id-card text-info"></i> Contracts</a></li>
|
||||
<?php if($me->is(["Admin"]) && $me->can("Billing")): ?><li class="has-sub-submenu"><a href="<?=self::getUrl("Contractqueue")?>"><i class="far fa-fw fa-file-import text-info"></i> Contract Queue</a></li><?php endif; ?>
|
||||
<li class="has-sub-submenu"><a href="<?=self::getUrl("Contract", "AdvancedSearch")?>"><i class="far fa-fw fa-question-circle text-info"></i> Erweiterte Suche</a></li>
|
||||
<?php if($me->is(["Admin"]) && $me->can("Billing")): ?><li><a href="<?=self::getUrl("Billing")?>"><i class="far fa-fw fa-cash-register text-info"></i> Verrechnung</a></li><?php endif; ?>
|
||||
<?php if($me->is(["Admin"]) && $me->can("Billing")): ?><li><a href="<?=self::getUrl("Invoice")?>"><i class="far fa-fw fa-file-invoice-dollar text-info"></i> Rechnungen</a></li><?php endif; ?>
|
||||
<?php if($me->is(["Admin"]) && $me->can("Billing")): ?><li><a href="<?=self::getUrl("HistoricBill")?>"><i class="far fa-fw fa-file-invoice-dollar text-info"></i> Historische Rechnungen</a></li><?php endif; ?>
|
||||
<?php if($me->is(["Admin"])): ?><li><a href="<?=self::getUrl("MailtemplateDispatch")?>"><i class="far fa-fw fa-envelope text-info"></i> Emailaussendung</a></li><?php endif; ?>
|
||||
<!--li class="has-sub-submenu"><a href="<?=self::getUrl("Contract", "AdvancedSearch")?>"><i class="far fa-fw fa-question-circle text-info"></i> Erweiterte Suche</a></li-->
|
||||
<?php if($me->is(["Admin","netowner","salespartner"]) && $me->can("Preorderpricing")): ?>
|
||||
<li class="border-top"><a href="<?=self::getUrl("PreorderProduct")?>"><i class="far fa-fw fa-euro-sign text-info"></i> Vorbestellkampagnen Bepreisung</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if($me->is(["Admin","netowner","salespartner"]) && $me->can("Preorderbilling")): ?>
|
||||
<li><a href="<?=self::getUrl("PreorderBilling")?>"><i class="far fa-fw fa-cash-register text-info"></i> Vorbestellkampagnen Verrechnung</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if($me->is(["Admin","netowner","salespartner"]) && in_array($me->address_id, [1,209,5908,2187])): ?>
|
||||
<li><a href="<?=self::getUrl("ConstructionConsentProject")?>"><i class="far fa-fw fa-clipboard-question text-info"></i> Zustimmungserklärungen</a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($me->is(["Admin"])): ?><li class="border-top"><a href="<?=self::getUrl("MailtemplateDispatch")?>"><i class="far fa-fw fa-envelope text-info"></i> Emailaussendungen</a></li><?php endif; ?>
|
||||
</ul>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
@@ -196,14 +206,13 @@
|
||||
</a>
|
||||
<ul class="submenu">
|
||||
<?php if($me->is(["Admin","netowner","salespartner"]) || $me->can("Preorder")): ?>
|
||||
<li><a href="<?=self::getUrl("Preordercampaign")?>"><i class="far fa-fw fa-calendar-lines text-info"></i> Vorbestellung</a></li>
|
||||
<li><a href="<?=self::getUrl("Preordercampaign")?>"><i class="far fa-fw fa-calendar-lines text-info"></i> Vorbestellungen / Kampagnen</a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($me->is(["Admin","salespartner"]) && $me->can("Order")): ?>
|
||||
<li><a href="<?=self::getUrl("Order")?>"><i class="far fa-fw fa-file-signature text-info"></i> Bestellungen</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if($me->is(["Admin","netowner","salespartner"]) && in_array($me->address_id, [1,209,5908,2187])): ?>
|
||||
<li><a href="<?=self::getUrl("ConstructionConsentProject")?>"><i class="far fa-fw fa-clipboard-question text-info"></i> Zustimmungserklärungen</a></li>
|
||||
<li class="border-top"><a href="<?=self::getUrl("Order")?>"><i class="far fa-fw fa-file-signature text-info"></i> Bestellungen</a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -67,7 +67,7 @@ class PreorderProductController extends mfBaseController {
|
||||
foreach($r->netoperators as $netoperator_id => $product_data) {
|
||||
$netoperator = new Address($netoperator_id);
|
||||
if(!$netoperator->id) {
|
||||
$this->layout()->setFlash("Betzbetreiber nicht gefunden", "error");
|
||||
$this->layout()->setFlash("Netzbetreiber nicht gefunden", "error");
|
||||
$this->layout()->redirect("PreorderProduct");
|
||||
}
|
||||
foreach($product_data as $product_id => $price_data) {
|
||||
@@ -75,7 +75,7 @@ class PreorderProductController extends mfBaseController {
|
||||
$product = new PreorderProduct($product_id);
|
||||
if(!$product->id) {
|
||||
$this->layout()->setFlash("Produkt $product_id nicht gefunden", "error");
|
||||
$this->layout()->redirect("PreorderProduct");
|
||||
$this->layout()->redirect("PreorderProduct","",[], "product-".$netoperator_id);
|
||||
}
|
||||
|
||||
// create new PreorderProductPrice
|
||||
@@ -97,7 +97,7 @@ class PreorderProductController extends mfBaseController {
|
||||
|
||||
if(!$price_data["start_date"]) {
|
||||
$this->layout()->setFlash("Von-datum fehlt bei Produkt '".$product->name."' für '".$netoperator->getCompanyOrName()."'", "error");
|
||||
$this->redirect("PreorderProduct");
|
||||
$this->redirect("PreorderProduct","",[], "product-".$netoperator_id."-".$product_id);
|
||||
} else {
|
||||
try {
|
||||
$start_date = new DateTime("@" . $this->dateToTimestamp(trim($price_data["start_date"])));
|
||||
@@ -105,7 +105,7 @@ class PreorderProductController extends mfBaseController {
|
||||
$price->start_date = $start_date->format("Y-m-d");
|
||||
} catch(Exception $e) {
|
||||
$this->layout()->setFlash("Fehler im Von-datum bei Produkt '".$product->name."' für '".$netoperator->getCompanyOrName()."'", "error");
|
||||
$this->redirect("PreorderProduct");
|
||||
$this->redirect("PreorderProduct","",[], "product-".$netoperator_id."-".$product_id);
|
||||
}
|
||||
}
|
||||
if(trim($price_data["end_date"])) {
|
||||
@@ -115,7 +115,7 @@ class PreorderProductController extends mfBaseController {
|
||||
$price->end_date = $end_date->format("Y-m-d");
|
||||
} catch(Exception $e) {
|
||||
$this->layout()->setFlash("Fehler im Bis-Datum bei Produkt '".$product->name."' für '".$netoperator->getCompanyOrName()."'", "error");
|
||||
$this->redirect("PreorderProduct");
|
||||
$this->redirect("PreorderProduct","",[], "product-".$netoperator_id."-".$product_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ class PreorderProductController extends mfBaseController {
|
||||
$campaign = new Preordercampaign($campaign_id);
|
||||
if(!$campaign->id) {
|
||||
$this->layout()->setFlash("Ungültige Kampagne bei Produkt '".$product->name."' für '".$netoperator->getCompanyOrName()."'", "error");
|
||||
$this->layout()->redirect("PreorderProduct");
|
||||
$this->layout()->redirect("PreorderProduct","",[], "product-".$netoperator_id."-".$product_id);
|
||||
}
|
||||
$price_campaign = PreorderProductPriceCampaign::create([
|
||||
"preorderproductprice_id" => $price->id,
|
||||
@@ -160,7 +160,7 @@ class PreorderProductController extends mfBaseController {
|
||||
}
|
||||
|
||||
$this->layout()->setFlash("Neue Preise erflgreich gespeichert", "success");
|
||||
$this->redirect("PreorderProduct");
|
||||
$this->redirect("PreorderProduct","",[], "product-".$netoperator_id."-".$product_id);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -242,6 +242,10 @@ class UserController extends mfBaseController
|
||||
$user->permissions->canCpeshipping = "false";
|
||||
$user->permissions->canVoipnumbering = "false";
|
||||
$user->permissions->canPreorder = "false";
|
||||
$user->permissions->canPreorderpricing = "false";
|
||||
$user->permissions->canPreorderpricingReadonly = "false";
|
||||
$user->permissions->canPreorderbilling = "false";
|
||||
$user->permissions->canPreorderbillingReadonly = "false";
|
||||
$user->permissions->canOrder = "false";
|
||||
$user->permissions->canBilling = "false";
|
||||
$user->permissions->canFibu = "false";
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Phinx\Migration\AbstractMigration;
|
||||
|
||||
final class AddPreorderbillingPermissions extends AbstractMigration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
$table = $this->table("WorkerPermission");
|
||||
$table->addColumn("canPreorderpricing", "enum", ["values" => 'false,true', "default" => "false", "after" => "canPreorder"]);
|
||||
$table->addColumn("canPreorderpricingReadonly", "enum", ["values" => 'false,true', "default" => "false", "after" => "canPreorderpricing"]);
|
||||
$table->addColumn("canPreorderbilling", "enum", ["values" => 'false,true', "default" => "false", "after" => "canPreorderpricingReadonly"]);
|
||||
$table->addColumn("canPreorderbillingReadonly", "enum", ["values" => 'false,true', "default" => "false", "after" => "canPreorderbilling"]);
|
||||
$table->update();
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
$this->table("WorkerPermission")->removeColumn("canPreorderpricing")->update();
|
||||
$this->table("WorkerPermission")->removeColumn("canPreorderpricingReadonly")->update();
|
||||
$this->table("WorkerPermission")->removeColumn("canPreorderbilling")->update();
|
||||
$this->table("WorkerPermission")->removeColumn("canPreorderbillingReadonly")->update();
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,6 +203,10 @@ h1, h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.submenu .border-top {
|
||||
border-top: 1px solid #eee !important;
|
||||
}
|
||||
|
||||
.sub-submenu {
|
||||
padding-left: 12px !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user