CRM-15104 - Fixed a bug in query for price field value.
authorJohan Vervloet <johan.vervloet@gmail.com>
Tue, 12 Aug 2014 19:30:20 +0000 (21:30 +0200)
committerJohan Vervloet <johan.vervloet@gmail.com>
Tue, 12 Aug 2014 20:06:41 +0000 (22:06 +0200)
The original query could return NULL instead of the actual
price field value if the price set contains multiple price
fields.

----------------------------------------
* CRM-15104: Line item issues when creating a participant using the API
  https://issues.civicrm.org/jira/browse/CRM-15104

api/v3/Participant.php

index 7a5bc7e216c8168ba16d06c8fe866ec13755393a..c3a705b7e660263c6aa58d2c249a497b74c919f1 100644 (file)
@@ -113,8 +113,8 @@ function _civicrm_api3_participant_createlineitem(&$params, $participant){
       FROM  civicrm_price_set_entity cpse
       LEFT JOIN civicrm_price_set ps ON cpse.price_set_id = ps.id AND cpse.entity_id = {$params['event_id']} AND cpse.entity_table = 'civicrm_event'
       LEFT JOIN   civicrm_price_field pf ON pf.`price_set_id` = ps.id
-      LEFT JOIN   civicrm_price_field_value pfv ON pfv.price_field_id = pf.id and pfv.label = '{$label}'
-      where ps.id is not null
+      LEFT JOIN   civicrm_price_field_value pfv ON pfv.price_field_id = pf.id
+      where ps.id is not null and pfv.label = '{$label}'
     ";
 
     $dao = CRM_Core_DAO::executeQuery($sql);