CRM-13420 - Check for missing payment instruments during upgrade and give warning.
authorDave Greenberg <dave@civicrm.org>
Thu, 5 Dec 2013 00:49:52 +0000 (16:49 -0800)
committerDave Greenberg <dave@civicrm.org>
Thu, 5 Dec 2013 00:49:52 +0000 (16:49 -0800)
----------------------------------------
* CRM-13420: Upgrade: Report invalid data resulting from allowing transaction w/o payment instrument
  http://issues.civicrm.org/jira/browse/CRM-13420

CRM/Upgrade/Incremental/php/FourFour.php

index 288e34f7976a189fa3e0fc4660ce596c271e8e9c..042629c254ef880b8da94b6d7a14494280948d74 100644 (file)
@@ -68,6 +68,17 @@ class CRM_Upgrade_Incremental_php_FourFour {
     if ($rev == '4.4.3') {
       $postUpgradeMessage .= '<br /><br />' . ts('Default versions of the following System Workflow Message Templates have been modified to handle new functionality: <ul><li>Events - Registration Confirmation and Receipt (on-line)</li></ul> If you have modified these templates, please review the new default versions and implement updates as needed to your copies (Administer > Communications > Message Templates > System Workflow Messages).');
     }
+    if ($rev == '4.4.3') {
+      $query = "SELECT cft.id financial_trxn
+FROM civicrm_financial_trxn cft
+LEFT JOIN civicrm_entity_financial_trxn ceft ON ceft.financial_trxn_id = cft.id
+LEFT JOIN civicrm_contribution cc ON ceft.entity_id = cc.id
+WHERE ceft.entity_table = 'civicrm_contribution' AND cft.payment_instrument_id IS NULL;";
+      $dao = CRM_Core_DAO::executeQuery($query);
+      if ($dao->N) {
+        $postUpgradeMessage .= '<br /><br /><strong>' . ts('Your database contains %1 financial transaction records with no payment instrument (Paid By is empty). If you use the Accounting Batches feature this may result in unbalanced transactions. If you do not use this feature, you can ignore the condition (although you will be required to select a Paid By value for new transactions). <a href="%2" target="_blank">You can review steps to correct transactions with missing payment instruments on the wiki.</a>', array(1 => $dao->N, 2 => 'http://wiki.civicrm.org/confluence/display/CRMDOC/Fixing+Transactions+Missing+a+Payment+Instrument+-+4.4.3+Upgrades')) . '</strong>';
+      }
+    }
   }
 
   function upgrade_4_4_alpha1($rev) {