From 52b8462afc8d1713d097c1591fa75fa51797aeb2 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 8 May 2025 20:08:09 +0200 Subject: [PATCH] WIP Mass Productchange --- .../default/Admin/MassProductchange/Index.php | 107 ++++++++++++++++++ .../Admin/functions/MassProductchange.php | 75 ++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 Layout/default/Admin/MassProductchange/Index.php create mode 100644 application/Admin/functions/MassProductchange.php 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