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               s.Bezeichnung   AS scope_name,
52               s.standortkuerzel AS scope_short
53          FROM overview_calendar b
54          JOIN standort s ON b.scope_id = s.StandortID
55         WHERE b.scope_id IN (%s)
56           AND b.ends_at   > :from
57           AND b.starts_at < :until
58           AND b.status = 'confirmed'
59         ORDER BY b.scope_id, b.starts_at, b.ends_at, b.id
60    ";
61
62    const SELECT_RANGE_UPDATED = "
63        SELECT b.id, b.scope_id, b.process_id, b.status,
64               b.starts_at, b.ends_at, b.updated_at,
65               s.Bezeichnung   AS scope_name,
66               s.standortkuerzel AS scope_short
67          FROM overview_calendar b
68          JOIN standort s ON b.scope_id = s.StandortID
69         WHERE b.scope_id IN (%s)
70           AND b.ends_at   > :from
71           AND b.starts_at < :until
72           AND b.updated_at > :updatedAfter
73           AND b.status IN ('confirmed','cancelled')
74         ORDER BY b.scope_id, b.starts_at, b.ends_at, b.id
75    ";
76
77    const SELECT_CHANGED_PIDS_SINCE = "
78        SELECT DISTINCT process_id
79          FROM overview_calendar
80         WHERE scope_id IN (%s)
81           AND updated_at > :updatedAfter
82    ";
83
84    const DELETE_ALL_BEFORE_END = "
85        DELETE FROM overview_calendar
86         WHERE ends_at < :threshold
87    ";
88}