Adding ajax call for lat lon comparison
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 5 Mar 2019 15:52:22 +0000 (10:52 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 5 Mar 2019 15:52:22 +0000 (10:52 -0500)
Comparing lat lon for uptra

models/admin/ajax/verifyLatLon.php [new file with mode: 0644]
setup/validActions.php

diff --git a/models/admin/ajax/verifyLatLon.php b/models/admin/ajax/verifyLatLon.php
new file mode 100644 (file)
index 0000000..417c166
--- /dev/null
@@ -0,0 +1,180 @@
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * Members List JSON Export by AJAX
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package  glmMembersDatabase
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @version  0.1
+ */
+
+
+// Load Members data abstract
+// require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberInfo.php';
+/**
+ *
+ * This class exports the currently selected members list
+ * to a printable HTML file, to a CSV file, or otherwise.
+ */
+class GlmMembersAdmin_ajax_verifyLatLon // extends GlmDataMemberInfo
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+
+    /**
+     * Constructor
+     *
+     * This constructor sets up this model. At this time that only includes
+     * storing away the WordPress data object.
+     *
+     * @return object Class object
+     *
+     */
+    public function __construct ( $wpdb, $config )
+    {
+
+        // Save WordPress Database object
+        $this->wpdb = $wpdb;
+
+        // Save plugin configuration object
+        $this->config = $config;
+
+        // parent::__construct( $wpdb, $config );
+
+    }
+
+    public function modelAction( $actionData = false ) {
+
+        $oldLat = array();
+        $oldLon = array();
+        $newLat = array();
+        $newLon = array();
+        // Counters
+        $totalMembers = 0;
+        $totalGood    = 0;
+        $totalBad     = 0;
+
+        $dbh = new PDO(
+            'pgsql: host=ds5 dbname=uptravel user=nobody',
+            null,
+            null,
+            array(
+                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
+            )
+        );
+        $dbh->setAttribute(
+            PDO::ATTR_ERRMODE,
+            PDO::ERRMODE_EXCEPTION
+        );
+
+        $pSql = "
+        SELECT member_id,member_name,lat,lon
+          FROM members.member
+        ORDER BY member_id";
+
+        $oldMembers = $dbh->query($pSql)->fetchAll();
+
+        if ( isset( $oldMembers ) && is_array( $oldMembers ) ) {
+            foreach ( $oldMembers as $oldMember ) {
+                $oldLat[$oldMember['member_id']] = round( $oldMember['lat'], 4, PHP_ROUND_HALF_UP );
+                $oldLon[$oldMember['member_id']] = round( $oldMember['lon'], 4, PHP_ROUND_HALF_UP );
+            }
+        }
+
+
+        // echo '<pre>$oldMembers: ' . print_r( $oldMembers, true ) . '</pre>';
+        // exit;
+
+        $sql = "
+        SELECT MI.id,MI.member,MI.member_name,MI.lat,MI.lon,M.old_member_id
+          FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX. "member_info MI
+               LEFT OUTER JOIN " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members M
+               ON ( MI.member = M.id )
+         WHERE status = ".$this->config['status_numb']['Active']."
+           AND  (
+                 SELECT access
+                 FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+                 WHERE id = MI.member
+           ) IN (
+                 ".$this->config['access_numb']['NoAccess'].",
+                 ".$this->config['access_numb']['Moderated'].",
+                 ".$this->config['access_numb']['Full']."
+           )
+          AND M.old_member_id IS NOT NULL
+        ORDER BY M.old_member_id
+        ";
+
+        $members = $this->wpdb->get_results( $sql, ARRAY_A );
+
+        // echo '<pre>$members: ' . print_r( $members, true ) . '</pre>';
+        // echo '<p>Number of members: ' . count( $members ) . '</p>';
+
+        if ( isset( $members ) && is_array( $members ) ) {
+            foreach ( $members as $member ) {
+                $newLat[] = $member['lat'];
+                $newLon[] = $member['lon'];
+
+                if ( !$oldLon[$member['old_member_id']] ) {
+                    continue;
+                }
+
+                // echo '<p>Member: ' . $member['old_member_id'] . '</p>';
+
+                // Compare lats
+                if ( $oldLat[$member['old_member_id']] == $member['lat'] ) {
+                    // echo '<p>Lat matches</p>';
+                    $totalGood++;
+                } else {
+                    // check if off by one
+                    $l = (float)$member['lat'];
+                    $ol = (float)$oldLat[$member['old_member_id']];
+                    if ( (float)$ol > (float)$l ) {
+                        $diff = ( (float)$ol - (float)$l );
+                    } else {
+                        $diff = ( (float)$l - (float)$ol );
+                    }
+                    if ( $diff <= (float).00011 ) {
+                        $totalGood++;
+                    } else {
+                        $totalBad++;
+                        echo '<p>Member: ' . $member['old_member_id'] . '</p>';
+                        echo '<pre>$l: ' . print_r( $l, true ) . '</pre>';
+                        echo '<pre>$ol: ' . print_r( $ol, true ) . '</pre>';
+                        echo '<pre>$diff: ' . print_r( $diff, true ) . '</pre>';
+                    }
+                }
+            }
+        }
+
+        echo '<pre>$totalMembers: ' . print_r( $totalMembers, true ) . '</pre>';
+        echo '<pre>$totalGood: ' . print_r( $totalGood, true ) . '</pre>';
+        echo '<pre>$totalBad: ' . print_r( $totalBad, true ) . '</pre>';
+
+        // echo '<pre>$oldLat: ' . print_r( $oldLat, true ) . '</pre>';
+        // echo '<pre>$oldLon: ' . print_r( $oldLon, true ) . '</pre>';
+        // echo '<pre>$newLat: ' . print_r( $newLat, true ) . '</pre>';
+        // echo '<pre>$newLon: ' . print_r( $newLon, true ) . '</pre>';
+
+        // header( 'Content-Type: application/json' );
+        // echo json_encode( $members );
+    }
+
+}
index fea58a8..05a28f8 100644 (file)
@@ -50,6 +50,7 @@ $glmMembersValidActions = array(
             'countiesMapData'     => 'glm-member-db',
             'membersList'         => 'glm-member-db',
             'membersListJson'     => 'glm-member-db',
+            'verifyLatLon'     => 'glm-member-db',
         ),
         'dashboard' => array(
             'index'   => 'glm-member-db',