X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FBAO%2FContribution.php;h=00b4047fa9f26140710685f947647dbaa1eb0929;hb=e9ada0a8d738833d958ce04c8015819bf4a2cfbf;hp=204647ee4b14cc7db93dbbec46659f684cb10950;hpb=590eb86c657c27b937a0f6eb7301290a46457cc1;p=civicrm-core.git diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index 204647ee4b..00b4047fa9 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -50,7 +50,8 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution { * This is used for composing messages because they have dependency on the * contribution_page or event page - although over time we may eliminate that * - * @var "contribution"\"event" + * @var string + * "contribution"\"event" */ public $_component = NULL; @@ -130,7 +131,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution { if (!$contributionID) { CRM_Core_DAO::setCreateDefaults($params, self::getDefaults()); - if (empty($params['invoice_number'])) { + if (empty($params['invoice_number']) && CRM_Invoicing_Utils::isInvoicingEnabled()) { $nextContributionID = CRM_Core_DAO::singleValueQuery("SELECT COALESCE(MAX(id) + 1, 1) FROM civicrm_contribution"); $params['invoice_number'] = self::getInvoiceNumber($nextContributionID); } @@ -954,7 +955,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution { } /** - * Get memberships realted to the contribution. + * Get memberships related to the contribution. * * @param int $contributionID * @@ -4177,7 +4178,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac return (float) CRM_Utils_Money::subtractCurrencies( $contributionTotal, - CRM_Core_BAO_FinancialTrxn::getTotalPayments($contributionId, TRUE) ?: 0, + CRM_Core_BAO_FinancialTrxn::getTotalPayments($contributionId, TRUE), CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $contributionId, 'currency') ); } @@ -4704,16 +4705,17 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac * * @return string * Credit Note Id. + * + * @throws \CiviCRM_API3_Exception */ public static function createCreditNoteId() { - $prefixValue = Civi::settings()->get('contribution_invoice_settings'); $creditNoteNum = CRM_Core_DAO::singleValueQuery("SELECT count(creditnote_id) as creditnote_number FROM civicrm_contribution WHERE creditnote_id IS NOT NULL"); $creditNoteId = NULL; do { $creditNoteNum++; - $creditNoteId = CRM_Utils_Array::value('credit_notes_prefix', $prefixValue) . "" . $creditNoteNum; + $creditNoteId = Civi::settings()->get('credit_notes_prefix') . '' . $creditNoteNum; $result = civicrm_api3('Contribution', 'getcount', [ 'sequential' => 1, 'creditnote_id' => $creditNoteId, @@ -4838,50 +4840,6 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac return ''; } - /** - * Function to add payments for contribution for Partially Paid status - * - * @deprecated this is known to be flawed and possibly buggy. - * - * Replace with Order.create->Payment.create flow. - * - * @param array $contributions - * @param string $contributionStatusId - * - * @throws \CiviCRM_API3_Exception - */ - public static function addPayments($contributions, $contributionStatusId = NULL) { - // get financial trxn which is a payment - $ftSql = "SELECT ft.id, ft.total_amount - FROM civicrm_financial_trxn ft - INNER JOIN civicrm_entity_financial_trxn eft ON eft.financial_trxn_id = ft.id AND eft.entity_table = 'civicrm_contribution' - WHERE eft.entity_id = %1 AND ft.is_payment = 1 ORDER BY ft.id DESC LIMIT 1"; - $contributionStatus = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', [ - 'labelColumn' => 'name', - ]); - foreach ($contributions as $contribution) { - if (!($contributionStatus[$contribution->contribution_status_id] == 'Partially paid' - || CRM_Utils_Array::value($contributionStatusId, $contributionStatus) == 'Partially paid') - ) { - continue; - } - $ftDao = CRM_Core_DAO::executeQuery($ftSql, [ - 1 => [ - $contribution->id, - 'Integer', - ], - ]); - $ftDao->fetch(); - - // store financial item Proportionaly. - $trxnParams = [ - 'total_amount' => $ftDao->total_amount, - 'contribution_id' => $contribution->id, - ]; - self::assignProportionalLineItems($trxnParams, $ftDao->id, $contribution->total_amount); - } - } - /** * Function use to store line item proportionally in in entity financial trxn table * @@ -5073,21 +5031,13 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac * * * @param string $name - * @param bool $checkInvoicing + * * @return string * */ - public static function checkContributeSettings($name = NULL, $checkInvoicing = FALSE) { + public static function checkContributeSettings($name) { $contributeSettings = Civi::settings()->get('contribution_invoice_settings'); - - if ($checkInvoicing && empty($contributeSettings['invoicing'])) { - return NULL; - } - - if ($name) { - return CRM_Utils_Array::value($name, $contributeSettings); - } - return $contributeSettings; + return CRM_Utils_Array::value($name, $contributeSettings); } /** @@ -5902,7 +5852,7 @@ LIMIT 1;"; * @return string */ public static function getInvoiceNumber($contributionID) { - if ($invoicePrefix = self::checkContributeSettings('invoice_prefix', TRUE)) { + if ($invoicePrefix = self::checkContributeSettings('invoice_prefix')) { return $invoicePrefix . $contributionID; }