$option = $modelData['option'];
}
- // if ( $modelData['id'] == 0 ) {
- // $option = 'add';
- // }
-
- //trigger_error(print_r($option, 1));
// Perform specified action
switch ( $option ) {
case 'add':
// Call to add registrant
- $registrant = $this->addRegistrantToCart( $modelData );
+ $registrant = $this->addUpdateRegistrantToCart( $modelData, 'add' );
echo json_encode( $registrant, JSON_NUMERIC_CHECK );
wp_die();
case 'update':
- $registrant = $this->addRegistrantToCart( $modelData );
+ $registrant = $this->addUpdateRegistrantToCart( $modelData, 'update' );
echo json_encode( $registrant, JSON_NUMERIC_CHECK );
wp_die();
- // if ( $accountId = filter_var( $modelData['account'], FILTER_VALIDATE_INT ) ) {
- // $validated = $this->wpdb->get_var(
- // $this->wpdb->prepare(
- // "SELECT validated
- // FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account
- // WHERE id = %d",
- // $accountId
- // )
- // );
- // // If not validated go ahead and update the account data
- // if ( !$validated ) {
- // $accountData = array(
- // 'fname' => $modelData['fname'],
- // 'lname' => $modelData['lname'],
- // 'addr1' => $modelData['addr1'],
- // 'addr2' => $modelData['addr2'],
- // 'city' => $modelData['city'],
- // 'state' => $modelData['state'],
- // 'zip' => $modelData['zip'],
- // 'country' => $modelData['country'],
- // );
- // $accountDataFormat = array(
- // '%s', // fname
- // '%s', // lname
- // '%s', // addr1
- // '%s', // addr2
- // '%s', // city
- // '%s', // state
- // '%s', // zip
- // '%s', // country
- // );
- // $this->wpdb->update(
- // GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account',
- // $accountData,
- // array( 'id' => $accountId ),
- // $accountDataFormat,
- // array( '%d' )
- // );
- // }
- //
- // }
- // if ( $regRequestRegistrantId = filter_var( $modelData['id'], FILTER_VALIDATE_INT ) ) {
- // $regTime = $this->wpdb->get_row(
- // $this->wpdb->prepare(
- // "SELECT *
- // FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_time
- // WHERE id = %d",
- // $modelData['reg_time']
- // ),
- // ARRAY_A
- // );
- // // Check the account to see what's changed
- // // Check for a new reg_time
- // $data = array(
- // 'account' => $modelData['account'],
- // 'reg_event' => $modelData['reg_event'],
- // 'reg_time' => $modelData['reg_time'],
- // 'event_datetime' => $regTime['start_datetime'],
- // 'reg_request' => $modelData['reg_request'],
- // 'reg_request_event' => $modelData['reg_request_event'],
- // 'reg_request_class' => $modelData['reg_request_class'],
- // 'reg_request_rate' => $modelData['reg_request_rate'],
- // 'fname' => $modelData['fname'],
- // 'lname' => $modelData['lname'],
- // );
- // $dataFormat = array(
- // '%d', // account
- // '%d', // reg_event
- // '%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
- // );
- // $this->wpdb->update(
- // GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant',
- // $data,
- // array( 'id' => $regRequestRegistrantId ),
- // $dataFormat,
- // array( '%d' )
- // );
- // $registrant = $this->getEntry( $regRequestRegistrantId );
- // $registrant['validated'] = $validated;
- // if ( $registrant['reg_time'] && filter_var( $registrant['reg_time'], FILTER_VALIDATE_INT ) ) {
- // $regTimeText = $this->wpdb->get_var(
- // $this->wpdb->prepare(
- // "SELECT DATE_FORMAT( start_datetime, '%%m/%%d/%%Y %%l:%%i %%p' )
- // FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_time
- // WHERE id = %d",
- // $registrant['reg_time']
- // )
- // );
- // $registrant['reg_time_text'] = $regTimeText;
- // }
- // echo json_encode( $registrant, JSON_NUMERIC_CHECK );
- // wp_die();
- // }
break;
case 'delete':
}
- public function addRegistrantToCart( $modelData )
+ /**
+ * addUpdateRegistrantToCart
+ *
+ * Adds or Updates the registrant in the cart.
+ *
+ * @param mixed $modelData The modelData containing the data
+ * @param mixed $action The action ( update or add )
+ *
+ * @access public
+ * @return void
+ */
+ public function addUpdateRegistrantToCart( $modelData, $action )
{
$validated = false;
- // Check for or create reg_request_event
- $regRequestEventId = $this->wpdb->get_var(
- $this->wpdb->prepare(
- "SELECT id
- FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_event
- WHERE reg_event = %d
- AND reg_request = %d",
- $modelData['reg_event'],
- $modelData['reg_request']
- )
- );
- $data = array(
- 'reg_request' => $modelData['reg_request'],
- 'reg_event' => $modelData['reg_event'],
- 'event_name' => $modelData['event_name'],
- 'event_datetime' => $modelData['event_datetime'],
- );
- $dataFormat = array(
- '%d', // reg_request
- '%d', // reg_event
- '%s', // event_name
- '%s', // event_datetime
- );
- if ( !$regRequestEventId ) {
- $this->wpdb->insert(
- GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event',
- $data,
- $dataFormat
+ if ( $action == 'add' ) {
+ // Check for or create reg_request_event
+ $regRequestEventId = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT id
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_event
+ WHERE reg_event = %d
+ AND reg_request = %d",
+ $modelData['reg_event'],
+ $modelData['reg_request']
+ )
);
- $regRequestEventId = $this->wpdb->insert_id;
- } else {
- $this->wpdb->update(
- GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event',
- $data,
- array( 'id' => $regRequestEventId ),
- $dataFormat,
- array( '%d' )
+ $data = array(
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_event' => $modelData['reg_event'],
+ 'event_name' => $modelData['event_name'],
+ 'event_datetime' => $modelData['event_datetime'],
);
- }
-
- // Check for or create reg_request_class
- $regRequestClassId = $this->wpdb->get_var(
- $this->wpdb->prepare(
- "SELECT id
- FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_class
- WHERE reg_request_event = %d
- AND class = %d
- AND reg_request = %d",
- $regRequestEventId,
- $modelData['reg_class'],
- $modelData['reg_request']
- )
- );
- // At this point we need to get the class data
- $regClass = $this->wpdb->get_row(
- $this->wpdb->prepare(
- "SELECT *
- FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_class
- WHERE id = %d",
- $modelData['reg_class']
- ),
- ARRAY_A
- );
- $data = array(
- 'reg_event' => $modelData['reg_event'],
- 'event_datetime' => $modelData['event_datetime'],
- 'reg_request' => $modelData['reg_request'],
- 'reg_request_event' => $regRequestEventId,
- 'class' => $modelData['reg_class'],
- 'class_name' => $regClass['name'],
- );
- $dataFormat = array(
- '%d', // reg_event
- '%s', // event_datetime
- '%d', // reg_request
- '%d', // reg_request_event
- '%d', // class
- '%s', // class_name
- );
- if ( !$regRequestClassId ) {
- $this->wpdb->insert(
- GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_class',
- $data,
- $dataFormat
+ $dataFormat = array(
+ '%d', // reg_request
+ '%d', // reg_event
+ '%s', // event_name
+ '%s', // event_datetime
);
- $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' )
+ if ( !$regRequestEventId ) {
+ $this->wpdb->insert(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event',
+ $data,
+ $dataFormat
+ );
+ $regRequestEventId = $this->wpdb->insert_id;
+ } else {
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event',
+ $data,
+ array( 'id' => $regRequestEventId ),
+ $dataFormat,
+ array( '%d' )
+ );
+ }
+
+ // Check for or create reg_request_class
+ $regRequestClassId = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT id
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_request_class
+ WHERE reg_request_event = %d
+ AND class = %d
+ AND reg_request = %d",
+ $regRequestEventId,
+ $modelData['reg_class'],
+ $modelData['reg_request']
+ )
);
- }
-
- // 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']
- )
- );
- // 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_datetime' => $modelData['event_datetime'],
- 'reg_request' => $modelData['reg_request'],
- 'reg_request_event' => $regRequestEventId,
- '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_datetime
- '%d', // reg_request
- '%d', // reg_request_event
- '%d', // reg_request_class
- '%d', // rate
- '%s', // rate_name
- '%f', // base_rate
- '%f', // per_registrant
- '%d', // registrant_credits
- );
- if ( !$regRequestRate ) {
- // 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
+ // At this point we need to get the class data
+ $regClass = $this->wpdb->get_row(
+ $this->wpdb->prepare(
+ "SELECT *
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_class
+ WHERE id = %d",
+ $modelData['reg_class']
+ ),
+ ARRAY_A
);
- $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' )
+ $data = array(
+ 'reg_event' => $modelData['reg_event'],
+ 'event_datetime' => $modelData['event_datetime'],
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_request_event' => $regRequestEventId,
+ 'class' => $modelData['reg_class'],
+ 'class_name' => $regClass['name'],
);
- }
-
- // 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(
+ $dataFormat = array(
+ '%d', // reg_event
+ '%s', // event_datetime
+ '%d', // reg_request
+ '%d', // reg_request_event
+ '%d', // class
+ '%s', // class_name
+ );
+ if ( !$regRequestClassId ) {
+ $this->wpdb->insert(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_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(
$this->wpdb->prepare(
"SELECT id
- FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account
- WHERE email = %s",
- $email
+ 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 ( !isset( $accountId ) ) {
- // We need to create an account for this one
- $this->wpdb->insert(
- GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account',
- array(
- 'fname' => $modelData['fname'],
- 'lname' => $modelData['lname'],
- 'email' => $modelData['email'],
- 'date_created' => date('Y-m-d'),
+ // 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']
),
- '%s'
+ ARRAY_A
+ );
+ $data = array(
+ 'reg_event' => $modelData['reg_event'],
+ 'event_datetime' => $modelData['event_datetime'],
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_request_event' => $regRequestEventId,
+ '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_datetime
+ '%d', // reg_request
+ '%d', // reg_request_event
+ '%d', // reg_request_class
+ '%d', // rate
+ '%s', // rate_name
+ '%f', // base_rate
+ '%f', // per_registrant
+ '%d', // registrant_credits
+ );
+ if ( !$regRequestRate ) {
+ // 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->wpdb->insert(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account',
+ array(
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
+ 'email' => $modelData['email'],
+ 'date_created' => date('Y-m-d'),
+ ),
+ '%s'
+ );
+ $accountId = $this->wpdb->insert_id;
+ // Here validated would be false.
+ // Because it is new account.
+ }
+ $validated = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT validated
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account
+ WHERE id = %d",
+ $accountId
+ )
);
- $accountId = $this->wpdb->insert_id;
- // Here validated would be false.
- // Because it is new account.
}
- $validated = $this->wpdb->get_var(
- $this->wpdb->prepare(
- "SELECT validated
- FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account
- WHERE id = %d",
- $accountId
- )
- );
- // 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'],
- $accountId,
- $regRequestEventId,
- $regRequestClassId
- )
- );
+ if ( $action == 'update' ) {
+ if ( $accountId = filter_var( $modelData['account'], FILTER_VALIDATE_INT ) ) {
+ $validated = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT validated
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account
+ WHERE id = %d",
+ $accountId
+ )
+ );
+ // If not validated go ahead and update the account data
+ if ( !$validated ) {
+ $accountData = array(
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
+ 'addr1' => $modelData['addr1'],
+ 'addr2' => $modelData['addr2'],
+ 'city' => $modelData['city'],
+ 'state' => $modelData['state'],
+ 'zip' => $modelData['zip'],
+ 'country' => $modelData['country'],
+ );
+ $accountDataFormat = array(
+ '%s', // fname
+ '%s', // lname
+ '%s', // addr1
+ '%s', // addr2
+ '%s', // city
+ '%s', // state
+ '%s', // zip
+ '%s', // country
+ );
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account',
+ $accountData,
+ array( 'id' => $accountId ),
+ $accountDataFormat,
+ array( '%d' )
+ );
+ }
+
+ }
+ }
+ if ( $regRequestRegistrantId = filter_var( $modelData['id'], FILTER_VALIDATE_INT ) ) {
+ // Do nothing here for now
+ } else {
+
+ // 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'],
+ $accountId,
+ $regRequestEventId,
+ $regRequestClassId
+ )
+ );
+ }
$regTime = $this->wpdb->get_row(
$this->wpdb->prepare(
ARRAY_A
);
$data = array(
- 'account' => $accountId,
- 'reg_event' => $modelData['reg_event'],
- 'reg_time' => $modelData['reg_time'],
- 'event_datetime' => $regTime['start_datetime'],
- 'reg_request' => $modelData['reg_request'],
- 'reg_request_event' => $regRequestEventId,
- 'reg_request_class' => $regRequestClassId,
- 'reg_request_rate' => $regRequestRate,
- 'fname' => $modelData['fname'],
- 'lname' => $modelData['lname'],
+ 'account' => $accountId,
+ 'reg_event' => $modelData['reg_event'],
+ 'reg_time' => $modelData['reg_time'],
+ 'event_datetime' => $regTime['start_datetime'],
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_request_event' => $regRequestEventId,
+ 'reg_request_class' => $regRequestClassId,
+ 'reg_request_rate' => $regRequestRate,
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
);
$dataFormat = array(
'%d', // account