@@ 171-199 (lines=29) @@ | ||
168 | * @param int|null $rule |
|
169 | * @return int |
|
170 | */ |
|
171 | public function count_added_violations($run_former, $run_latter, $rule = null) { |
|
172 | $b = $this->result_db->builder(); |
|
173 | $q = $b |
|
174 | ->select( |
|
175 | "(SELECT COUNT (*) ". |
|
176 | "FROM violation_locations vls ". |
|
177 | "WHERE vls.run_id = :former AND vls.violation_id = vs.id) cnt_former") |
|
178 | ->addSelect( |
|
179 | "(SELECT COUNT (*) ". |
|
180 | "FROM violation_locations vls ". |
|
181 | "WHERE vls.run_id = :latter AND vls.violation_id = vs.id) cnt_latter") |
|
182 | ->from("violations", "vs") |
|
183 | ->where("cnt_former < cnt_latter") |
|
184 | ->setParameter("former", $run_former) |
|
185 | ->setParameter("latter", $run_latter); |
|
186 | if ($rule !== null) { |
|
187 | $q = $q |
|
188 | ->andWhere("vs.rule_id = :rule") |
|
189 | ->setParameter("rule", $rule); |
|
190 | } |
|
191 | $rows = $q->execute(); |
|
192 | $res = 0; |
|
193 | while($r = $rows->fetch()) { |
|
194 | if ((int)$r["cnt_latter"] > (int)$r["cnt_former"]) { |
|
195 | $res += (int)$r["cnt_latter"] - (int)$r["cnt_former"]; |
|
196 | } |
|
197 | } |
|
198 | return $res; |
|
199 | } |
|
200 | ||
201 | /** |
|
202 | * Get the amount of violations that were resolved in a run. |
|
@@ 209-237 (lines=29) @@ | ||
206 | * @param int|null $rule |
|
207 | * @return int |
|
208 | */ |
|
209 | public function count_resolved_violations($run_former, $run_latter, $rule = null) { |
|
210 | $b = $this->result_db->builder(); |
|
211 | $q = $b |
|
212 | ->select( |
|
213 | "(SELECT COUNT (*) ". |
|
214 | "FROM violation_locations vls ". |
|
215 | "WHERE vls.run_id = :former AND vls.violation_id = vs.id) cnt_former") |
|
216 | ->addSelect( |
|
217 | "(SELECT COUNT (*) ". |
|
218 | "FROM violation_locations vls ". |
|
219 | "WHERE vls.run_id = :latter AND vls.violation_id = vs.id) cnt_latter") |
|
220 | ->from("violations", "vs") |
|
221 | ->where("cnt_former > cnt_latter") |
|
222 | ->setParameter("former", $run_former) |
|
223 | ->setParameter("latter", $run_latter); |
|
224 | if ($rule !== null) { |
|
225 | $q = $q |
|
226 | ->andWhere("vs.rule_id = :rule") |
|
227 | ->setParameter("rule", $rule); |
|
228 | } |
|
229 | $rows = $q->execute(); |
|
230 | $res = 0; |
|
231 | while($r = $rows->fetch()) { |
|
232 | if ((int)$r["cnt_former"] > (int)$r["cnt_latter"]) { |
|
233 | $res += (int)$r["cnt_former"] - (int)$r["cnt_latter"]; |
|
234 | } |
|
235 | } |
|
236 | return $res; |
|
237 | } |
|
238 | ||
239 | /** |
|
240 | * Get the rules that were analyzed in a run. |