WIP ConstructionConsent & update-statusflags script
This commit is contained in:
@@ -80,6 +80,77 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="kg">KG</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="kg" id="kg" value="<?=$item->kg?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="gst">GST</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="gst" id="gst" value="<?=$item->gst?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="gstnr">GSTNR</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="gstnr" id="gstnr" value="<?=$item->gstnr?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<h4>Nutzung</h4>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="usage_length">Länge auf Grundstück</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="usage_length" id="usage_length" value="<?=$item->usage_length?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row mt-3">
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-10">
|
||||
<label>
|
||||
<input type="checkbox" name="usage_pipe_on_plot" id="usage_pipe_on_plot" value="1" />
|
||||
Verlegung von Rohren und Lichtwellenleitern am Grundstück
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-10">
|
||||
<label>
|
||||
<input type="checkbox" name="usage_pipe_in_building" id="usage_pipe_in_building" value="1" />
|
||||
Verlegung von Rohren und Lichtwellenleitern in den darauf befindlichen Gebäuden
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-10">
|
||||
<label>
|
||||
<input type="checkbox" name="usage_manhole" id="usage_manhole" value="1" />
|
||||
Errichtung eines Schachtes/einer Kabelmontagegrube und/oder eines LWL-Verteilschrankes/einer LWL-Abschlussbox
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-2"></div>
|
||||
<div class="col-lg-10">
|
||||
<label>
|
||||
<input type="checkbox" name="usage_owner" id="usage_owner" value="1" />
|
||||
Die Nutzung der Liegenschaft seitens BB dient der Eigenversorgung der GE und/oder dessen Nutzer(in) und wird dieser entgeltlos zugestimmt
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row mt-3">
|
||||
<label class="col-lg-2 col-form-label" for="note">Interne Notiz</label>
|
||||
|
||||
@@ -36,8 +36,8 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
<label class="form-label" for="filter_project_id">Projekt</label>
|
||||
<select name="filter[project_id]" id="filter_project_id" class="form-control">
|
||||
<option></option>
|
||||
<?php foreach(ConstructionConsentNetwork::getAll() as $ccn): ?>
|
||||
<option value="<?=$ccn->id?>" <?=(is_array($filter) && array_key_exists("project_id", $filter) && $ccn->id == $filter["project_id"]) ? "selected='selected'" : ""?>><?=$ccn->adb_netzgebiet->name?></option>
|
||||
<?php foreach(ConstructionConsentProject::getAll() as $project): ?>
|
||||
<option value="<?=$project->id?>" <?=(is_array($filter) && array_key_exists("project_id", $filter) && $project->id == $filter["project_id"]) ? "selected='selected'" : ""?>><?=$project->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
@@ -70,17 +70,6 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($me->is("Admin")): ?>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<a href="<?=self::getUrl("ConstructionConsentProject")?>" class="btn btn-success">Projekte bearbeiten</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
|
||||
@@ -85,7 +85,7 @@ $pagination_entity_name = "Zustimmungserklärungsprojekte";
|
||||
</tr>
|
||||
<?php foreach($projects as $project): ?>
|
||||
<tr>
|
||||
<td><?=$project->name?></td>
|
||||
<td><a href="<?=self::getUrl("ConstructionConsent", "", ["filter" => ["project_id" => $project->id]])?>"><?=$project->name?></a></td>
|
||||
<td>
|
||||
<?php if(is_array($project->networks) && count($project->networks)): ?>
|
||||
<ul>
|
||||
|
||||
@@ -18,21 +18,44 @@ class ConstructionConsentController extends mfBaseController {
|
||||
protected function indexAction() : void {
|
||||
$this->layout()->setTemplate("ConstructionConsent/Index");
|
||||
|
||||
if ($this->request->resetFilter) {
|
||||
if($this->request->resetFilter) {
|
||||
unset($_SESSION[MFAPPNAME . '-ConstructionConsent-filter']);
|
||||
$this->redirect("ConstructionConsent");
|
||||
foreach($_SESSION as $key => $s) {
|
||||
if(preg_match('/^' . MFAPPNAME . '-ConstructionConsent-filter-project-\d+$/', $key)) {
|
||||
unset($_SESSION[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$filter = [];
|
||||
if (is_array($this->request->filter)) {
|
||||
|
||||
if(is_array($this->request->filter)) {
|
||||
$filter = $this->request->filter;
|
||||
$_SESSION[MFAPPNAME . '-ConstructionConsent-filter'] = $filter;
|
||||
|
||||
if(isset($this->request->filter["project_id"]) && $this->request->filter["project_id"]) {
|
||||
$filter_p_id = $filter["project_id"];
|
||||
if(count($this->request->filter) == 1 && isset($_SESSION[MFAPPNAME . '-ConstructionConsent-filter-project-' . $filter_p_id])) {
|
||||
$filter = $_SESSION[MFAPPNAME . '-ConstructionConsent-filter-project-' . $filter_p_id];
|
||||
} else {
|
||||
$_SESSION[MFAPPNAME . '-ConstructionConsent-filter-project-' . $filter["project_id"]] = $filter;
|
||||
}
|
||||
} else {
|
||||
$_SESSION[MFAPPNAME . '-ConstructionConsent-filter'] = $filter;
|
||||
}
|
||||
} else {
|
||||
if (array_key_exists(MFAPPNAME . '-ConstructionConsent-filter', $_SESSION) && count($_SESSION[MFAPPNAME . '-ConstructionConsent-filter'])) {
|
||||
if(array_key_exists(MFAPPNAME . '-ConstructionConsent-filter', $_SESSION) && count($_SESSION[MFAPPNAME . '-ConstructionConsent-filter'])) {
|
||||
$filter = $_SESSION[MFAPPNAME . '-ConstructionConsent-filter'];
|
||||
if(isset($filter['project_id'])) {
|
||||
$filter_p_id = $filter['project_id'];
|
||||
if(isset($_SESSION[MFAPPNAME . '-ConstructionConsent-filter-project-' . $filter_p_id])) {
|
||||
$filter = $_SESSION[MFAPPNAME . '-ConstructionConsent-filter-project-' . $filter_p_id];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//var_dump($_SESSION, $filter);exit;
|
||||
|
||||
$this->layout->set("filter", $filter);
|
||||
$filter = $this->getPreparedFilter($filter);
|
||||
|
||||
@@ -88,6 +111,65 @@ class ConstructionConsentController extends mfBaseController {
|
||||
$this->addAction();
|
||||
}
|
||||
|
||||
protected function saveAction() {
|
||||
$r = $this->request;
|
||||
//var_dump($r->get());exit;
|
||||
$id = $r->id;
|
||||
if(is_numeric($id) && $id > 0) {
|
||||
$mode = "edit";
|
||||
$item = new ConstructionConsent($id);
|
||||
if(!$item->id) {
|
||||
$this->layout()->setFlash("Zustimmungserklärung nicht gefunden", "error");
|
||||
$this->redirect("ConstructionConsent");
|
||||
}
|
||||
} else {
|
||||
$id = false;
|
||||
$mode = "add";
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data["constructionconsentproject_id"] = $r->constructionconsentproject_id;
|
||||
$data["object_type"] = $r->object_type;
|
||||
$data["name"] = $r->name;
|
||||
$data["adb_street_id"] = $r->adb_street_id;
|
||||
$data["ez"] = $r->ez;
|
||||
$data["kg"] = $r->kg;
|
||||
$data["gst"] = $r->gst;
|
||||
$data["gstnr"] = $r->gstnr;
|
||||
$data["usage_length"] = $r->usage_length;
|
||||
$data["usage_pipe_on_plot"] = $r->usage_pipe_on_plot;
|
||||
$data["usage_pipe_in_building"] = $r->usage_pipe_in_building;
|
||||
$data["usage_manhole"] = $r->usage_manhole;
|
||||
$data["usage_owner"] = $r->usage_owner;
|
||||
|
||||
if($mode == "add") {
|
||||
$item = ConstructionConsent::create($data);
|
||||
} else {
|
||||
$item->update($data);
|
||||
}
|
||||
$this->layout()->set("item", $item);
|
||||
|
||||
$project = new ConstructionConsentProject($data["constructionconsentproject_id"]);
|
||||
if(!$project->id) {
|
||||
$this->layout()->setFlash("Projekt nicht gefunden", "error");
|
||||
return $this->addAction();
|
||||
}
|
||||
|
||||
if(!$data["object_type"] || !$data["adb_strasse_id"]) {
|
||||
$this->layout()->setFlash("Bitte alle benötigten Felder ausfüllen", "error");
|
||||
return $this->addAction();
|
||||
}
|
||||
|
||||
if(!$item->save()) {
|
||||
$this->layout()->setFlash("Fehler beim Speichern", "error");
|
||||
return $this->addAction();
|
||||
}
|
||||
|
||||
$this->layout()->setFlash("Zustimmungserklärung erfolgreich gespeichert", "success");
|
||||
$this->redirect("ConstructionConsent");
|
||||
|
||||
}
|
||||
|
||||
protected function apiAction() {
|
||||
if(!$this->me->is(["Admin","netowner"]) && !$this->me->can("Preorder")) {
|
||||
$this->redirect("Dashboard");
|
||||
|
||||
@@ -62,7 +62,7 @@ class Preorder extends mfBaseModel {
|
||||
if($this->oaid != $old_oaid) {
|
||||
$this->resetSaveNesting();
|
||||
$this->save();
|
||||
return true;
|
||||
//return true;
|
||||
}
|
||||
|
||||
//TODO: history start
|
||||
@@ -464,7 +464,7 @@ class Preorder extends mfBaseModel {
|
||||
}
|
||||
$hflagval->value = $flag->value->value;
|
||||
$hflagval->save();
|
||||
$this->log->debug(__METHOD__.": Hausnummer flag ".$hflag->code." gespeichert");
|
||||
$this->log->debug(__METHOD__.": Hausnummer flag ".$hflag->code." value '".$hflagval->value."' gespeichert");
|
||||
}
|
||||
|
||||
// set wohneiheit flag
|
||||
|
||||
@@ -23,6 +23,7 @@ class mfValuecache {
|
||||
|
||||
public function set($key, $value) {
|
||||
$this->cache[$key] = $value;
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getCache() {
|
||||
@@ -31,6 +32,27 @@ class mfValuecache {
|
||||
|
||||
public function delete($key) {
|
||||
unset($this->cache[$key]);
|
||||
return true;
|
||||
}
|
||||
|
||||
public function purge($beginning = "", $casesensitive = true) {
|
||||
if(!$beginning) {
|
||||
$this->cache = [];
|
||||
return true;
|
||||
}
|
||||
|
||||
foreach($this->cache as $key => $value) {
|
||||
if(!$casesensitive) {
|
||||
if(strpos(strtolower($key), strtolower($beginning)) === 0) {
|
||||
unset($this->cache[$key]);
|
||||
}
|
||||
}
|
||||
if(strpos($key, $beginning) === 0) {
|
||||
unset($this->cache[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getMfObject($objectname, $id) {
|
||||
|
||||
79
scripts/preorder/update-statusflags.php
Normal file
79
scripts/preorder/update-statusflags.php
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
|
||||
//require 'vendor/autoload.php';
|
||||
require("../../config/config.php");
|
||||
|
||||
define('FRONKDB_SQLDEBUG', false);
|
||||
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
|
||||
|
||||
require_once(LIBDIR . "/mvcfronk/mfRouter/mfRouter.php");
|
||||
require_once(LIBDIR . "/mvcfronk/mfBase/mfBaseModel.php");
|
||||
require_once(LIBDIR . "/mvcfronk/mfBase/mfBaseController.php");
|
||||
|
||||
$me = new User(1);
|
||||
define("INTERNAL_USER_ID", $me->id);
|
||||
define("INTERNAL_USER_USERNAME", $me->username);
|
||||
define("MFBASE_BYPASS_LOGIN", true);
|
||||
|
||||
$log = mfLoghandler::singleton();
|
||||
|
||||
$f = 0;
|
||||
$u = 0;
|
||||
|
||||
$status_codes = [300, 350, 351, 500];
|
||||
|
||||
$preorders = PreorderModel::searchActive(["status_code" => $status_codes]);
|
||||
//$preorders = [new Preorder(1138)];
|
||||
foreach($preorders as $preorder) {
|
||||
if(!in_array($preorder->status->code, $status_codes)) continue;
|
||||
|
||||
$updated = false;
|
||||
foreach(PreorderStatusflagModel::getAll() as $sflag) {
|
||||
//$preorder = new Preorder($preorder->id);
|
||||
if(!$sflag->id) {
|
||||
var_dump($sflag);exit;
|
||||
}
|
||||
$sflag_val = PreorderStatusflagValueModel::getFirst(["preorder_id" => $preorder->id, "flag_id" => $sflag->id]);
|
||||
if(!$sflag_val) {
|
||||
$sflag_val = PreorderStatusflagValueModel::create([
|
||||
"preorder_id" => $preorder->id,
|
||||
"flag_id" => $sflag->id
|
||||
]);
|
||||
}
|
||||
|
||||
if($sflag_val->value != 1) {
|
||||
$log->debug(__FILE__.": Setting flag ".$sflag->code." to 1 in Preorder ".$preorder->id);
|
||||
$sflag_val->value = 1;
|
||||
$sflag_val->save();
|
||||
|
||||
$updated = true;
|
||||
$f++;
|
||||
|
||||
}
|
||||
|
||||
$hflag = ADBStatusflagModel::getFirst(["code" => $sflag->code]);
|
||||
$hflag_val = ADBHausnummerStatusflagValueModel::getFirst(["hausnummer_id" => $preorder->adb_hausnummer_id, "flag_id" => $hflag->id]);
|
||||
if(!$hflag_val) {
|
||||
$hflag_val = ADBHausnummerStatusflagValueModel::create([
|
||||
"hausnummer_id" => $preorder->adb_hausnummer_id,
|
||||
"flag_id" => $hflag->id
|
||||
]);
|
||||
}
|
||||
if($hflag_val->value != 1) {
|
||||
$hflag_val->value = 1;
|
||||
$log->debug(__FILE__.": Setting flag ".$hflag->code." to 1 in Hausnummer ".$preorder->adb_hausnummer_id);
|
||||
$hflag_val->save();
|
||||
}
|
||||
|
||||
mfValuecache::singleton()->purge("mfObjectmodel-Preorder", false);
|
||||
mfValuecache::singleton()->purge("Preorder", false);
|
||||
$log->debug("==========================================");
|
||||
|
||||
}
|
||||
if($updated) {
|
||||
$u++;
|
||||
}
|
||||
}
|
||||
|
||||
echo "Updated $f Flags for $u Preorders\n";
|
||||
Reference in New Issue
Block a user