|
| 1 | +SELECT |
| 2 | +SKIP @firstRowIndex@ |
| 3 | +FIRST @pageSize@ |
| 4 | + CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio |
| 5 | +, p.project_id AS challenge_id |
| 6 | +, pcl.description AS challenge_type |
| 7 | +, pi.challenge_name |
| 8 | +, p.tc_direct_project_id AS project_id |
| 9 | +, screening.parameter AS screening_scorecard_id |
| 10 | +, review.parameter AS review_scorecard_id |
| 11 | +, pi.cmc_task_id |
| 12 | +, pi.forum_id |
| 13 | +, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id |
| 14 | + WHERE u1.project_id = p.project_id |
| 15 | + AND s1.submission_type_id IN (1, 3) |
| 16 | + AND s1.submission_status_id <> 5) AS num_submissions |
| 17 | +, (SELECT COUNT(*) FROM resource r WHERE r.project_id = p.project_id AND r.resource_role_id = 1) AS num_registrants |
| 18 | +, NVL((SELECT SUM(pr.number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14), 0) AS number_of_checkpoints_prizes |
| 19 | +, pr.top_checkpoint_prize |
| 20 | +, pr.prize1 |
| 21 | +, pr.prize2 |
| 22 | +, pr.prize3 |
| 23 | +, pr.prize4 |
| 24 | +, pr.prize5 |
| 25 | +, pr.prize6 |
| 26 | +, pr.prize7 |
| 27 | +, pr.prize8 |
| 28 | +, NVL(pp1.actual_start_time, pp1.scheduled_start_time) AS posting_date |
| 29 | +, NVL(pp1.actual_end_time, pp1.scheduled_end_time) AS registration_end_date |
| 30 | +, NVL(pp.checkpoint_actual_end_time , pp.checkpoint_scheduled_end_time) AS checkpoint_submission_end_date |
| 31 | +, NVL(pp.submission_actual_end_time, pp.submission_scheduled_end_time) AS submission_end_date |
| 32 | +, NVL(pp.appeals_scheduled_end_time, review.scheduled_end_time) AS appeals_end_date |
| 33 | +, NVL(pp.final_fix_actual_end_time, pp.final_fix_scheduled_end_time) AS final_fix_end_date |
| 34 | +, NVL(nd_phase.actual_end_time, nd_phase.scheduled_end_time) AS current_phase_end_date |
| 35 | +, (( nd_phase.scheduled_end_time - CURRENT)::interval second(9) to second)::char(10)::int8 AS current_phase_remaining_time |
| 36 | +, pstatus.name AS current_status |
| 37 | +, CASE WHEN (nd_phase.scheduled_end_time IS NOT NULL) THEN |
| 38 | + (SELECT phase_type_lu.description FROM phase_type_lu |
| 39 | + WHERE phase_type_id = nd_phase.phase_type_id) |
| 40 | + ELSE NULL |
| 41 | + END AS current_phase_name |
| 42 | +, CASE WHEN pi.digital_run_flag = 'On' THEN NVL(pi.digital_run_points, pi.payments) |
| 43 | + ELSE NULL |
| 44 | + END AS digital_run_points |
| 45 | +, NVL((SELECT max(event_id) FROM contest_project_xref x, contest c WHERE project_id = p.project_id AND c.contest_id = x.contest_id), 0) AS event_id |
| 46 | +, (SELECT event_short_desc FROM event e WHERE e.event_id = nvl((SELECT max(event_id) FROM contest_project_xref x, contest c WHERE project_id = p.project_id AND c.contest_id = x.contest_id), 0)) AS event_name |
| 47 | +, technology_list(p.project_id) AS technology |
| 48 | +, platform_list(p.project_id) AS platforms |
| 49 | +FROM project p |
| 50 | +LEFT JOIN ( |
| 51 | + SELECT |
| 52 | + project_id |
| 53 | + , MAX(CASE WHEN prize_type_id = 14 AND place = 1 THEN prize_amount ELSE NULL END) AS top_checkpoint_prize |
| 54 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 1 THEN prize_amount ELSE NULL END) AS prize1 |
| 55 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 2 THEN prize_amount ELSE NULL END) AS prize2 |
| 56 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 3 THEN prize_amount ELSE NULL END) AS prize3 |
| 57 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 4 THEN prize_amount ELSE NULL END) AS prize4 |
| 58 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 5 THEN prize_amount ELSE NULL END) AS prize5 |
| 59 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 6 THEN prize_amount ELSE NULL END) AS prize6 |
| 60 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 7 THEN prize_amount ELSE NULL END) AS prize7 |
| 61 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 8 THEN prize_amount ELSE NULL END) AS prize8 |
| 62 | + FROM prize |
| 63 | + WHERE prize_type_id IN (14, 15) |
| 64 | + GROUP BY project_id |
| 65 | +) pr ON pr.project_id = p.project_id |
| 66 | +INNER JOIN ( |
| 67 | + SELECT |
| 68 | + project_id |
| 69 | + , MAX(DECODE(phase_type_id, 2, actual_end_time, NULL)) AS submission_actual_end_time |
| 70 | + , MAX(DECODE(phase_type_id, 2, scheduled_end_time, NULL)) AS submission_scheduled_end_time |
| 71 | + , MAX(DECODE(phase_type_id, 6, scheduled_end_time, NULL)) AS appeals_scheduled_end_time |
| 72 | + , MAX(DECODE(phase_type_id, 9, actual_end_time, NULL)) AS final_fix_actual_end_time |
| 73 | + , MAX(DECODE(phase_type_id, 9, scheduled_end_time, NULL)) AS final_fix_scheduled_end_time |
| 74 | + , MAX(DECODE(phase_type_id, 15, actual_end_time, NULL)) AS checkpoint_actual_end_time |
| 75 | + , MAX(DECODE(phase_type_id, 15, scheduled_end_time, NULL)) AS checkpoint_scheduled_end_time |
| 76 | + FROM project_phase |
| 77 | + WHERE phase_type_id IN (1,2,6,9,15) |
| 78 | + GROUP BY project_id |
| 79 | +) pp ON pp.project_id = p.project_id |
| 80 | +INNER JOIN ( |
| 81 | + SELECT |
| 82 | + project_id |
| 83 | + , MAX(DECODE(project_info_type_id, 4, value, '')) AS forum_id |
| 84 | + , MAX(DECODE(project_info_type_id, 16, value, '')) AS payments |
| 85 | + , MAX(DECODE(project_info_type_id, 26, value, '')) AS digital_run_flag |
| 86 | + , MAX(DECODE(project_info_type_id, 30, value, '')) AS digital_run_points |
| 87 | + , MAX(DECODE(project_info_type_id, 70, value, '')) AS cmc_task_id |
| 88 | + , MAX(DECODE(project_info_type_id, 6, value, '')) AS challenge_name |
| 89 | + FROM project_info |
| 90 | + WHERE project_info_type_id IN (70, 30, 16, 26, 4, 6) |
| 91 | + GROUP BY project_id |
| 92 | +) pi ON pi.project_id = p.project_id |
| 93 | +LEFT OUTER JOIN ( |
| 94 | + SELECT |
| 95 | + pp3.project_id |
| 96 | + , pc3.parameter |
| 97 | + FROM project_phase pp3 |
| 98 | + LEFT OUTER JOIN phase_criteria pc3 ON pp3.project_phase_id = pc3.project_phase_id |
| 99 | + WHERE pp3.phase_type_id = 3 |
| 100 | + AND pc3.phase_criteria_type_id = 1 |
| 101 | +) screening ON screening.project_id = p.project_id |
| 102 | +LEFT OUTER JOIN ( |
| 103 | + SELECT |
| 104 | + pp4.project_id |
| 105 | + , pc4.parameter |
| 106 | + , pp4.scheduled_end_time |
| 107 | + FROM project_phase pp4 |
| 108 | + LEFT OUTER JOIN phase_criteria pc4 ON pp4.project_phase_id = pc4.project_phase_id |
| 109 | + WHERE pp4.phase_type_id = 4 |
| 110 | + AND pc4.phase_criteria_type_id = 1 |
| 111 | +) review ON review.project_id = p.project_id |
| 112 | +INNER JOIN project_phase pp1 ON pp1.project_id = p.project_id AND pp1.phase_type_id = 1 |
| 113 | +INNER JOIN project_status_lu pstatus ON p.project_status_id = pstatus.project_status_id |
| 114 | +LEFT OUTER JOIN project_phase nd_phase ON p.project_Id = nd_phase.project_id |
| 115 | +, project_category_lu pcl |
| 116 | +WHERE 1=1 |
| 117 | +AND p.project_category_id = pcl.project_category_id |
| 118 | +-- Filter out the challenge that user is not belong to. |
| 119 | +AND (not exists (SELECT contest_id FROM contest_eligibility WHERE contest_id = p.project_id) |
| 120 | + OR exists(SELECT contest_id FROM contest_eligibility ce, group_contest_eligibility gce, user_group_xref x |
| 121 | + WHERE x.login_id = @userId@ AND x.group_id = gce.group_id AND gce.contest_eligibility_id = ce.contest_eligibility_id |
| 122 | + AND ce.contest_id = p.project_id)) |
| 123 | +AND pcl.project_category_id NOT IN (27, 37) --exclude when spec review was a 'contest.' Also exclude MM, which is in there as a 'software' contest. |
| 124 | +AND p.project_status_id IN (4, 5, 6, 7, 8, 9, 10, 11) |
| 125 | +AND pcl.project_type_id IN (@project_type_id@) |
| 126 | +AND pp1.phase_status_id = 3 |
| 127 | +AND nd_phase.project_phase_id = (SELECT MAX(project_phase_id) FROM project_phase WHERE project_id = p.project_id AND phase_status_id = 2 AND phase_type_id IN (1,2,3,4,5,6,7,8,9,10,11,12)) |
| 128 | + |
| 129 | +AND NVL(pp.submission_actual_end_time, pp.submission_scheduled_end_time) BETWEEN TO_DATE('@submissionEndFrom@ 00:00:00', '%Y-%m-%d %H:%M:%S') AND TO_DATE('@submissionEndTo@ 23:59:59', '%Y-%m-%d %H:%M:%S') |
| 130 | +AND LOWER(pcl.description) = DECODE('@categoryName@', '', LOWER(pcl.description), '@categoryName@') |
| 131 | +AND LOWER(pi.challenge_name) LIKE ('@challengeName@') |
| 132 | +AND NVL(pr.prize1, 0) >= @prilower@ |
| 133 | +AND NVL(pr.prize1, 0) <= @priupper@ |
| 134 | +AND p.tc_direct_project_id = DECODE(@tcdirectid@, 0, p.tc_direct_project_id, @tcdirectid@) |
| 135 | +AND NVL(LOWER(pi.cmc_task_id), '') = DECODE('@cmc@', '', NVL(LOWER(pi.cmc_task_id), ''), '@cmc@') |
| 136 | + |
| 137 | +ORDER BY @sortColumn@ @sortOrder@ |
0 commit comments