Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
OverviewCalendar
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
1<?php
2
3namespace BO\Zmsdb\Query;
4
5class OverviewCalendar extends Base
6{
7    const TABLE = 'overview_calendar';
8
9    const INSERT_ONE = "
10        INSERT INTO overview_calendar
11            (scope_id, process_id, status, starts_at, ends_at)
12        VALUES
13            (:scope_id, :process_id, :status, :starts_at, :ends_at)
14    ";
15
16    const CANCEL_BY_PROCESS = "
17        UPDATE overview_calendar
18           SET status     = 'cancelled',
19               updated_at = CURRENT_TIMESTAMP
20         WHERE process_id = :process_id
21           AND status    <> 'cancelled'
22";
23
24    const UPDATE_BY_PROCESS = "
25        UPDATE overview_calendar
26           SET scope_id   = :scope_id,
27               starts_at  = :starts_at,
28               ends_at    = :ends_at,
29               updated_at = CURRENT_TIMESTAMP
30         WHERE process_id = :process_id
31           AND status     = 'confirmed'
32    ";
33
34    const SELECT_MAX_UPDATED = "
35        SELECT MAX(updated_at) AS max_updated
36          FROM overview_calendar
37         WHERE scope_id IN (%s)
38           AND ends_at   > :from
39           AND starts_at < :until
40    ";
41
42    const SELECT_MAX_UPDATED_GLOBAL = "
43        SELECT MAX(updated_at) AS max_updated
44          FROM overview_calendar
45         WHERE scope_id IN (%s)
46    ";
47
48    const SELECT_RANGE = "
49        SELECT b.id, b.scope_id, b.process_id, b.status,
50               b.starts_at, b.ends_at, b.updated_at,
51               p.displayNumber AS display_number,
52               s.Bezeichnung   AS scope_name,
53               s.standortkuerzel AS scope_short
54          FROM overview_calendar b
55          JOIN standort s ON b.scope_id = s.StandortID
56          LEFT JOIN buerger p ON b.process_id = p.BuergerID
57         WHERE b.scope_id IN (%s)
58           AND b.ends_at   > :from
59           AND b.starts_at < :until
60           AND b.status = 'confirmed'
61         ORDER BY b.scope_id, b.starts_at, b.ends_at, b.id
62    ";
63
64    const SELECT_RANGE_UPDATED = "
65        SELECT b.id, b.scope_id, b.process_id, b.status,
66               b.starts_at, b.ends_at, b.updated_at,
67               p.displayNumber AS display_number,
68               s.Bezeichnung   AS scope_name,
69               s.standortkuerzel AS scope_short
70          FROM overview_calendar b
71          JOIN standort s ON b.scope_id = s.StandortID
72          LEFT JOIN buerger p ON b.process_id = p.BuergerID
73         WHERE b.scope_id IN (%s)
74           AND b.ends_at   > :from
75           AND b.starts_at < :until
76           AND b.updated_at > :updatedAfter
77           AND b.status IN ('confirmed','cancelled')
78         ORDER BY b.scope_id, b.starts_at, b.ends_at, b.id
79    ";
80
81    const SELECT_CHANGED_PIDS_SINCE = "
82        SELECT DISTINCT process_id
83          FROM overview_calendar
84         WHERE scope_id IN (%s)
85           AND updated_at > :updatedAfter
86    ";
87
88    const DELETE_ALL_BEFORE_END = "
89        DELETE FROM overview_calendar
90         WHERE ends_at < :threshold
91    ";
92}