Merge lp:~raulraat/eventum/customFieldWeeklyReport into lp:eventum

Proposed by Raul Raat
Status: Merged
Merged at revision: 4134
Proposed branch: lp:~raulraat/eventum/customFieldWeeklyReport
Merge into: lp:eventum
Diff against target: 82 lines (+16/-23)
1 file modified
lib/eventum/class.report.php (+16/-23)
To merge this branch: bzr merge lp:~raulraat/eventum/customFieldWeeklyReport
Reviewer Review Type Date Requested Status
Eventum Development Team Pending
Review via email: mp+31659@code.launchpad.net

Description of the change

Sorry about the previous Merge proposal, i removed that, now the merge proposal contains 2 changes:
* if multiple custom field options match, all of them are summarized, use subquery to avoid it
* the table issue_user is no longer joined in the query (as data from that table is not needed)

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/eventum/class.report.php'
2--- lib/eventum/class.report.php 2010-07-28 08:50:32 +0000
3+++ lib/eventum/class.report.php 2010-08-03 15:56:47 +0000
4@@ -791,54 +791,47 @@
5 $options = Custom_Field::getOptions($fld_id, $cfo_ids);
6
7 $sql = "SELECT
8- iss_id,
9+ iss_id,
10 SUM(ttr_time_spent) ttr_time_spent_sum,
11 iss_summary,
12 iss_customer_id,
13- iss_private,
14- fld_id
15+ iss_private
16 ";
17
18-
19 if ($per_user) {
20 $sql .= ', usr_full_name ';
21 }
22 $sql .= "
23 FROM
24- " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "custom_field,
25 " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "time_tracking,";
26
27 if ($per_user) {
28 $sql .= APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "user, ";
29 }
30
31- if (count($options) > 0) {
32- $sql .= "
33- " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "custom_field_option,";
34- }
35 $sql .= "
36- " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "issue_custom_field,
37- " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "issue,
38- " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "issue_user
39+ " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "issue
40 WHERE
41 ttr_created_date BETWEEN '" . Misc::escapeString($start_date) . "' AND '" . Misc::escapeString($end_date) . "' AND
42- fld_id = icf_fld_id AND
43 ttr_iss_id = iss_id AND
44 ";
45- if (count($options) > 0) {
46- $sql .=
47- " cfo_id = icf_value AND";
48- }
49 if ($per_user) {
50 $sql .= " usr_id = ttr_usr_id AND ";
51 }
52 $sql .= "
53- icf_iss_id = iss_id AND
54- isu_iss_id = iss_id AND
55- icf_fld_id = $fld_id";
56+ ttr_iss_id = iss_id
57+ ";
58 if (count($options) > 0) {
59- $sql .= " AND
60- cfo_id IN('" . join("','", Misc::escapeString(array_keys($options))) . "')";
61+ $sql .= " AND (
62+ SELECT
63+ count(*)
64+ FROM
65+ " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "issue_custom_field a
66+ WHERE
67+ a.icf_fld_id = $fld_id AND
68+ a.icf_value IN('" . join("','", Misc::escapeString(array_keys($options))) . "') AND
69+ a.icf_iss_id = ttr_iss_id
70+ ) > 0";
71 }
72 if ($per_user) {
73 $sql .= "
74@@ -856,7 +849,7 @@
75 return array();
76 } else {
77 for ($i = 0; $i < count($res); $i++) {
78- $res[$i]['field_value'] = Custom_Field::getDisplayValue($res[$i]['iss_id'], $res[$i]['fld_id']);
79+ $res[$i]['field_value'] = Custom_Field::getDisplayValue($res[$i]['iss_id'], $fld_id);
80 $res[$i]['ttr_time_spent_sum_formatted'] = Misc::getFormattedTime($res[$i]['ttr_time_spent_sum'], false);
81 }
82 return $res;

Subscribers

People subscribed via source and target branches