dev/core#281 Fix invoice number in message template
authoryashodha <yashodha@cividesk.com>
Thu, 26 Jul 2018 07:13:25 +0000 (12:43 +0530)
committerSeamus Lee <seamuslee001@gmail.com>
Sat, 22 Sep 2018 00:45:14 +0000 (10:45 +1000)
shift upgrade to 5.7.alpha1 and Get passing unit tests where template didn't exist before 4.6.alpha1

CRM/Upgrade/Incremental/MessageTemplates.php
xml/templates/message_templates/contribution_invoice_receipt_html.tpl

index 7b11e199df9e34e062c4bd00bb98bc0c2aea0c38..3f6e38009bc518a437f179916a8b465675b8e894 100644 (file)
@@ -82,6 +82,14 @@ class CRM_Upgrade_Incremental_MessageTemplates {
           ['name' => 'event_online_receipt', 'type' => 'subject'],
         ]
       ],
+      [
+        'version' => '5.7.alpha1',
+        'upgrade_descriptor' => ts('Fix invoice number (human readable) instead of id (reference)'),
+        'label' => ts('Contributions - Invoice'),
+        'templates' => [
+          ['name' => 'contribution_invoice_receipt', 'type' => 'html'],
+        ]
+      ]
     ];
   }
 
@@ -109,12 +117,20 @@ class CRM_Upgrade_Incremental_MessageTemplates {
   public function getUpgradeMessages() {
     $updates = $this->getTemplatesToUpdate();
     $messages = [];
+    $templateLabel = '';
     foreach ($updates as $key => $value) {
-      $templateLabel = civicrm_api3('OptionValue', 'getvalue', [
-        'return' => 'label',
-        'name' => $value['name'],
-        'options' => ['limit' => 1],
-      ]);
+      try {
+        $templateLabel = civicrm_api3('OptionValue', 'getvalue', [
+          'return' => 'label',
+          'name' => $value['name'],
+          'options' => ['limit' => 1],
+        ]);
+      }
+      catch (Exception $e) {
+        if (!empty($value['label'])) {
+          $templateLabel = $value['label'];
+        }
+      }
       $messages[$templateLabel] = $value['upgrade_descriptor'];
     }
     return $messages;
@@ -131,24 +147,26 @@ class CRM_Upgrade_Incremental_MessageTemplates {
       ]);
       $content = file_get_contents(\Civi::paths()->getPath('[civicrm.root]/xml/templates/message_templates/' . $template['name'] . '_' . $template['type'] . '.tpl'));
       $templatesToUpdate = [];
-      $templatesToUpdate[] = CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_msg_template WHERE workflow_id = $workFlowID AND is_reserved = 1");
-      $defaultTemplateID = CRM_Core_DAO::singleValueQuery("
-        SELECT default_template.id FROM civicrm_msg_template reserved
-        LEFT JOIN civicrm_msg_template default_template
-          ON reserved.workflow_id = default_template.workflow_id
-        WHERE reserved.workflow_id = $workFlowID
-        AND reserved.is_reserved = 1 AND default_template.is_default = 1 AND reserved.id <> default_template.id
-        AND reserved.msg_{$template['type']} = default_template.msg_{$template['type']}
-      ");
-      if ($defaultTemplateID) {
-        $templatesToUpdate[] = $defaultTemplateID;
-      }
+      if (!empty($workFlowID)) {
+        $templatesToUpdate[] = CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_msg_template WHERE workflow_id = $workFlowID AND is_reserved = 1");
+        $defaultTemplateID = CRM_Core_DAO::singleValueQuery("
+          SELECT default_template.id FROM civicrm_msg_template reserved
+          LEFT JOIN civicrm_msg_template default_template
+            ON reserved.workflow_id = default_template.workflow_id
+          WHERE reserved.workflow_id = $workFlowID
+          AND reserved.is_reserved = 1 AND default_template.is_default = 1 AND reserved.id <> default_template.id
+          AND reserved.msg_{$template['type']} = default_template.msg_{$template['type']}
+        ");
+        if ($defaultTemplateID) {
+          $templatesToUpdate[] = $defaultTemplateID;
+        }
 
-      CRM_Core_DAO::executeQuery("
-        UPDATE civicrm_msg_template SET msg_{$template['type']} = %1 WHERE id IN (" . implode(',', $templatesToUpdate) . ")", [
-          1 => [$content, 'String']
-          ]
-      );
+        CRM_Core_DAO::executeQuery("
+          UPDATE civicrm_msg_template SET msg_{$template['type']} = %1 WHERE id IN (" . implode(',', $templatesToUpdate) . ")", [
+            1 => [$content, 'String']
+            ]
+        );
+      }
     }
   }
 
index 75d7bf006c457ba98d6123280fcc32a428dd9fcb..1a7b64bf5b8387a7cc44fc8b096e38bcd4fca4d6 100644 (file)
                 <tr>
                   <td colspan = "2"></td>
                   <td><font size = "1" align = "right" style="font-weight:bold;">{ts}Invoice Number: {/ts}</font></td>
-                  <td><font size = "1" align = "right">{$invoice_id}</font></td>
+                  <td><font size = "1" align = "right">{$invoice_number}</font></td>
                 </tr>
                 <tr><td colspan = "5"style = "color:#F5F5F5;"><hr></hr></td></tr>
                 {if $is_pay_later == 1}