* 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;
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);
}
}
/**
- * Get memberships realted to the contribution.
+ * Get memberships related to the contribution.
*
* @param int $contributionID
*
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')
);
}
*
* @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,
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
- *
- * @throws \CiviCRM_API3_Exception
- */
- public static function addPayments($contributions) {
- // 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') {
- 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
*
*
*
* @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);
}
/**
* @return string
*/
public static function getInvoiceNumber($contributionID) {
- if ($invoicePrefix = self::checkContributeSettings('invoice_prefix', TRUE)) {
+ if ($invoicePrefix = self::checkContributeSettings('invoice_prefix')) {
return $invoicePrefix . $contributionID;
}