Merge pull request #4925 from KarinG/patch-1
[civicrm-core.git] / CRM / Report / Form / Contribute / Lybunt.php
index 874deb19f216e747aed3f5ee84bb5cb3b32b5dae..1fa3a79327deec7a098b52e5b62a7e0d41f5058a 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.5                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
@@ -47,16 +47,14 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
   protected $lifeTime_where = NULL;
 
   /**
-   *
    */
   /**
-   *
    */
-  function __construct() {
-    $yearsInPast   = 10;
+  public function __construct() {
+    $yearsInPast = 10;
     $yearsInFuture = 1;
-    $date          = CRM_Core_SelectValues::date('custom', NULL, $yearsInPast, $yearsInFuture);
-    $count         = $date['maxYear'];
+    $date = CRM_Core_SelectValues::date('custom', NULL, $yearsInPast, $yearsInFuture);
+    $count = $date['maxYear'];
     while ($date['minYear'] <= $count) {
       $optionYear[$date['minYear']] = $date['minYear'];
       $date['minYear']++;
@@ -72,14 +70,12 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     }
 
     $this->_columns = array(
-      'civicrm_contact' =>
-      array(
+      'civicrm_contact' => array(
         'dao' => 'CRM_Contact_DAO_Contact',
         'grouping' => 'contact-field',
-        'fields' =>
-        array(
-          'sort_name' =>
-          array('title' => ts('Donor Name'),
+        'fields' => array(
+          'sort_name' => array(
+            'title' => ts('Donor Name'),
             'default' => TRUE,
             'required' => TRUE,
           ),
@@ -89,78 +85,67 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
           'last_name' => array(
             'title' => ts('Last Name'),
           ),
-          'contact_type' =>
-          array(
+          'contact_type' => array(
             'title' => ts('Contact Type'),
           ),
-          'contact_sub_type' =>
-          array(
-            'title' => ts('Contact SubType'),
+          'contact_sub_type' => array(
+            'title' => ts('Contact Subtype'),
           ),
         ),
-        'filters' =>
-        array(
-          'sort_name' =>
-          array('title' => ts('Donor Name'),
+        'filters' => array(
+          'sort_name' => array(
+            'title' => ts('Donor Name'),
             'operator' => 'like',
           ),
         ),
       ),
-      'civicrm_email' =>
-      array(
+      'civicrm_email' => array(
         'dao' => 'CRM_Core_DAO_Email',
         'grouping' => 'contact-field',
-        'fields' =>
-        array(
-          'email' =>
-          array('title' => ts('Email'),
+        'fields' => array(
+          'email' => array(
+            'title' => ts('Email'),
             'default' => TRUE,
           ),
         ),
       ),
-      'civicrm_phone' =>
-      array(
+      'civicrm_phone' => array(
         'dao' => 'CRM_Core_DAO_Phone',
         'grouping' => 'contact-field',
-        'fields' =>
-        array(
-          'phone' =>
-          array('title' => ts('Phone'),
+        'fields' => array(
+          'phone' => array(
+            'title' => ts('Phone'),
             'default' => TRUE,
           ),
         ),
       ),
-    )
-    + $this->addAddressFields()
-    + array(
-      'civicrm_contribution' =>
-      array(
+    );
+    $this->_columns += $this->addAddressFields();
+    $this->_columns += array(
+      'civicrm_contribution' => array(
         'dao' => 'CRM_Contribute_DAO_Contribution',
-        'fields' =>
-        array(
-          'contact_id' =>
-          array('title' => ts('contactId'),
+        'fields' => array(
+          'contact_id' => array(
+            'title' => ts('contactId'),
             'no_display' => TRUE,
             'required' => TRUE,
             'no_repeat' => TRUE,
           ),
-          'total_amount' =>
-          array('title' => ts('Total Amount'),
+          'total_amount' => array(
+            'title' => ts('Total Amount'),
             'no_display' => TRUE,
             'required' => TRUE,
             'no_repeat' => TRUE,
           ),
-          'receive_date' =>
-          array('title' => ts('Year'),
+          'receive_date' => array(
+            'title' => ts('Year'),
             'no_display' => TRUE,
             'required' => TRUE,
             'no_repeat' => TRUE,
           ),
         ),
-        'filters' =>
-        array(
-          'yid' =>
-          array(
+        'filters' => array(
+          'yid' => array(
             'name' => 'receive_date',
             'title' => ts('This Year'),
             'operatorType' => CRM_Report_Form::OP_SELECT,
@@ -172,8 +157,8 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
             'operatorType' => CRM_Report_Form::OP_MULTISELECT,
             'options' => CRM_Contribute_PseudoConstant::financialType(),
           ),
-          'contribution_status_id' =>
-          array('title' => ts('Contribution Status'),
+          'contribution_status_id' => array(
+            'title' => ts('Contribution Status'),
             'operatorType' => CRM_Report_Form::OP_MULTISELECT,
             'options' => CRM_Contribute_PseudoConstant::contributionStatus(),
             'default' => array('1'),
@@ -188,7 +173,8 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
         'title' => ts('Campaign'),
         'default' => 'false',
       );
-      $this->_columns['civicrm_contribution']['filters']['campaign_id'] = array('title' => ts('Campaign'),
+      $this->_columns['civicrm_contribution']['filters']['campaign_id'] = array(
+        'title' => ts('Campaign'),
         'operatorType' => CRM_Report_Form::OP_MULTISELECT,
         'options' => $this->activeCampaigns,
       );
@@ -199,23 +185,24 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     parent::__construct();
   }
 
-  function preProcess() {
+  public function preProcess() {
     parent::preProcess();
   }
 
-  function select() {
+  public function select() {
 
     $this->_columnHeaders = $select = array();
     $current_year = $this->_params['yid_value'];
     $previous_year = $current_year - 1;
 
-
     foreach ($this->_columns as $tableName => $table) {
 
       if (array_key_exists('fields', $table)) {
         foreach ($table['fields'] as $fieldName => $field) {
 
-          if (!empty($field['required']) || !empty($this->_params['fields'][$fieldName])) {
+          if (!empty($field['required']) ||
+            !empty($this->_params['fields'][$fieldName])
+          ) {
             if ($fieldName == 'total_amount') {
               $select[] = "SUM({$field['dbAlias']}) as {$tableName}_{$fieldName}";
 
@@ -226,7 +213,8 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
               $this->_columnHeaders["civicrm_life_time_total"]['title'] = 'LifeTime';;
             }
             elseif ($fieldName == 'receive_date') {
-              $select[] = self::fiscalYearOffset($field['dbAlias']) . " as {$tableName}_{$fieldName} ";
+              $select[] = self::fiscalYearOffset($field['dbAlias']) .
+                " as {$tableName}_{$fieldName} ";
             }
             else {
               $select[] = "{$field['dbAlias']} as {$tableName}_{$fieldName} ";
@@ -245,7 +233,7 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     $this->_select = "SELECT  " . implode(', ', $select) . " ";
   }
 
-  function from() {
+  public function from() {
 
     $this->_from = "
         FROM  civicrm_contribution  {$this->_aliases['civicrm_contribution']}
@@ -268,11 +256,11 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     $this->addAddressFromClause();
   }
 
-  function where() {
+  public function where() {
     $this->_statusClause = "";
-    $clauses             = array($this->_aliases['civicrm_contribution'] . '.is_test = 0');
-    $current_year        = $this->_params['yid_value'];
-    $previous_year       = $current_year - 1;
+    $clauses = array($this->_aliases['civicrm_contribution'] . '.is_test = 0');
+    $current_year = $this->_params['yid_value'];
+    $previous_year = $current_year - 1;
 
     foreach ($this->_columns as $tableName => $table) {
       if (array_key_exists('filters', $table)) {
@@ -281,13 +269,16 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
           if ($fieldName == 'yid') {
             $clause = "contribution_civireport.contact_id NOT IN
 (SELECT distinct contri.contact_id FROM civicrm_contribution contri
- WHERE contri.is_test = 0 AND " . self::fiscalYearOffset('contri.receive_date') . " = $current_year) AND contribution_civireport.contact_id IN (SELECT distinct contri.contact_id FROM civicrm_contribution contri
- WHERE " . self::fiscalYearOffset('contri.receive_date') . " = $previous_year AND contri.is_test = 0)";
+ WHERE contri.is_test = 0 AND " .
+              self::fiscalYearOffset('contri.receive_date') . " = $current_year) AND contribution_civireport.contact_id IN (SELECT distinct contri.contact_id FROM civicrm_contribution contri
+ WHERE " . self::fiscalYearOffset('contri.receive_date') .
+              " = $previous_year AND contri.is_test = 0)";
           }
-          elseif (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) {
+          elseif (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE
+          ) {
             $relative = CRM_Utils_Array::value("{$fieldName}_relative", $this->_params);
-            $from     = CRM_Utils_Array::value("{$fieldName}_from", $this->_params);
-            $to       = CRM_Utils_Array::value("{$fieldName}_to", $this->_params);
+            $from = CRM_Utils_Array::value("{$fieldName}_from", $this->_params);
+            $to = CRM_Utils_Array::value("{$fieldName}_to", $this->_params);
 
             if ($relative || $from || $to) {
               $clause = $this->dateClause($field['name'], $relative, $from, $to, $field['type']);
@@ -302,7 +293,9 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
                 CRM_Utils_Array::value("{$fieldName}_min", $this->_params),
                 CRM_Utils_Array::value("{$fieldName}_max", $this->_params)
               );
-              if (($fieldName == 'contribution_status_id' || $fieldName == 'financial_type_id') && !empty($clause)) {
+              if (($fieldName == 'contribution_status_id' ||
+                  $fieldName == 'financial_type_id') && !empty($clause)
+              ) {
                 $this->_statusClause .= " AND " . $clause;
               }
             }
@@ -322,8 +315,10 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     }
   }
 
-  function groupBy() {
-    $this->_groupBy = "GROUP BY  {$this->_aliases['civicrm_contribution']}.contact_id, " . self::fiscalYearOffset($this->_aliases['civicrm_contribution'] . '.receive_date') . " WITH ROLLUP";
+  public function groupBy() {
+    $this->_groupBy = "GROUP BY  {$this->_aliases['civicrm_contribution']}.contact_id, " .
+      self::fiscalYearOffset($this->_aliases['civicrm_contribution'] .
+        '.receive_date') . " WITH ROLLUP";
     $this->assign('chartSupported', TRUE);
   }
 
@@ -332,7 +327,7 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
    *
    * @return array
    */
-  function statistics(&$rows) {
+  public function statistics(&$rows) {
     $statistics = parent::statistics($rows);
     if (!empty($rows)) {
       $select = "
@@ -353,7 +348,7 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     return $statistics;
   }
 
-  function postProcess() {
+  public function postProcess() {
 
     // get ready with post process params
     $this->beginPostProcess();
@@ -384,11 +379,13 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
         $sql = "{$this->_select} {$this->_from} {$this->_where} {$this->_groupBy}";
       }
       else {
-        $sql = "{$this->_select} {$this->_from} WHERE {$this->_aliases['civicrm_contact']}.id IN (" . implode(',', $contactIds) . ") AND {$this->_aliases['civicrm_contribution']}.is_test = 0 {$this->_statusClause} {$this->_groupBy} ";
+        $sql = "{$this->_select} {$this->_from} WHERE {$this->_aliases['civicrm_contact']}.id IN (" .
+          implode(',', $contactIds) .
+          ") AND {$this->_aliases['civicrm_contribution']}.is_test = 0 {$this->_statusClause} {$this->_groupBy} ";
       }
 
-      $dao           = CRM_Core_DAO::executeQuery($sql);
-      $current_year  = $this->_params['yid_value'];
+      $dao = CRM_Core_DAO::executeQuery($sql);
+      $current_year = $this->_params['yid_value'];
       $previous_year = $current_year - 1;
 
       while ($dao->fetch()) {
@@ -428,11 +425,11 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
   /**
    * @param $rows
    */
-  function buildChart(&$rows) {
+  public function buildChart(&$rows) {
 
     $graphRows = array();
-    $count     = 0;
-    $display   = array();
+    $count = 0;
+    $display = array();
 
     $current_year = $this->_params['yid_value'];
     $previous_year = $current_year - 1;
@@ -440,13 +437,15 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     $interval['life_time'] = 'Life Time';
 
     foreach ($rows as $key => $row) {
-      $display['life_time'] = CRM_Utils_Array::value('life_time', $display) + $row['civicrm_life_time_total'];
+      $display['life_time'] = CRM_Utils_Array::value('life_time', $display) +
+        $row['civicrm_life_time_total'];
       $display[$previous_year] = CRM_Utils_Array::value($previous_year, $display) + $row[$previous_year];
     }
 
-    $config             = CRM_Core_Config::Singleton();
+    $config = CRM_Core_Config::Singleton();
     $graphRows['value'] = $display;
-    $chartInfo          = array('legend' => ts('Lybunt Report'),
+    $chartInfo = array(
+      'legend' => ts('Lybunt Report'),
       'xname' => ts('Year'),
       'yname' => ts('Amount (%1)', array(1 => $config->defaultCurrency)),
     );
@@ -460,7 +459,7 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
   /**
    * @param $rows
    */
-  function alterDisplay(&$rows) {
+  public function alterDisplay(&$rows) {
     // custom code to alter rows
     $entryFound = FALSE;
 
@@ -470,7 +469,8 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
         array_key_exists('civicrm_contribution_contact_id', $row)
       ) {
         $url = CRM_Report_Utils_Report::getNextUrl('contribute/detail',
-          'reset=1&force=1&id_op=eq&id_value=' . $row['civicrm_contribution_contact_id'],
+          'reset=1&force=1&id_op=eq&id_value=' .
+          $row['civicrm_contribution_contact_id'],
           $this->_absoluteUrl, $this->_id, $this->_drilldownReport
         );
         $rows[$rowNum]['civicrm_contact_sort_name_link'] = $url;
@@ -496,18 +496,20 @@ class CRM_Report_Form_Contribute_Lybunt extends CRM_Report_Form {
     }
   }
 
-  // Override "This Year" $op options
   /**
+   * Override "This Year" $op options
    * @param string $type
    * @param null $fieldName
    *
    * @return array
    */
-  function getOperationPair($type = "string", $fieldName = NULL) {
+  public function getOperationPair($type = "string", $fieldName = NULL) {
     if ($fieldName == 'yid') {
-      return array('calendar' => ts('Is Calendar Year'), 'fiscal' => ts('Fiscal Year Starting'));
+      return array(
+        'calendar' => ts('Is Calendar Year'),
+        'fiscal' => ts('Fiscal Year Starting'),
+      );
     }
     return parent::getOperationPair($type, $fieldName);
   }
 }
-