diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php
index 7fd192a34..8c38f4545 100644
--- a/Layout/default/Preorder/Index.php
+++ b/Layout/default/Preorder/Index.php
@@ -1,3 +1,8 @@
+getUrl($Mod,"Index");
+ $pagination_baseurl_params = ["filter" => $filter];
+ $pagination_entity_name = "Vorbestellungen";
+?>
@@ -86,14 +91,22 @@
-
-
+
-
-
-
+
+
+
+
+
+
+
+
diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php
index 006fb30d2..6157e2c75 100644
--- a/application/Preorder/PreorderController.php
+++ b/application/Preorder/PreorderController.php
@@ -38,7 +38,6 @@ class PreorderController extends mfBaseController {
}
//var_dump($filter);exit;
//$pagination['maxItems'] = AddressModel::count($filter);
- $this->layout()->set("pagination", $pagination);
$campaign_filter = [];
@@ -52,8 +51,12 @@ class PreorderController extends mfBaseController {
}
//var_dump($filter);exit;
- $preorders = PreorderModel::search($filter);
+ $pagination['maxItems'] = PreorderModel::count($filter);
+ $this->layout()->set("pagination", $pagination);
+
+ $preorders = PreorderModel::search($filter, $pagination);
$this->layout()->set("preorders", $preorders);
+
}
private function getPreparedFilter($filter) {
diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php
index 7a16acb5f..63c59b948 100644
--- a/application/Preorder/PreorderModel.php
+++ b/application/Preorder/PreorderModel.php
@@ -108,7 +108,26 @@ class PreorderModel {
return null;
}
- public static function search($filter) {
+ public static function count($filter) {
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $sql = "SELECT COUNT(*) as cnt FROM `".FRONKDB_DBNAME."`.Preorder tt_preorder
+ LEFT JOIN `".ADDRESSDB_DBNAME."`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id)
+ WHERE $where
+ ";
+
+ mfLoghandler::singleton()->debug($sql);
+
+ $res = $db->query($sql);
+ if($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ return $data->cnt;
+ }
+ return 0;
+ }
+
+ public static function search($filter, $limit = false) {
$items = [];
$db = FronkDB::singleton();
@@ -120,6 +139,14 @@ class PreorderModel {
ORDER BY lastname, firstname
";
+ if(is_array($limit) && count($limit)) {
+ if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
+ $sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
+ } elseif(is_numeric($count)) {
+ $sql .= " LIMIT ".$limit['count'];
+ }
+ }
+
mfLoghandler::singleton()->debug($sql);
$res = $db->query($sql);