Browse code

Add getReservedBehaelter method to slots model

Benjamin Roth authored on03/09/2024 10:30:32
Showing1 changed files
... ...
@@ -142,4 +142,36 @@ class WeinanlieferungSlotsModel extends Model
142 142
 
143 143
         return (int) $this->behaelter - $intReserved;
144 144
     }
145
+
146
+    public function getReservedBehaelter(?int $memberId=null, bool $exclude=false)
147
+    {
148
+        /** @var Connection $db */
149
+        $db = Controller::getContainer()->get('database_connection');
150
+
151
+        $query = $db->createQueryBuilder()
152
+            ->from("tl_vr_wa_reservation")
153
+            ->addSelect("SUM(behaelter)")
154
+            ->andWhere("pid = :pid");
155
+
156
+        $arrParams = ['pid'=>$this->id];
157
+
158
+        if ($memberId !== null)
159
+        {
160
+            if ($exclude)
161
+            {
162
+                $query->andWhere("uid != :uid");
163
+            } else
164
+            {
165
+                $query->andWhere("uid = :uid");
166
+            }
167
+            $arrParams['uid'] = $memberId;
168
+        }
169
+
170
+        $ReservedBehaelter = $query->setParameters($arrParams)
171
+            ->executeQuery();
172
+
173
+        $intReserved = $ReservedBehaelter->fetchOne();
174
+
175
+        return (int) $intReserved;
176
+    }
145 177
 }