Merge branch 'fronkdev' into 'master'

ConstructionConsent Changes

See merge request fronk/thetool!1022
This commit is contained in:
Frank Schubert
2025-02-13 13:36:53 +00:00
9 changed files with 313 additions and 159 deletions
@@ -64,6 +64,10 @@
font-weight: bolder; font-weight: bolder;
} }
.logo-top-page {
height: 120px;
}
.logo-top { .logo-top {
height: 80px; height: 80px;
} }
@@ -182,11 +186,73 @@
padding-left: 16px; padding-left: 16px;
} }
.border-bottom-1 {
border-bottom: 1px solid #000;
}
.border-bottom-2 {
border-bottom: 2px solid #000;
}
</style> </style>
</head> </head>
<body> <body>
<?php foreach($owners as $owner): ?> <?php foreach($owners as $owner): ?>
<!--div class="page">
<p class="text-right">
<img class="logo-top-page" src="<?=$ressourcePathPrefix?>/assets/images/estmk-bb-logo-square.png" />
</p>
<p class="mt-4">
<?=($owner->title) ? $owner->title."<br />" : ""?>
<?=$owner->firstname?> <?=$owner->lastname?><br />
<?=$owner->street?><br />
<?=$owner->zip?> <?=$owner->city?>
<?=($owner->country) ? $owner->country."<br />" : ""?>
</p>
<p class="text-right">Graz, <?=date("d.m.Y")?></p>
<p class="mt-4 border-bottom-1">
<strong>Glasfaserausbau<br />Zustimmungserklärung</strong>
</p>
<p>Sehr geehrte/r <?=$owner->firstname?> <?=$owner->lastname?>,</p>
<p>
die Energie Steiermark Breitband GmbH baut in Ihrer Gemeinde ein großflächiges Glasfasernetz aus, um alle Haushalte und Unternehmen mit modernen
und leistungsfähigem Breitband-Internet zu versorgen.
</p>
<p><strong>Im Rahmen dieses Projekts wird auch Ihr Grundstück in das Ausbauvorhaben einbezogen.</strong></p>
<p>
Damit wir das Glasfaserkabel auf Ihrem Grundstück verlegen können und um die rechtlichen Voraussetzungen für die Verlegung der Glasfaser-Infrastruktur
(nicht der Eigenversorgung dienende Lichtwellenleiter) zu schaffen, <strong>bitten wir Sie als Miteigentümer, uns die erforderliche Zustimmung zur Verlegung
des Glasfaserkabels zu erteilen.</strong> Die rechtliche Grundlage ist das Telekommunikationsgesetz 2021 (§ 52 TKG), das die Nutzung privater Grundstücke für
Infrastrukturmaßnahmen regelt.
</p>
<p>
Im Anhang finden Sie folgendes Dokument:
<ul>
<li>
Zustimmungserklärung inkl. Planskizze: Bitte unterschreiben und an uns zurücksenden (per Rücksendekuvert oder an #Projektemail).<br />
<em>(Hinweis: Die Planskizze zeigt eine vorläufige Darstellung des Trassenverlaufs auf Ihrem Grundstück. Der genaue Trassenverlauf wird erst vor Ort
im Rahmen der Detailplanung festgelegt. Alle erforderlichen Grab- und Wiederherstellungsarbeiten werden selbstverständlich kostenlos von der
Energie Steiermark Breitband GmbH durchgeführt.)</em>
</li>
</ul>
</p>
<p>Wir bedanken uns schon jetzt herzlich für Ihre Unterstützung bei diesem wichtigen Projekt!</p>
<p>Für Fragen oder weitere Informationen stehen wir Ihnen gerne unter <?=$consent->project->phone?> oder per E-Mail an <?=$consent->project->email?> zur Verfügung.</p>
<p>Mit freundlichen Grüßen</p>
<p>Energie Steiermark Breitband GmbH</p>
</div-->
<div class="page"> <div class="page">
<p class="text-right"> <p class="text-right">
@@ -204,13 +270,13 @@
Name, Anschrift Name, Anschrift
</div> </div>
<div class="input-text mb-2"> <div class="input-text mb-2">
<strong><?=$owner->name?>, <?=$owner->street?>, <?=$owner->zip?> <?=$owner->city?></strong> <strong><?=($owner->title) ? $owner->title." " : ""?><?=$owner->firstname?> <?=$owner->lastname?>, <?=$owner->street?>, <?=$owner->zip?> <?=$owner->city?></strong>
</div> </div>
<div class="input-label mb-0"> <div class="input-label mb-0">
Objektanschrift Objektanschrift
</div> </div>
<div class="input-text"> <div class="input-text">
<strong><?=$owner->consent->adb_strasse->name?>, <?=$owner->consent->adb_strasse->gemeinde->name?></strong> <strong><?=$owner->consent->name?></strong>
</div> </div>
<p> <p>
@@ -239,7 +305,7 @@
<th>LWL-Leerrohre und/oder LWL-Kabel (Künette, Inhouse etc.)</th> <th>LWL-Leerrohre und/oder LWL-Kabel (Künette, Inhouse etc.)</th>
</tr> </tr>
<tr> <tr>
<td><?=$consent->gstnr?></td> <td><?=$consent->gst?></td>
<td><?=$consent->kg?></td> <td><?=$consent->kg?></td>
<td><?=$consent->ez?></td> <td><?=$consent->ez?></td>
<td>ca. <?=$consent->usage_length?> lfm (exkl. Beigest. LWL-Wohnungsverkabelung)</td> <td>ca. <?=$consent->usage_length?> lfm (exkl. Beigest. LWL-Wohnungsverkabelung)</td>
+30 -8
View File
@@ -181,7 +181,7 @@ $pagination_entity_name = "Adressen";
</tr><tr> </tr><tr>
<th>Plan/Skizze</th> <th>Plan/Skizze</th>
<td> <td>
<?php if($item->file && $item->file->file): ?> <?php if($item->file && $item->file->file && $item->file->file->fileExists()): ?>
<!--img src="<?=self::getUrl("File", "Download", ["id" => $item->file->file_id])?>" style="max-width: 480px;"/--> <!--img src="<?=self::getUrl("File", "Download", ["id" => $item->file->file_id])?>" style="max-width: 480px;"/-->
<img src="<?=$item->file->file->asDataUrl()?>" style="max-width: 480px;" /> <img src="<?=$item->file->file->asDataUrl()?>" style="max-width: 480px;" />
<?php endif; ?> <?php endif; ?>
@@ -304,12 +304,13 @@ $pagination_entity_name = "Adressen";
<th></th> <th></th>
</tr> </tr>
<?php foreach($item->owners as $owner): ?> <?php foreach($item->owners as $owner): ?>
<tr id="owner-data-<?=$owner->id?>" data-name="<?=$owner->name?>" data-street="<?=$owner->street?>" data-zip="<?=$owner->zip?>" data-city="<?=$owner->city?>" data-country="<?=$owner->country?>" data-phone="<?=$owner->phone?>" data-fax="<?=$owner->fax?>" data-email="<?=$owner->email?>"> <tr id="owner-data-<?=$owner->id?>" data-title="<?=$owner->title?>" data-firstname="<?=$owner->firstname?>" data-lastname="<?=$owner->lastname?>" data-street="<?=$owner->street?>" data-zip="<?=$owner->zip?>" data-city="<?=$owner->city?>" data-country="<?=$owner->country?>" data-phone="<?=$owner->phone?>" data-phone2="<?=$owner->phone2?>" data-fax="<?=$owner->fax?>" data-email="<?=$owner->email?>">
<td style="font-size: 1.4em;"> <td style="font-size: 1.4em;">
<a href="<?=self::getUrl("ConstructionConsent", "Download", ["owner_id" => $owner->id])?>" title="Zustimmungserklärungsformular herunterladen"><i class="far fa-fw fa-file-download"></i></a> <a href="<?=self::getUrl("ConstructionConsent", "Download", ["owner_id" => $owner->id])?>" title="Zustimmungserklärungsformular herunterladen"><i class="far fa-fw fa-file-download"></i></a>
</td> </td>
<td> <td>
<strong><?=$owner->name?></strong><br />
<strong><?=($owner->title) ? $owner->title." " : ""?><?=$owner->firstname?> <?=$owner->lastname?></strong><br />
<?=$owner->street?><br /> <?=$owner->street?><br />
<?=$owner->zip?> <?=$owner->city?><br /> <?=$owner->zip?> <?=$owner->city?><br />
<?=$owner->country?> <?=$owner->country?>
@@ -466,8 +467,18 @@ $pagination_entity_name = "Adressen";
<h4>Name & Anschrift</h4> <h4>Name & Anschrift</h4>
<div class="form-group"> <div class="form-group">
<label for="name" class="col-form-label">Name:</label> <label for="title" class="col-form-label">Titel:</label>
<textarea class="form-control" name="name" id="name"></textarea> <input type="text" class="form-control" name="title" id="title" />
</div>
<div class="form-group">
<label for="firnstname" class="col-form-label">Vorname:</label>
<input type="text" class="form-control" name="firstname" id="firstname" />
</div>
<div class="form-group">
<label for="lastname" class="col-form-label">Nachname:</label>
<input type="text" class="form-control" name="lastname" id="lastname" />
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -497,10 +508,15 @@ $pagination_entity_name = "Adressen";
<h4>Kontakt</h4> <h4>Kontakt</h4>
<div class="form-group"> <div class="form-group">
<label for="phone" class="col-form-label">Telefon:</label> <label for="phone" class="col-form-label">Telefon 1:</label>
<input type="text" class="form-control" name="phone" id="phone" /> <input type="text" class="form-control" name="phone" id="phone" />
</div> </div>
<div class="form-group">
<label for="phone2" class="col-form-label">Telefon 2:</label>
<input type="text" class="form-control" name="phone2" id="phone2" />
</div>
<div class="form-group"> <div class="form-group">
<label for="fax" class="col-form-label">Fax:</label> <label for="fax" class="col-form-label">Fax:</label>
<input type="text" class="form-control" name="fax" id="fax" /> <input type="text" class="form-control" name="fax" id="fax" />
@@ -792,12 +808,15 @@ $pagination_entity_name = "Adressen";
} }
function newOwner() { function newOwner() {
$("#newOwnerModal textarea[name=name]").val(""); $("#newOwnerModal input[name=title]").val("");
$("#newOwnerModal input[name=firstname]").val("");
$("#newOwnerModal input[name=lastname]").val("");
$("#newOwnerModal input[name=street]").val(""); $("#newOwnerModal input[name=street]").val("");
$("#newOwnerModal input[name=zip]").val(""); $("#newOwnerModal input[name=zip]").val("");
$("#newOwnerModal input[name=city]").val(""); $("#newOwnerModal input[name=city]").val("");
$("#newOwnerModal input[name=country]").val(""); $("#newOwnerModal input[name=country]").val("");
$("#newOwnerModal input[name=phone]").val(""); $("#newOwnerModal input[name=phone]").val("");
$("#newOwnerModal input[name=phone2]").val("");
$("#newOwnerModal input[name=fax]").val(""); $("#newOwnerModal input[name=fax]").val("");
$("#newOwnerModal input[name=email]").val(""); $("#newOwnerModal input[name=email]").val("");
$("#newOwnerModal input[name=id]").val(""); $("#newOwnerModal input[name=id]").val("");
@@ -810,12 +829,15 @@ $pagination_entity_name = "Adressen";
function editOwner(owner_id) { function editOwner(owner_id) {
if(!owner_id) return; if(!owner_id) return;
$("#newOwnerModal textarea[name=name]").val($("#owner-data-" + owner_id).data("name")); $("#newOwnerModal input[name=title]").val($("#owner-data-" + owner_id).data("title"));
$("#newOwnerModal input[name=firstname]").val($("#owner-data-" + owner_id).data("firstname"));
$("#newOwnerModal input[name=lastname]").val($("#owner-data-" + owner_id).data("lastname"));
$("#newOwnerModal input[name=street]").val($("#owner-data-" + owner_id).data("street")); $("#newOwnerModal input[name=street]").val($("#owner-data-" + owner_id).data("street"));
$("#newOwnerModal input[name=zip]").val($("#owner-data-" + owner_id).data("zip")); $("#newOwnerModal input[name=zip]").val($("#owner-data-" + owner_id).data("zip"));
$("#newOwnerModal input[name=city]").val($("#owner-data-" + owner_id).data("city")); $("#newOwnerModal input[name=city]").val($("#owner-data-" + owner_id).data("city"));
$("#newOwnerModal input[name=country]").val($("#owner-data-" + owner_id).data("country")); $("#newOwnerModal input[name=country]").val($("#owner-data-" + owner_id).data("country"));
$("#newOwnerModal input[name=phone]").val($("#owner-data-" + owner_id).data("phone")); $("#newOwnerModal input[name=phone]").val($("#owner-data-" + owner_id).data("phone"));
$("#newOwnerModal input[name=phone2]").val($("#owner-data-" + owner_id).data("phone2"));
$("#newOwnerModal input[name=fax]").val($("#owner-data-" + owner_id).data("fax")); $("#newOwnerModal input[name=fax]").val($("#owner-data-" + owner_id).data("fax"));
$("#newOwnerModal input[name=email]").val($("#owner-data-" + owner_id).data("email")); $("#newOwnerModal input[name=email]").val($("#owner-data-" + owner_id).data("email"));
$("#newOwnerModal input[name=id]").val(owner_id); $("#newOwnerModal input[name=id]").val(owner_id);
@@ -80,7 +80,8 @@ class ConstructionConsent extends mfBaseModel {
$pdf = new PdfForm("ConstructionConsent/Consentform.pdf", $pdf_vars); $pdf = new PdfForm("ConstructionConsent/Consentform.pdf", $pdf_vars);
$wkOpts = "--footer-center '$footer_text' --footer-font-name '$footer_font' --footer-font-size '$footer_size'"; //$wkOpts = "--footer-center '$footer_text' --footer-font-name '$footer_font' --footer-font-size '$footer_size'";
$wkOpts = "--footer-html '".$_SERVER["HTTP_HOST"].MFFANCYBASEURL."/assets/pdf/ConstructionConsent/Consentform.footer.html' --margin-bottom 15mm --margin-top 10mm";
$filename = $pdf->render($wkOpts); $filename = $pdf->render($wkOpts);
if(!file_exists($filename) || !is_file($filename)) { if(!file_exists($filename) || !is_file($filename)) {
@@ -217,6 +217,14 @@ class ConstructionConsentController extends mfBaseController {
$data["usage_manhole"] = $r->usage_manhole ? 1 : 0; $data["usage_manhole"] = $r->usage_manhole ? 1 : 0;
$data["usage_owner"] = $r->usage_owner ? 1 : 0; $data["usage_owner"] = $r->usage_owner ? 1 : 0;
if($r->object_type == "street") {
$data["usage_length"] = 1;
$data["usage_pipe_on_plot"] = 1;
$data["usage_pipe_in_building"] = 1;
$data["usage_manhole"] = 1;
$data["usage_owner"] = 1;
}
if($mode == "add") { if($mode == "add") {
$item = ConstructionConsent::create($data); $item = ConstructionConsent::create($data);
} else { } else {
@@ -90,8 +90,8 @@ class ConstructionConsentOwner extends mfBaseModel {
$model = new ConstructionConsentOwner(); $model = new ConstructionConsentOwner();
$table_fields = [ $table_fields = [
"constructionconsent_id", "name", "street", "zip", "city", "country", "phone", "constructionconsent_id", "title", "firstname", "lastname", "street", "zip", "city", "country",
"fax", "email", "status", "result", "create_by","edit_by","create","edit" "phone", "phone2", "fax", "email", "status", "result", "create_by","edit_by","create","edit"
]; ];
foreach($data as $field => $value) { foreach($data as $field => $value) {
@@ -118,7 +118,7 @@ class ConstructionConsentOwner extends mfBaseModel {
$db = FronkDB::singleton(); $db = FronkDB::singleton();
$res = $db->select("ConstructionConsentOwner", "*", "1 = 1 ORDER BY name"); $res = $db->select("ConstructionConsentOwner", "*", "1 = 1 ORDER BY lastname,firstname");
if($db->num_rows($res)) { if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) { while($data = $db->fetch_object($res)) {
$items[] = new ConstructionConsentOwner($data); $items[] = new ConstructionConsentOwner($data);
@@ -134,7 +134,7 @@ class ConstructionConsentOwner extends mfBaseModel {
$where = self::getSqlFilter($filter); $where = self::getSqlFilter($filter);
$sql = "SELECT * FROM ConstructionConsentOwner $sql = "SELECT * FROM ConstructionConsentOwner
WHERE $where WHERE $where
ORDER BY name LIMIT 1"; ORDER BY lastname,firstname LIMIT 1";
//var_dump($sql);exit; //var_dump($sql);exit;
$res = $db->query($sql); $res = $db->query($sql);
if($db->num_rows($res)) { if($db->num_rows($res)) {
@@ -171,7 +171,7 @@ class ConstructionConsentOwner extends mfBaseModel {
$items = []; $items = [];
if(!$order) { if(!$order) {
$order = "name ASC"; $order = "lastname,firstname ASC";
} }
$db = FronkDB::singleton(); $db = FronkDB::singleton();
@@ -78,12 +78,15 @@ class ConstructionConsentOwnerController extends mfBaseController
$data = []; $data = [];
$data["constructionconsent_id"] = $cc_id; $data["constructionconsent_id"] = $cc_id;
$data["name"] = $r->name; $data["title"] = $r->title;
$data["firstname"] = $r->firstname;
$data["lastname"] = $r->lastname;
$data["street"] = $r->street; $data["street"] = $r->street;
$data["zip"] = $r->zip; $data["zip"] = $r->zip;
$data["city"] = $r->city; $data["city"] = $r->city;
$data["country"] = $r->country; $data["country"] = $r->country;
$data["phone"] = $r->phone; $data["phone"] = $r->phone;
$data["phone2"] = $r->phone2;
$data["fax"] = $r->fax; $data["fax"] = $r->fax;
$data["email"] = $r->email; $data["email"] = $r->email;
+9
View File
@@ -17,6 +17,15 @@ class File extends mfBaseModel {
$this->mimetype = $this->getMimetype(); $this->mimetype = $this->getMimetype();
} }
public function fileExists() {
if(!$this->store_filename) return false;
$path = MFUPLOAD_FILE_SAVE_PATH;
$path .= ($this->subfolder) ? "/".$this->subfolder : "";
$path .= "/".$this->store_filename;
return file_exists($path);
}
public function getMimetype() { public function getMimetype() {
if(!$this->store_filename) return false; if(!$this->store_filename) return false;
@@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class ConstructionConsentOwnerAddCols extends AbstractMigration
{
public function up(): void
{
if($this->getEnvironment() == "thetool") {
$table = $this->table("ConstructionConsentOwner");
$table->addColumn("title", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "constructionconsent_id"]);
$table->addColumn("birthdate", "date", ["null" => true, "default" => null, "after" => "email"]);
$table->addColumn("phone2", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "phone"]);
$table->addColumn("firstname", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "title"]);
$table->renameColumn("name", "lastname");
$table->update();
}
if($this->getEnvironment() == "addressdb") {
}
}
public function down(): void
{
if($this->getEnvironment() == "thetool") {
}
if($this->getEnvironment() == "addressdb") {
}
}
}
@@ -0,0 +1,10 @@
<html lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<div style="margin-left: 8mm; font-family: 'ITC Officina Sans Std', sans-serif; font-size: 8pt;">Energie Steiermark Breitband GmbH, A-8010 Graz, Leonhardgürtel 10, Telefon +43 (0)316 9000-0<br />
Sitz Graz, FN 576705x, Landesgericht für ZRS Graz, ATU 77949678, breitband@e-steiermark.com, www.e-steiermark.com</div>
</body>
</html>