X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FPledge%2FBAO%2FPledge.php;h=4726b23a79f37c8825491620554477860a602779;hb=72b3a70c5e7890c69dd70bf00092e1217c5f15b7;hp=1aed6a8ae7e1c30b093d079bf95fccb99a8abe8c;hpb=d10b2c65fedfc3bac77085a1639acc2188de2926;p=civicrm-core.git diff --git a/CRM/Pledge/BAO/Pledge.php b/CRM/Pledge/BAO/Pledge.php index 1aed6a8ae7..4726b23a79 100644 --- a/CRM/Pledge/BAO/Pledge.php +++ b/CRM/Pledge/BAO/Pledge.php @@ -1,7 +1,7 @@ copyValues($params); if ($pledge->find(TRUE)) { @@ -74,16 +75,16 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { } /** - * function to add pledge + * Add pledge * - * @param array $params reference array contains the values submitted by the form + * @param array $params + * Reference array contains the values submitted by the form. * - * @access public * @static * * @return object */ - static function add(&$params) { + public static function add(&$params) { if (!empty($params['id'])) { CRM_Utils_Hook::pre('edit', 'Pledge', $params['id'], $params); } @@ -122,15 +123,18 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { * Given the list of params in the params array, fetch the object * and store the values in the values array * - * @param array $params input parameters to find object - * @param array $values output values of the object - * @param array $returnProperties if you want to return specific fields + * @param array $params + * Input parameters to find object. + * @param array $values + * Output values of the object. + * @param array $returnProperties + * If you want to return specific fields. * - * @return array associated array of field values - * @access public + * @return array + * associated array of field values * @static */ - static function &getValues(&$params, &$values, $returnProperties = NULL) { + public static function &getValues(&$params, &$values, $returnProperties = NULL) { if (empty($params)) { return NULL; } @@ -139,15 +143,15 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { } /** - * takes an associative array and creates a pledge object + * Takes an associative array and creates a pledge object * - * @param array $params (reference ) an assoc array of name/value pairs + * @param array $params + * (reference ) an assoc array of name/value pairs. * - * @return object CRM_Pledge_BAO_Pledge object - * @access public + * @return CRM_Pledge_BAO_Pledge object * @static */ - static function &create(&$params) { + public static function &create(&$params) { //FIXME: a cludgy hack to fix the dates to MySQL format $dateFields = array('start_date', 'create_date', 'acknowledge_date', 'modified_date', 'cancel_date', 'end_date'); foreach ($dateFields as $df) { @@ -200,7 +204,6 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { // skip payment stuff inedit mode if (!isset($params['id']) || !empty($params['is_pledge_pending'])) { - //if pledge is pending delete all payments and recreate. if (!empty($params['is_pledge_pending'])) { CRM_Pledge_BAO_PledgePayment::deletePayments($pledge->id); @@ -209,8 +212,16 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { //building payment params $paymentParams['pledge_id'] = $pledge->id; $paymentKeys = array( - 'amount', 'installments', 'scheduled_date', 'frequency_unit', 'currency', - 'frequency_day', 'frequency_interval', 'contribution_id', 'installment_amount', 'actual_amount', + 'amount', + 'installments', + 'scheduled_date', + 'frequency_unit', + 'currency', + 'frequency_day', + 'frequency_interval', + 'contribution_id', + 'installment_amount', + 'actual_amount', ); foreach ($paymentKeys as $key) { $paymentParams[$key] = CRM_Utils_Array::value($key, $params, NULL); @@ -253,16 +264,15 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { } /** - * Function to delete the pledge + * Delete the pledge * - * @param int $id pledge id + * @param int $id + * Pledge id. * * @return mixed - * @access public * @static - * */ - static function deletePledge($id) { + public static function deletePledge($id) { CRM_Utils_Hook::pre('delete', 'Pledge', $id, CRM_Core_DAO::$_nullArray); $transaction = new CRM_Core_Transaction(); @@ -280,7 +290,7 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { $payment->delete(); } - $dao = new CRM_Pledge_DAO_Pledge(); + $dao = new CRM_Pledge_DAO_Pledge(); $dao->id = $id; $results = $dao->delete(); @@ -299,7 +309,7 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { } /** - * function to get the amount details date wise. + * Get the amount details date wise. * * @param string $status * @param string $startDate @@ -307,7 +317,7 @@ class CRM_Pledge_BAO_Pledge extends CRM_Pledge_DAO_Pledge { * * @return array|null */ - static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) { + public static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) { $where = array(); $select = $from = $queryDate = NULL; //get all status @@ -352,17 +362,18 @@ FROM civicrm_pledge WHERE $whereCond AND is_test=0 GROUP BY currency "; - $start = substr($startDate, 0, 8); - $end = substr($endDate, 0, 8); - $pCount = 0; + $start = substr($startDate, 0, 8); + $end = substr($endDate, 0, 8); + $pCount = 0; $pamount = array(); - $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray); + $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray); while ($dao->fetch()) { $pCount += $dao->pledge_count; $pamount[] = CRM_Utils_Money::format($dao->pledge_amount, $dao->currency); } - $pledge_amount = array('pledge_amount' => implode(', ', $pamount), + $pledge_amount = array( + 'pledge_amount' => implode(', ', $pamount), 'pledge_count' => $pCount, 'purl' => CRM_Utils_System::url('civicrm/pledge/search', "reset=1&force=1&pstatus={$statusId}&pstart={$start}&pend={$end}&test=0" @@ -373,31 +384,31 @@ GROUP BY currency $statusId = array_search($status, $allStatus); switch ($status) { case 'Completed': - $select = 'sum( total_amount ) as received_pledge , count( cd.id ) as received_count'; - $where[] = 'cp.status_id = ' . $statusId . ' AND cp.contribution_id = cd.id AND cd.is_test=0'; + $select = 'sum( total_amount ) as received_pledge , count( cd.id ) as received_count'; + $where[] = 'cp.status_id = ' . $statusId . ' AND cp.contribution_id = cd.id AND cd.is_test=0'; $queryDate = 'receive_date'; - $from = ' civicrm_contribution cd, civicrm_pledge_payment cp'; + $from = ' civicrm_contribution cd, civicrm_pledge_payment cp'; break; case 'Cancelled': - $select = 'sum( total_amount ) as received_pledge , count( cd.id ) as received_count'; - $where[] = 'cp.status_id = ' . $statusId . ' AND cp.contribution_id = cd.id AND cd.is_test=0'; + $select = 'sum( total_amount ) as received_pledge , count( cd.id ) as received_count'; + $where[] = 'cp.status_id = ' . $statusId . ' AND cp.contribution_id = cd.id AND cd.is_test=0'; $queryDate = 'receive_date'; - $from = ' civicrm_contribution cd, civicrm_pledge_payment cp'; + $from = ' civicrm_contribution cd, civicrm_pledge_payment cp'; break; case 'Pending': - $select = 'sum( scheduled_amount )as received_pledge , count( cp.id ) as received_count'; - $where[] = 'cp.status_id = ' . $statusId . ' AND pledge.is_test=0'; + $select = 'sum( scheduled_amount )as received_pledge , count( cp.id ) as received_count'; + $where[] = 'cp.status_id = ' . $statusId . ' AND pledge.is_test=0'; $queryDate = 'scheduled_date'; - $from = ' civicrm_pledge_payment cp INNER JOIN civicrm_pledge pledge on cp.pledge_id = pledge.id'; + $from = ' civicrm_pledge_payment cp INNER JOIN civicrm_pledge pledge on cp.pledge_id = pledge.id'; break; case 'Overdue': - $select = 'sum( scheduled_amount ) as received_pledge , count( cp.id ) as received_count'; - $where[] = 'cp.status_id = ' . $statusId . ' AND pledge.is_test=0'; + $select = 'sum( scheduled_amount ) as received_pledge , count( cp.id ) as received_count'; + $where[] = 'cp.status_id = ' . $statusId . ' AND pledge.is_test=0'; $queryDate = 'scheduled_date'; - $from = ' civicrm_pledge_payment cp INNER JOIN civicrm_pledge pledge on cp.pledge_id = pledge.id'; + $from = ' civicrm_pledge_payment cp INNER JOIN civicrm_pledge pledge on cp.pledge_id = pledge.id'; break; } @@ -417,10 +428,9 @@ GROUP BY currency GROUP BY cp.currency "; if ($select) { - // CRM_Core_Error::debug($status . ' start:' . $startDate . '- end:' . $endDate, $query); - $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray); + $dao = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray); $amount = array(); - $count = 0; + $count = 0; while ($dao->fetch()) { $count += $dao->received_count; @@ -428,12 +438,13 @@ GROUP BY currency } if ($count) { - return array_merge($pledge_amount, array('received_amount' => implode(', ', $amount), - 'received_count' => $count, - 'url' => CRM_Utils_System::url('civicrm/pledge/search', - "reset=1&force=1&status={$statusId}&start={$start}&end={$end}&test=0" - ), - )); + return array_merge($pledge_amount, array( + 'received_amount' => implode(', ', $amount), + 'received_count' => $count, + 'url' => CRM_Utils_System::url('civicrm/pledge/search', + "reset=1&force=1&status={$statusId}&start={$start}&end={$end}&test=0" + ), + )); } } else { @@ -443,16 +454,17 @@ GROUP BY currency } /** - * Function to get list of pledges In Honor of contact Ids + * Get list of pledges In Honor of contact Ids * - * @param int $honorId In Honor of Contact ID + * @param int $honorId + * In Honor of Contact ID. * - * @return array return the list of pledge fields + * @return array + * return the list of pledge fields * - * @access public * @static */ - static function getHonorContacts($honorId) { + public static function getHonorContacts($honorId) { $params = array(); $honorDAO = new CRM_Contribute_DAO_ContributionSoft(); $honorDAO->contact_id = $honorId; @@ -488,15 +500,16 @@ GROUP BY currency } /** - * Function to send Acknowledgment and create activity. + * Send Acknowledgment and create activity. * - * @param object $form form object. - * @param array $params (reference ) an assoc array of name/value pairs. - * @access public + * @param CRM_Core_Form $form + * Form object. + * @param array $params + * An assoc array of name/value pairs. * - * @return void. + * @return void */ - static function sendAcknowledgment(&$form, $params) { + public static function sendAcknowledgment(&$form, $params) { //handle Acknowledgment. $allPayments = $payments = array(); @@ -521,7 +534,8 @@ GROUP BY currency ); } $payments[$payID] = array_merge($contributionValue, - array('amount' => CRM_Utils_Array::value('scheduled_amount', $values), + array( + 'amount' => CRM_Utils_Array::value('scheduled_amount', $values), 'due_date' => CRM_Utils_Array::value('scheduled_date', $values), ) ); @@ -529,17 +543,23 @@ GROUP BY currency //get the first valid payment id. if (!isset($form->paymentId) && ($paymentStatusTypes[$values['status_id']] == 'Pending' || $paymentStatusTypes[$values['status_id']] == 'Overdue' - )) { + ) + ) { $form->paymentId = $values['id']; } } } - //end //assign pledge fields value to template. $pledgeFields = array( - 'create_date', 'total_pledge_amount', 'frequency_interval', 'frequency_unit', - 'installments', 'frequency_day', 'scheduled_amount', 'currency', + 'create_date', + 'total_pledge_amount', + 'frequency_interval', + 'frequency_unit', + 'installments', + 'frequency_day', + 'scheduled_amount', + 'currency', ); foreach ($pledgeFields as $field) { if (!empty($params[$field])) { @@ -554,7 +574,8 @@ GROUP BY currency //handle domain token values $domain = CRM_Core_BAO_Domain::getDomain(); - $tokens = array('domain' => array('name', 'phone', 'address', 'email'), + $tokens = array( + 'domain' => array('name', 'phone', 'address', 'email'), 'contact' => CRM_Core_SelectValues::contactTokens(), ); $domainValues = array(); @@ -581,9 +602,9 @@ GROUP BY currency //handle custom data. if (!empty($params['hidden_custom'])) { - $groupTree = CRM_Core_BAO_CustomGroup::getTree('Pledge', CRM_Core_DAO::$_nullObject, $params['id']); + $groupTree = CRM_Core_BAO_CustomGroup::getTree('Pledge', CRM_Core_DAO::$_nullObject, $params['id']); $pledgeParams = array(array('pledge_id', '=', $params['id'], 0, 0)); - $customGroup = array(); + $customGroup = array(); // retrieve custom data foreach ($groupTree as $groupID => $group) { $customFields = $customValues = array(); @@ -606,7 +627,7 @@ GROUP BY currency //handle acknowledgment email stuff. list($pledgerDisplayName, $pledgerEmail - ) = CRM_Contact_BAO_Contact_Location::getEmailDetails($params['contact_id']); + ) = CRM_Contact_BAO_Contact_Location::getEmailDetails($params['contact_id']); //check for online pledge. $session = CRM_Core_Session::singleton(); @@ -653,6 +674,7 @@ GROUP BY currency ); $config = CRM_Core_Config::singleton(); + // FIXME: Translate $details = 'Total Amount ' . CRM_Utils_Money::format($params['total_pledge_amount'], CRM_Utils_Array::value('currency', $params)) . ' To be paid in ' . $params['installments'] . ' installments of ' . CRM_Utils_Money::format($params['scheduled_amount'], CRM_Utils_Array::value('currency', $params)) . ' every ' . $params['frequency_interval'] . ' ' . $params['frequency_unit'] . '(s)'; if (!$activity->find()) { @@ -683,13 +705,13 @@ GROUP BY currency } /** - * combine all the exportable fields from the lower levels object + * Combine all the exportable fields from the lower levels object * - * @return array array of exportable Fields - * @access public + * @return array + * array of exportable Fields * @static */ - static function &exportableFields() { + public static function &exportableFields() { if (!self::$_exportableFields) { if (!self::$_exportableFields) { self::$_exportableFields = array(); @@ -700,21 +722,23 @@ GROUP BY currency $fields = array_merge($fields, CRM_Pledge_DAO_PledgePayment::export()); //set title to calculated fields - $calculatedFields = array('pledge_total_paid' => array('title' => ts('Total Paid')), + $calculatedFields = array( + 'pledge_total_paid' => array('title' => ts('Total Paid')), 'pledge_balance_amount' => array('title' => ts('Balance Amount')), 'pledge_next_pay_date' => array('title' => ts('Next Payment Date')), 'pledge_next_pay_amount' => array('title' => ts('Next Payment Amount')), 'pledge_payment_paid_amount' => array('title' => ts('Paid Amount')), 'pledge_payment_paid_date' => array('title' => ts('Paid Date')), - 'pledge_payment_status' => array('title' => ts('Pledge Payment Status'), + 'pledge_payment_status' => array( + 'title' => ts('Pledge Payment Status'), 'name' => 'pledge_payment_status', 'data_type' => CRM_Utils_Type::T_STRING, ), ); - $pledgeFields = array( - 'pledge_status' => array('title' => 'Pledge Status', + 'pledge_status' => array( + 'title' => 'Pledge Status', 'name' => 'pledge_status', 'data_type' => CRM_Utils_Type::T_STRING, ), @@ -746,14 +770,16 @@ GROUP BY currency } /** - * Function to get pending or in progress pledges + * Get pending or in progress pledges * - * @param int $contactID contact id + * @param int $contactID + * Contact id. * - * @return array associated array of pledge id(s) + * @return array + * associated array of pledge id(s) * @static */ - static function getContactPledges($contactID) { + public static function getContactPledges($contactID) { $pledgeDetails = array(); $pledgeStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); @@ -761,7 +787,10 @@ GROUP BY currency //get pending and in progress status foreach (array( - 'Pending', 'In Progress', 'Overdue') as $name) { + 'Pending', + 'In Progress', + 'Overdue' + ) as $name) { if ($statusId = array_search($name, $pledgeStatuses)) { $status[] = $statusId; } @@ -790,23 +819,21 @@ GROUP BY currency } /** - * Function to get pledge record count for a Contact - * - * @param $contactID + * Get pledge record count for a Contact * - * @internal param int $contactId Contact ID + * @param int $contactID * - * @return int count of pledge records - * @access public + * @return int + * count of pledge records * @static */ - static function getContactPledgeCount($contactID) { + public static function getContactPledgeCount($contactID) { $query = "SELECT count(*) FROM civicrm_pledge WHERE civicrm_pledge.contact_id = {$contactID} AND civicrm_pledge.is_test = 0"; return CRM_Core_DAO::singleValueQuery($query); } /** - * @param $params + * @param array $params * * @return array */ @@ -820,7 +847,10 @@ GROUP BY currency //unset statues that we never use for pledges foreach (array( - 'Completed', 'Cancelled', 'Failed') as $statusKey) { + 'Completed', + 'Cancelled', + 'Failed' + ) as $statusKey) { if ($key = CRM_Utils_Array::key($statusKey, $allStatus)) { unset($allStatus[$key]); } @@ -893,7 +923,8 @@ SELECT pledge.contact_id as contact_id, if (CRM_Utils_Date::overdue(CRM_Utils_Date::customFormat($dao->scheduled_date, '%Y%m%d'), $now - ) && $dao->payment_status != array_search('Overdue', $allStatus)) { + ) && $dao->payment_status != array_search('Overdue', $allStatus) + ) { $pledgePayments[$dao->pledge_id][$dao->payment_id] = $dao->payment_id; } } @@ -916,7 +947,8 @@ SELECT pledge.contact_id as contact_id, if ($sendReminders) { // retrieve domain tokens $domain = CRM_Core_BAO_Domain::getDomain(); - $tokens = array('domain' => array('name', 'phone', 'address', 'email'), + $tokens = array( + 'domain' => array('name', 'phone', 'address', 'email'), 'contact' => CRM_Core_SelectValues::contactTokens(), ); @@ -1060,7 +1092,8 @@ SELECT pledge.contact_id as contact_id, * Find payments which can be safely canceled. * * @param int $pledgeID - * @return array of int (civicrm_pledge_payment.id) + * @return array + * of int (civicrm_pledge_payment.id) */ public static function findCancelablePayments($pledgeID) { $statuses = array_flip(CRM_Contribute_PseudoConstant::contributionStatus()); @@ -1085,11 +1118,12 @@ SELECT pledge.contact_id as contact_id, * when no transactions have taken place - the editing process currently involves deleting all pledge payments & contributions * & recreating so we want to block that if appropriate * - * @param integer $pledgeID - * @param integer $pledgeStatusID - * @return bool do financial transactions exist for this pledge? + * @param int $pledgeID + * @param int $pledgeStatusID + * @return bool + * do financial transactions exist for this pledge? */ - static function pledgeHasFinancialTransactions($pledgeID, $pledgeStatusID) { + public static function pledgeHasFinancialTransactions($pledgeID, $pledgeStatusID) { if (empty($pledgeStatusID)) { //why would this happen? If we can see where it does then we can see if we should look it up //but assuming from form code it CAN be empty @@ -1099,14 +1133,19 @@ SELECT pledge.contact_id as contact_id, return TRUE; } - return civicrm_api3('pledge_payment', 'getcount', array('pledge_id' => $pledgeID, 'status_id' => array('IN' => self::getTransactionalStatus()))); - } + return civicrm_api3('pledge_payment', 'getcount', array( + 'pledge_id' => $pledgeID, + 'status_id' => array('IN' => self::getTransactionalStatus()) + )); + } /** * Does this pledge / pledge payment status mean that a financial transaction has taken place? - * @param int $statusID pledge status id + * @param int $statusID + * Pledge status id. * - * @return bool is it a transactional status? + * @return bool + * is it a transactional status? */ protected static function isTransactedStatus($statusID) { if (!in_array($statusID, self::getNonTransactionalStatus())) { @@ -1117,7 +1156,8 @@ SELECT pledge.contact_id as contact_id, /** * Get array of non transactional statuses - * @return array non transactional status ids + * @return array + * non transactional status ids */ protected static function getNonTransactionalStatus() { $paymentStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); @@ -1126,11 +1166,11 @@ SELECT pledge.contact_id as contact_id, /** * Get array of non transactional statuses - * @return array non transactional status ids + * @return array + * non transactional status ids */ protected static function getTransactionalStatus() { $paymentStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); return array_diff(array_flip($paymentStatus), self::getNonTransactionalStatus()); } } -