+--------------------------------------------------------------------+
| CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2017 |
+ | Copyright CiviCRM LLC (c) 2004-2018 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2017
+ * @copyright CiviCRM LLC (c) 2004-2018
*/
class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant {
INNER JOIN civicrm_price_field_value value ON ( value.id = line.price_field_value_id )
INNER JOIN civicrm_price_field field ON ( value.price_field_id = field.id )
WHERE participant.event_id = %1
+ AND line.qty > 0
{$statusIdClause}
{$isTestClause}
{$skipParticipantClause}";
}
// get primary participant id
- $query = "SELECT participant_id FROM civicrm_participant_payment WHERE contribution_id = {$contributionId}";
- $participantId = CRM_Core_DAO::singleValueQuery($query);
+ $query = "SELECT participant_id
+ FROM civicrm_participant cp
+ LEFT JOIN civicrm_participant_payment cpp ON cp.id = cpp.participant_id
+ WHERE cpp.contribution_id = {$contributionId}
+ AND cp.registered_by_id IS NULL";
+ $participantPayment = CRM_Core_DAO::executeQuery($query);
// get additional participant ids (including cancelled)
- if ($participantId) {
- $ids = array_merge(array(
- $participantId,
- ), self::getAdditionalParticipantIds($participantId,
+ while ($participantPayment->fetch()) {
+ $ids = array_merge($ids, array_merge(array(
+ $participantPayment->participant_id,
+ ), self::getAdditionalParticipantIds($participantPayment->participant_id,
$excludeCancelled
- ));
+ )));
}
return $ids;
* @param int $discountedPriceFieldOptionID
* ID of the civicrm_price_field_value field for the discount id.
*/
- public static function createDiscountTrxn($eventID, $contributionParams, $feeLevel, $discountedPriceFieldOptionID) {
+ public static function createDiscountTrxn($eventID, $contributionParams, $feeLevel, $discountedPriceFieldOptionID = NULL) {
$financialTypeID = $contributionParams['contribution']->financial_type_id;
$total_amount = $contributionParams['total_amount'];