From: Steve Sutton Date: Mon, 25 Sep 2017 19:50:06 +0000 (-0400) Subject: Update the ajax file for adding registrant. X-Git-Tag: v1.0.0^2~386 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=017d86e6429d81a03f5045e9bdae3dd473a74e94;p=WP-Plugins%2Fglm-member-db-registrations.git Update the ajax file for adding registrant. Use account id for account if it can find it by email else it will create an account and use the new id. For each table it will check for existing entry and update that one. --- diff --git a/js/frontRegApp.js b/js/frontRegApp.js index fe005d1..852b76e 100644 --- a/js/frontRegApp.js +++ b/js/frontRegApp.js @@ -656,6 +656,8 @@ app.Views.Front.RegClass = Backbone.View.extend({ reg_class: this.model.get( 'id' ), reg_rate: this.model.get( 'reg_rate_id' ), email: email, + fname: fname, + lname: lname, }); this.newRegAccount.destroy(); this.newRegAccountView.remove(); diff --git a/js/views/front/regClass.js b/js/views/front/regClass.js index 220032a..eade028 100644 --- a/js/views/front/regClass.js +++ b/js/views/front/regClass.js @@ -79,6 +79,8 @@ app.Views.Front.RegClass = Backbone.View.extend({ reg_class: this.model.get( 'id' ), reg_rate: this.model.get( 'reg_rate_id' ), email: email, + fname: fname, + lname: lname, }); this.newRegAccount.destroy(); this.newRegAccountView.remove(); diff --git a/models/admin/ajax/regFront/registrant.php b/models/admin/ajax/regFront/registrant.php index 3eee142..10faff8 100644 --- a/models/admin/ajax/regFront/registrant.php +++ b/models/admin/ajax/regFront/registrant.php @@ -112,27 +112,35 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations $modelData['reg_request'] ) ); + $data = array( + 'reg_request' => $modelData['reg_request'], + 'reg_event' => $modelData['reg_event'], + 'event_name' => $modelData['event_name'], + 'reg_time' => $modelData['reg_time'], + 'event_datetime' => $modelData['event_datetime'], + ); + $dataFormat = array( + '%d', // reg_request + '%d', // reg_event + '%s', // event_name + '%d', // reg_time + '%s', // event_datetime + ); if ( !$regRegquestEventId ) { $this->wpdb->insert( GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event', - array( - 'account' => 0, - 'reg_request' => $modelData['reg_request'], - 'reg_event' => $modelData['reg_event'], - 'event_name' => $modelData['event_name'], - 'reg_time' => $modelData['reg_time'], - 'event_datetime' => $modelData['event_datetime'], - ), - array( - '%d', // account - '%d', // reg_request - '%d', // reg_event - '%s', // event_name - '%d', // reg_time - '%s', // event_datetime - ) + $data, + $dataFormat + ); + $regRegquestEventId = $this->wpdb->insert_id; + } else { + $this->wpdb->update( + GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event', + $data, + array( 'id' => $regRegquestEventId ), + $dataFormat, + array( '%d' ) ); - $regRequestEvent = $this->wpdb->insert_id; } // Check for or create reg_request_class $regRequestClassId = $this->wpdb->get_var( @@ -147,31 +155,39 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations $modelData['reg_request'] ) ); + $data = array( + 'reg_event' => $modelData['reg_event'], + 'event_name' => $modelData['event_name'], + 'reg_time' => $modelData['reg_time'], + 'event_datetime' => $modelData['event_datetime'], + 'reg_request' => $modelData['reg_request'], + 'reg_request_event' => $regRegquestEventId, + 'class' => $modelData['reg_class'], + ); + $dataFormat = array( + '%d', // reg_event + '%s', // event_name + '%d', // reg_time + '%s', // event_datetime + '%d', // reg_request + '%d', // reg_request_event + '%d', // class + ); if ( !$regRequestClassId ) { $this->wpdb->insert( GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_class', - array( - 'account' => 0, - 'reg_event' => $modelData['reg_event'], - 'event_name' => $modelData['event_name'], - 'reg_time' => $modelData['reg_time'], - 'event_datetime' => $modelData['event_datetime'], - 'reg_request' => $modelData['reg_request'], - 'reg_request_event' => $regRegquestEventId, - 'class' => $modelData['reg_class'], - ), - array( - '%d', // account - '%d', // reg_event - '%s', // event_name - '%d', // reg_time - '%s', // event_datetime - '%d', // reg_request - '%d', // reg_request_event - '%d', // class - ) + $data, + $dataFormat ); $regRequestClassId = $this->wpdb->insert_id; + } else { + $this->wpdb->update( + GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_class', + $data, + array( 'id' => $regRequestClassId ), + $dataFormat, + array( '%d' ) + ); } // Check for or create reg_request_rate $regRequestRate = $this->wpdb->get_var( @@ -186,52 +202,86 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations $modelData['reg_request'] ) ); + // At this point we need to get the rate data + $rate = $this->wpdb->get_row( + $this->wpdb->prepare( + "SELECT * + FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_rate + WHERE id = %d", + $modelData['reg_rate'] + ), + ARRAY_A + ); + $data = array( + 'reg_event' => $modelData['reg_event'], + 'event_name' => $modelData['event_name'], + 'reg_time' => $modelData['reg_time'], + 'event_datetime' => $modelData['event_datetime'], + 'reg_request' => $modelData['reg_request'], + 'reg_request_event' => $regRegquestEventId, + 'reg_request_class' => $regRequestClassId, + 'rate' => $modelData['reg_rate'], + 'rate_name' => $rate['name'], + 'base_rate' => $rate['base_rate'], + 'per_registrant' => $rate['per_registrant'], + 'registrant_credits' => $rate['registrant_credits'], + ) ; + $dataFormat = array( + '%d', // reg_event + '%s', // event_name + '%s', // reg_time + '%s', // event_datetime + '%d', // reg_request + '%d', // reg_request_event + '%d', // reg_request_class + '%d', // rate + '%d', // rate_name + '%s', // base_rate + '%s', // per_registrant + '%d', // registrant_credits + ); if ( !$regRequestRate ) { - // At this point we need to get the rate data - $rate = $this->wpdb->get_row( - $this->wpdb->prepare( - "SELECT * - FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_rate - WHERE id = %d", - $modelData['reg_rate'] - ), - ARRAY_A - ); // Now with the previous data we can create reg_request_rate $this->wpdb->insert( GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_rate', + $data, + $dataFormat + ); + $regRequestRate = $this->wpdb->insert_id; + } else { + // Now with the previous data we can create reg_request_rate + $this->wpdb->update( + GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_rate', + $data, + array( 'id' => $regRequestRate ), + $dataFormat, + array( '%d' ) + ); + } + + // If we have the email address then look up the account for it + if ( isset( $modelData['email'] ) && $email = filter_var( $modelData['email'], FILTER_VALIDATE_EMAIL ) ) { + $accountId = $this->wpdb->get_var( + $this->wpdb->prepare( + "SELECT id + FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account + WHERE email = %s", + $email + ) + ); + } + if ( !isset( $accountId ) ) { + // We need to create an account for this one + $this->insert( + GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account', array( - 'account' => 0, - 'reg_event' => $modelData['reg_event'], - 'event_name' => $modelData['event_name'], - 'reg_time' => $modelData['reg_time'], - 'event_datetime' => $modelData['event_datetime'], - 'reg_request' => $modelData['reg_request'], - 'reg_request_event' => $regRegquestEventId, - 'reg_request_class' => $regRequestClassId, - 'rate' => $modelData['reg_rate'], - 'rate_name' => $rate['name'], - 'base_rate' => $rate['base_rate'], - 'per_registrant' => $rate['per_registrant'], - 'registrant_credits' => $rate['registrant_credits'], + 'fname' => $modelData['fname'], + 'lname' => $modelData['lname'], + 'email' => $modelData['email'] ), - array( - '%d', // account - '%d', // reg_event - '%s', // event_name - '%s', // reg_time - '%s', // event_datetime - '%d', // reg_request - '%d', // reg_request_event - '%d', // reg_request_class - '%d', // rate - '%d', // rate_name - '%s', // base_rate - '%s', // per_registrant - '%d', // registrant_credits - ) + '%s' ); - $regRequestRate = $this->wpdb->insert_id; + $accountId = $this->wpdb->insert_id; } // Check for or create reg_request_registrant @@ -249,37 +299,47 @@ class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrations $regRequestClassId ) ); + $data = array( + 'account' => $accountId, + 'reg_event' => $modelData['reg_event'], + 'event_name' => $modelData['event_name'], + 'reg_time' => $modelData['reg_time'], + 'event_datetime' => $modelData['event_datetime'], + 'reg_request' => $modelData['reg_request'], + 'reg_request_event' => $regRegquestEventId, + 'reg_request_class' => $regRequestClassId, + 'reg_request_rate' => $regRequestRate, + 'fname' => $modelData['fname'], + 'lname' => $modelData['lname'], + ); + $dataFormat = array( + '%d', // account + '%d', // reg_event + '%s', // event_name + '%s', // reg_time + '%s', // event_datetime + '%d', // reg_request + '%d', // reg_request_event + '%d', // reg_request_class + '%d', // reg_request_rate + '%s', // fname + '%s', // lname + ); if ( !$regRequestRegistrantId ) { $this->wpdb->insert( GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant', - array( - 'account' => $modelData['account'], - 'reg_event' => $modelData['reg_event'], - 'event_name' => $modelData['event_name'], - 'reg_time' => $modelData['reg_time'], - 'event_datetime' => $modelData['event_datetime'], - 'reg_request' => $modelData['reg_request'], - 'reg_request_event' => $regRegquestEventId, - 'reg_request_class' => $regRequestClassId, - 'reg_request_rate' => $regRequestRate, - 'fname' => $modelData['fname'], - 'lname' => $modelData['lname'], - ), - array( - '%d', // account - '%d', // reg_event - '%s', // event_name - '%s', // reg_time - '%s', // event_datetime - '%d', // reg_request - '%d', // reg_request_event - '%d', // reg_request_class - '%d', // reg_request_rate - '%d', // fname - '%s', // lname - ) + $data, + $dataFormat ); $regRequestRegistrantId = $this->wpdb->insert_id; + } else { + $this->wpdb->update( + GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant', + $data, + array( 'id' => $regRequestRegistrantId ), + $dataFormat, + array( '%d' ) + ); } $regRequstRegistrant = $this->getEntry( $regRequestRegistrantId ); echo json_encode( $regRequstRegistrant, JSON_NUMERIC_CHECK ); diff --git a/views/front/registrations/registration.html b/views/front/registrations/registration.html index a2b35f7..b9cf7da 100644 --- a/views/front/registrations/registration.html +++ b/views/front/registrations/registration.html @@ -88,7 +88,7 @@ {/literal}