Browse code

Update

Benjamin Roth authored on31/08/2023 14:33:38
Showing1 changed files
... ...
@@ -98,6 +98,12 @@ class WeinanlieferungSlotsModel extends Model
98 98
             $arrOptions['order'] = "$t.time ASC";
99 99
         }
100 100
 
101
+        if (isset($arrOptions['column']))
102
+        {
103
+            $arrColumns = array_merge($arrColumns,$arrOptions['column']);
104
+            $arrOptions = array_diff_key($arrOptions,['column'=>true]);
105
+        }
106
+
101 107
         return static::findBy($arrColumns,null,$arrOptions);
102 108
     }
103 109
 
Browse code

Update

Benjamin Roth authored on30/08/2023 22:08:09
Showing1 changed files
... ...
@@ -35,8 +35,9 @@ class WeinanlieferungSlotsModel extends Model
35 35
 
36 36
         // Skip unsaved elements (see #2708)
37 37
         $arrColumns[] = "$t.tstamp!=0";
38
+        $arrColumns[] = "$t.published='1'";
38 39
 
39
-        $arrColumns[] = "$t.buchbar='1' AND $t.buchbar_bis>$time";
40
+        $arrColumns[] = "($t.buchbar_ab<=$time OR $t.buchbar_ab = 0 OR $t.buchbar_ab IS NULL) AND $t.buchbar_bis>$time";
40 41
 
41 42
         if (!isset($arrOptions['order']))
42 43
         {
... ...
@@ -54,8 +55,9 @@ class WeinanlieferungSlotsModel extends Model
54 55
 
55 56
         // Skip unsaved elements (see #2708)
56 57
         $arrColumns[] = "$t.tstamp!=0";
58
+        $arrColumns[] = "$t.published='1'";
57 59
 
58
-        $arrColumns[] = "$t.buchbar='1' AND $t.buchbar_bis>$time";
60
+        $arrColumns[] = "($t.buchbar_ab<=$time OR $t.buchbar_ab = 0 OR $t.buchbar_ab IS NULL) AND $t.buchbar_bis>$time";
59 61
 
60 62
         if (!isset($arrOptions['order']))
61 63
         {
... ...
@@ -87,8 +89,9 @@ class WeinanlieferungSlotsModel extends Model
87 89
 
88 90
         // Skip unsaved elements (see #2708)
89 91
         $arrColumns[] = "$t.tstamp!=0";
92
+        $arrColumns[] = "$t.published='1'";
90 93
 
91
-        $arrColumns[] = "$t.buchbar='1' AND $t.buchbar_bis>$time";
94
+        $arrColumns[] = "($t.buchbar_ab<=$time OR $t.buchbar_ab = 0 OR $t.buchbar_ab IS NULL) AND $t.buchbar_bis>$time";
92 95
 
93 96
         if (!isset($arrOptions['order']))
94 97
         {
... ...
@@ -108,7 +111,7 @@ class WeinanlieferungSlotsModel extends Model
108 111
             $arrOptions['order'] = "$t.time ASC";
109 112
         }
110 113
 
111
-        return static::findBy(array("$t.time >= ?","$t.tstamp!=0","$t.buchbar='1' AND $t.buchbar_bis > ?"), [$time,$time], $arrOptions);
114
+        return static::findBy(array("$t.time >= ?","$t.tstamp!=0","$t.published='1' AND ($t.buchbar_ab<=$time OR $t.buchbar_ab = 0 OR $t.buchbar_ab IS NULL) AND $t.buchbar_bis > ?"), [$time,$time,$time], $arrOptions);
112 115
     }
113 116
 
114 117
     public function getAvailableBehaelter(?int $intOffset=null)
Browse code

Update

Benjamin Roth authored on17/08/2023 13:08:09
Showing1 changed files
... ...
@@ -103,6 +103,11 @@ class WeinanlieferungSlotsModel extends Model
103 103
         $t = static::$strTable;
104 104
         $time = Date::floorToMinute();
105 105
 
106
+        if (!isset($arrOptions['order']))
107
+        {
108
+            $arrOptions['order'] = "$t.time ASC";
109
+        }
110
+
106 111
         return static::findBy(array("$t.time >= ?","$t.tstamp!=0","$t.buchbar='1' AND $t.buchbar_bis > ?"), [$time,$time], $arrOptions);
107 112
     }
108 113
 
Browse code

Update

Benjamin Roth authored on17/08/2023 00:07:19
Showing1 changed files
... ...
@@ -14,6 +14,7 @@ namespace vonRotenberg\WeinanlieferungBundle\Model;
14 14
 
15 15
 use Contao\Controller;
16 16
 use Contao\Database;
17
+use Contao\Date;
17 18
 use Contao\Model;
18 19
 use Contao\Model\Registry;
19 20
 use Doctrine\DBAL\Connection;
... ...
@@ -97,6 +98,14 @@ class WeinanlieferungSlotsModel extends Model
97 98
         return static::findBy($arrColumns,null,$arrOptions);
98 99
     }
99 100
 
101
+    public static function findAllFuturePublished(array $arrOptions=array())
102
+    {
103
+        $t = static::$strTable;
104
+        $time = Date::floorToMinute();
105
+
106
+        return static::findBy(array("$t.time >= ?","$t.tstamp!=0","$t.buchbar='1' AND $t.buchbar_bis > ?"), [$time,$time], $arrOptions);
107
+    }
108
+
100 109
     public function getAvailableBehaelter(?int $intOffset=null)
101 110
     {
102 111
         /** @var Connection $db */
Browse code

Update

Benjamin Roth authored on09/08/2023 16:04:53
Showing1 changed files
... ...
@@ -97,7 +97,7 @@ class WeinanlieferungSlotsModel extends Model
97 97
         return static::findBy($arrColumns,null,$arrOptions);
98 98
     }
99 99
 
100
-    public function getAvailableBehaelter()
100
+    public function getAvailableBehaelter(?int $intOffset=null)
101 101
     {
102 102
         /** @var Connection $db */
103 103
         $db = Controller::getContainer()->get('database_connection');
... ...
@@ -112,6 +112,11 @@ class WeinanlieferungSlotsModel extends Model
112 112
             $intReserved = 0;
113 113
         }
114 114
 
115
+        if ($intOffset > 0)
116
+        {
117
+            $intReserved += $intOffset;
118
+        }
119
+
115 120
         return (int) $this->behaelter - $intReserved;
116 121
     }
117 122
 }
Browse code

Update

Benjamin Roth authored on09/08/2023 01:02:13
Showing1 changed files
... ...
@@ -12,9 +12,11 @@ declare(strict_types=1);
12 12
 
13 13
 namespace vonRotenberg\WeinanlieferungBundle\Model;
14 14
 
15
+use Contao\Controller;
15 16
 use Contao\Database;
16 17
 use Contao\Model;
17 18
 use Contao\Model\Registry;
19
+use Doctrine\DBAL\Connection;
18 20
 
19 21
 class WeinanlieferungSlotsModel extends Model
20 22
 {
... ...
@@ -40,7 +42,7 @@ class WeinanlieferungSlotsModel extends Model
40 42
             $arrOptions['order'] = "$t.time ASC";
41 43
         }
42 44
 
43
-        return static::findBy($arrColumns, $intId, $arrOptions);
45
+        return static::findOneBy($arrColumns, $intId, $arrOptions);
44 46
     }
45 47
 
46 48
     public static function findPublishedByPid($intPid, array $arrOptions=array())
... ...
@@ -94,4 +96,22 @@ class WeinanlieferungSlotsModel extends Model
94 96
 
95 97
         return static::findBy($arrColumns,null,$arrOptions);
96 98
     }
99
+
100
+    public function getAvailableBehaelter()
101
+    {
102
+        /** @var Connection $db */
103
+        $db = Controller::getContainer()->get('database_connection');
104
+
105
+        $ReservedBehaelter = $db->prepare("SELECT SUM(behaelter) FROM tl_vr_wa_reservation WHERE pid = ?")
106
+            ->executeQuery([$this->id]);
107
+
108
+        $intReserved = $ReservedBehaelter->fetchOne();
109
+
110
+        if ($intReserved === null)
111
+        {
112
+            $intReserved = 0;
113
+        }
114
+
115
+        return (int) $this->behaelter - $intReserved;
116
+    }
97 117
 }
Browse code

Update

Benjamin Roth authored on08/08/2023 12:03:12
Showing1 changed files
... ...
@@ -24,6 +24,25 @@ class WeinanlieferungSlotsModel extends Model
24 24
      */
25 25
     protected static $strTable = 'tl_vr_wa_slot';
26 26
 
27
+    public static function findPublishedById($intId, array $arrOptions=array())
28
+    {
29
+        $time = time();
30
+        $t = static::$strTable;
31
+        $arrColumns = array("$t.id=?");
32
+
33
+        // Skip unsaved elements (see #2708)
34
+        $arrColumns[] = "$t.tstamp!=0";
35
+
36
+        $arrColumns[] = "$t.buchbar='1' AND $t.buchbar_bis>$time";
37
+
38
+        if (!isset($arrOptions['order']))
39
+        {
40
+            $arrOptions['order'] = "$t.time ASC";
41
+        }
42
+
43
+        return static::findBy($arrColumns, $intId, $arrOptions);
44
+    }
45
+
27 46
     public static function findPublishedByPid($intPid, array $arrOptions=array())
28 47
     {
29 48
         $time = time();
Browse code

Update

Benjamin Roth authored on07/08/2023 16:41:30
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,78 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+ * This file is part of contao-weinanlieferung-bundle.
7
+ *
8
+ * (c) vonRotenberg
9
+ *
10
+ * @license commercial
11
+ */
12
+
13
+namespace vonRotenberg\WeinanlieferungBundle\Model;
14
+
15
+use Contao\Database;
16
+use Contao\Model;
17
+use Contao\Model\Registry;
18
+
19
+class WeinanlieferungSlotsModel extends Model
20
+{
21
+    /**
22
+     * Table name
23
+     * @var string
24
+     */
25
+    protected static $strTable = 'tl_vr_wa_slot';
26
+
27
+    public static function findPublishedByPid($intPid, array $arrOptions=array())
28
+    {
29
+        $time = time();
30
+        $t = static::$strTable;
31
+        $arrColumns = array("$t.pid=?");
32
+
33
+        // Skip unsaved elements (see #2708)
34
+        $arrColumns[] = "$t.tstamp!=0";
35
+
36
+        $arrColumns[] = "$t.buchbar='1' AND $t.buchbar_bis>$time";
37
+
38
+        if (!isset($arrOptions['order']))
39
+        {
40
+            $arrOptions['order'] = "$t.time ASC";
41
+        }
42
+
43
+        return static::findBy($arrColumns, $intPid, $arrOptions);
44
+    }
45
+
46
+    public static function findMultiplePublishedByPids(array $arrPids, array $arrOptions=array())
47
+    {
48
+        if (empty($arrPids) || !\is_array($arrPids))
49
+        {
50
+            return null;
51
+        }
52
+
53
+        $arrPids = array_filter($arrPids, function($var) {
54
+            return is_numeric($var);
55
+        });
56
+
57
+        if (empty($arrPids))
58
+        {
59
+            return null;
60
+        }
61
+
62
+        $time = time();
63
+        $t = static::$strTable;
64
+        $arrColumns = array("$t.pid IN (".implode(',',$arrPids).")");
65
+
66
+        // Skip unsaved elements (see #2708)
67
+        $arrColumns[] = "$t.tstamp!=0";
68
+
69
+        $arrColumns[] = "$t.buchbar='1' AND $t.buchbar_bis>$time";
70
+
71
+        if (!isset($arrOptions['order']))
72
+        {
73
+            $arrOptions['order'] = "$t.time ASC";
74
+        }
75
+
76
+        return static::findBy($arrColumns,null,$arrOptions);
77
+    }
78
+}