lname: '',
},
- url: ajaxUrl+'&glm_action=regFront&collection=registrant'
+ url: ajaxUrl+'&glm_action=regFront&collection=registrant',
+
+ // sync: function( method, model ){
+ // //console.log( 'sync in model' );
+ // // console.log( method );
+ // // console.log( model );
+ // switch ( method ) {
+ // case 'delete':
+ // console.log( 'Delete called in registrant model' );
+ // return false;
+ // //this.url = url + 'model=' + model.toJSON();
+ // break;
+ // }
+ // Backbone.sync.apply(this, arguments);
+ //
+ // },
});
app.Models.Front.Request = Backbone.Model.extend({
},
deleteOne: function( item ){
+ console.log('Delete on regClass registrant called');
+ // this.model.registrants.remove( item );
this.render();
},
events: {
'click .addRegistrant': 'newEntry',
- // 'click .toggle-class-open': 'toggleClassOpen',
- // 'click .toggle-class-close': 'toggleClassClose',
- //'click .glm-reg-level-registrant-delete': 'deleteOne',
},
toggleClassOpen: function(){
data: 'email=' + this.$newEmail.val().trim()
})
.done(function(account){
- console.log(account);
+ //console.log(account);
// Check for id and email
if ( account.validEmail !== true ) {
// If not found then nothing was found for that email.
alert('Must be a valid email address!');
} else if ( account.id !== undefined && account.email !== undefined ) {
- console.log( cart.get( 'request' ) );
+ //console.log( cart.get( 'request' ) );
var regRequest = cart.get( 'request' );
this.model.registrants.create({
+ option: 'add',
account: account.id,
reg_request: regRequest.id,
reg_event: this.model.get( 'reg_event' ),
reg_class: this.model.get( 'id' ),
- reg_request_rate: this.model.get('reg_rate_id'),
+ reg_rate: this.model.get('reg_rate_id'),
email: account.email,
});
this.$newEmail.val('');
});
},
- // updateCount: function(){
- // this.model.set({ reg_count: this.model.accounts.length });
- // this.render();
- // },
-
addOne: function( item ){
this.render();
- // if ( item.isValid() ) {
- // var view = new app.Views.Front.Account({ model: item });
- // this.$el.append( view.render().el );
- // }
},
addAll: function(){
jQuery('.glm-reg-level').html('');
- //this.model.accounts.each( this.addOne, this );
},
});
},
deleteOne: function(){
- //console.log( this.model );
- this.model.destroy();
+ // Remove model here
+ var modelId = this.model.get('id');
+ this.model.destroy({data: {
+ id: modelId,
+ option: 'delete'
+ }, processData: true});
+
this.remove();
},
},
deleteOne: function( item ){
+ console.log('Delete on regClass registrant called');
+ // this.model.registrants.remove( item );
this.render();
},
events: {
'click .addRegistrant': 'newEntry',
- // 'click .toggle-class-open': 'toggleClassOpen',
- // 'click .toggle-class-close': 'toggleClassClose',
- //'click .glm-reg-level-registrant-delete': 'deleteOne',
},
toggleClassOpen: function(){
data: 'email=' + this.$newEmail.val().trim()
})
.done(function(account){
- console.log(account);
+ //console.log(account);
// Check for id and email
if ( account.validEmail !== true ) {
// If not found then nothing was found for that email.
alert('Must be a valid email address!');
} else if ( account.id !== undefined && account.email !== undefined ) {
- console.log( cart.get( 'request' ) );
+ //console.log( cart.get( 'request' ) );
var regRequest = cart.get( 'request' );
this.model.registrants.create({
+ option: 'add',
account: account.id,
reg_request: regRequest.id,
reg_event: this.model.get( 'reg_event' ),
reg_class: this.model.get( 'id' ),
- reg_request_rate: this.model.get('reg_rate_id'),
+ reg_rate: this.model.get('reg_rate_id'),
email: account.email,
});
this.$newEmail.val('');
});
},
- // updateCount: function(){
- // this.model.set({ reg_count: this.model.accounts.length });
- // this.render();
- // },
-
addOne: function( item ){
this.render();
- // if ( item.isValid() ) {
- // var view = new app.Views.Front.Account({ model: item });
- // this.$el.append( view.render().el );
- // }
},
addAll: function(){
jQuery('.glm-reg-level').html('');
- //this.model.accounts.each( this.addOne, this );
},
});
*/
// Load Registrations data abstract
-require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegRequest.php';
+require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegRequestRegistrant.php';
-class GlmMembersAdmin_registrations_ajax_registrant // extends GlmDataRegistrationsRegRequest
+class GlmMembersAdmin_registrations_ajax_registrant extends GlmDataRegistrationsRequestRegistrant
{
/**
* Note, the third parameter is a flag that indicates to the Contacts
* data class that it should flag a group of fields as 'view_only'.
*/
- //parent::__construct(false, false, true);
+ parent::__construct(false, false, true);
}
{
trigger_error(print_r($modelData,1));
- dei();
if ( !isset( $modelData['option'] ) ) {
$option = null;
$option = $modelData['option'];
}
- if ( $modelData['id'] == 0 ) {
- $option = 'add';
- }
+ // if ( $modelData['id'] == 0 ) {
+ // $option = 'add';
+ // }
+ //trigger_error(print_r($option, 1));
// Perform specified action
switch ( $option ) {
case 'add':
// Check for or create reg_request_event
if ( $modelData['reg_event'] ) {
- return false;
+ //return false;
}
$regRegquestEventId = $this->wpdb->get_var(
$this->wpdb->prepare(
"SELECT id
FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_event
- WHERE reg_event = %d",
- $modelData['reg_event']
+ WHERE reg_event = %d
+ AND reg_request = %d",
+ $modelData['reg_event'],
+ $modelData['reg_request']
)
);
if ( !$regRegquestEventId ) {
'event_datetime' => $modelData['event_datetime'],
),
array(
- '%d',
- '%d',
- '%d',
- '%s',
- '%d',
- '%s',
+ '%d', // account
+ '%d', // reg_request
+ '%d', // reg_event
+ '%s', // event_name
+ '%d', // reg_time
+ '%s', // event_datetime
)
);
$regRequestEvent = $this->wpdb->insert_id;
"SELECT id
FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_class
WHERE reg_request_event = %d
- AND class = %d",
+ AND class = %d
+ AND reg_request = %d",
$regRegquestEventId,
- $modelData['reg_class']
+ $modelData['reg_class'],
+ $modelData['reg_request']
)
);
- $this->wpdb->insert(
- GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant',
- array(
- 'account' => $modelData['account'],
- 'reg_event' => $modelData['reg_event'],
- 'reg_request_event' => $modelData['reg_request_event'],
- ),
- array()
+ 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
+ )
+ );
+ $regRequestClassId = $this->wpdb->insert_id;
+ }
+ // Check for or create reg_request_rate
+ $regRequestRate = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT id
+ FROM " .GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_rate
+ WHERE reg_event = %d
+ AND rate = %d
+ AND reg_request = %d",
+ $modelData['reg_event'],
+ $modelData['reg_rate'],
+ $modelData['reg_request']
+ )
+ );
+ 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',
+ 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'],
+ ),
+ 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
+ )
+ );
+ $regRequestRate = $this->wpdb->insert_id;
+ }
+
+ // Check for or create reg_request_registrant
+ $regRequestRegistrantId = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT id
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_registrant
+ WHERE reg_request = %d
+ AND account = %d
+ AND reg_request_event = %d
+ AND reg_request_class = %d",
+ $modelData['reg_request'],
+ $modelData['account'],
+ $regRegquestEventId,
+ $regRequestClassId
+ )
);
+ 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
+ )
+ );
+ $regRequestRegistrantId = $this->wpdb->insert_id;
+ }
+ $regRequstRegistrant = $this->getEntry( $regRequestRegistrantId );
+ echo json_encode( $regRequstRegistrant, JSON_NUMERIC_CHECK );
+ wp_die();
break;
case 'get':
break;
case 'delete':
+ // TODO: Should we now check to see if this is the last registrant for this reg_request_event,class,rate
+ // Then delete those?
+ $this->wpdb->delete(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant',
+ array( 'id' => $modelData['id'] ),
+ array( '%d' )
+ );
break;
default:
- // If the model has an id then add it to the registrant table
- // Check to see if the registrant is there if not create one
- // $registrantId = $this->wpdb->get_var(
- // $this->wpdb->prepare(
- // "SELECT id
- // FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_registrant"
- // )
- // );
die(); // should never get here
break;