}
}
+ //if contribution is created with cancelled or refunded status, add credit note id
+ if (!empty($params['contribution_status_id'])) {
+ $contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
+
+ if (($params['contribution_status_id'] == array_search('Refunded', $contributionStatus)
+ || $params['contribution_status_id'] == array_search('Cancelled', $contributionStatus))
+ ) {
+ if (is_null($params['creditnote_id']) || $params['creditnote_id'] == "null") {
+ $params['creditnote_id'] = self::createCreditNoteId();
+ }
+ }
+ }
+
//set defaults in create mode
if (!$contributionID) {
CRM_Core_DAO::setCreateDefaults($params, self::getDefaults());
}
}
+ //if contribution is created with cancelled or refunded status, add credit note id
+ if (!empty($params['contribution_status_id'])) {
+ $contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
+
+ if (($params['contribution_status_id'] == array_search('Refunded', $contributionStatus)
+ || $params['contribution_status_id'] == array_search('Cancelled', $contributionStatus))
+ ) {
+ if (is_null($params['creditnote_id']) || $params['creditnote_id'] == "null") {
+ $params['creditnote_id'] = self::createCreditNoteId();
+ }
+ }
+ }
+
$transaction = new CRM_Core_Transaction();
$contribution = self::add($params, $ids);
) {
$params['trxnParams']['total_amount'] = -$params['total_amount'];
if (is_null($params['contribution']->creditnote_id) || $params['contribution']->creditnote_id == "null") {
- self::createCreditNoteId($params['contribution']->id);
+ $creditNoteId = self::createCreditNoteId();
+ CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $params['contribution']->id, 'creditnote_id', $creditNoteId);
}
}
elseif (($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatus)
$params['trxnParams']['to_financial_account_id'] = $arAccountId;
$params['trxnParams']['total_amount'] = -$params['total_amount'];
if (is_null($params['contribution']->creditnote_id) || $params['contribution']->creditnote_id == "null") {
- self::createCreditNoteId($params['contribution']->id);
+ $creditNoteId = self::createCreditNoteId();
+ CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $params['contribution']->id, 'creditnote_id', $creditNoteId);
}
}
else {
/**
* Generate credit note id with next avaible number
*
- * @param Integer $contributionId
- * Contribution Id.
- *
* @return string
* Credit Note Id.
*/
- public static function createCreditNoteId($contributionId) {
+ public static function createCreditNoteId() {
$prefixValue = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings');
$query = "select count(creditnote_id) as creditnote_number from civicrm_contribution";
));
} while ($result > 0);
- CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $contributionId, 'creditnote_id', $creditNoteId);
return $creditNoteId;
}