diff --git a/Layout/default/Preordercampaign/Form.php b/Layout/default/Preordercampaign/Form.php index 1cd8b6658..69a71a0e6 100644 --- a/Layout/default/Preordercampaign/Form.php +++ b/Layout/default/Preordercampaign/Form.php @@ -198,6 +198,27 @@ +
+ +
+ +
+ + + Customer Installation Feedback (für QR-Code bei Status 145).
+ Templatevariable {{CIFTOKEN}} wird mit echtem Cif Token ersetzt
+ Beispiel: https://pro.ichwillglasfaser.at/ClientSubmit/finishedInstallationWork?c={{CIFTOKEN}} +
+
+
+ +
+ +
+ + Für Begleitschreiben - Status 145 +
+
diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php index 554c28b99..56f4c7e9e 100644 --- a/application/Preorder/Preorder.php +++ b/application/Preorder/Preorder.php @@ -358,7 +358,7 @@ class Preorder extends mfBaseModel { public function createCiftoken() { $ciftoken = $this->generateNewCiftoken(); - while(PreorderModel::search(['ciftoken' => $ciftoken])) { + while(PreorderModel::getFirst(['ciftoken' => $ciftoken])) { $ciftoken = $this->generateNewCiftoken(); } $this->ciftoken = $ciftoken; @@ -375,6 +375,24 @@ class Preorder extends mfBaseModel { return $ciftoken; } + public function generateCifUrl() { + $campaign = $this->getProperty("campaign"); + + $cifurl = $campaign->cifurl; + str_replace("{{CIFTOKEN}}", $this->ciftoken, $cifurl); + + return $cifurl; + } + + public function generateCifCableUrl() { + $campaign = $this->getProperty("campaign"); + + $cifcableurl = $campaign->cifcableurl; + str_replace("{{}}", $this->ciftoken, $cifcableurl); + + return $cifcableurl; + } + public function getCifdataApiArray() { if(!$this->id) { return false; diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index 6a981d15f..070cab60d 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -676,6 +676,13 @@ class PreorderModel { } } + if(array_key_exists("gemeinde_id", $filter)) { + $gemeinde_id = FronkDB::singleton()->escape($filter['gemeinde_id']); + if($gemeinde_id) { + $where .= " AND `".ADDRESSDB_DBNAME."`.adb_hausnummer.gemeinde_id = $gemeinde_id"; + } + } + if(array_key_exists("gemeinde", $filter)) { $gemeinde = FronkDB::singleton()->escape($filter['gemeinde']); if($gemeinde) { diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php index f2ece6110..19d57acbf 100644 --- a/application/Preordercampaign/PreordercampaignController.php +++ b/application/Preordercampaign/PreordercampaignController.php @@ -229,11 +229,13 @@ class PreordercampaignController extends mfBaseController { $data = []; $data['network_id'] = $r->network_id; - $data['name'] = $r->name; - $data['description'] = $r->description; - $data['area'] = $r->area; - $data['note'] = $r->note; + $data['name'] = trim($r->name); + $data['description'] = trim($r->description); + $data['area'] = trim($r->area); + $data['note'] = trim($r->note); $data['homes_total'] = (int)$r->homes_total; + $data["cifurl"] = trim($r->cifurl); + $data["cifcableurl"] = trim($r->cifcableurl); if($r->from) { $data['from'] = self::dateToTimestamp($r->from); diff --git a/db/migrations/20240223140814_preordercampaign_add_cif_urls.php b/db/migrations/20240223140814_preordercampaign_add_cif_urls.php new file mode 100644 index 000000000..9d1c83669 --- /dev/null +++ b/db/migrations/20240223140814_preordercampaign_add_cif_urls.php @@ -0,0 +1,36 @@ +getEnvironment() == "thetool") { + $table = $this->table("Preordercampaign"); + $table->addColumn("cifurl", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "allow_unit_update"]); + $table->addColumn("cifcableurl", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "cifurl"]); + $table->update(); + } + + if($this->getEnvironment() == "addressdb") { + + } + } + + public function down(): void + { + if($this->getEnvironment() == "thetool") { + $table = $this->table("Preordercampaign"); + $table->removeColumn("cifcableurl"); + $table->removeColumn("cifurl"); + $table->save(); + + } + + if($this->getEnvironment() == "addressdb") { + + } + } +} diff --git a/lib/mvcfronk/mfBase/mfBaseController.php b/lib/mvcfronk/mfBase/mfBaseController.php index 4aa1cef52..800477617 100644 --- a/lib/mvcfronk/mfBase/mfBaseController.php +++ b/lib/mvcfronk/mfBase/mfBaseController.php @@ -287,8 +287,6 @@ class mfBaseController { // Helper functions public static function dateToTimestamp($date) { - $t = array(0,0,0); - // extract day, month, year if (!preg_match('/^(\d{1,2})\.(\d{1,2})\.(\d{2,4})/',$date,$d)) { return false; @@ -298,6 +296,8 @@ class mfBaseController { if (!$t[3]) { $t[3] = 0; } + } else { + $t = array(0,0,0); } // make and return timestamp $ts = mktime($t[1],$t[2],$t[3],$d[2],$d[1],$d[3]); diff --git a/scripts/preorder/create-ciftoken.php b/scripts/preorder/create-ciftoken.php new file mode 100755 index 000000000..a5c36b368 --- /dev/null +++ b/scripts/preorder/create-ciftoken.php @@ -0,0 +1,31 @@ +#!/usr/bin/php +id); +define("INTERNAL_USER_USERNAME", $me->username); + +$cifurl_base = ""; + +foreach(PreorderModel::search(["status_code" => 145]) as $preorder) { + if($preorder->ciftoken) continue; + + $preorder->createCiftoken(); + if(!$preorder->ciftoken) { + die("Ciftoken konnte nicht erstellt werden.\n"); + } + $preorder->cifurl = $preorder->generateCifUrl(); + $preorder->cifcableurl = $preorder->generateCifCableUrl(); + //var_dump($preorder);exit; + $preorder->save(); +} \ No newline at end of file