Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-18977

Contribution reports fails when Financial ACL is enabled

    Details

    • Type: Bug
    • Status: Done/Fixed
    • Priority: Trivial
    • Resolution: Fixed/Completed
    • Affects Version/s: 4.7.8
    • Fix Version/s: 4.7.10
    • Component/s: None
    • Labels:
    • Documentation Required?:
      None
    • Sprint:
      4.7.10 Financials
    • Funding Source:
      Contributed Code

      Description

      To reproduce this:

      1. Create a custom data group for Contributions of a particular type, e.g. "Event Fees", and create at least one searchable custom field in that group.
      2. Ensure Financial ACLs are enabled (Adminster > CiviContribute > CiviContribute Component Settings; and check "Enable Access Control by Financial Type").
      3. Open a Contribution report such as "Contribution Details", and ensure there's a filter set for the custom data field you created in step 1. Click to apply criteria and preview the report.
      4. Observe a fatal error.

      Backtrace:

      #0 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/Error.php(182): CRM_Core_Error::backtrace()
      #1 [internal function](): CRM_Core_Error::handle(Object(DB_Error))
      #2 /var/www/d7cividev/sites/all/modules/civicrm/packages/PEAR.php(931): call_user_func((Array:2), Object(DB_Error))
      #3 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB.php(976): PEAR_Error->PEAR_Error("DB Error: no such field", -19, 16, (Array:2), "CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #4 /var/www/d7cividev/sites/all/modules/civicrm/packages/PEAR.php(564): DB_Error->DB_Error(-19, 16, (Array:2), "CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #5 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB/common.php(1905): PEAR->raiseError(NULL, -19, NULL, NULL, "CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...", "DB_Error", TRUE)
      #6 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB/mysql.php(895): DB_common->raiseError(-19, NULL, NULL, NULL, "1054 ** Unknown column 'value_crm_18977_4_civireport.test_1_7' in 'where clause'")
      #7 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB/mysql.php(328): DB_mysql->mysqlRaiseError()
      #8 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB/common.php(1216): DB_mysql->simpleQuery("CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #9 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB/DataObject.php(2435): DB_common->query("CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #10 /var/www/d7cividev/sites/all/modules/civicrm/packages/DB/DataObject.php(1627): DB_DataObject->_query("CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #11 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/DAO.php(344): DB_DataObject->query("CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #12 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/DAO.php(1265): CRM_Core_DAO->query("CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...", TRUE)
      #13 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Report/Form.php(4569): CRM_Core_DAO::executeQuery("CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civir...")
      #14 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Report/Form/Contribute/Detail.php(385): CRM_Report_Form->getPermissionedFTQuery(Object(CRM_Report_Form_Contribute_Detail))
      #15 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Report/Form/Contribute/Detail.php(590): CRM_Report_Form_Contribute_Detail->from(TRUE)
      #16 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/Form.php(423): CRM_Report_Form_Contribute_Detail->postProcess()
      #17 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Submit.php(74): CRM_Core_Form->mainProcess()
      #18 /var/www/d7cividev/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Submit->perform(Object(CRM_Report_Form_Contribute_Detail), "submit")
      #19 /var/www/d7cividev/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Report_Form_Contribute_Detail), "submit")
      #20 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("submit")
      #21 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Utils/Wrapper.php(113): CRM_Core_Controller->run()
      #22 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Report/Page/Instance.php(89): CRM_Utils_Wrapper->run("CRM_Report_Form_Contribute_Detail", NULL, NULL)
      #23 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/Invoke.php(312): CRM_Report_Page_Instance->run((Array:4), NULL)
      #24 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:14))
      #25 /var/www/d7cividev/sites/all/modules/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:4))
      #26 /var/www/d7cividev/sites/all/modules/civicrm/drupal/civicrm.module(451): CRM_Core_Invoke::invoke((Array:4))
      #27 [internal function](): civicrm_invoke("report", "instance", "8")
      #28 /var/www/d7cividev/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:3))
      #29 /var/www/d7cividev/index.php(21): menu_execute_active_handler()
      #30 {main}
      

      Error message:

       Sorry but we are not able to provide this at the moment.
      DB Error: no such field
      Error Details
      Database Error Code: Unknown column 'value_crm_18977_4_civireport.test_1_7' in 'where clause', 1054
      Additional Details:
      Array
      (
          [callback] => Array
              (
                  [0] => CRM_Core_Error
                  [1] => handle
              )
      
          [code] => -19
          [message] => DB Error: no such field
          [mode] => 16
          [debug_info] => CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civireport.id 
              FROM  civicrm_contact      contact_civireport 
                    INNER JOIN civicrm_contribution contribution_civireport
                            ON contact_civireport.id = contribution_civireport.contact_id AND contribution_civireport.is_test = 0
                    LEFT JOIN civicrm_line_item   line_item_civireport
                            ON contribution_civireport.id = line_item_civireport.contribution_id AND
                               line_item_civireport.entity_table = 'civicrm_contribution'
                            AND line_item_civireport.financial_type_id NOT IN (3,1,4,2)
                    WHERE (1) AND ( contribution_civireport.contribution_status_id IN (1) ) AND ( ( value_crm_18977_4_civireport.test_1_7 IN ( '1') ) ) AND contact_civireport.is_deleted = 0 
                            AND contribution_civireport.financial_type_id IN (3,1,4,2)
                            AND line_item_civireport.id IS NULL
                    GROUP BY contribution_civireport.id [nativecode=1054 ** Unknown column 'value_crm_18977_4_civireport.test_1_7' in 'where clause']
          [type] => DB_Error
          [user_info] => CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civireport.id 
              FROM  civicrm_contact      contact_civireport 
                    INNER JOIN civicrm_contribution contribution_civireport
                            ON contact_civireport.id = contribution_civireport.contact_id AND contribution_civireport.is_test = 0
                    LEFT JOIN civicrm_line_item   line_item_civireport
                            ON contribution_civireport.id = line_item_civireport.contribution_id AND
                               line_item_civireport.entity_table = 'civicrm_contribution'
                            AND line_item_civireport.financial_type_id NOT IN (3,1,4,2)
                    WHERE (1) AND ( contribution_civireport.contribution_status_id IN (1) ) AND ( ( value_crm_18977_4_civireport.test_1_7 IN ( '1') ) ) AND contact_civireport.is_deleted = 0 
                            AND contribution_civireport.financial_type_id IN (3,1,4,2)
                            AND line_item_civireport.id IS NULL
                    GROUP BY contribution_civireport.id [nativecode=1054 ** Unknown column 'value_crm_18977_4_civireport.test_1_7' in 'where clause']
          [to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="CREATE TEMPORARY TABLE civicrm_contribution_temp AS SELECT contribution_civireport.id 
              FROM  civicrm_contact      contact_civireport 
                    INNER JOIN civicrm_contribution contribution_civireport
                            ON contact_civireport.id = contribution_civireport.contact_id AND contribution_civireport.is_test = 0
                    LEFT JOIN civicrm_line_item   line_item_civireport
                            ON contribution_civireport.id = line_item_civireport.contribution_id AND
                               line_item_civireport.entity_table = 'civicrm_contribution'
                            AND line_item_civireport.financial_type_id NOT IN (3,1,4,2)
                    WHERE (1) AND ( contribution_civireport.contribution_status_id IN (1) ) AND ( ( value_crm_18977_4_civireport.test_1_7 IN ( '1') ) ) AND contact_civireport.is_deleted = 0 
                            AND contribution_civireport.financial_type_id IN (3,1,4,2)
                            AND line_item_civireport.id IS NULL
                    GROUP BY contribution_civireport.id [nativecode=1054 ** Unknown column 'value_crm_18977_4_civireport.test_1_7' in 'where clause']"]
      )
      

        Attachments

          Activity

            People

            • Assignee:
              pradeep.nayak Pradeep Nayak
              Reporter:
              pradeep.nayak Pradeep Nayak
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: