diff --git a/Layout/default/Admin/MassProductchange/Index.php b/Layout/default/Admin/MassProductchange/Index.php new file mode 100644 index 000000000..50c26009d --- /dev/null +++ b/Layout/default/Admin/MassProductchange/Index.php @@ -0,0 +1,107 @@ + + + +
+
+
+
+ +
+

Massenproduktwechsel

+
+
+
+ + +
+
+

Produktwechsel erstellen

+
+
+ +
+
+ +
+ Sucht alle aktiven Contracts mit bisherigem Produkt und erstellt jeweils einen Produktwechsel. +
+ +
"create"])?>"> +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+ + +
+ +
+ + +
+ + +
+
+
+ +
+
+
+ +
+ + + + + \ No newline at end of file diff --git a/application/Admin/functions/MassProductchange.php b/application/Admin/functions/MassProductchange.php new file mode 100644 index 000000000..47e39f09a --- /dev/null +++ b/application/Admin/functions/MassProductchange.php @@ -0,0 +1,75 @@ +request = $request; + $this->db = FronkDB::singleton(); + $this->log = mfLoghandler::singleton(); + + } + + public function runRequest() { + $action = $this->request->do; + if(!$action) { + return $this->indexAction(); + } else { + $method = $action."Action"; + if(method_exists($this, $method)) { + return $this->$method(); + } else { + throw new Exception("Method not found", "404"); + } + } + } + + public function indexAction() { + + return [ + "template" => "Admin/MassProductchange/Index", + "redirect" => "", + "templateVars" => [] + ]; + } + + public function createAction() { + $this->log->debug("Create action called"); + $this->log->debug($this->request->getPost()); + + $old_product_id = $this->request->getPost("old_product_id"); + $new_product_id = $this->request->getPost("new_product_id"); + + if(!$old_product_id || !$new_product_id) { + $this->flash[] = "Beide Produkte werden benötigt."; + return [ + "template" => "Admin/MassProductchange/Index", + "redirect" => "", + "templateVars" => [] + ]; + } + + $contracts = ContractModel::searchActive(["product_id" => $old_product_id]); + + + + if($this->request->preview) { + return [ + "template" => "Admin/MassProductchange/Index", + "redirect" => "", + "templateVars" => ["contracts" => $contracts] + ]; + } + + return [ + "template" => "Admin/MassProductchange/Index", + "redirect" => "", + "templateVars" => [] + ]; + } + +} \ No newline at end of file diff --git a/db/migrations/20250314130000_woker_add_active.php b/db/migrations/20250314130000_woker_add_active.php index b653fa26f..c72b6aea4 100644 --- a/db/migrations/20250314130000_woker_add_active.php +++ b/db/migrations/20250314130000_woker_add_active.php @@ -7,7 +7,7 @@ final class WokerAddActive extends AbstractMigration { if ($this->getEnvironment() == "thetool") { $workerTable = $this->table("Worker"); $workerTable - ->addColumn("active", "integer", ['default' => 1]) + ->addColumn("active", "integer", ['default' => 1, "after" => "id"]) ->save(); } } diff --git a/scripts/adb-rimo-import/rimo-import.php b/scripts/adb-rimo-import/rimo-import.php index 2b77ffa3f..66f94e1f3 100755 --- a/scripts/adb-rimo-import/rimo-import.php +++ b/scripts/adb-rimo-import/rimo-import.php @@ -893,5 +893,9 @@ function getServiceDnValues($dn) } } + if(!array_key_exists("Shelf", $fields) && array_key_exists("SpliceBox", $fields)) { + $fields['Shelf'] = $fields['SpliceBox']; + } + return $fields; }