CRM-19148 Fix for on hold data being lost
authoreileen <emcnaughton@wikimedia.org>
Thu, 13 Oct 2016 17:50:01 +0000 (18:50 +0100)
committereileen <emcnaughton@wikimedia.org>
Thu, 13 Oct 2016 17:50:01 +0000 (18:50 +0100)
CRM/Dedupe/Merger.php

index b681e97eeee8cb7075bde0d9048b16ac41cd62ee..11938d493424518346ffe73b223b29b6ca15541b 100644 (file)
@@ -929,12 +929,12 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    * @return bool
    */
   static public function locationIsSame($mainAddress, $comparisonAddress) {
-    $keysToIgnore = array('id', 'is_primary', 'is_billing', 'manual_geo_code', 'contact_id');
+    $keysToIgnore = array('id', 'is_primary', 'is_billing', 'manual_geo_code', 'contact_id', 'reset_date', 'hold_date');
     foreach ($comparisonAddress as $field => $value) {
       if (in_array($field, $keysToIgnore)) {
         continue;
       }
-      if (!empty($value) && isset($mainAddress[$field]) && $mainAddress[$field] != $value) {
+      if ((!empty($value) || $value === '0') && isset($mainAddress[$field]) && $mainAddress[$field] != $value) {
         return FALSE;
       }
     }