From 86cbdcb11ea41584ead20e6ced2487ebe140120f Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Tue, 20 May 2014 20:10:06 +1200 Subject: [PATCH] CRm-14197 where a participant_payment contribution has a single line item point it towards the contribution --- CRM/Event/BAO/ParticipantPayment.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CRM/Event/BAO/ParticipantPayment.php b/CRM/Event/BAO/ParticipantPayment.php index 663d0fb555..555df5dd25 100644 --- a/CRM/Event/BAO/ParticipantPayment.php +++ b/CRM/Event/BAO/ParticipantPayment.php @@ -69,6 +69,16 @@ class CRM_Event_BAO_ParticipantPayment extends CRM_Event_DAO_ParticipantPayment CRM_Utils_Hook::post('create', 'ParticipantPayment', NULL, $participantPayment); } + //generally if people are creating participant_payments via the api they won't be setting the line item correctly - we can't help them if they are doing complex transactions + // but if they have a single line item for the contribution we can assume it should refer to the participant line + $lineItemCount = CRM_Core_DAO::singleValueQuery("select count(*) FROM civicrm_line_item WHERE contribution_id = %1", array(1 => array($participantPayment->contribution_id, 'Integer'))); + if($lineItemCount == 1) { + $sql = "UPDATE civicrm_line_item li + SET entity_table = 'civicrm_participant', entity_id = %1 + WHERE contribution_id = %2 AND entity_table = 'civicrm_contribution'"; + CRM_Core_DAO::executeQuery($sql, array(1 => array($participantPayment->participant_id, 'Integer'), 2 => array($participantPayment->contribution_id, 'Integer'))); + } + return $participantPayment; } -- 2.25.1