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

API issue with custom variables on membership

    Details

    • Type: Bug
    • Status: Done/Fixed
    • Priority: Major
    • Resolution: Fixed/Completed
    • Affects Version/s: 4.6.9
    • Fix Version/s: None
    • Component/s: CiviCRM API
    • Labels:
    • Documentation Required?:
      None
    • Funding Source:
      Contributed Code

      Description

      Test not happening when custom variable on membership is used in an API filter. For instance, I created the following using the API explorer ...

      $result = civicrm_api3('Membership', 'get', array(
        'sequential' => 1,
        'custom_7' => "CI",
      ));

      At least in my mind, only records where custom_7 has "CI" as the value should be returned.

      However, all values of custom_7 are returned.

      {
      	"is_error":0,
      	"version":3,
      	"count":25,
      	"values":[{
      		"id":"29139",
      		"contact_id":"11847",
      		"membership_type_id":"7",
      		"join_date":"2012-10-01",
      		"start_date":"2012-10-01",
      		"end_date":"2016-10-31",
      		"status_id":"2",
      		"max_related":"4",
      		"is_test":"0",
      		"is_pay_later":"0",
      		"membership_name":"Family/Household",
      		"relationship_name":"Household Member of",
      		"custom_7":"LB",
      		"custom_7_29116":"LB"
      	},
      	{
      		"id":"29140",
      		"contact_id":"3848",
      		"membership_type_id":"7",
      		"join_date":"2012-10-01",
      		"start_date":"2012-10-01",
      		"end_date":"2016-10-31",
      		"status_id":"2",
      		"owner_membership_id":"29139",
      		"is_test":"0",
      		"is_pay_later":"0",
      		"membership_name":"Family/Household",
      		"relationship_name":"Household Member of",
      		"custom_7":"LB",
      		"custom_7_29117":"LB"
      	},
      	{
      		"id":"29141",
      		"contact_id":"11385",
      		"membership_type_id":"7",
      		"join_date":"2012-10-01",
      		"start_date":"2012-10-01",
      		"end_date":"2016-10-31",
      		"status_id":"2",
      		"owner_membership_id":"29139",
      		"is_test":"0",
      		"is_pay_later":"0",
      		"membership_name":"Family/Household",
      		"relationship_name":"Household Member of",
      		"custom_7":"LB",
      		"custom_7_29118":"LB"
      	}, .........................etc.

      A similar result occur if the test is expressed as "IN"

      $result = civicrm_api3('Membership', 'get', array(
        'sequential' => 1,
        'custom_7' => array('IN' => array("CI")),
      ));

      I don't think it matters which form of the API is used – the problem definitely exists if REST is used.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              ecotypes@verizon.net Shirley Denton
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: