Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
100.00% |
30 / 30 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
1 / 1 |
| ExchangeWaitingscope | |
100.00% |
30 / 30 |
|
100.00% |
2 / 2 |
4 | |
100.00% |
1 / 1 |
| getQuerySelectByDateTime | |
100.00% |
15 / 15 |
|
100.00% |
1 / 1 |
2 | |||
| getQueryUpdateByDateTime | |
100.00% |
15 / 15 |
|
100.00% |
1 / 1 |
2 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace BO\Zmsdb\Query; |
| 4 | |
| 5 | class ExchangeWaitingscope extends Base |
| 6 | { |
| 7 | /** |
| 8 | * @var String TABLE mysql table reference |
| 9 | */ |
| 10 | const TABLE = 'wartenrstatistik'; |
| 11 | |
| 12 | const WAITING_VALUES = " |
| 13 | AVG(echte_zeit_ab_00_spontan) as echte_zeit_ab_00_spontan, |
| 14 | AVG(echte_zeit_ab_01_spontan) as echte_zeit_ab_01_spontan, |
| 15 | AVG(echte_zeit_ab_02_spontan) as echte_zeit_ab_02_spontan, |
| 16 | AVG(echte_zeit_ab_03_spontan) as echte_zeit_ab_03_spontan, |
| 17 | AVG(echte_zeit_ab_04_spontan) as echte_zeit_ab_04_spontan, |
| 18 | AVG(echte_zeit_ab_05_spontan) as echte_zeit_ab_05_spontan, |
| 19 | AVG(echte_zeit_ab_06_spontan) as echte_zeit_ab_06_spontan, |
| 20 | AVG(echte_zeit_ab_07_spontan) as echte_zeit_ab_07_spontan, |
| 21 | AVG(echte_zeit_ab_08_spontan) as echte_zeit_ab_08_spontan, |
| 22 | AVG(echte_zeit_ab_09_spontan) as echte_zeit_ab_09_spontan, |
| 23 | AVG(echte_zeit_ab_10_spontan) as echte_zeit_ab_10_spontan, |
| 24 | AVG(echte_zeit_ab_11_spontan) as echte_zeit_ab_11_spontan, |
| 25 | AVG(echte_zeit_ab_12_spontan) as echte_zeit_ab_12_spontan, |
| 26 | AVG(echte_zeit_ab_13_spontan) as echte_zeit_ab_13_spontan, |
| 27 | AVG(echte_zeit_ab_14_spontan) as echte_zeit_ab_14_spontan, |
| 28 | AVG(echte_zeit_ab_15_spontan) as echte_zeit_ab_15_spontan, |
| 29 | AVG(echte_zeit_ab_16_spontan) as echte_zeit_ab_16_spontan, |
| 30 | AVG(echte_zeit_ab_17_spontan) as echte_zeit_ab_17_spontan, |
| 31 | AVG(echte_zeit_ab_18_spontan) as echte_zeit_ab_18_spontan, |
| 32 | AVG(echte_zeit_ab_19_spontan) as echte_zeit_ab_19_spontan, |
| 33 | AVG(echte_zeit_ab_20_spontan) as echte_zeit_ab_20_spontan, |
| 34 | AVG(echte_zeit_ab_21_spontan) as echte_zeit_ab_21_spontan, |
| 35 | AVG(echte_zeit_ab_22_spontan) as echte_zeit_ab_22_spontan, |
| 36 | AVG(echte_zeit_ab_23_spontan) as echte_zeit_ab_23_spontan, |
| 37 | AVG(zeit_ab_00_spontan) as zeit_ab_00_spontan, |
| 38 | AVG(zeit_ab_01_spontan) as zeit_ab_01_spontan, |
| 39 | AVG(zeit_ab_02_spontan) as zeit_ab_02_spontan, |
| 40 | AVG(zeit_ab_03_spontan) as zeit_ab_03_spontan, |
| 41 | AVG(zeit_ab_04_spontan) as zeit_ab_04_spontan, |
| 42 | AVG(zeit_ab_05_spontan) as zeit_ab_05_spontan, |
| 43 | AVG(zeit_ab_06_spontan) as zeit_ab_06_spontan, |
| 44 | AVG(zeit_ab_07_spontan) as zeit_ab_07_spontan, |
| 45 | AVG(zeit_ab_08_spontan) as zeit_ab_08_spontan, |
| 46 | AVG(zeit_ab_09_spontan) as zeit_ab_09_spontan, |
| 47 | AVG(zeit_ab_10_spontan) as zeit_ab_10_spontan, |
| 48 | AVG(zeit_ab_11_spontan) as zeit_ab_11_spontan, |
| 49 | AVG(zeit_ab_12_spontan) as zeit_ab_12_spontan, |
| 50 | AVG(zeit_ab_13_spontan) as zeit_ab_13_spontan, |
| 51 | AVG(zeit_ab_14_spontan) as zeit_ab_14_spontan, |
| 52 | AVG(zeit_ab_15_spontan) as zeit_ab_15_spontan, |
| 53 | AVG(zeit_ab_16_spontan) as zeit_ab_16_spontan, |
| 54 | AVG(zeit_ab_17_spontan) as zeit_ab_17_spontan, |
| 55 | AVG(zeit_ab_18_spontan) as zeit_ab_18_spontan, |
| 56 | AVG(zeit_ab_19_spontan) as zeit_ab_19_spontan, |
| 57 | AVG(zeit_ab_20_spontan) as zeit_ab_20_spontan, |
| 58 | AVG(zeit_ab_21_spontan) as zeit_ab_21_spontan, |
| 59 | AVG(zeit_ab_22_spontan) as zeit_ab_22_spontan, |
| 60 | AVG(zeit_ab_23_spontan) as zeit_ab_23_spontan, |
| 61 | AVG(wegezeit_ab_00_spontan) as wegezeit_ab_00_spontan, |
| 62 | AVG(wegezeit_ab_01_spontan) as wegezeit_ab_01_spontan, |
| 63 | AVG(wegezeit_ab_02_spontan) as wegezeit_ab_02_spontan, |
| 64 | AVG(wegezeit_ab_03_spontan) as wegezeit_ab_03_spontan, |
| 65 | AVG(wegezeit_ab_04_spontan) as wegezeit_ab_04_spontan, |
| 66 | AVG(wegezeit_ab_05_spontan) as wegezeit_ab_05_spontan, |
| 67 | AVG(wegezeit_ab_06_spontan) as wegezeit_ab_06_spontan, |
| 68 | AVG(wegezeit_ab_07_spontan) as wegezeit_ab_07_spontan, |
| 69 | AVG(wegezeit_ab_08_spontan) as wegezeit_ab_08_spontan, |
| 70 | AVG(wegezeit_ab_09_spontan) as wegezeit_ab_09_spontan, |
| 71 | AVG(wegezeit_ab_10_spontan) as wegezeit_ab_10_spontan, |
| 72 | AVG(wegezeit_ab_11_spontan) as wegezeit_ab_11_spontan, |
| 73 | AVG(wegezeit_ab_12_spontan) as wegezeit_ab_12_spontan, |
| 74 | AVG(wegezeit_ab_13_spontan) as wegezeit_ab_13_spontan, |
| 75 | AVG(wegezeit_ab_14_spontan) as wegezeit_ab_14_spontan, |
| 76 | AVG(wegezeit_ab_15_spontan) as wegezeit_ab_15_spontan, |
| 77 | AVG(wegezeit_ab_16_spontan) as wegezeit_ab_16_spontan, |
| 78 | AVG(wegezeit_ab_17_spontan) as wegezeit_ab_17_spontan, |
| 79 | AVG(wegezeit_ab_18_spontan) as wegezeit_ab_18_spontan, |
| 80 | AVG(wegezeit_ab_19_spontan) as wegezeit_ab_19_spontan, |
| 81 | AVG(wegezeit_ab_20_spontan) as wegezeit_ab_20_spontan, |
| 82 | AVG(wegezeit_ab_21_spontan) as wegezeit_ab_21_spontan, |
| 83 | AVG(wegezeit_ab_22_spontan) as wegezeit_ab_22_spontan, |
| 84 | AVG(wegezeit_ab_23_spontan) as wegezeit_ab_23_spontan, |
| 85 | MAX(wartende_ab_00_spontan) as wartende_ab_00_spontan, |
| 86 | MAX(wartende_ab_01_spontan) as wartende_ab_01_spontan, |
| 87 | MAX(wartende_ab_02_spontan) as wartende_ab_02_spontan, |
| 88 | MAX(wartende_ab_03_spontan) as wartende_ab_03_spontan, |
| 89 | MAX(wartende_ab_04_spontan) as wartende_ab_04_spontan, |
| 90 | MAX(wartende_ab_05_spontan) as wartende_ab_05_spontan, |
| 91 | MAX(wartende_ab_06_spontan) as wartende_ab_06_spontan, |
| 92 | MAX(wartende_ab_07_spontan) as wartende_ab_07_spontan, |
| 93 | MAX(wartende_ab_08_spontan) as wartende_ab_08_spontan, |
| 94 | MAX(wartende_ab_09_spontan) as wartende_ab_09_spontan, |
| 95 | MAX(wartende_ab_10_spontan) as wartende_ab_10_spontan, |
| 96 | MAX(wartende_ab_11_spontan) as wartende_ab_11_spontan, |
| 97 | MAX(wartende_ab_12_spontan) as wartende_ab_12_spontan, |
| 98 | MAX(wartende_ab_13_spontan) as wartende_ab_13_spontan, |
| 99 | MAX(wartende_ab_14_spontan) as wartende_ab_14_spontan, |
| 100 | MAX(wartende_ab_15_spontan) as wartende_ab_15_spontan, |
| 101 | MAX(wartende_ab_16_spontan) as wartende_ab_16_spontan, |
| 102 | MAX(wartende_ab_17_spontan) as wartende_ab_17_spontan, |
| 103 | MAX(wartende_ab_18_spontan) as wartende_ab_18_spontan, |
| 104 | MAX(wartende_ab_19_spontan) as wartende_ab_19_spontan, |
| 105 | MAX(wartende_ab_20_spontan) as wartende_ab_20_spontan, |
| 106 | MAX(wartende_ab_21_spontan) as wartende_ab_21_spontan, |
| 107 | MAX(wartende_ab_22_spontan) as wartende_ab_22_spontan, |
| 108 | MAX(wartende_ab_23_spontan) as wartende_ab_23_spontan, |
| 109 | AVG(echte_zeit_ab_00_termin) as echte_zeit_ab_00_termin, |
| 110 | AVG(echte_zeit_ab_01_termin) as echte_zeit_ab_01_termin, |
| 111 | AVG(echte_zeit_ab_02_termin) as echte_zeit_ab_02_termin, |
| 112 | AVG(echte_zeit_ab_03_termin) as echte_zeit_ab_03_termin, |
| 113 | AVG(echte_zeit_ab_04_termin) as echte_zeit_ab_04_termin, |
| 114 | AVG(echte_zeit_ab_05_termin) as echte_zeit_ab_05_termin, |
| 115 | AVG(echte_zeit_ab_06_termin) as echte_zeit_ab_06_termin, |
| 116 | AVG(echte_zeit_ab_07_termin) as echte_zeit_ab_07_termin, |
| 117 | AVG(echte_zeit_ab_08_termin) as echte_zeit_ab_08_termin, |
| 118 | AVG(echte_zeit_ab_09_termin) as echte_zeit_ab_09_termin, |
| 119 | AVG(echte_zeit_ab_10_termin) as echte_zeit_ab_10_termin, |
| 120 | AVG(echte_zeit_ab_11_termin) as echte_zeit_ab_11_termin, |
| 121 | AVG(echte_zeit_ab_12_termin) as echte_zeit_ab_12_termin, |
| 122 | AVG(echte_zeit_ab_13_termin) as echte_zeit_ab_13_termin, |
| 123 | AVG(echte_zeit_ab_14_termin) as echte_zeit_ab_14_termin, |
| 124 | AVG(echte_zeit_ab_15_termin) as echte_zeit_ab_15_termin, |
| 125 | AVG(echte_zeit_ab_16_termin) as echte_zeit_ab_16_termin, |
| 126 | AVG(echte_zeit_ab_17_termin) as echte_zeit_ab_17_termin, |
| 127 | AVG(echte_zeit_ab_18_termin) as echte_zeit_ab_18_termin, |
| 128 | AVG(echte_zeit_ab_19_termin) as echte_zeit_ab_19_termin, |
| 129 | AVG(echte_zeit_ab_20_termin) as echte_zeit_ab_20_termin, |
| 130 | AVG(echte_zeit_ab_21_termin) as echte_zeit_ab_21_termin, |
| 131 | AVG(echte_zeit_ab_22_termin) as echte_zeit_ab_22_termin, |
| 132 | AVG(echte_zeit_ab_23_termin) as echte_zeit_ab_23_termin, |
| 133 | AVG(zeit_ab_00_termin) as zeit_ab_00_termin, |
| 134 | AVG(zeit_ab_01_termin) as zeit_ab_01_termin, |
| 135 | AVG(zeit_ab_02_termin) as zeit_ab_02_termin, |
| 136 | AVG(zeit_ab_03_termin) as zeit_ab_03_termin, |
| 137 | AVG(zeit_ab_04_termin) as zeit_ab_04_termin, |
| 138 | AVG(zeit_ab_05_termin) as zeit_ab_05_termin, |
| 139 | AVG(zeit_ab_06_termin) as zeit_ab_06_termin, |
| 140 | AVG(zeit_ab_07_termin) as zeit_ab_07_termin, |
| 141 | AVG(zeit_ab_08_termin) as zeit_ab_08_termin, |
| 142 | AVG(zeit_ab_09_termin) as zeit_ab_09_termin, |
| 143 | AVG(zeit_ab_10_termin) as zeit_ab_10_termin, |
| 144 | AVG(zeit_ab_11_termin) as zeit_ab_11_termin, |
| 145 | AVG(zeit_ab_12_termin) as zeit_ab_12_termin, |
| 146 | AVG(zeit_ab_13_termin) as zeit_ab_13_termin, |
| 147 | AVG(zeit_ab_14_termin) as zeit_ab_14_termin, |
| 148 | AVG(zeit_ab_15_termin) as zeit_ab_15_termin, |
| 149 | AVG(zeit_ab_16_termin) as zeit_ab_16_termin, |
| 150 | AVG(zeit_ab_17_termin) as zeit_ab_17_termin, |
| 151 | AVG(zeit_ab_18_termin) as zeit_ab_18_termin, |
| 152 | AVG(zeit_ab_19_termin) as zeit_ab_19_termin, |
| 153 | AVG(zeit_ab_20_termin) as zeit_ab_20_termin, |
| 154 | AVG(zeit_ab_21_termin) as zeit_ab_21_termin, |
| 155 | AVG(zeit_ab_22_termin) as zeit_ab_22_termin, |
| 156 | AVG(zeit_ab_23_termin) as zeit_ab_23_termin, |
| 157 | AVG(wegezeit_ab_00_termin) as wegezeit_ab_00_termin, |
| 158 | AVG(wegezeit_ab_01_termin) as wegezeit_ab_01_termin, |
| 159 | AVG(wegezeit_ab_02_termin) as wegezeit_ab_02_termin, |
| 160 | AVG(wegezeit_ab_03_termin) as wegezeit_ab_03_termin, |
| 161 | AVG(wegezeit_ab_04_termin) as wegezeit_ab_04_termin, |
| 162 | AVG(wegezeit_ab_05_termin) as wegezeit_ab_05_termin, |
| 163 | AVG(wegezeit_ab_06_termin) as wegezeit_ab_06_termin, |
| 164 | AVG(wegezeit_ab_07_termin) as wegezeit_ab_07_termin, |
| 165 | AVG(wegezeit_ab_08_termin) as wegezeit_ab_08_termin, |
| 166 | AVG(wegezeit_ab_09_termin) as wegezeit_ab_09_termin, |
| 167 | AVG(wegezeit_ab_10_termin) as wegezeit_ab_10_termin, |
| 168 | AVG(wegezeit_ab_11_termin) as wegezeit_ab_11_termin, |
| 169 | AVG(wegezeit_ab_12_termin) as wegezeit_ab_12_termin, |
| 170 | AVG(wegezeit_ab_13_termin) as wegezeit_ab_13_termin, |
| 171 | AVG(wegezeit_ab_14_termin) as wegezeit_ab_14_termin, |
| 172 | AVG(wegezeit_ab_15_termin) as wegezeit_ab_15_termin, |
| 173 | AVG(wegezeit_ab_16_termin) as wegezeit_ab_16_termin, |
| 174 | AVG(wegezeit_ab_17_termin) as wegezeit_ab_17_termin, |
| 175 | AVG(wegezeit_ab_18_termin) as wegezeit_ab_18_termin, |
| 176 | AVG(wegezeit_ab_19_termin) as wegezeit_ab_19_termin, |
| 177 | AVG(wegezeit_ab_20_termin) as wegezeit_ab_20_termin, |
| 178 | AVG(wegezeit_ab_21_termin) as wegezeit_ab_21_termin, |
| 179 | AVG(wegezeit_ab_22_termin) as wegezeit_ab_22_termin, |
| 180 | AVG(wegezeit_ab_23_termin) as wegezeit_ab_23_termin, |
| 181 | MAX(wartende_ab_00_termin) as wartende_ab_00_termin, |
| 182 | MAX(wartende_ab_01_termin) as wartende_ab_01_termin, |
| 183 | MAX(wartende_ab_02_termin) as wartende_ab_02_termin, |
| 184 | MAX(wartende_ab_03_termin) as wartende_ab_03_termin, |
| 185 | MAX(wartende_ab_04_termin) as wartende_ab_04_termin, |
| 186 | MAX(wartende_ab_05_termin) as wartende_ab_05_termin, |
| 187 | MAX(wartende_ab_06_termin) as wartende_ab_06_termin, |
| 188 | MAX(wartende_ab_07_termin) as wartende_ab_07_termin, |
| 189 | MAX(wartende_ab_08_termin) as wartende_ab_08_termin, |
| 190 | MAX(wartende_ab_09_termin) as wartende_ab_09_termin, |
| 191 | MAX(wartende_ab_10_termin) as wartende_ab_10_termin, |
| 192 | MAX(wartende_ab_11_termin) as wartende_ab_11_termin, |
| 193 | MAX(wartende_ab_12_termin) as wartende_ab_12_termin, |
| 194 | MAX(wartende_ab_13_termin) as wartende_ab_13_termin, |
| 195 | MAX(wartende_ab_14_termin) as wartende_ab_14_termin, |
| 196 | MAX(wartende_ab_15_termin) as wartende_ab_15_termin, |
| 197 | MAX(wartende_ab_16_termin) as wartende_ab_16_termin, |
| 198 | MAX(wartende_ab_17_termin) as wartende_ab_17_termin, |
| 199 | MAX(wartende_ab_18_termin) as wartende_ab_18_termin, |
| 200 | MAX(wartende_ab_19_termin) as wartende_ab_19_termin, |
| 201 | MAX(wartende_ab_20_termin) as wartende_ab_20_termin, |
| 202 | MAX(wartende_ab_21_termin) as wartende_ab_21_termin, |
| 203 | MAX(wartende_ab_22_termin) as wartende_ab_22_termin, |
| 204 | MAX(wartende_ab_23_termin) as wartende_ab_23_termin |
| 205 | "; |
| 206 | |
| 207 | const QUERY_READ_DAY = " |
| 208 | SELECT |
| 209 | `datum` AS datum, |
| 210 | " . self::WAITING_VALUES . " |
| 211 | FROM " . self::TABLE . " |
| 212 | WHERE |
| 213 | `standortid` = :scopeid AND |
| 214 | `datum` BETWEEN :datestart AND :dateend |
| 215 | GROUP BY `datum` |
| 216 | ORDER BY `datum` ASC |
| 217 | "; |
| 218 | |
| 219 | //PLEASE REMEMBER THE REALY COOL DYNAMIC VERSION |
| 220 | const QUERY_READ_MONTH = " |
| 221 | SELECT |
| 222 | DATE_FORMAT(`datum`, '%Y-%m') as datum, |
| 223 | " . self::WAITING_VALUES . " |
| 224 | FROM " . self::TABLE . " |
| 225 | WHERE |
| 226 | `standortid` = :scopeid AND |
| 227 | `datum` BETWEEN :datestart AND :dateend |
| 228 | GROUP BY DATE_FORMAT(`datum`, '%Y-%m') |
| 229 | ORDER BY DATE_FORMAT(`datum`, '%Y-%m') ASC |
| 230 | "; |
| 231 | |
| 232 | const QUERY_READ_QUARTER = " |
| 233 | SELECT |
| 234 | CONCAT(YEAR(w.`datum`),'-',QUARTER(w.`datum`)) as datum, |
| 235 | " . self::WAITING_VALUES . " |
| 236 | FROM " . self::TABLE . " w |
| 237 | WHERE |
| 238 | w.`standortid` = :scopeid AND |
| 239 | w.`datum` BETWEEN :datestart AND :dateend |
| 240 | GROUP BY CONCAT(YEAR(w.`datum`),'-',QUARTER(w.`datum`)) |
| 241 | ORDER BY CONCAT(YEAR(w.`datum`),'-',QUARTER(w.`datum`)) ASC |
| 242 | "; |
| 243 | |
| 244 | const QUERY_SUBJECTS = ' |
| 245 | SELECT |
| 246 | scope.`StandortID` as subject, |
| 247 | periodstart, |
| 248 | periodend, |
| 249 | CONCAT(scope.`Bezeichnung`, " ", scope.`standortinfozeile`) AS description |
| 250 | FROM ' . Scope::TABLE . ' AS scope |
| 251 | INNER JOIN |
| 252 | ( |
| 253 | SELECT |
| 254 | w.standortid as scopeid, |
| 255 | MIN(w.`datum`) AS periodstart, |
| 256 | MAX(w.`datum`) AS periodend |
| 257 | FROM ' . self::TABLE . ' w |
| 258 | group by scopeid |
| 259 | ) |
| 260 | maxAndminDate ON maxAndminDate.`scopeid` = scope.`StandortID` |
| 261 | GROUP BY scope.`StandortID` |
| 262 | ORDER BY scope.`StandortID` ASC, periodstart DESC |
| 263 | '; |
| 264 | |
| 265 | const QUERY_PERIODLIST_DAY = ' |
| 266 | SELECT |
| 267 | `datum` |
| 268 | FROM ' . self::TABLE . ' AS w |
| 269 | WHERE `standortid` = :scopeid |
| 270 | ORDER BY `datum` ASC |
| 271 | '; |
| 272 | |
| 273 | const QUERY_PERIODLIST_MONTH = ' |
| 274 | SELECT DISTINCT DATE_FORMAT(`datum`,"%Y-%m") AS date |
| 275 | FROM ' . self::TABLE . ' AS w |
| 276 | WHERE `standortid` = :scopeid |
| 277 | ORDER BY `datum` ASC |
| 278 | '; |
| 279 | |
| 280 | const QUERY_CREATE = ' |
| 281 | INSERT INTO ' . self::TABLE . ' SET |
| 282 | `standortid` = :scopeid, |
| 283 | `datum` = :date |
| 284 | '; |
| 285 | |
| 286 | /** |
| 287 | * For backward compatibility on db table optimization, we have to convert the field name |
| 288 | * Drawback: No prepared statement using the date |
| 289 | */ |
| 290 | public static function getQuerySelectByDateTime(\DateTimeInterface $date, bool $withAppointment = false) |
| 291 | { |
| 292 | $suffix = $withAppointment ? 'termin' : 'spontan'; |
| 293 | |
| 294 | $query = sprintf( |
| 295 | "SELECT |
| 296 | `zeit_ab_%s_%s` AS waitingcalculated, |
| 297 | `wartende_ab_%s_%s` AS waitingcount, |
| 298 | `echte_zeit_ab_%s_%s` AS waitingtime, |
| 299 | `wegezeit_ab_%s_%s` AS waytime |
| 300 | FROM %s |
| 301 | WHERE `standortid` = :scopeid |
| 302 | AND `datum` = :date |
| 303 | AND :hour IS NOT NULL |
| 304 | ", |
| 305 | $date->format('H'), |
| 306 | $suffix, |
| 307 | $date->format('H'), |
| 308 | $suffix, |
| 309 | $date->format('H'), |
| 310 | $suffix, |
| 311 | $date->format('H'), |
| 312 | $suffix, |
| 313 | self::TABLE |
| 314 | ); |
| 315 | return $query; |
| 316 | } |
| 317 | |
| 318 | /** |
| 319 | * For backward compatibility on db table optimization, we have to convert the field name |
| 320 | * Drawback: No prepared statement using the date |
| 321 | */ |
| 322 | public static function getQueryUpdateByDateTime(\DateTimeInterface $date, bool $withAppointment = false) |
| 323 | { |
| 324 | $suffix = $withAppointment ? 'termin' : 'spontan'; |
| 325 | |
| 326 | $query = sprintf( |
| 327 | "UPDATE %s |
| 328 | SET |
| 329 | `zeit_ab_%s_%s`= :waitingcalculated, |
| 330 | `wartende_ab_%s_%s` = :waitingcount, |
| 331 | `echte_zeit_ab_%s_%s` = :waitingtime, |
| 332 | `wegezeit_ab_%s_%s` = :waytime |
| 333 | WHERE `standortid` = :scopeid |
| 334 | AND `datum` = :date |
| 335 | AND :hour IS NOT NULL |
| 336 | ", |
| 337 | self::TABLE, |
| 338 | $date->format('H'), |
| 339 | $suffix, |
| 340 | $date->format('H'), |
| 341 | $suffix, |
| 342 | $date->format('H'), |
| 343 | $suffix, |
| 344 | $date->format('H'), |
| 345 | $suffix |
| 346 | ); |
| 347 | return $query; |
| 348 | } |
| 349 | } |