From 1d1fb1e847c1606d981d5bc3ec615bf0a0a503a8 Mon Sep 17 00:00:00 2001 From: pratikshad Date: Thu, 7 May 2015 16:11:08 +0530 Subject: [PATCH] CRM-16336 fix-API Pledge Get does not return correct pledge_next_pay_amount for overdue pledgesAPI Pledge Get does not return correct pledge_next_pay_amount for overdue pledges ---------------------------------------- * CRM-16336: API Pledge Get does not return correct pledge_next_pay_amount for overdue pledges https://issues.civicrm.org/jira/browse/CRM-16336 --- CRM/Pledge/BAO/Query.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CRM/Pledge/BAO/Query.php b/CRM/Pledge/BAO/Query.php index 9b15064eb4..51a0a6d47d 100644 --- a/CRM/Pledge/BAO/Query.php +++ b/CRM/Pledge/BAO/Query.php @@ -49,6 +49,7 @@ class CRM_Pledge_BAO_Query { * @return void */ public static function select(&$query) { + $statusId = implode(',', array_keys(CRM_Core_PseudoConstant::accountOptionValues("contribution_status", NULL, " AND v.name IN ('Pending', 'Overdue')"))); if (($query->_mode & CRM_Contact_BAO_Query::MODE_PLEDGE) || !empty($query->_returnProperties['pledge_id'])) { $query->_select['pledge_id'] = 'civicrm_pledge.id as pledge_id'; $query->_element['pledge_id'] = 1; @@ -88,12 +89,12 @@ class CRM_Pledge_BAO_Query { } if (!empty($query->_returnProperties['pledge_next_pay_date'])) { - $query->_select['pledge_next_pay_date'] = " (SELECT civicrm_pledge_payment.scheduled_date FROM civicrm_pledge_payment WHERE civicrm_pledge_payment.pledge_id = civicrm_pledge.id AND civicrm_pledge_payment.status_id IN ( 2, 6 ) ORDER BY civicrm_pledge_payment.scheduled_date ASC LIMIT 0, 1) as pledge_next_pay_date"; + $query->_select['pledge_next_pay_date'] = " (SELECT civicrm_pledge_payment.scheduled_date FROM civicrm_pledge_payment WHERE civicrm_pledge_payment.pledge_id = civicrm_pledge.id AND civicrm_pledge_payment.status_id IN ({$statusId}) ORDER BY civicrm_pledge_payment.scheduled_date ASC LIMIT 0, 1) as pledge_next_pay_date"; $query->_element['pledge_next_pay_date'] = 1; } if (!empty($query->_returnProperties['pledge_next_pay_amount'])) { - $query->_select['pledge_next_pay_amount'] = " (SELECT civicrm_pledge_payment.scheduled_amount FROM civicrm_pledge_payment WHERE civicrm_pledge_payment.pledge_id = civicrm_pledge.id AND civicrm_pledge_payment.status_id = 2 ORDER BY civicrm_pledge_payment.scheduled_date ASC LIMIT 0, 1) as pledge_next_pay_amount"; + $query->_select['pledge_next_pay_amount'] = " (SELECT civicrm_pledge_payment.scheduled_amount FROM civicrm_pledge_payment WHERE civicrm_pledge_payment.pledge_id = civicrm_pledge.id AND civicrm_pledge_payment.status_id IN ({$statusId}) ORDER BY civicrm_pledge_payment.scheduled_date ASC LIMIT 0, 1) as pledge_next_pay_amount"; $query->_element['pledge_next_pay_amount'] = 1; $query->_select['pledge_outstanding_amount'] = " (SELECT sum(civicrm_pledge_payment.scheduled_amount) FROM civicrm_pledge_payment WHERE civicrm_pledge_payment.pledge_id = civicrm_pledge.id AND civicrm_pledge_payment.status_id = 6 ) as pledge_outstanding_amount"; -- 2.25.1