diff --git a/Layout/default/User/Form.php b/Layout/default/User/Form.php
index 48e1d99c5..3845dbb8c 100644
--- a/Layout/default/User/Form.php
+++ b/Layout/default/User/Form.php
@@ -146,7 +146,15 @@
Beschränkt Benutzer auf Netzgebiete. Überschreibt Netzgebiete der Firma. Wenn leer werden Netzgebiete der Firma angezeigt
-
+
+
+ Preorder Readonly:
+
+ is("preorderreadonly")) ? "selected='selected'" : ""?>>Read/Write
+ is("preorderreadonly")) ? "selected='selected'" : ""?>>Readonly
+
+
+
Modulberechtigungen
diff --git a/Layout/default/User/Index.php b/Layout/default/User/Index.php
index 90329031b..0ac80a500 100644
--- a/Layout/default/User/Index.php
+++ b/Layout/default/User/Index.php
@@ -117,12 +117,6 @@ $pagination_entity_name = "Benutzer";
style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
$user->id]) ?>"
title="User bearbeiten">
- id > 1): ?>
- $user->id]) ?>"
- class="text-danger" title="User löschen"
- onclick="if(!confirm('Benutzer wirklich löschen?')) return false;">
-
diff --git a/application/Api/v1/PreorderApicontroller.php b/application/Api/v1/PreorderApicontroller.php
index 8197f78a1..2d5ae6447 100644
--- a/application/Api/v1/PreorderApicontroller.php
+++ b/application/Api/v1/PreorderApicontroller.php
@@ -46,6 +46,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
$this->addRoute("/preorder", "submitPreorder", "POST");
$this->addRoute("/preorder/open", "getOpenPreorders", "GET");
+ $this->addRoute("/preorder/all", "getAllPreorders", "GET");
$this->addRoute("/preorder/customerInstallationFeedback", [$modules["Cif"], "getCifData"], "GET");
$this->addRoute("/preorder/customerInstallationFeedback", [$modules["Cif"], "userSetCif"], "POST");
$this->addRoute("/preorder/fullexport", "exportPreorders", "GET");
@@ -189,9 +190,12 @@ class PreorderApicontroller extends mfBaseApicontroller {
if(count($this->filter_salescluster_ids)) {
$preorder_search['netzgebiet_id'] = $this->filter_salescluster_ids;
}*/
-
+
$preorder_search = [];
- $preorder_search['partner_id'] = $this->me->address_id;
+ if(!$this->me->preorderaddressreporting) {
+ $preorder_search['partner_id'] = $this->me->address_id;
+ }
+
if($update_ts) {
$preorder_search['add-where'] = "AND tt_preorder.`edit` > $update_ts";
} else {
@@ -204,10 +208,40 @@ class PreorderApicontroller extends mfBaseApicontroller {
foreach(PreorderModel::searchActive($preorder_search) as $preorder) {
$return[] = $preorder->getApiArray();
}
+
$this->requestLog->debug(print_r($return, true));
return mfResponse::Ok(["preorders" => $return]);
-
}
+
+ protected function getAllPreorders() {
+
+ // nicht auf cluster einschränken, sondern auf partner_id
+ /*
+ $preorder_search = [];
+ if(count($this->filter_salescluster_ids)) {
+ $preorder_search['netzgebiet_id'] = $this->filter_salescluster_ids;
+ }*/
+
+ $preorder_search = [];
+ if($this->me->preorderaddressreporting) {
+
+ } else {
+ // providers see their own orders
+ $preorder_search['partner_id'] = $this->me->address_id;
+ }
+
+ // if no timestamp, return only open orders (500 == finished)
+ $preorder_search['getApiArray();
+ }
+
+ $this->requestLog->debug(print_r($return, true));
+ return mfResponse::Ok(["preorders" => $return]);
+ }
protected function getPreorder($code) {
$code = trim($code);
diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php
index 00efa6ebc..1c9240943 100644
--- a/application/Preordercampaign/PreordercampaignController.php
+++ b/application/Preordercampaign/PreordercampaignController.php
@@ -988,7 +988,7 @@ class PreordercampaignController extends mfBaseController {
if($oaid->adb_wohneinheit_id != $wohneinheit->id) {
- $rimo = new OpenAccessId_Helper_Rimo($oaid->oaid);
+ //$rimo = new OpenAccessId_Helper_Rimo($oaid->oaid);
$unit_ftu_data = $wohneinheit->ftu_data;
//var_dump($unit_ftu_data);
@@ -999,8 +999,8 @@ class PreordercampaignController extends mfBaseController {
$oaid_ftu = $oaid->getExportData("rimo");
//var_dump($oaid_ftu);
if($oaid_ftu->ftu_id) {
- $rimo->unassignOaid($oaid_ftu->ftu_id);
- $rimo->assignOaid($unit_ftu_data["id"]);
+ Rimoapi::unassignOaid($oaid->oaid, $oaid_ftu->ftu_id);
+ Rimoapi::assignOaid($oaid->oaid, $unit_ftu_data["id"]);
$oaid->updateExportData("rimo", "ftu_id", $unit_ftu_data["id"]);
$oaid->updateExportData("rimo", "ftu_name", $unit_ftu_data["name"]);
diff --git a/application/User/UserController.php b/application/User/UserController.php
index bc65ba9bb..b73f05bbb 100644
--- a/application/User/UserController.php
+++ b/application/User/UserController.php
@@ -80,7 +80,7 @@ class UserController extends mfBaseController
$this->layout()->set("addresses", $addresses);
}
- protected function generateApikey($request)
+ protected function generateApikeyAction($request)
{
if (!$this->isAdmin()) {
$this->redirect("Dashboard");
@@ -219,7 +219,18 @@ class UserController extends mfBaseController
} else {
$user->permissions->preorderlogistics = "false";
}
-
+
+ if ($r->preorderaddressreporting == "true") {
+ $user->permissions->preorderaddressreporting = "true";
+ } else {
+ $user->permissions->preorderaddressreporting = "false";
+ }
+
+ if ($r->preorderreadonly == "true") {
+ $user->permissions->preorderreadonly = "true";
+ } else {
+ $user->permissions->preorderreadonly = "false";
+ }
// set can permissions
$user->permissions->canBuilding = "false";
@@ -271,9 +282,7 @@ class UserController extends mfBaseController
} else {
$enum->delete();
}
-
-
-
+
}
$this->layout()->setFlash("Benutzer gespeichert.", "success");
@@ -282,8 +291,11 @@ class UserController extends mfBaseController
protected function deleteAction($request)
{
+ $this->layout()->setFlash("nope");
+ $this->redirect("User");
+
if (!$this->isAdmin()) {
- $this->redirect("Bridge");
+ $this->redirect("Dashboard");
}
$id = $request['id'];
diff --git a/application/WorkerPermission/WorkerPermission.php b/application/WorkerPermission/WorkerPermission.php
index 4fa25500a..f8b8a9543 100644
--- a/application/WorkerPermission/WorkerPermission.php
+++ b/application/WorkerPermission/WorkerPermission.php
@@ -7,6 +7,7 @@ class WorkerPermission extends mfBaseModel {
public $isPreorderfront = false;
public $isPreorderaddressreporting = false;
public $isPreorderlogistics = false;
+ public $isPreorderreadonly = false;
public function loadByUserId($userid) {
$res = $this->db->select($this->table,"*","worker_id=$userid");
@@ -41,6 +42,9 @@ class WorkerPermission extends mfBaseModel {
if($this->preorderlogistics == 'true') {
$this->isPreorderlogistics = true;
}
+ if($this->preorderreadonly == 'true') {
+ $this->isPreorderreadonly = true;
+ }
}
}
\ No newline at end of file
diff --git a/db/migrations/20241007103659_add_preorder_readonly_permission.php b/db/migrations/20241007103659_add_preorder_readonly_permission.php
new file mode 100644
index 000000000..347b98c03
--- /dev/null
+++ b/db/migrations/20241007103659_add_preorder_readonly_permission.php
@@ -0,0 +1,31 @@
+getEnvironment() == "thetool") {
+ $table = $this->table ("WorkerPermission");
+ $table->addColumn("preorderreadonly", "enum", ["null" => false, "values" => 'false,true', "default" => "false", "after" => "preorderlogistics"]);
+ $table->update();
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+
+ }
+ }
+
+ public function down(): void
+ {
+ if($this->getEnvironment() == "thetool") {
+ $this->table ("WorkerPermission")->removeColumn("preorderreadonly");
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+
+ }
+ }
+}