Merge pull request #4607 from samuelsov/CRM-15637
[civicrm-core.git] / CRM / Case / Form / Task / SearchTaskHookSample.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.6 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2014 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License along with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
25 */
26
27 /**
28 *
29 * @package CRM
30 * @copyright CiviCRM LLC (c) 2004-2014
31 * $Id$
32 *
33 */
34
35 /**
36 * This class provides the functionality to save a search
37 * Saved Searches are used for saving frequently used queries
38 */
39 class CRM_Case_Form_Task_SearchTaskHookSample extends CRM_Case_Form_Task {
40
41 /**
42 * Build all the data structures needed to build the form
43 *
44 * @return void
45 */
46 public function preProcess() {
47 parent::preProcess();
48 $rows = array();
49 // display name and email of all contact ids
50 $caseIDs = implode(',', $this->_caseIds);
51 $statusId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'case_status', 'id', 'name');
52 $query = "
53 SELECT ct.display_name as display_name,
54 cs.start_date as start_date,
55 ov.label as status
56
57 FROM civicrm_case cs
58 INNER JOIN civicrm_case_contact cc ON ( cs.id = cc.case_id)
59 INNER JOIN civicrm_contact ct ON ( cc.contact_id = ct.id)
60 LEFT JOIN civicrm_option_value ov ON (cs.status_id = ov.value AND ov.option_group_id = {$statusId} )
61 WHERE cs.id IN ( {$caseIDs} )";
62
63 $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
64 while ($dao->fetch()) {
65 $rows[] = array(
66 'display_name' => $dao->display_name,
67 'start_date' => CRM_Utils_Date::customFormat($dao->start_date),
68 'status' => $dao->status,
69 );
70 }
71 $this->assign('rows', $rows);
72 }
73
74 /**
75 * Build the form object
76 *
77 * @return void
78 */
79 public function buildQuickForm() {
80 $this->addButtons(array(
81 array(
82 'type' => 'done',
83 'name' => ts('Done'),
84 'isDefault' => TRUE,
85 ),
86 )
87 );
88 }
89 }