Added ADBWohneinheit edit, productgroup matchcodeorigin

This commit is contained in:
Frank Schubert
2024-01-18 22:02:43 +01:00
parent e19442cd43
commit fc3c3de604
15 changed files with 384 additions and 20 deletions

View File

@@ -1 +1,174 @@
<?php
if($unit->id && !array_key_exists($unit->hausnummer->netzgebiet_id, $my_adb_networks)) {
$this->setFlash("Keine Berechtigung", "error");
mfBaseController::redirect("AddressDB");
}
?>
<?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("AddressDB")?>">GWR / AddressDB</a></li>
<li class="breadcrumb-item"><a href="<?=self::getUrl("AddressDB", "view", ["id" => $unit->hausnummer_id])?>"><?=$unit->hausnummer->getAddress()?></a></li>
<li class="breadcrumb-item active"><?=($unit->id) ? "bearbeiten" : "Neu" ?></li>
</ol>
</div>
<h4 class="page-title">Wohneinheit</h4>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-lg-12">
<div class="card bg-light">
<div class="card-body">
<h4 class="header-title mb-2"><?=($unit->id) ? "Wohneinheit bearbeiten" : "Neue Adresse"?></h4>
<form class="form-horizontal" method="post" action="<?=self::getUrl("ADBWohneinheit", "save")?>">
<input type="hidden" name="id" value="<?=$unit->id?>" />
<div class="card">
<div class="card-body">
<div class="form-group row">
<label class="col-lg-2 col-form-label">Addresse </label>
<div class="col-lg-10">
<input type="text" class="form-control" value="<?=$unit->hausnummer->getAddress()?><?=($unit->hausnummer->rimo_id) ? " - ".$unit->hausnummer->rimo_id : ""?>" disabled="disabled" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="oaid">OAID</label>
<div class="col-lg-10">
<input type="text" class="form-control" value="<?=$unit->oaid?>" disabled="disabled" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="extref">Rimo External ID</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="extref" id="extrefaid" value="<?=$unit->extref?>" />
</div>
</div>
<hr />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="zusatz">Zusatzbezeichnung</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="zusatz" id="zusatz" value="<?=$unit->zusatz?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="block">Block</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="block" id="block" value="<?=$unit->block?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="stiege">Stiege</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="stiege" id="stiege" value="<?=$unit->stiege?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="stock">Stock</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="stock" id="stock" value="<?=$unit->stock?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="tuer">Tür</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="tuer" id="tuer" value="<?=$unit->tuer?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="bezeichner">Bezeichner</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="bezeichner" id="bezeichner" value="<?=$unit->bezeichner?>" />
</div>
</div>
<hr />
<div class="form-group row">
<label class="col-lg-2 col-form-label">Patchposition</label>
<div class="col-lg-10">
<input type="text" class="form-control" value="<?=$unit->getPatchEqString?>" disabled="disabled" />
</div>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2"></label>
<div class="col-lg-10">
<button type="submit" class="btn btn-primary">Speichern</button>
</div>
</div>
<div class="row mt-2">
<div class="col">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-striped">
<tr>
<td colspan="2"><h4>FTU</h4></td>
</tr><tr>
<th>FTU Name:</th>
<td class="text-monospace"><?=$unit->ftu_data["name"]?>
</tr><tr>
<th>FTU External ID</th>
<td class="text-monospace"><?=$unit->ftu_data["id"]?>
</tr><tr>
<td colspan="2"><h4>Workorder</h4></td>
</tr><tr>
<th>Name</th>
<td class="text-monospace"><?=$unit->rimo_workorder->rimo_name?></td>
</tr><tr>
<th>External ID</th>
<td class="text-monospace"><?=$unit->rimo_workorder->rimo_id?></td>
</tr><tr>
<th>Status</th>
<td><?=$unit->rimo_workorder->rimo_status?></td>
</tr><tr>
<th>Erstellt</th>
<td class="text-monospace"><?=(is_object($unit->rimo_workorder)) ? date("d.m.Y H:i:s", $unit->rimo_workorder->create) : ""?></td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>

View File

@@ -90,6 +90,17 @@
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="rimo_id">Rimo External ID</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("rimo_id", $save_data)): ?>
<input type="text" class="form-control" name="rimo_id" id="rimo_id" value="<?=$save_data['rimo_id']?>" />
<?php else: ?>
<input type="text" class="form-control" name="rimo_id" id="rimo_id" value="<?=$address->rimo_id?>" />
<?php endif; ?>
</div>
</div>
<hr />
<div class="form-group row">

View File

@@ -47,6 +47,9 @@
</tr><tr>
<th>Extref</th>
<td><?=$address->extref?></td>
</tr><tr>
<th>Rimo External ID</th>
<td><?=$address->rimo_id?></td>
</tr><tr>
<th>Netzgebiet</th>
<td><?=$address->netzgebiet->name?></td>
@@ -113,6 +116,7 @@
<?php if(is_array($address->wohneinheiten) && count($address->wohneinheiten)): ?>
<table class="table table-sm table-striped table-hover">
<tr>
<th></th>
<th>ID</th>
<th>OAID</th>
<th>Status</th>
@@ -121,6 +125,7 @@
</tr>
<?php foreach($address->wohneinheiten as $unit): ?>
<tr>
<td><a href="<?=self::getUrl("ADBWohneinheit", "edit", ["id" => $unit->id])?>"><i class="fas fa-edit"></i></a></td>
<td><?=$unit->id?></td>
<td class="text-pink"><?=$unit->oaid?></td>
<td class="text-monospace"><?=$unit->status->code?> - <?=$unit->status->name?></td>

View File

@@ -312,6 +312,9 @@
<tr>
<th>Building Name:</th>
<td class="text-monospace"><?=$preorder->adb_hausnummer->extref?>
</tr><tr>
<th>Building External ID:</th>
<td class="text-monospace"><?=$preorder->adb_hausnummer->rimo_id?>
</tr><tr>
<th>Home External ID:</th>
<td class="text-monospace"><?=$preorder->adb_wohneinheit->extref?>

View File

@@ -7,7 +7,7 @@
<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("Network")?>">Produktgruppen</a></li>
<li class="breadcrumb-item"><a href="<?=self::getUrl("Productgroup")?>">Produktgruppen</a></li>
<li class="breadcrumb-item active"><?=($group->id) ? "bearbeiten" : "Neu" ?></li>
</ol>
</div>
@@ -48,6 +48,20 @@
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="matchcodeorigin">Contract Matchcode Herkunft</label>
<div class="col-lg-10">
<select class="form-control" name="matchcodeorigin">
<option></option>
<option value="terminationaddress" <?=($group->matchcodeorigin == "terminationaddress" ? "selected='selected'" : "")?>>Anschlussadresse</option>
<option value="address" <?=($group->matchcodeorigin == "address" ? "selected='selected'" : "")?>>Kundenadresse</option>
<option value="voicenumber" <?=($group->matchcodeorigin == "voicenumber" ? "selected='selected'" : "")?>>Voip Nummer</option>
<option value="domain" <?=($group->matchcodeorigin == "domain" ? "selected='selected'" : "")?>>Domain</option>
</select>
</div>
</div>
</div>
</div>

View File

@@ -2,4 +2,104 @@
class ADBWohneinheitController extends mfBaseController {
protected function init() {
$this->needlogin=true;
$me = new User();
$me->loadMe();
$this->me = $me;
$this->layout()->set("me",$me);
if(!$me->is(["Admin", "netowner"]) && !$me->can("Preorder")) {
$this->redirect("Dashboard");
}
}
protected function addAction() {
$this->layout()->setTemplate("ADBWohneinheit/Form");
if($this->me->is("Admin")) {
$my_networks = NetworkModel::getAll();
} else {
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
}
$netzgebiet_ids = [];
$my_adb_networks = [];
foreach($my_networks as $network) {
if($network->adb_netzgebiet_id && !in_array($network->adb_netzgebiet_id, $netzgebiet_ids)) {
$netzgebiet_ids[] = $network->adb_netzgebiet_id;
$my_adb_networks[$network->adb_netzgebiet_id] = new ADBNetzgebiet($network->adb_netzgebiet_id);
}
}
$this->layout()->set("my_adb_networks", $my_adb_networks);
}
protected function editAction() {
$id = $this->request->id;
if(!is_numeric($id) || $id < 1) {
$this->layout()->setFlash("Adresse nicht gefunden", "error");
$this->redirect("AddressDB");
}
$unit = new ADBWohneinheit($id);
if(!$unit->id) {
$this->layout()->setFlash("Wohneinheit nicht gefunden", "error");
$this->redirect("AddressDB");
}
/*if(!in_array($hausnummer->netzgebiet_id, $my_adb_networks)) {
$this->layout()->setFlash("Adresse nicht gefunden", "error");
$this->redirect("AddressDB");
}*/
$this->layout()->set("unit", $unit);
return $this->addAction();
}
protected function saveAction() {
$r = $this->request;
$id = $r->id;
//var_dump($r->get());exit;
$unit_data = [];
if(is_numeric($id) && $id > 0) {
$mode = "edit";
$unit = new ADBWohneinheit($id);
if(!$unit->id) {
$this->layout()->setFlash("Wohneinheit nicht gefunden", "error");
$this->redirect("AddressDB");
}
} else {
$mode = "add";
}
$unit_data["oaid"] = ($r->oaid) ? trim($r->oaid) : null;
$unit_data["extref"] = ($r->extref) ? trim($r->extref) : null;
$unit_data["block"] = ($r->block) ? trim($r->block) : null;
$unit_data["stiege"] = ($r->stiege) ? trim($r->stiege) : null;
$unit_data["stock"] = ($r->stock) ? trim($r->stock) : null;
$unit_data["tuer"] = ($r->tuer) ? trim($r->tuer) : null;
$unit_data["zusatz"] = ($r->zusatz) ? trim($r->zusatz) : null;
$unit_data["bezeichner"] = ($r->bezeichner) ? trim($r->bezeichner) : null;
if($mode == "add") {
$unit = ADBWohneinheitModel::create($unit_data);
} else {
$unit->update($unit_data);
}
if(!$unit->save()) {
$this->layout()->setFlash("Beim Speichern der Wohneinheit ist ein Fehler aufgetreten.", "error");
$this->layout()->set("unit", $unit);
return $this->addAction();
}
$this->layout()->setFlash("Wohneinheit erfolgreich gespeichert.", "success");
$this->redirect("AddressDB", "view", ["id" => $unit->hausnummer_id]);
}
}

View File

@@ -1,6 +1,8 @@
<?php
class ADBWohneinheitModel {
public $status_id;
public $oaid;
public $extref;
public $hausnummer_id;
public $num;
@@ -15,7 +17,9 @@ class ADBWohneinheitModel {
public $patch_shelf;
public $patch_module;
public $patch_port;
public $external_data;
public $note;
public $create_by = null;
public $edit_by = null;
public $create = null;

View File

@@ -234,6 +234,7 @@ class AddressDB {
//$hausnummer_data['oaid'] = (array_key_exists("oaid", $data) && $data['oaid']) ? $data['oaid'] : null;
$hausnummer_data['adrcd'] = ($data['adrcd']) ? $data['adrcd'] : null;
$hausnummer_data['extref'] = ($data['extref']) ? $data['extref'] : null;
$hausnummer_data['rimo_id'] = ($data['rimo_id']) ? $data['rimo_id'] : null;
$hausnummer_data['netzgebiet_id'] = $netzgebiet_id;
$hausnummer_data['ortschaft_id'] = $ortschaft->id;
$hausnummer_data['plz_id'] = $plz->id;

View File

@@ -270,7 +270,7 @@ class AddressDBController extends mfBaseController {
if(!$this->me->is("Admin")) {
$required[] = "netzgebiet_id";
}
foreach(['adrcd','extref','netzgebiet_id','strasse','hausnummer','plz','ortschaft','gemeinde','grund_nr','gdaeigenschaft','meridian','rw','hw','gps_lat','gps_long','unit_count'] as $field) {
foreach(['adrcd','extref','rimo_id','netzgebiet_id','strasse','hausnummer','plz','ortschaft','gemeinde','grund_nr','gdaeigenschaft','meridian','rw','hw','gps_lat','gps_long','unit_count'] as $field) {
if(in_array($field, $required)) {
if(!trim($r->$field)) {
$this->layout()->setFlash("'".ucfirst($field)."' darf nicht leer sein!", "error");

View File

@@ -87,6 +87,24 @@ class ProductgroupController extends mfBaseController {
$group_data = [];
$group_data['name'] = $name;
$group_data["matchcodeorigin"] = null;
if($r->matchcodeorigin) {
switch($r->matchcodeorigin) {
case "address":
$group_data["matchcodeorigin"] = "address";
break;
case "domain":
$group_data["matchcodeorigin"] = "domain";
break;
case "terminationaddress":
$group_data["matchcodeorigin"] = "terminationaddress";
break;
case "voicenumber":
$group_data["matchcodeorigin"] = "voicenumber";
break;
}
}
if($mode == "edit") {
$group->update($group_data);

View File

@@ -1,8 +1,9 @@
<?php
class ProductgroupModel {
public $name = null;
public $description = null;
public $name;
public $description;
public $matchcodeorigin;
public $note = null;

View File

@@ -117,9 +117,7 @@ class XinonFibuMergeModel {
private static function getSqlFilter($filter) {
$where = "1=1 ";
if(array_key_exists("old_custnum", $filter)) {
$old_custnum = $filter['old_custnum'];
if (is_numeric($old_custnum)) {
@@ -134,6 +132,15 @@ class XinonFibuMergeModel {
}
}
if(array_key_exists("name", $filter)) {
$name = $filter["name"];
if(is_array($name)) {
$where .= " AND XinonFibuMerge.name IN ('".implode("','", $name)."')";
} elseif($name) {
$name = FronkDB::singleton()->escape($filter['name']);
$where .= " AND XinonFibuMerge.name='$name'";
}
}
//var_dump($filter, $where);exit;
return $where;

View File

@@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class ProductgroupAddMatchcodeorigin extends AbstractMigration
{
public function up(): void
{
if($this->getEnvironment() == "thetool") {
$table = $this->table("Productgroup");
$table->addColumn("matchcodeorigin", "string", ["null" => true, "default" => null, "limit" => 64, "after" => "name"]);
$table->update();
}
if($this->getEnvironment() == "addressdb") {
}
}
public function down(): void
{
if($this->getEnvironment() == "thetool") {
$this->table("Productgroup")->removeColumn("matchcodeorigin")->save();
}
if($this->getEnvironment() == "addressdb") {
}
}
}

View File

@@ -73,7 +73,7 @@ $l["cc.tschechien"] = "CZ";
$l["cc.czechia"] = "CZ";
$l["cc.tschechische republik"] = "CZ";
$l["cc.czech republic"] = "CZ";
$l["cc.Česká republika"] = "CZ";
$l["cc.Ceska republika"] = "CZ";
$l["cc.deutschland"] = "DE";
$l["cc.germany"] = "DE";
$l["cc.frankreich"] = "FR";
@@ -81,7 +81,6 @@ $l["cc.france"] = "FR";
$l["cc.francaise"] = "FR";
$l["cc.République française"] = "FR";
$l["cc.Republique francaise"] = "FR";
$l["cc.großbritannien"] = "GB";
$l["cc.grossbritannien"] = "GB";
$l["cc.britain"] = "GB";
$l["cc.great britain"] = "GB";
@@ -89,7 +88,6 @@ $l["cc.uk"] = "GB";
$l["cc.united kingdom"] = "GB";
$l["cc.United Kingdom of Great Britain and Northern Ireland"] = "GB";
$l["cc.Vereinigtes Koenigreich"] = "GB";
$l["cc.Vereinigtes Koenigreich Großbritannien und Nordirland"] = "GB";
$l["cc.Vereinigtes Koenigreich Grossbritannien und Nordirland"] = "GB";
$l["cc.ungarn"] = "HU";
$l["cc.hungary"] = "HU";
@@ -105,7 +103,6 @@ $l["cc.nihon"] = "JP";
$l["cc.日本"] = "JP";
$l["cc.日本国"] = "JP";
$l["cc.luxemburg"] = "LU";
$l["cc.großherzogtum luxemburg"] = "LU";
$l["cc.grossherzogtum luxemburg"] = "LU";
$l["cc.luxembourg"] = "LU";
$l["cc.grand duchy of luxembourg"] = "LU";
@@ -126,17 +123,17 @@ $l["cc.slovenia"] = "SL";
$l["cc.slowakei"] = "SK";
$l["cc.slovakia"] = "SK";
$l["cc.slowakische republik"] = "SK";
$l["cc.Slovak Republic"] = "SK";
$l["cc.Vereinigte Staaten"] = "US";
$l["cc.Vereinigte Staaten von Amerika"] = "US";
$l["cc.slovak republic"] = "SK";
$l["cc.vereinigte staaten"] = "US";
$l["cc.vereinigte staaten von amerika"] = "US";
$l["cc.usa - vereinigte staaten"] = "US";
$l["cc.Amerika"] = "US";
$l["cc.US"] = "US";
$l["cc.USA"] = "US";
$l["cc.U.S.A."] = "US";
$l["cc.America"] = "US";
$l["cc.United States"] = "US";
$l["cc.United States of America"] = "US";
$l["cc.us"] = "US";
$l["cc.usa"] = "US";
$l["cc.u.s.a."] = "US";
$l["cc.america"] = "US";
$l["cc.united states"] = "US";
$l["cc.united states of america"] = "US";
$l["cc.mm"] = "CW";
$lang['de'] = $l;

View File

@@ -288,7 +288,6 @@ function __($_string, $prefix = null) {
$string = str_replace(["Ä","Ö","Ü","ß","ä","ö","ü","ß"], ["ae","oe","ue","ss","ae","oe","ue", "ss"], strtolower($_string));
if(!$lang) {
//mfLoghandler::singleton()->debug("Loading language file for __() function");
include(BASEDIR . "/lang/de.php");