Now checking for duplicate member names on import feature/markupChanges
authorChuck Scott <cscott@gaslightmedia.com>
Fri, 29 Jan 2016 15:05:10 +0000 (10:05 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Fri, 29 Jan 2016 15:05:10 +0000 (10:05 -0500)
models/admin/management/import.php
views/admin/management/import/readDatabase.html

index 48fa2e9..e3f6506 100644 (file)
@@ -859,6 +859,10 @@ class GlmMembersAdmin_management_import
                     // Import Members
                     $numbMembersActive = 0;
                     $numbMembersInactive = 0;
+                    $namesInserted = array();
+                    $membImportIssues = '';
+                    $haveMembImportIssues = false;
+                    $dupeNames = 0;
                     while (list ($key, $val) = each ($member) ) {
 
                         // Determine if member is active and set access accordingly
@@ -876,6 +880,19 @@ class GlmMembersAdmin_management_import
 
                         }
 
+                        // Check for duplicate name
+                        $membName = $val['member_name'];
+                        if (isset($namesInserted[$membName])) {
+
+                            // Bump dupe count and add to name to make this one unique
+                            $dupeNames++;
+                            $membName .= ' DUPE-'.$dupeNames;
+
+                            $membImportIssues .= '<li>Member Duplicate <b>'.$membName.'</b></li>';
+                            $haveMembImportIssues = true;
+
+                        }
+
                         // Add main member record
                         $res = $this->wpdb->insert(
                                 GLM_MEMBERS_PLUGIN_DB_PREFIX.'members',
@@ -883,7 +900,7 @@ class GlmMembersAdmin_management_import
                                         'access' => $access,
                                         'member_type' => $defaultMemberType,
                                         'created' => date('Y-m-d'),
-                                        'name' => $val['member_name'],
+                                        'name' => $membName,
                                         'member_slug' => sanitize_title($val['member_name']),
                                 ),
                                 array(
@@ -897,6 +914,9 @@ class GlmMembersAdmin_management_import
                         $membID = $this->wpdb->insert_id;
                         $member[$key]['new_id'] = $membID;
 
+                        // Add this member to the names inserted so we can check for duplicates
+                        $namesInserted[$membName] = true;
+
                         // Create truncated short_descr from descritions - Less tags, html encoded characters, newlines, tabs, etc.
                         $stripped = str_replace(PHP_EOL, '', preg_replace('/\t+/', '', preg_replace("/&#?[a-z0-9]{2,8};/i", "", strip_tags($val['description']))));
                         $short_descr = implode(' ', array_slice(explode(' ', $stripped), 0, 30));
@@ -914,10 +934,6 @@ class GlmMembersAdmin_management_import
                             }
                         }
 
-                        // Fix bad LAT/LON values. Anything that's not a number should be set to 0 (ZERO)
-                        $latVal = ($val['lat']-0);
-                        $lonVal = ($val['lon']-0);
-
                         // Insert Member Information Record
                         $res = $this->wpdb->insert(
                                 GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info',
@@ -934,8 +950,8 @@ class GlmMembersAdmin_management_import
                                         'state' => $state[$val['state_id']]['state_abb'],
                                         'country' => 'US',
                                         'zip' => $val['zip'],
-                                        'lat' => $latVal,
-                                        'lon' => $lonVal,
+                                        'lat' => $val['lat'],
+                                        'lon' => $val['lon'],
                                         'region' => (isset($region[$val['region']]) ? $region[$val['region']]['new_id'] : 0),
                                         'phone' => $val['phone'],
                                         'toll_free' => $val['toll_free'],
@@ -1052,6 +1068,8 @@ class GlmMembersAdmin_management_import
                     $templateData['numbMembers'] = count($member);
                     $templateData['numbMembersActive'] = $numbMembersActive;
                     $templateData['numbMembersInactive'] = $numbMembersInactive;
+                    $templateData['haveMembImportIssues'] = $haveMembImportIssues;
+                    $templateData['membImportIssues'] = $membImportIssues;
                     $templateData['numbCategories'] = count($catTrans);
                     $templateData['haveCatImportIssues'] = $haveCatImportIssues;
                     $templateData['catImportIssues'] = $catImportIssues;
index 898a11a..2728152 100644 (file)
         <tr><th>Cities:</th><td>{$numbCities}</td></tr>
         <tr><th>States:</th><td>{$numbStates}</td></tr>
         <tr><th>Regions:</th><td>{$numbRegions}</td></tr>
-        <tr><th>Members:</th><td>{$numbMembers}</td></tr>
+        <tr>
+            <th>Members:</th>
+            <td>
+                {$numbMembers}
+                {if $haveMembImportIssues}
+                    <ul>{$membImportIssues}</ul>
+                {/if}
+            </td>
+        </tr>
         <tr><th>Members Active:</th><td>{$numbMembersActive}</td></tr>
         <tr><th>Members Inactive:</th><td>{$numbMembersInactive}</td></tr>
         <tr><th>Categories:</th><td>{$numbCategories}</td></tr>