Skip to content

Commit

Permalink
CRM-20387 - Add invoice_number field for human readable contribution …
Browse files Browse the repository at this point in the history
…invoice
  • Loading branch information
colemanw committed May 4, 2017
1 parent 386348d commit d78b331
Show file tree
Hide file tree
Showing 13 changed files with 550 additions and 17 deletions.
3 changes: 2 additions & 1 deletion CRM/Contribute/BAO/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ public static function whereClauseSingle(&$values, &$query) {
CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes);
$query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_contribution.$name", 'IN', array_keys($financialTypes), 'String');
case 'invoice_id':
case 'invoice_number':
case 'payment_instrument_id':
case 'contribution_payment_instrument_id':
case 'contribution_page_id':
Expand Down Expand Up @@ -943,7 +944,7 @@ public static function buildSearchForm(&$form) {

// Add field for transaction ID search
$form->addElement('text', 'contribution_trxn_id', ts("Transaction ID"));
$form->addElement('text', 'invoice_id', ts("Invoice ID"));
$form->addElement('text', 'invoice_number', ts("Invoice Number"));
$form->addElement('text', 'contribution_check_number', ts('Check Number'));

// Add field for pcp display in roll search
Expand Down
30 changes: 28 additions & 2 deletions CRM/Contribute/DAO/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
*
* Generated from xml/schema/CRM/Contribute/Contribution.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
* (GenCodeChecksum:59c3615cae90b0580f7d77aa8343b21f)
* (GenCodeChecksum:ef92bd39734f5967f59e4cdb08fc0ba8)
*/
require_once 'CRM/Core/DAO.php';
require_once 'CRM/Utils/Type.php';
Expand Down Expand Up @@ -122,6 +122,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
* @var string
*/
public $invoice_id;
/**
* Human readable invoice number
*
* @var string
*/
public $invoice_number;
/**
* 3 character string, value from config setting or input via user.
*
Expand Down Expand Up @@ -487,7 +493,7 @@ static function &fields() {
'invoice_id' => array(
'name' => 'invoice_id',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Invoice ID') ,
'title' => ts('Invoice Hash') ,
'description' => 'unique invoice id, system generated or passed in',
'maxlength' => 255,
'size' => CRM_Utils_Type::HUGE,
Expand All @@ -504,6 +510,26 @@ static function &fields() {
'type' => 'Text',
) ,
) ,
'invoice_number' => array(
'name' => 'invoice_number',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Invoice Number') ,
'description' => 'Human readable invoice number',
'maxlength' => 255,
'size' => CRM_Utils_Type::HUGE,
'import' => true,
'where' => 'civicrm_contribution.invoice_number',
'headerPattern' => '/invoice(.?number)?/i',
'dataPattern' => '',
'export' => true,
'table_name' => 'civicrm_contribution',
'entity' => 'Contribution',
'bao' => 'CRM_Contribute_BAO_Contribution',
'localizable' => 0,
'html' => array(
'type' => 'Text',
) ,
) ,
'currency' => array(
'name' => 'currency',
'type' => CRM_Utils_Type::T_STRING,
Expand Down
15 changes: 8 additions & 7 deletions CRM/Contribute/Form/Task/Invoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ public static function printPDF($contribIDs, &$params, $contactIds) {
$creditNoteId = $contribution->creditnote_id;
}
}
$invoiceId = CRM_Utils_Array::value('invoice_prefix', $prefixValue) . "" . $contribution->id;
$invoiceNumber = CRM_Utils_Array::value('invoice_prefix', $prefixValue) . "" . $contribution->id;

//to obtain due date for PDF invoice
$contributionReceiveDate = date('F j,Y', strtotime(date($input['receive_date'])));
Expand Down Expand Up @@ -425,7 +425,8 @@ public static function printPDF($contribIDs, &$params, $contactIds) {
'component' => $input['component'],
'id' => $contribution->id,
'source' => $source,
'invoice_id' => $invoiceId,
'invoice_number' => $invoiceNumber,
'invoice_id' => $contribution->invoice_id,
'resourceBase' => $config->userFrameworkResourceURL,
'defaultCurrency' => $config->defaultCurrency,
'amount' => $contribution->total_amount,
Expand Down Expand Up @@ -468,7 +469,7 @@ public static function printPDF($contribIDs, &$params, $contactIds) {
$tplParams['creditnote_id'] = $creditNoteId;
}

$pdfFileName = "{$invoiceId}.pdf";
$pdfFileName = "{$invoiceNumber}.pdf";
$sendTemplateParams = array(
'groupName' => 'msg_tpl_workflow_contribution',
'valueName' => 'contribution_invoice_receipt',
Expand Down Expand Up @@ -536,7 +537,7 @@ public static function printPDF($contribIDs, &$params, $contactIds) {

list($sent, $subject, $message, $html) = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams);
// functions call for adding activity with attachment
$pdfFileName = "{$invoiceId}.pdf";
$pdfFileName = "{$invoiceNumber}.pdf";
$fileName = self::putFile($html, $pdfFileName);
self::addActivities($subject, $contribution->contact_id, $fileName, $params);
}
Expand All @@ -551,12 +552,12 @@ public static function printPDF($contribIDs, &$params, $contactIds) {

list($sent, $subject, $message, $html) = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams);
// functions call for adding activity with attachment
$pdfFileName = "{$invoiceId}.pdf";
$pdfFileName = "{$invoiceNumber}.pdf";
$fileName = self::putFile($html, $pdfFileName);
self::addActivities($subject, $contribution->contact_id, $fileName, $params);
}

CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $contribution->id, 'invoice_id', $invoiceId);
CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $contribution->id, 'invoice_number', $invoiceNumber);
$invoiceTemplate->clearTemplateVars();
}

Expand All @@ -565,7 +566,7 @@ public static function printPDF($contribIDs, &$params, $contactIds) {
return $html;
}
else {
$pdfFileName = "{$invoiceId}.pdf";
$pdfFileName = "{$invoiceNumber}.pdf";
CRM_Utils_PDF_Utils::html2pdf($messageInvoice, $pdfFileName, FALSE, array(
'margin_top' => 10,
'margin_left' => 65,
Expand Down
16 changes: 16 additions & 0 deletions CRM/Upgrade/4.7.20.msg_template/civicrm_msg_template.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{php}
$dir = SMARTY_DIR . '/../../CRM/Upgrade/4.7.20.msg_template/message_templates';
$templates = array();
foreach (preg_grep('/\.tpl$/', scandir($dir)) as $filename) {
$parts = explode('_', basename($filename, '.tpl'));
$templates[] = array('type' => array_pop($parts), 'name' => implode('_', $parts), 'filename' => "$dir/$filename");
}
$this->assign('templates', $templates);
{/php}

{foreach from=$templates item=tpl}
{fetch assign=content file=$tpl.filename}
SELECT @workflow_id := MAX(id) FROM civicrm_option_value WHERE name = '{$tpl.name}';
SELECT @content := msg_{$tpl.type} FROM civicrm_msg_template WHERE workflow_id = @workflow_id AND is_reserved = 1 LIMIT 1;
UPDATE civicrm_msg_template SET msg_{$tpl.type} = '{$content|escape:"quotes"}' WHERE workflow_id = @workflow_id AND (is_reserved = 1 OR (is_default = 1 AND msg_{$tpl.type} = @content));
{/foreach}
Loading

0 comments on commit d78b331

Please sign in to comment.