From: Chuck Scott Date: Thu, 2 Mar 2017 18:07:10 +0000 (-0500) Subject: Interim commit while developing registrationsSupport.php X-Git-Tag: v1.0.0^2~488 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=f6afd12f846017e592028c25b23b2e1186a181b9;p=WP-Plugins%2Fglm-member-db-registrations.git Interim commit while developing registrationsSupport.php Fixed error with wrong file name for database creation. Minor database update. Other comment and code cleanup. --- diff --git a/classes/data/dataRegRequest.php b/classes/data/dataRegRequest.php index b685f14..31ec304 100644 --- a/classes/data/dataRegRequest.php +++ b/classes/data/dataRegRequest.php @@ -24,7 +24,7 @@ * @release SVN: $Id: dataAddedInfoFields.php,v 1.0 2011/01/25 19:31:47 cscott * Exp $ */ -class GlmDataRegistrationsRequest extends GlmDataAbstract +class GlmDataRegistrationRequest extends GlmDataAbstract { /** @@ -107,7 +107,7 @@ class GlmDataRegistrationsRequest extends GlmDataAbstract */ $this->fields = array ( - + // ID 'id' => array ( 'field' => 'id', @@ -115,10 +115,10 @@ class GlmDataRegistrationsRequest extends GlmDataAbstract 'view_only' => true, 'use' => 'a' ), - + // Pointer to user account (table: account) who submitted the registrations 'account' => array ( - 'field' => 'contact_id', + 'field' => 'account', 'type' => 'pointer', 'p_table' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account', 'p_field' => 'id', @@ -126,130 +126,115 @@ class GlmDataRegistrationsRequest extends GlmDataAbstract 'required' => true, 'use' => 'lgneud' ), - + 'bill_fname' => array ( 'field' => 'bill_fname', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_lname' => array ( 'field' => 'bill_lname', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_org' => array ( 'field' => 'bill_org', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_title' => array ( 'field' => 'bill_title', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_addr1' => array ( 'field' => 'bill_addr1', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_addr2' => array ( 'field' => 'bill_addr2', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_city' => array ( 'field' => 'bill_city', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_state' => array ( 'field' => 'bill_state', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_zip' => array ( 'field' => 'bill_zip', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'bill_country' => array ( 'field' => 'bill_country', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'date_submitted' => array ( 'field' => 'date_submitted', 'type' => 'datetime', 'use' => 'a' ), - - // See payment_method in plugin.ini + + // See payment_method in plugin.ini - used as list 'pay_method' => array ( 'field' => 'pay_method', - 'type' => 'bitmap', - 'bitmap' => $this->config['payment_methods'], - 'default' => 0, // none selected + 'type' => 'list', + 'list' => $this->config['payment_method'], + 'default' => $this->config['payment_method_numb']['Not Yet Defined'], 'use' => 'a' ), - + // Pointer to user account (table: account) who submitted the registrations 'payment_code' => array ( 'field' => 'payment_code', - 'type' => 'pointer', - 'p_table' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'payment_code', - 'p_field' => 'id', - 'p_static' => true, - 'required' => true, + 'type' => 'text', 'use' => 'lgneud' ), - + // See submission_status in plugin.ini 'status' => array ( 'field' => 'status', - 'type' => 'bitmap', - 'bitmap' => $this->config['submission_status'], - 'default' => 0, // none selected + 'type' => 'list', + 'list' => $this->config['submission_status'], + 'default' => $this->config['submission_status_numb']['CART'], 'use' => 'a' ), - + // Total charge including all fees and taxes 'total' => array ( 'field' => 'total', 'type' => 'money', - 'required' => false, 'use' => 'a' ), - + // Credit Card type (if used) - See credit_card in plugin.ini 'cc_type' => array ( 'field' => 'cc_type', @@ -258,87 +243,69 @@ class GlmDataRegistrationsRequest extends GlmDataAbstract 'default' => 0, // none selected 'use' => 'a' ), - - // + + // 'cc_name' => array ( 'field' => 'cc_name', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'cc_numb' => array ( 'field' => 'cc_numb', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'cc_exp' => array ( 'field' => 'cc_exp', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - - // + + // 'cc_cvv' => array ( 'field' => 'cc_cvv', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - + // Confirmation code back from card processor 'cc_conf' => array ( 'field' => 'cc_conf', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - + // HTML summary of cart contents, costs and payment - Use same HTML displayed to user 'summary' => array ( 'field' => 'summary', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - + // Any MagicForm data associated with registrant 'mf_data' => array ( 'field' => 'mf_data', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - + // System operator's notes for this registration request 'notes' => array ( 'field' => 'notes', 'type' => 'text', - 'required' => false, 'use' => 'a' ), - + // IP Address of user computer and timestamp 'user_trace_info' => array ( 'field' => 'user_trace_info', 'type' => 'text', - 'required' => false, - 'use' => 'a' - ), - - // - '' => array ( - 'field' => '', - 'type' => '', - 'required' => '', 'use' => 'a' - ), - + ) ); } diff --git a/classes/registrationsSupport.php b/classes/registrationsSupport.php new file mode 100644 index 0000000..ebcb507 --- /dev/null +++ b/classes/registrationsSupport.php @@ -0,0 +1,415 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @release registratiosnSupport.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ + * @link http://dev.gaslightmedia.com/ + */ + +/* + * This class provides some standard methods used by this plugin + */ +class GlmRegistrationsSupport +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + + /** + * Constructor + * + * @param object $d database connection + * @param array $config Configuration array + * @param bool $limitedEdit Flag to say indicate limited edit requested + * + * @return void + * @access public + */ + public function __construct($wpdb, $config) + { + + // If this class is not being extended along with existing $wpdb and $config + if (!$this->wpdb) { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + } + + } + + /* + * Retrieve a complete cart + * + * @param integer $requestID + * + * @return array Array of request and all associated information or false + * @access public + */ + public function getRegistrationCart($requestID = false) + { + + // Create return data array + $cart = array( + 'status' => false, // Return status, default to false, true if valid request returned + 'errorMsg' => '', // Any applicable error message + 'notes' => array(), // System generated notes regarding status of request + 'accounts' => array(), // Accounts associated with this request - both requesting and attending (might be the same) + // Index in this array is the account ID as used in data below + 'request' => false, // Request reccord + 'events' => false // Array of events with 'class', 'rate', 'registrant' data under each event + ); + + // Validate request ID + if (!$requestID || ($requestID-0) <= 0) { + return false; + } + + /* + * Base registration request + */ + + // Load Registration Requests data abstract + require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegRequest.php'; + $RegRequest = new GlmDataRegistrationRequest($this->wpdb, $this->config); + + // Try to get the base registration request data + $cart['request'] = $RegRequest->getEntry($requestID); + + if (!$cart['request']) { + $cart['errorMsg'] = 'Unable to retrieve the requested registration request.'; + return $cart; + } + + /* + * Registration requested by + */ + + // Load Registration Requests data abstract + require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataAccount.php'; + $Account = new GlmDataRegistrationsAccount($this->wpdb, $this->config); + + // Try to get the account record for the person who submitted (is submitting) the request + if ($cart['request']['account']) { + + // Get the the account ID of the person who submitted the request + $accountID = ($cart['request']['account'] - 0); + + // Make sure it's a positive integer + if (is_int($accountID) && $accountID > 0) { + + // Try to get account information + $account = $Account->getEntry($accountID); + + // If we found a good account, add that to the accounts list in the cart. + if ($account) { + $cart['accounts'][$account['id']] = $account; + } else { + $cart['notes'][] = 'Registration request does not have an account for the person submitting the request. (Guest registration?)'; + } + + } + + } + + return $cart; + + } + + + // Temporarily add test data + public function addTestData() + { + + // Event + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_event + ( + event, + event_code, + active + ) + VALUES + ( + 0, + 'TEST-EVENT', + true + ) + ;"; + $this->wpdb->query($sql); + $regEventID = $this->wpdb->insert_id; + + // Event Registration Class + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_class + ( + reg_event, + name, + descr + ) + VALUES + ( + $regEventID, + 'Admiral Class', + 'This is our Admiral Class registration level.' + ) + ;"; + $this->wpdb->query($sql); + $regClassID = $this->wpdb->insert_id; + + // Event Registration Rates + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_rates + ( + reg_event, + reg_class, + start_days, + end_days, + base_rate, + per_registrant, + registrant_credits + ) + VALUES + ( + $regEventID, + $regCLassID, + 100, + 50, + 20, + 10, + 1 + ) + ;"; + $this->wpdb->query($sql); + $regRateID = $this->wpdb->insert_id; + + + // Account + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."account + ( + active, + fname + ) + VALUES + ( + true, + 'Chuck' + ) + ;"; + $this->wpdb->query($sql); + $accountID = $this->wpdb->insert_id; + + + // Registration Request + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request + ( + account, + bill_fname, + bill_lname, + bill_org, + bill_title, + bill_addr1, + bill_addr2, + bill_city, + bill_state, + bill_zip, + bill_country, + date_submitted, + pay_method, + payment_code, + status, + total, + cc_type, + cc_name, + cc_numb, + cc_exp, + cc_cvv, + cc_conf, + summary, + mf_data, + notes + ) + VALUES + ( + ".$accountID.", + 'Chuck', + 'Scott', + 'Gaslight Media', + 'Vice President', + '120 E. Lake St.', + '3rd Floor', + 'Petoskey', + 'MI', + '49770', + 'US', + '".date('Y-m-d')."', + ".$this->config['payment_method_numb']['Not Yet Defined'].", + 'NULL', + ".$this->config['submission_status_numb']['CART'].", + 100, + 'NULL', + 'NULL', + 'NULL', + 'NULL', + 'NULL', + 'NULL', + '

HTML SUMMARY

', + 'NULL', + 'Notes go here' + ) + ;"; + $this->wpdb->query($sql); + $requestID = $this->wpdb->insert_id; + +// **** NEED TO RECHECK EVERYTHING FROM HERE DOWN **** + + // Registration Request Event + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request_event + ( + account, + reg_request, + event, + event_time, + total_charge, + notes + ) + VALUES + ( + $accountID, + $requestID, + $regEventID, + 0, + 100, + '' + ) + ;"; + $this->wpdb->query($sql); + $requestEventID = $this->wpdb->insert_id; + + // Registration Request class + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request_class + ( + account, + event, + event_time, + reg_request, + reg_request_event, + total_class_charge, + mf_data, + notes + ) + VALUES + ( + $accountID, + regEventID, + 0, + $requestID, + $requestEventID, + 100, + '', + '' + ) + ;"; + $this->wpdb->query($sql); + $requestClassID = $this->wpdb->insert_id; + + + // Registration Request Rate + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request_class + ( + account, + event, + event_time, + reg_request, + reg_request_event, + total_class_charge, + mf_data, + notes + ) + VALUES + ( + $accountID, + regEventID, + 0, + $requestID, + $requestEventID, + 100, + '', + '' + ) + ;"; + $this->wpdb->query($sql); + $requestClassID = $this->wpdb->insert_id; + + + // Registration Request Registrant + $sql = " + INSERT INTO ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request_registrant + ( + account, + event, + event_time, + reg_request, + reg_request_event, + total_class_charge, + mf_data, + notes + ) + VALUES + ( + $accountID, + regEventID, + 0, + $requestID, + $requestEventID, + 100, + '', + '' + ) + ;"; + $this->wpdb->query($sql); + $requestClassID = $this->wpdb->insert_id; + + return; + + } + + public function removeTestData($testIDs) + { + + $this->wpdb->query("DELETE FROM ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request;"); + $this->wpdb->query("DELETE FROM ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."account;"); + $this->wpdb->query("DELETE FROM ".GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_request_event;"); + + } + + +} diff --git a/config/plugin.ini b/config/plugin.ini index 9ab91c3..a2c58b8 100644 --- a/config/plugin.ini +++ b/config/plugin.ini @@ -30,6 +30,7 @@ registration_account_option['Member'] = 3 ; ; Payment Method - Use as Bitmap Index or List ; +payment_method[0] = 'Not Yet Defined' payment_method[1] = 'No Charge' payment_method[2] = 'Comp Code' payment_method[3] = 'Cash' @@ -37,6 +38,7 @@ payment_method[4] = 'Check' payment_method[5] = 'Credit Card' payment_method[6] = 'Call from Merchant' +payment_method_numb['Not Yet Defined'] = 0 payment_method_numb['No Charge'] = 1 payment_method_numb['Comp Code'] = 2 payment_method_numb['Cash'] = 3 @@ -155,6 +157,7 @@ billing_field_numb['FAX'] = 12 ; ; Submission Status - Use as list only ; +submission_status[0] = 'CART' submission_status[10] = 'UNPAID' submission_status[20] = 'CC_PEND' submission_status[30] = 'CC_PAID' @@ -169,6 +172,7 @@ submission_status[110] = 'OTHER_ADMIN' submission_status[120] = 'FAILED' submission_status[130] = 'CANCELED' +submission_status_numb['CART'] = 0 submission_status_numb['UNPAID'] = 10 submission_status_numb['CC_PEND'] = 20 submission_status_numb['CC_PAID'] = 30 diff --git a/misc/documentation/DevelopmentOutline.txt b/misc/documentation/DevelopmentOutline.txt index 6a36c90..7f64141 100644 --- a/misc/documentation/DevelopmentOutline.txt +++ b/misc/documentation/DevelopmentOutline.txt @@ -1,3 +1,8 @@ +Registration scenarios -Need to outline how this will work + Who can submit a registration, for who, and how they can be selected while entering a registration + For example, if there's an existing account that's been registered, how do we permit somone else so register that person for something? + + Registrations Add-On Work Items - Preliminary ADMIN @@ -13,8 +18,8 @@ ADMIN - Access by Managers only * Misc - Chuck - - Recall and update of Misc configurable text and flags + Chuck + DONE - Recall and update of Misc configurable text and flags - Accessed by Managers and Site owners * Support Classes @@ -56,12 +61,13 @@ ADMIN - List registration details for specific requests * Registration Accounts + - Accounts are specific persons who submit a registration requests - Associated with one or more registration requests - List, Edit (certain data) - List registrations submitted by an account -* Registrants +* Registrants - Uses same table as "Registration Accounts" above - People who are registered for an event - Associated with one or more registration events - List, Edit (certain data) diff --git a/models/admin/registrations/accounts.php b/models/admin/registrations/accounts.php index 7f26738..c0b264e 100644 --- a/models/admin/registrations/accounts.php +++ b/models/admin/registrations/accounts.php @@ -126,14 +126,14 @@ class GlmMembersAdmin_registrations_accounts extends GlmDataRegistrationsAccount } + $view = 'editAccount'; + switch ( $option ) { case 'add': - $view = 'edit'; $account = $this->newEntry(); break; case 'insert': - $view = 'edit'; $account = $this->insertEntry(); if ( $account['status'] ) { $accountAdded = true; @@ -143,7 +143,6 @@ class GlmMembersAdmin_registrations_accounts extends GlmDataRegistrationsAccount break; case 'edit': - $view = 'edit'; $account = $this->editEntry( $this->accountID ); //echo '
$account: ' . print_r( $account, true ) . '
'; if ( $account['status'] ) { @@ -167,7 +166,6 @@ class GlmMembersAdmin_registrations_accounts extends GlmDataRegistrationsAccount $accountUpdateError = true; } - $view = 'edit'; break; case 'delete': diff --git a/models/admin/registrations/events.php b/models/admin/registrations/events.php new file mode 100644 index 0000000..3e8c90f --- /dev/null +++ b/models/admin/registrations/events.php @@ -0,0 +1,105 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @release index.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ + * @link http://dev.gaslightmedia.com/ + */ + +// Load Registrations data abstract +// require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegistrations.php'; + +class GlmMembersAdmin_registrations_events // extends GlmDataRegistrations +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + /** + * Registrations Event ID + * + * @var $eventID + * @access public + */ + public $regEventID = false; + + /** + * Constructor + * + * This contructor performs the work for this model. This model returns + * an array containing the following. + * + * 'status' + * + * True if successfull and false if there was a fatal failure. + * + * 'view' + * + * A suggested view name that the contoller should use instead of the + * default view for this model or false to indicate that the default view + * should be used. + * + * 'data' + * + * Data that the model is returning for use in merging with the view to + * produce output. + * + * @wpdb object WordPress database object + * + * @return array Array containing status, suggested view, and any data + */ + public function __construct ($wpdb, $config) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + /* + * Run constructor for the REgistrations data class + * + * 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); + + } + + public function modelAction($actionData = false) + { + + // Compile template data + $templateData = array( + ); + // Return status, any suggested view, and any data to controller + return array( + 'status' => true, + 'modelRedirect' => false, + 'view' => 'admin/registrations/events.html', + 'data' => $templateData + ); + + } + + +} diff --git a/models/admin/registrations/list.php b/models/admin/registrations/list.php deleted file mode 100644 index e47ea7f..0000000 --- a/models/admin/registrations/list.php +++ /dev/null @@ -1,106 +0,0 @@ - - * @license http://www.gaslightmedia.com Gaslightmedia - * @release index.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ - * @link http://dev.gaslightmedia.com/ - */ - -// Load Registrations data abstract -// require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegistrations.php'; - -class GlmMembersAdmin_registrations_list // extends GlmDataRegistrations -{ - - /** - * WordPress Database Object - * - * @var $wpdb - * @access public - */ - public $wpdb; - /** - * Plugin Configuration Data - * - * @var $config - * @access public - */ - public $config; - /** - * Registrations Event ID - * - * @var $eventID - * @access public - */ - public $regEventID = false; - - /** - * Constructor - * - * This contructor performs the work for this model. This model returns - * an array containing the following. - * - * 'status' - * - * True if successfull and false if there was a fatal failure. - * - * 'view' - * - * A suggested view name that the contoller should use instead of the - * default view for this model or false to indicate that the default view - * should be used. - * - * 'data' - * - * Data that the model is returning for use in merging with the view to - * produce output. - * - * @wpdb object WordPress database object - * - * @return array Array containing status, suggested view, and any data - */ - public function __construct ($wpdb, $config) - { - - // Save WordPress Database object - $this->wpdb = $wpdb; - - // Save plugin configuration object - $this->config = $config; - - /* - * Run constructor for the REgistrations data class - * - * 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); - - } - - public function modelAction($actionData = false) - { - - - // Compile template data - $templateData = array( - ); - // Return status, any suggested view, and any data to controller - return array( - 'status' => true, - 'modelRedirect' => false, - 'view' => 'admin/registrations/list.html', - 'data' => $templateData - ); - - } - - -} diff --git a/models/admin/registrations/requests.php b/models/admin/registrations/requests.php new file mode 100644 index 0000000..46e8d62 --- /dev/null +++ b/models/admin/registrations/requests.php @@ -0,0 +1,180 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @release index.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ + * @link http://dev.gaslightmedia.com/ + */ + +// Load Registration Requests data abstract +require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/data/dataRegRequest.php'; + +class GlmMembersAdmin_registrations_requests extends GlmDataRegistrationRequest +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + + /** + * Constructor + * + * This contructor performs the work for this model. This model returns + * an array containing the following. + * + * 'status' + * + * True if successfull and false if there was a fatal failure. + * + * 'view' + * + * A suggested view name that the contoller should use instead of the + * default view for this model or false to indicate that the default view + * should be used. + * + * 'data' + * + * Data that the model is returning for use in merging with the view to + * produce output. + * + * @wpdb object WordPress database object + * + * @return array Array containing status, suggested view, and any data + */ + public function __construct ($wpdb, $config) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + /* + * Run constructor for the REgistrations data class + * + * 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); + + } + + public function modelAction($actionData = false) + { + + + $haveRequests = false; + $requests = false; + $haveRequest = false; + $requestID = false; + $requestCart = false; + $option = 'list'; + $errorMsg = false; + + // Load registrations support class + require_once GLM_MEMBERS_REGISTRATIONS_PLUGIN_CLASS_PATH.'/registrationsSupport.php'; + $regSupport = new GlmRegistrationsSupport($this->wpdb, $this->config); + + +// Test data +//$regSupport->addTestData(); +//$regSupport->removeTestData(); + + // Check for option submitted + if (isset($_REQUEST['option']) && $_REQUEST['option'] != '') { + $option = $_REQUEST['option']; + } + + // Check for registration request ID submitted for edit operation + if (isset($_REQUEST['requestID']) && $_REQUEST['requestID'] != '') { + $requestID = ($_REQUEST['requestID'] - 0); + } + + // Perform selected option + switch ($option) { + + // Display/Edit a registration request + case 'edit': + + // If a request ID has been supplied + if ($requestID) { + + // Try to get the complete cart for this request + $requestCart = $regSupport->getRegistrationCart($requestID); + + // If a valid cart was returned + if ($requestCart && $requestCart['status']) { + $haveRequest = true; + } else { + $errorMsg = $requestCart['errorMsg']; + } + + $view = 'editRequest.html'; + + break; + + } else { + $errorMsg = 'Invalid Registration Request ID supplied. Unable to view/edit selected request.'; + } + + // Fall through to list if no requestID submitted + + // Default is to list requests + default: + + // Get list of requests + $requests = $this->getList(); + if ($requests) { + $haveRequests = true; + } + + $view = 'requests.html'; + + break; + + } + +// Temporary debug info +$cart_r = print_r($requestCart,1); + + // Compile template data + $templateData = array( + 'haveRequests' => $haveRequests, + 'requests' => $requests, + 'haveRequest' => $haveRequest, + 'requestCart' => $requestCart, + 'errorMsg' => $errorMsg, + + 'cart_r' => $cart_r + ); + // Return status, any suggested view, and any data to controller + return array( + 'status' => true, + 'modelRedirect' => false, + 'view' => 'admin/registrations/'.$view, + 'data' => $templateData + ); + + + } + +} diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 3f9c41d..9805205 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -25,3 +25,20 @@ * * Also note that parameters will be in the context of the main admin controller constructor. */ + +// Add hooksHelp.html file to admin Management hooks output +add_filter('glm-member-db-admin-management-hooksHelp', function($content) { + + // Read in this plugin/addon hook help file + $fname = GLM_MEMBERS_REGISTRATIONS_PLUGIN_PATH.'/setup/hooksHelp.html'; + if (is_file($fname)) { + $hooksHelp = file_get_contents($fname); + if ($hooksHelp != false) { + $content .= $hooksHelp; + } + } + return $content; + }, + 10, + 2 +); diff --git a/setup/adminMenus.php b/setup/adminMenus.php index e7fd00a..67d3f9a 100644 --- a/setup/adminMenus.php +++ b/setup/adminMenus.php @@ -64,8 +64,17 @@ add_submenu_page( 'Registration Events', '    Events', 'glm_members_members', - 'glm-members-admin-menu-registrations-list', - function() {$this->controller('registrations', 'list');} + 'glm-members-admin-menu-registrations-events', + function() {$this->controller('registrations', 'events');} +); + +add_submenu_page( + 'glm-members-admin-menu-members', + 'Registration Requests', + '    Requests', + 'glm_members_members', + 'glm-members-admin-menu-registrations-requests', + function() {$this->controller('registrations', 'requests');} ); add_submenu_page( 'glm-members-admin-menu-members', diff --git a/setup/databaseScripts/create_database_V0.0.1.sql b/setup/databaseScripts/create_database_V0.0.1.sql new file mode 100644 index 0000000..83f7c9b --- /dev/null +++ b/setup/databaseScripts/create_database_V0.0.1.sql @@ -0,0 +1,761 @@ +-- Gaslight Media Registration Database +-- File Created: 01/18/2017 14:40:00 +-- Database Version: 0.0.3 +-- Database Creation Script +-- +-- To permit each query below to be executed separately, +-- all queries must be separated by a line with four dashes +-- +/* + * General Database Organization + * ----------------------------- + * + * management - General options and configuration - Site manager access only + * + * misc - Misc settings and text - Site owner may update + * + * Magic Forms Tables + * magicforms - Forms + * --> Event, Registration, Rate Class, Account, Registrant + * mf_data - Data submitted to a form + * --> Submission, Event Registration, Rate Class selected, Account, Registrant + * mf_temp_file - Temporary file meta-data + * + * added_info_fields - Additional fields + * added_info_data - Submitted additional field data + * --> added_info_fields + * + * payment codes - Promotional payment codes - Used with various things + * --> Event, Submission, Event Registration, Event Registrant, Account or global + * + * reg_event - Describes registration for that event + * reg_class - Type of registration for this event (one or more) + * reg_rates - Date range / rate for a reg class (one or more) + * + * reg_account - Describes someone who submits / pays for a registration + * Make these two things the same table.... + * registrant - A person who is registered for an event + * + * reg_request - Information on a specific request for registrations + * reg_request_event - Event selected (one or more) + * reg_request_class - Class of registration (one or more) + * reg_request_rate - Specific registration date/rate (one or more) + * reg_request_registrant - Registrant (one or more) + * + * + * Overall Flow + * ------------ + * + * User selects an event + * If the event has available registrations + * User selects a date for the registration (or if only one that's selected automatically) + * User can log back into registrations at this point if they've been there before and have a password, create an account, or continue as guest ??? + * User selects an available rate type and adds one or more registrants for that rate type + * User may loop back to select additional rate type(s) and registrants + * User may go back to date selection and request additional rate types and registrants for the addional dates + * User may go back to select additional dates and do registrations for those dates as above + * User may go back to select other events and do registrations for them as above + * User may select the "Cart" and deselect something added to it + * User may checkout + * + */ + +/* + * NOTE: Anything below here may not be completed or accurate yet. I'm still working though this + * Lines commented out are selected for possible deletion. + * The INSERT statements are not up-to-date with the tables. + * The "config/plugin.ini" file in this plugin is also a work in progress. + */ + +-- Management Options +-- General configurationm parameters for the Registrations application +-- Only one entry in this table! +CREATE TABLE {prefix}management ( + id INT NOT NULL AUTO_INCREMENT, + canonical_reg_page TINYTEXT NULL, -- Canonical page slug for registrations + -- System Owner Information + reg_org_name TINYTEXT NULL, -- Customer Information - Name of Organization + reg_org_short TINYTEXT NULL, + reg_org_address TINYTEXT NULL, + reg_org_city TINYTEXT NULL, + reg_org_state TINYTEXT NULL, + reg_org_zip TINYTEXT NULL, + reg_org_phone TINYTEXT NULL, + reg_org_toll_free TINYTEXT NULL, + reg_org_internal_email TINYTEXT NULL, + reg_org_from_email TINYTEXT NULL, + reg_payment_methods SMALLINT NULL, -- Payment methods available for all registrations - Bitmap - see payment_method in plugin.ini + reg_proc_methods SMALLINT NULL, -- Payment processing methods available - Bitmap - see proc_method in plugin.ini + reg_cc_accepts SMALLINT NULL, -- Credit Cards Accepted - Bitmap - See credit_card in plugin.ini + -- Authorize.net Credentials + reg_authorize_net_login TINYTEXT NULL, + reg_authorize_net_key TINYTEXT NULL, + reg_authorize_net_test TINYINT NULL, -- Authorize.net test mode - List - see proc_test_mode in plugin.ini + reg_authorize_net_conf BOOLEAN NULL, -- Flag to send payment confirmation Email from Authorize.net + reg_authorize_net_merchant_email TINYTEXT NULL, -- E-Mail Authorize.net will send copy of confirmation E-Mail + -- Merchant Solutions Credentials + reg_merchant_solutions_acctid TINYTEXT NULL, -- Merchant Solutions credentials + reg_merchant_solutions_merchantpin TINYTEXT NULL, + reg_merchant_solutions_test TINYINT NULL, -- Merchant Solutions test mode - List - see proc_test_mode in plugin.ini + -- Billing settings + reg_full_billing_info BOOLEAN NULL, -- Always request full billing information in checkout page regardless of the following settings + reg_bill_info_req_no_charge SMALLINT NULL, -- Bitmap of fields to use in checkout for these types of payments - See billing_field in plugin.conf + reg_bill_info_req_comp_code SMALLINT NULL, + reg_bill_info_req_cash SMALLINT NULL, + reg_bill_info_req_check SMALLINT NULL, + reg_bill_info_req_credit_card SMALLINT NULL, + reg_bill_info_req_merchant_call SMALLINT NULL, + -- Misc Options + reg_medical_info BOOLEAN NULL, -- This site can ask for "Medical Info" - set in main category of an event + PRIMARY KEY (id) +); + +---- + +-- Terms used in site modifiable on Management page in admin - Only 1 entry in this table +-- Terms in this table should be all self-explanatory +CREATE TABLE {prefix}settings_terms ( + id INT NOT NULL AUTO_INCREMENT, + reg_term_registrations_name TINYTEXT NULL, -- Term "Event Registration" + reg_term_registration TINYTEXT NULL, + reg_term_registration_cap TINYTEXT NULL, + reg_term_registration_plur TINYTEXT NULL, + reg_term_registration_plur_cap TINYTEXT NULL, + reg_term_register TINYTEXT NULL, + reg_term_register_cap TINYTEXT NULL, + reg_term_registers TINYTEXT NULL, -- Intransitive verb of register + reg_term_registering TINYTEXT NULL, + reg_term_registering_cap TINYTEXT NULL, + reg_term_registered TINYTEXT NULL, + reg_term_registered_cap TINYTEXT NULL, + reg_term_attendee TINYTEXT NULL, + reg_term_attendee_cap TINYTEXT NULL, + reg_term_attendee_plur TINYTEXT NULL, + reg_term_attendee_plur_cap TINYTEXT NULL, + reg_term_attending TINYTEXT NULL, + reg_term_attended TINYTEXT NULL, + reg_term_registered_user TINYTEXT NULL, + reg_term_registered_user_cap TINYTEXT NULL, + reg_term_registered_user_plur TINYTEXT NULL, + reg_term_registered_user_plur_cap TINYTEXT NULL, + reg_term_id TINYTEXT NULL, + reg_term_id_cap TINYTEXT NULL, + reg_term_id_plur TINYTEXT NULL, + reg_term_id_plur_cap TINYTEXT NULL, + reg_term_password TINYTEXT NULL, + reg_term_password_cap TINYTEXT NULL, + reg_term_password_plur TINYTEXT NULL, + reg_term_password_plur_cap TINYTEXT NULL, + reg_term_instructor TINYTEXT NULL, + reg_term_instructor_cap TINYTEXT NULL, + reg_term_instructor_plur TINYTEXT NULL, + reg_term_instructor_plur_cap TINYTEXT NULL, + reg_term_payment_code TINYTEXT NULL, + reg_term_payment_code_cap TINYTEXT NULL, + reg_term_payment_code_plur TINYTEXT NULL, + reg_term_payment_code_plur_cap TINYTEXT NULL, + reg_term_registration_button TINYTEXT NULL, + reg_term_contact_information TINYTEXT NULL, + PRIMARY KEY (id) +); + +---- + +-- Misc system-wide customer configurable configuration +-- Various text and flags to be configured by customer +-- Only one entry in this table! +CREATE TABLE {prefix}misc ( + id INT NOT NULL AUTO_INCREMENT, + reg_bulletin TEXT NULL, -- Text to display at top of first registration page + cart_page_text TEXT NULL, -- Text to display at top of cart page + checkout_page_text TEXT NULL, -- Text to display at top of checkout page + summary_page_text TEXT NULL, -- Text to display at top of summary page (after checkout) + reg_terms TEXT NULL, -- Registration terms and conditions + notify_subject TEXT NULL, -- Subject of notification E-Mail to site owner + notify_text TEXT NULL, -- Notification E-Mail text for site owner + instr_notify_subject TEXT NULL, -- Subject of notification E-Mail to instructor + instr_notify_text TEXT NULL, -- Notification E-Mail text for instructor + submission_notify_subject TEXT NULL, -- Subject of notification E-Mail to person submitting the registrations + submission_notify_text TEXT NULL, -- Notification E-Mail text to person submitting the registrations + registrant_notify_subject TEXT NULL, -- Subject of notification E-Mail to registrant + registrant_notify_text TEXT NULL, -- Text of notification E-Mail to registrant + submission_ack_subject TEXT NULL, -- Subject of acknowledgement E-Mail to person submitting the registrations + submission_ack_text TEXT NULL, -- Text of acknowledgement E-Mail text to person submitting the registrations + registrant_ack_subject TEXT NULL, -- Subject of acknowledgement E-Mail to registrant + registrant_ack_text TEXT NULL, -- Text of acknowledgement E-Mail to registrant + PRIMARY KEY (id) +); + +---- + +-- Additional fields for collecting information for various things - submission, event registration, or registrant +-- Related to the registration submission or specific event registration +CREATE TABLE {prefix}added_info_fields ( + id INT NOT NULL AUTO_INCREMENT, + ref_type TINYINT NULL, -- See data_ref_type table in plugin.ini + ref_dest INT NULL, -- Pointer to the specific entity of ref_type - (not user submitted data record) + name TINYTEXT NULL, -- Displayed field prompt - also used on retrieval of data + description TINYTEXT NULL, -- Description of field - possibly to display to user + PRIMARY KEY (id), + INDEX (ref_dest) +); + +---- + +-- Additional field data for various specific things +CREATE TABLE {prefix}added_info_data ( + id INT NOT NULL AUTO_INCREMENT, + added_info_field INT NULL, -- Pointer to added_info_field table + ref_type TINYINT NULL, -- See data ref_type table in plugin.ini + ref_dest INT NULL, -- Pointer to specific entryt of the correct type (user submitted data record) + field_value TINYTEXT NULL, + PRIMARY KEY (id), + INDEX (ref_dest) +); + + +---- + +-- magicform +CREATE TABLE {prefix}magicform ( + id INT NOT NULL AUTO_INCREMENT, + form_id TINYTEXT NULL, + custom_id TINYTEXT NULL, + title TINYTEXT NULL, + type SMALLINT NULL, + descr TEXT NULL, + active BOOLEAN NULL, + required BOOLEAN NULL, + data1 TINYTEXT NULL, + sort SMALLINT NULL, + expanded BOOLEAN NULL, + style TEXT NULL, + file TINYTEXT NULL, + cols INT NULL, + rows INT NULL, + size TINYTEXT NULL, + format TINYTEXT NULL, + default_val TINYTEXT NULL, + PRIMARY KEY (id), + INDEX(form_id(20)) +); + +---- + +-- mf_data +CREATE TABLE {prefix}mf_data ( + id INT NOT NULL AUTO_INCREMENT, + fiid INT NULL, + form_id TINYTEXT NULL, + field_id TINYTEXT NULL, + level TINYTEXT NULL, + title TINYTEXT NULL, + type INT NULL, + txt_type TEXT NULL, + value TEXT NULL, + numb_value DOUBLE PRECISION NULL, + txt_value TEXT NULL, + opt_num INT NULL, + valid BOOLEAN NULL, + required BOOLEAN NULL, + failure TEXT NULL, + PRIMARY KEY (id), + INDEX(form_id(20)), + INDEX(fiid) +); + +---- + +-- mf_temp_file +CREATE TABLE {prefix}mf_temp_file ( + id INT NOT NULL AUTO_INCREMENT, + file_name TINYTEXT NULL, + upload_time DATE NULL, + PRIMARY KEY (id), + INDEX(file_name(20)), + INDEX(upload_time) +); + +---- + +-- Payment Codes +-- Promotional payment codes for free/discounted payment +CREATE TABLE {prefix}payment_code ( + id INT NOT NULL AUTO_INCREMENT, + code_type TINYINT NULL, -- Type of adjustment - Free only to start with - See pay_code_type in plugin.ini + ref_type TINYINT NULL, -- See payment_ref_type in plugin.ini + ref_dest INT NULL, -- Pointer to the specific entity of ref_type + code TINYTEXT NULL, -- Text code user must enter to use + amount FLOAT, -- Amount of discount if not type "Free" - Either $ amount or percent + descr TEXT NULL, + PRIMARY KEY (id), + INDEX (ref_dest), + INDEX (code(10)) +); + +---- + +-- Registration event specific information +-- One record for each event in Events add-on +-- Only created when selecting registrations for a particular event in the Events add-on +CREATE TABLE {prefix}reg_event ( + id INT NOT NULL AUTO_INCREMENT, + event INT NULL, -- Pointer to event in Events add-on + event_code TINYTEXT NULL, -- A short code used to reference this event - can be used to directly select an event to register for + notify_email TINYTEXT NULL, -- E-Mail addresses to recieve notification of a registration other than org_internal_email in management, comma separated + admin_active BOOLEAN NULL, -- Active flag for admin from Events - If false, then does not show as a link from events to manage event. Still shows in registrations admin + active BOOLEAN NULL, -- Active flag to indicate that this event is available for registrations + attendees BOOLEAN NULL, -- Registration requires attendees - Otherwise the person submitting the registration is the registrant + attendee_max MEDIUMINT NULL, -- Attendee limit - 0 = unlimited + attendee_max_per_reg TINYINT NULL, -- Maximum attendees per registration submission - 0 = unlimited + attendee_count MEDIUMINT NULL, -- Last calculated attendee count + registration_account_options SMALLINT NULL, -- Bitmap of how user accounts may be used for this event - See registration_account_option in plugin.ini + payment_methods SMALLINT NULL, -- Bitmap of payment methods available to users for this event - See payment_method in plugin.ini + restricted_payment_methods SMALLINT NULL, -- Bitmap of restricted (admin use only) payment methods for this event - see payment_method + terms TEXT NULL, -- Terms and Conditions for registration + reg_file TINYTEXT NULL, -- Name of a downloadable file + reg_file_title TINYTEXT NULL, -- Title for downloadable file + form_revision SMALLINT NULL, -- Current MagicForm form revision + notes TEXT NULL, -- System operator's notes for this event - Not visible to users + PRIMARY KEY (id), + INDEX (event), + INDEX (event_code(10)) +); + +---- + +-- Registration Class - Type of registration for a specific event - Equates to "Rate Options" in the old system +-- One or more for each event +CREATE TABLE {prefix}reg_class ( + id INT NOT NULL AUTO_INCREMENT, + reg_event INT NULL, -- Pointer to reg_event table + name TINYTEXT NULL, -- Name of this registration type + descr TEXT NULL, -- Description + PRIMARY KEY (id), + INDEX (reg_event) +); + +---- + +-- Rates and dates for a particular reg_class +-- One or more per reg_class - **** Days should not overlap for a particular reg_class +CREATE TABLE {prefix}reg_rates ( + id INT NOT NULL AUTO_INCREMENT, + reg_event INT NULL, -- Pointer to reg_event table + reg_class INT NULL, -- Pointer to reg_class table + start_days INT NULL, -- # of days before event time rate becomes available - may be entered as a date then coverted for storage + end_days INT NULL, -- # of days before event time rate becomes unavailable + base_rate FLOAT, -- Base rate to register + per_registrant FLOAT, -- Rate per registrant + registrant_credits TINYINT NULL, -- Number of registrants included in base rate + PRIMARY KEY (id), + INDEX (reg_event), + INDEX (reg_class) +); + +---- + +-- An account for a person submitting a registration or a registrant for an event +-- Depending on the use of these entries may not have all data included +-- A single account may be referenced as a person submitting registrations and/or a person registered for an event +CREATE TABLE {prefix}account ( + id INT NOT NULL AUTO_INCREMENT, + active BOOLEAN NULL, -- Is active flag (may be accessed or used) - default is true + registered_by INT NULL, -- Account + member_id TINYTEXT NULL, -- Free-form field for a member ID (not a GLM Associate member ID) + fname TINYTEXT NULL, -- Account primary address + lname TINYTEXT NULL, + org TINYTEXT NULL, + title TINYTEXT NULL, + addr1 TINYTEXT NULL, + addr2 TINYTEXT NULL, + city TINYTEXT NULL, + state TINYTEXT NULL, + zip TINYTEXT NULL, + country TINYTEXT NULL, + phone TINYTEXT NULL, + fax TINYTEXT NULL, + bill_fname TINYTEXT NULL, -- Last used billing information - Also stored in each registration request + bill_lname TINYTEXT NULL, + bill_org TINYTEXT NULL, + bill_title TINYTEXT NULL, + bill_addr1 TINYTEXT NULL, + bill_addr2 TINYTEXT NULL, + bill_city TINYTEXT NULL, + bill_state TINYTEXT NULL, + bill_zip TINYTEXT NULL, + bill_country TINYTEXT NULL, + bill_phone TINYTEXT NULL, + bill_fax TINYTEXT NULL, + email TINYTEXT NULL, + password TINYTEXT NULL, -- Crypted password for login back into this account + email_ok BOOLEAN NULL, + is_member BOOLEAN NULL, -- Is a member of the entity that owns the site + contact_id INT NULL, -- Pointer to GLM Associate member contact record if account is for a member contact + contact_fname TINYTEXT NULL, + contact_lname TINYTEXT NULL, + contact_org TINYTEXT NULL, + contact_title TINYTEXT NULL, + contact_addr1 TINYTEXT NULL, + contact_addr2 TINYTEXT NULL, + contact_city TINYTEXT NULL, + contact_state TINYTEXT NULL, + contact_zip TINYTEXT NULL, + contact_country TINYTEXT NULL, + contact_phone TINYTEXT NULL, + contact_fax TINYTEXT NULL, + contact_email TINYTEXT NULL, + contact_email_ok BOOLEAN NULL, + guardian TINYTEXT NULL, + emer_contact TINYTEXT NULL, + emer_phone TINYTEXT NULL, + med_history TINYTEXT NULL, + allergy_med TINYTEXT NULL, + date_created DATE NULL, + notes TEXT NULL, -- System operator's notes for this account - not visible to account owner + user_trace_info TINYTEXT NULL, -- IP Address of user computer and timestamp of last update + PRIMARY KEY (id), + INDEX (registered_by), + INDEX (member_id(10)), + INDEX (fname(10)), + INDEX (lname(10)), + INDEX (org(10)), + INDEX (city(10)), + INDEX (state(5)), + INDEX (zip(5)), + INDEX (email(10)), + INDEX (contact_id) +); + +---- + +-- A request for registration +-- Has one or more reg_detail records associated with it +CREATE TABLE {prefix}reg_request ( + id INT NOT NULL AUTO_INCREMENT, + account INT NULL, -- Pointer to user account (reg_account) who submitted the registrations + bill_fname TINYTEXT NULL, -- Billing information used for this registration submission - Updates account billing address - Kept here for each request + bill_lname TINYTEXT NULL, + bill_org TINYTEXT NULL, + bill_title TINYTEXT NULL, + bill_addr1 TINYTEXT NULL, + bill_addr2 TINYTEXT NULL, + bill_city TINYTEXT NULL, + bill_state TINYTEXT NULL, + bill_zip TINYTEXT NULL, + bill_country TINYTEXT NULL, + date_submitted DATE NULL, + pay_method INT NULL, -- See payment_method in plugin.ini + payment_code TINYTEXT NULL, -- Payment_code (code text) - if submitted and validated + status SMALLINT NULL, -- See submission_status in plugin.ini + total DOUBLE PRECISION NULL, -- Total charge including all fees and taxes + cc_type TINYINT NULL, -- Credit Card type (if used) - See credit_card in plugin.ini + cc_name TINYTEXT NULL, + cc_numb TINYTEXT NULL, + cc_exp TINYTEXT NULL, + cc_cvv TINYTEXT NULL, + cc_conf TINYTEXT NULL, -- Confirmation code back from card processor + summary TEXT NULL, -- HTML summary of cart contents, costs and payment - Use same HTML displayed to user + mf_data TEXT NULL, -- Any MagicForm data associated with registrant + notes TEXT NULL, -- System operator's notes for this registration request + user_trace_info TINYTEXT NULL, -- IP Address of user computer and timestamp + PRIMARY KEY (id), + INDEX (account), + INDEX (date_submitted) +); + +---- + +-- Registration for a specific event +-- Has one or more reg_selected_rate records associated with it +CREATE TABLE {prefix}reg_request_event ( + id INT NOT NULL AUTO_INCREMENT, + account INT NULL, -- Pointer to account (person submitting the registration) + reg_request INT NULL, -- Pointer to reg_request table + event INT NULL, -- Pointer to reg_event + event_time INT NULL, -- Pointer to event_times table entry in Events add-on + total_charge FLOAT, -- Last calculated total of all charges for registration to this event for all registrants + notes TEXT NULL, -- System operator's notes for this registration request + mf_data TEXT NULL, -- Any MagicForm data associated with requested event + PRIMARY KEY (id), + INDEX (reg_request), + INDEX (account), + INDEX (event), + INDEX (event_time) +); + +---- + +-- A particular reg_class selected +-- Has one or more reg_request_rate records associated with it +CREATE TABLE {prefix}reg_request_class ( + id INT NOT NULL AUTO_INCREMENT, + account INT NULL, -- Pointer to account (person submitting the registration) + event INT NULL, -- Pointer to reg_event entry + event_time INT NULL, -- Pointer to event_times table entry in Events add-on - To help with registrant searches + reg_request INT NULL, -- Pointer to the registration request record + reg_request_event INT NULL, -- Pointer to reg_request_event table entry + total_class_charge FLOAT, -- Last calculated total of all charges for this registration class for this request + mf_data TEXT NULL, -- Any MagicForm data associated with registrant + notes TEXT NULL, -- System operator's notes for this registration request + PRIMARY KEY (id), + INDEX (account), + INDEX (event), + INDEX (event_time), + INDEX (reg_request_event) +); + +---- + +-- A particular reg_rate selected +-- Has one or more reg_request_registrant records associated with it +CREATE TABLE {prefix}reg_request_rate ( + id INT NOT NULL AUTO_INCREMENT, + account INT NULL, -- Pointer to account (person submitting the registration) + event INT NULL, -- Pointer to reg_event entry + event_time INT NULL, -- Pointer to event_times table entry in Events add-on - To help with registrant searches + reg_request INT NULL, -- Pointer to the registration request record + reg_request_event INT NULL, -- Pointer to reg_request_event table entry + reg_request_class INT NULL, -- Pointer to reg_request_class table entry + rate_base FLOAT, -- Base rate at time of registration + per_registrant FLOAT, -- Per Registrant Rate at time of registration + registrant_credits TINYINT NULL, -- Number of registrant credits in base rate at time of registration + numb_registrants TINYINT NULL, -- Last calculated number of registrants with this rate + total_registrant_charges FLOAT, -- Last calculation registrant charges assoicated with this selected rate + mf_data TEXT NULL, -- Any MagicForm data associated with registrant + notes TEXT NULL, -- System operator's notes for this registration request + PRIMARY KEY (id), + INDEX (account), + INDEX (event), + INDEX (event_time), + INDEX (reg_request_event), + INDEX (reg_request_class) +); + +---- + +-- A specific registrant for a selected registration rate +CREATE TABLE {prefix}reg_request_registrant ( + id INT NOT NULL AUTO_INCREMENT, + account INT NULL, -- Pointer to account for person submitting the registration + event INT NULL, -- Pointer to reg_event entry + event_time INT NULL, -- Pointer to event_times table entry in Events add-on - To help with registrant searches + reg_request_event INT NULL, -- Pointer to reg_request_event table entry + reg_request_class INT NULL, -- Pointer to reg_request_class table entry + reg_request_rate INT NULL, -- Pointer to reg_request_rate table entry + reg_request_registrant INT NULL, -- Pointer to account for registrant (person attending) - Not needed if registrants are off for the event + mf_data TEXT NULL, -- Any MagicForm data associated with registrant + notes TEXT NULL, -- System operator's notes for this registration request + PRIMARY KEY (id), + INDEX (account), + INDEX (event), + INDEX (event_time), + INDEX (reg_request_event), + INDEX (reg_request_class), + INDEX (reg_request_rate), + INDEX (reg_request_registrant) +); + +---- + +-- Insert into management table +INSERT INTO {prefix}management + ( + canonical_reg_page, + reg_org_name, + reg_org_short, + reg_org_address, + reg_org_city, + reg_org_state, + reg_org_zip, + reg_org_phone, + reg_org_toll_free, + reg_org_internal_email, + reg_org_from_email, + reg_payment_methods, + reg_proc_methods, + reg_cc_accepts, + reg_authorize_net_login, + reg_authorize_net_key, + reg_authorize_net_test, + reg_authorize_net_conf, + reg_authorize_net_merchant_email, + reg_merchant_solutions_acctid, + reg_merchant_solutions_merchantpin, + reg_merchant_solutions_test, + reg_full_billing_info, + reg_bill_info_req_no_charge, + reg_bill_info_req_comp_code, + reg_bill_info_req_cash, + reg_bill_info_req_check, + reg_bill_info_req_credit_card, + reg_bill_info_req_merchant_call, + reg_medical_info + ) + VALUES + ( + 'registrations', -- reg_canonical_reg_page, + 'Gaslight Media', -- reg_org_name, + 'GLM', -- reg_org_short, + '120 E. Lake St.', -- reg_org_address, + 'Petoskey', -- reg_org_city, + 'MI', -- reg_org_state, + '49770', -- reg_org_zip, + '231-487-0692', -- reg_org_phone, + '800-123-1234', -- reg_org_toll_free, + 'internal@gaslightmedia.com', -- reg_org_internal_email, + 'info@gaslightmedia.com', -- reg_org_from_email, + 0, -- reg_payment_methods, + 0, -- reg_proc_methods, + 0, -- reg_cc_accepts, + '', -- reg_authorize_net_login, + '', -- reg_authorize_net_key, + 1, -- reg_authorize_net_test, + true, -- reg_authorize_net_conf + '', -- reg_authorize_net_merchant_email, + '', -- reg_merchant_solutions_acctid, + '', -- reg_merchant_solutions_merchantpin, + 1, -- reg_merchant_solutions_test, + true, -- reg_full_billing_info, + 0, -- reg_bill_info_req_no_charge, + 0, -- reg_bill_info_req_comp_code, + 0, -- reg_bill_info_req_cash, + 0, -- reg_bill_info_req_check, + 0, -- reg_bill_info_req_credit_card, + 0, -- reg_bill_info_req_merchant_call, + true -- reg_medical_info, + ); + +---- + +-- Insert into settings_terms table +INSERT INTO {prefix}settings_terms + ( + reg_term_registrations_name, + reg_term_registration, + reg_term_registration_cap, + reg_term_registration_plur, + reg_term_registration_plur_cap, + reg_term_register, + reg_term_register_cap, + reg_term_registers, + reg_term_registering, + reg_term_registering_cap, + reg_term_registered, + reg_term_registered_cap, + reg_term_attendee, + reg_term_attendee_cap, + reg_term_attendee_plur, + reg_term_attendee_plur_cap, + reg_term_attending, + reg_term_attended, + reg_term_registered_user, + reg_term_registered_user_cap, + reg_term_registered_user_plur, + reg_term_registered_user_plur_cap, + reg_term_id, + reg_term_id_cap, + reg_term_id_plur, + reg_term_id_plur_cap, + reg_term_password, + reg_term_password_cap, + reg_term_password_plur, + reg_term_password_plur_cap, + reg_term_instructor, + reg_term_instructor_cap, + reg_term_instructor_plur, + reg_term_instructor_plur_cap, + reg_term_payment_code, + reg_term_payment_code_cap, + reg_term_payment_code_plur, + reg_term_payment_code_plur_cap, + reg_term_registration_button, + reg_term_contact_information + ) + VALUES + ( + 'Event Registrations', -- reg_term_registrations_name + 'registration', -- reg_term_registration + 'Registration', -- reg_term_registration_cap + 'registrations', -- reg_term_registration_plur + 'Registrations', -- reg_term_registration_plur_cap + 'register', -- reg_term_registe + 'Register', -- reg_term_register_cap + 'registers', -- reg_term_registers + 'registering', -- reg_term_registering + 'Registering', -- reg_term_registering_cap + 'registered', -- reg_term_registered + 'Registered', -- reg_term_registered_cap + 'attendee', -- reg_term_attendee + 'Attendee', -- reg_term_attendee_cap + 'attendees', -- reg_term_attendee_plur + 'Attendees', -- reg_term_attendee_plur_cap + 'attending', -- reg_term_attending + 'attended', -- reg_term_attended + 'user', -- reg_term_registered_user + 'User', -- reg_term_registered_user_cap + 'users', -- reg_term_registered_user_plur + 'Users', -- reg_term_registered_user_plur_cap + 'ID', -- reg_term_id + 'ID', -- reg_term_id_cap + 'IDs', -- reg_term_id_plur + 'IDs', -- reg_term_id_plur_cap + 'password', -- reg_term_password + 'passwords', -- reg_term_password_cap + 'Password', -- reg_term_password_plur + 'Passwords', -- reg_term_password_plur_cap + 'instructor', -- reg_term_instructor + 'Instructor', -- reg_term_instructor_cap + 'instructors', -- reg_term_instructor_plur + 'Instructors', -- reg_term_instructor_plur_cap + 'payment code', -- reg_term_payment_code + 'Payment code', -- reg_term_payment_code_cap + 'payment codes', -- reg_term_payment_code_plur + 'Payment codes', -- reg_term_payment_code_plur_cap + 'Register for Event', -- reg_term_registration_button + 'Contact Information' -- reg_term_contact_information + ); + +---- + +-- Insert into misc table +INSERT INTO {prefix}misc + ( + reg_bulletin, + cart_page_text, + checkout_page_text, + summary_page_text, + reg_terms, + notify_subject, + notify_text, + instr_notify_subject, + instr_notify_text, + submission_notify_subject, + submission_notify_text, + registrant_notify_subject, + registrant_notify_text, + submission_ack_subject, + submission_ack_text, + registrant_ack_subject, + registrant_ack_text + ) + VALUES + ( + 'Registration Bulletin Text', + 'Text for top of Cart Page', + 'Text for top of Checkout Page', + 'Text for top of Summary Page', + 'Terms and Conditions', + 'Subject of notification to site owner of a registration', + 'Text of notification to site owner of a registration', + 'Subject of notification to instructor of registration', + 'Text for notification to instructor of registration', + 'Subject of notification to person submitting registration', + 'Text of notification to person submitting registration', + 'Subject for notification to registrant', + 'Text for notification to registrant', + 'Subject of acknowledgement to person submitting registration', + 'Text of acknowledgement to person submitting registration', + 'Subject of acknowledgement to registrant', + 'Text of acknowledgement to registrant' + ); diff --git a/setup/databaseScripts/create_database_V0.0.3.sql b/setup/databaseScripts/create_database_V0.0.3.sql deleted file mode 100644 index d5636c5..0000000 --- a/setup/databaseScripts/create_database_V0.0.3.sql +++ /dev/null @@ -1,759 +0,0 @@ --- Gaslight Media Registration Database --- File Created: 01/18/2017 14:40:00 --- Database Version: 0.0.3 --- Database Creation Script --- --- To permit each query below to be executed separately, --- all queries must be separated by a line with four dashes --- -/* - * General Database Organization - * ----------------------------- - * - * management - General options and configuration - Site manager access only - * - * misc - Misc settings and text - Site owner may update - * - * Magic Forms Tables - * magicforms - Forms - * --> Event, Registration, Rate Class, Account, Registrant - * mf_data - Data submitted to a form - * --> Submission, Event Registration, Rate Class selected, Account, Registrant - * mf_temp_file - Temporary file meta-data - * - * added_info_fields - Additional fields - * added_info_data - Submitted additional field data - * --> added_info_fields - * - * payment codes - Promotional payment codes - Used with various things - * --> Event, Submission, Event Registration, Event Registrant, Account or global - * - * reg_event - Describes registration for that event - * reg_class - Type of registration for this event (one or more) - * reg_rates - Date range / rate for a reg class (one or more) - * - * reg_account - Describes someone who submits / pays for a registration - * Make these two things the same table.... - * registrant - A person who is registered for an event - * - * reg_request - Information on a specific request for registrations - * reg_request_event - Event selected (one or more) - * reg_request_class - Class of registration (one or more) - * reg_request_rate - Specific registration date/rate (one or more) - * reg_request_registrant - Registrant (one or more) - * - * - * Overall Flow - * ------------ - * - * User selects an event - * If the event has available registrations - * User selects a date for the registration (or if only one that's selected automatically) - * User can log back into registrations at this point if they've been there before and have a password, create an account, or continue as guest ??? - * User selects an available rate type and adds one or more registrants for that rate type - * User may loop back to select additional rate type(s) and registrants - * User may go back to date selection and request additional rate types and registrants for the addional dates - * User may go back to select additional dates and do registrations for those dates as above - * User may go back to select other events and do registrations for them as above - * User may select the "Cart" and deselect something added to it - * User may checkout - * - */ - -/* - * NOTE: Anything below here may not be completed or accurate yet. I'm still working though this - * Lines commented out are selected for possible deletion. - * The INSERT statements are not up-to-date with the tables. - * The "config/plugin.ini" file in this plugin is also a work in progress. - */ - --- Management Options --- General configurationm parameters for the Registrations application --- Only one entry in this table! -CREATE TABLE {prefix}management ( - id INT NOT NULL AUTO_INCREMENT, - canonical_reg_page TINYTEXT NULL, -- Canonical page slug for registrations - -- System Owner Information - reg_org_name TINYTEXT NULL, -- Customer Information - Name of Organization - reg_org_short TINYTEXT NULL, - reg_org_address TINYTEXT NULL, - reg_org_city TINYTEXT NULL, - reg_org_state TINYTEXT NULL, - reg_org_zip TINYTEXT NULL, - reg_org_phone TINYTEXT NULL, - reg_org_toll_free TINYTEXT NULL, - reg_org_internal_email TINYTEXT NULL, - reg_org_from_email TINYTEXT NULL, - reg_payment_methods SMALLINT NULL, -- Payment methods available for all registrations - Bitmap - see payment_method in plugin.ini - reg_proc_methods SMALLINT NULL, -- Payment processing methods available - Bitmap - see proc_method in plugin.ini - reg_cc_accepts SMALLINT NULL, -- Credit Cards Accepted - Bitmap - See credit_card in plugin.ini - -- Authorize.net Credentials - reg_authorize_net_login TINYTEXT NULL, - reg_authorize_net_key TINYTEXT NULL, - reg_authorize_net_test TINYINT NULL, -- Authorize.net test mode - List - see proc_test_mode in plugin.ini - reg_authorize_net_conf BOOLEAN NULL, -- Flag to send payment confirmation Email from Authorize.net - reg_authorize_net_merchant_email TINYTEXT NULL, -- E-Mail Authorize.net will send copy of confirmation E-Mail - -- Merchant Solutions Credentials - reg_merchant_solutions_acctid TINYTEXT NULL, -- Merchant Solutions credentials - reg_merchant_solutions_merchantpin TINYTEXT NULL, - reg_merchant_solutions_test TINYINT NULL, -- Merchant Solutions test mode - List - see proc_test_mode in plugin.ini - -- Billing settings - reg_full_billing_info BOOLEAN NULL, -- Always request full billing information in checkout page regardless of the following settings - reg_bill_info_req_no_charge SMALLINT NULL, -- Bitmap of fields to use in checkout for these types of payments - See billing_field in plugin.conf - reg_bill_info_req_comp_code SMALLINT NULL, - reg_bill_info_req_cash SMALLINT NULL, - reg_bill_info_req_check SMALLINT NULL, - reg_bill_info_req_credit_card SMALLINT NULL, - reg_bill_info_req_merchant_call SMALLINT NULL, - -- Misc Options - reg_medical_info BOOLEAN NULL, -- This site can ask for "Medical Info" - set in main category of an event - PRIMARY KEY (id) -); - ----- - --- Terms used in site modifiable on Management page in admin - Only 1 entry in this table --- Terms in this table should be all self-explanatory -CREATE TABLE {prefix}settings_terms ( - id INT NOT NULL AUTO_INCREMENT, - reg_term_registrations_name TINYTEXT NULL, -- Term "Event Registration" - reg_term_registration TINYTEXT NULL, - reg_term_registration_cap TINYTEXT NULL, - reg_term_registration_plur TINYTEXT NULL, - reg_term_registration_plur_cap TINYTEXT NULL, - reg_term_register TINYTEXT NULL, - reg_term_register_cap TINYTEXT NULL, - reg_term_registers TINYTEXT NULL, -- Intransitive verb of register - reg_term_registering TINYTEXT NULL, - reg_term_registering_cap TINYTEXT NULL, - reg_term_registered TINYTEXT NULL, - reg_term_registered_cap TINYTEXT NULL, - reg_term_attendee TINYTEXT NULL, - reg_term_attendee_cap TINYTEXT NULL, - reg_term_attendee_plur TINYTEXT NULL, - reg_term_attendee_plur_cap TINYTEXT NULL, - reg_term_attending TINYTEXT NULL, - reg_term_attended TINYTEXT NULL, - reg_term_registered_user TINYTEXT NULL, - reg_term_registered_user_cap TINYTEXT NULL, - reg_term_registered_user_plur TINYTEXT NULL, - reg_term_registered_user_plur_cap TINYTEXT NULL, - reg_term_id TINYTEXT NULL, - reg_term_id_cap TINYTEXT NULL, - reg_term_id_plur TINYTEXT NULL, - reg_term_id_plur_cap TINYTEXT NULL, - reg_term_password TINYTEXT NULL, - reg_term_password_cap TINYTEXT NULL, - reg_term_password_plur TINYTEXT NULL, - reg_term_password_plur_cap TINYTEXT NULL, - reg_term_instructor TINYTEXT NULL, - reg_term_instructor_cap TINYTEXT NULL, - reg_term_instructor_plur TINYTEXT NULL, - reg_term_instructor_plur_cap TINYTEXT NULL, - reg_term_payment_code TINYTEXT NULL, - reg_term_payment_code_cap TINYTEXT NULL, - reg_term_payment_code_plur TINYTEXT NULL, - reg_term_payment_code_plur_cap TINYTEXT NULL, - reg_term_registration_button TINYTEXT NULL, - reg_term_contact_information TINYTEXT NULL, - PRIMARY KEY (id) -); - ----- - --- Misc system-wide customer configurable configuration --- Various text and flags to be configured by customer --- Only one entry in this table! -CREATE TABLE {prefix}misc ( - id INT NOT NULL AUTO_INCREMENT, - reg_bulletin TEXT NULL, -- Text to display at top of first registration page - cart_page_text TEXT NULL, -- Text to display at top of cart page - checkout_page_text TEXT NULL, -- Text to display at top of checkout page - summary_page_text TEXT NULL, -- Text to display at top of summary page (after checkout) - reg_terms TEXT NULL, -- Registration terms and conditions - notify_subject TEXT NULL, -- Subject of notification E-Mail to site owner - notify_text TEXT NULL, -- Notification E-Mail text for site owner - instr_notify_subject TEXT NULL, -- Subject of notification E-Mail to instructor - instr_notify_text TEXT NULL, -- Notification E-Mail text for instructor - submission_notify_subject TEXT NULL, -- Subject of notification E-Mail to person submitting the registrations - submission_notify_text TEXT NULL, -- Notification E-Mail text to person submitting the registrations - registrant_notify_subject TEXT NULL, -- Subject of notification E-Mail to registrant - registrant_notify_text TEXT NULL, -- Text of notification E-Mail to registrant - submission_ack_subject TEXT NULL, -- Subject of acknowledgement E-Mail to person submitting the registrations - submission_ack_text TEXT NULL, -- Text of acknowledgement E-Mail text to person submitting the registrations - registrant_ack_subject TEXT NULL, -- Subject of acknowledgement E-Mail to registrant - registrant_ack_text TEXT NULL, -- Text of acknowledgement E-Mail to registrant - PRIMARY KEY (id) -); - ----- - --- Additional fields for collecting information for various things - submission, event registration, or registrant --- Related to the registration submission or specific event registration -CREATE TABLE {prefix}added_info_fields ( - id INT NOT NULL AUTO_INCREMENT, - ref_type TINYINT NULL, -- See data_ref_type table in plugin.ini - ref_dest INT NULL, -- Pointer to the specific entity of ref_type - (not user submitted data record) - name TINYTEXT NULL, -- Displayed field prompt - also used on retrieval of data - description TINYTEXT NULL, -- Description of field - possibly to display to user - PRIMARY KEY (id), - INDEX (ref_dest) -); - ----- - --- Additional field data for various specific things -CREATE TABLE {prefix}added_info_data ( - id INT NOT NULL AUTO_INCREMENT, - added_info_field INT NULL, -- Pointer to added_info_field table - ref_type TINYINT NULL, -- See data ref_type table in plugin.ini - ref_dest INT NULL, -- Pointer to specific entryt of the correct type (user submitted data record) - field_value TINYTEXT NULL, - PRIMARY KEY (id), - INDEX (ref_dest) -); - - ----- - --- magicform -CREATE TABLE {prefix}magicform ( - id INT NOT NULL AUTO_INCREMENT, - form_id TINYTEXT NULL, - custom_id TINYTEXT NULL, - title TINYTEXT NULL, - type SMALLINT NULL, - descr TEXT NULL, - active BOOLEAN NULL, - required BOOLEAN NULL, - data1 TINYTEXT NULL, - sort SMALLINT NULL, - expanded BOOLEAN NULL, - style TEXT NULL, - file TINYTEXT NULL, - cols INT NULL, - rows INT NULL, - size TINYTEXT NULL, - format TINYTEXT NULL, - default_val TINYTEXT NULL, - PRIMARY KEY (id), - INDEX(form_id(20)) -); - ----- - --- mf_data -CREATE TABLE {prefix}mf_data ( - id INT NOT NULL AUTO_INCREMENT, - fiid INT NULL, - form_id TINYTEXT NULL, - field_id TINYTEXT NULL, - level TINYTEXT NULL, - title TINYTEXT NULL, - type INT NULL, - txt_type TEXT NULL, - value TEXT NULL, - numb_value DOUBLE PRECISION NULL, - txt_value TEXT NULL, - opt_num INT NULL, - valid BOOLEAN NULL, - required BOOLEAN NULL, - failure TEXT NULL, - PRIMARY KEY (id), - INDEX(form_id(20)), - INDEX(fiid) -); - ----- - --- mf_temp_file -CREATE TABLE {prefix}mf_temp_file ( - id INT NOT NULL AUTO_INCREMENT, - file_name TINYTEXT NULL, - upload_time DATE NULL, - PRIMARY KEY (id), - INDEX(file_name(20)), - INDEX(upload_time) -); - ----- - --- Payment Codes --- Promotional payment codes for free/discounted payment -CREATE TABLE {prefix}payment_code ( - id INT NOT NULL AUTO_INCREMENT, - code_type TINYINT NULL, -- Type of adjustment - Free only to start with - See pay_code_type in plugin.ini - ref_type TINYINT NULL, -- See payment_ref_type in plugin.ini - ref_dest INT NULL, -- Pointer to the specific entity of ref_type - code TINYTEXT NULL, -- Text code user must enter to use - amount FLOAT, -- Amount of discount if not type "Free" - Either $ amount or percent - descr TEXT NULL, - PRIMARY KEY (id), - INDEX (ref_dest), - INDEX (code(10)) -); - ----- - --- Registration event specific information --- One record for each event in Events add-on --- Only created when selecting registrations for a particular event in the Events add-on -CREATE TABLE {prefix}reg_event ( - id INT NOT NULL AUTO_INCREMENT, - event INT NULL, -- Pointer to event in Events add-on - event_code TINYTEXT NULL, -- A short code used to reference this event - can be used to directly select an event to register for - notify_email TINYTEXT NULL, -- E-Mail addresses to recieve notification of a registration other than org_internal_email in management, comma separated - admin_active BOOLEAN NULL, -- Active flag for admin from Events - If false, then does not show as a link from events to manage event. Still shows in registrations admin - active BOOLEAN NULL, -- Active flag to indicate that this event is available for registrations - attendees BOOLEAN NULL, -- Registration requires attendees - Otherwise the person submitting the registration is the registrant - attendee_max MEDIUMINT NULL, -- Attendee limit - 0 = unlimited - attendee_max_per_reg TINYINT NULL, -- Maximum attendees per registration submission - 0 = unlimited - attendee_count MEDIUMINT NULL, -- Last calculated attendee count - registration_account_options SMALLINT NULL, -- Bitmap of how user accounts may be used for this event - See registration_account_option in plugin.ini - payment_methods SMALLINT NULL, -- Bitmap of payment methods available to users for this event - See payment_method in plugin.ini - restricted_payment_methods SMALLINT NULL, -- Bitmap of restricted (admin use only) payment methods for this event - see payment_method - terms TEXT NULL, -- Terms and Conditions for registration - reg_file TINYTEXT NULL, -- Name of a downloadable file - reg_file_title TINYTEXT NULL, -- Title for downloadable file - form_revision SMALLINT NULL, -- Current MagicForm form revision - notes TEXT NULL, -- System operator's notes for this event - Not visible to users - PRIMARY KEY (id), - INDEX (event), - INDEX (event_code(10)) -); - ----- - --- Registration Class - Type of registration for a specific event - Equates to "Rate Options" in the old system --- One or more for each event -CREATE TABLE {prefix}reg_class ( - id INT NOT NULL AUTO_INCREMENT, - reg_event INT NULL, -- Pointer to reg_event table - name TINYTEXT NULL, -- Name of this registration type - descr TEXT NULL, -- Description - PRIMARY KEY (id), - INDEX (reg_event) -); - ----- - --- Rates and dates for a particular reg_class --- One or more per reg_class - **** Days should not overlap for a particular reg_class -CREATE TABLE {prefix}reg_rates ( - id INT NOT NULL AUTO_INCREMENT, - reg_event INT NULL, -- Pointer to reg_event table - reg_class INT NULL, -- Pointer to reg_class table - start_days INT NULL, -- # of days before event time rate becomes available - may be entered as a date then coverted for storage - end_days INT NULL, -- # of days before event time rate becomes unavailable - base_rate FLOAT, -- Base rate to register - per_registrant FLOAT, -- Rate per registrant - registrant_credits TINYINT NULL, -- Number of registrants included in base rate - PRIMARY KEY (id), - INDEX (reg_event), - INDEX (reg_class) -); - ----- - --- An account for a person submitting a registration or a registrant for an event --- Depending on the use of these entries may not have all data included --- A single account may be referenced as a person submitting registrations and/or a person registered for an event -CREATE TABLE {prefix}account ( - id INT NOT NULL AUTO_INCREMENT, - active BOOLEAN NULL, -- Is active flag (may be accessed or used) - default is true - registered_by INT NULL, -- Account - member_id TINYTEXT NULL, -- Free-form field for a member ID (not a GLM Associate member ID) - fname TINYTEXT NULL, -- Account primary address - lname TINYTEXT NULL, - org TINYTEXT NULL, - title TINYTEXT NULL, - addr1 TINYTEXT NULL, - addr2 TINYTEXT NULL, - city TINYTEXT NULL, - state TINYTEXT NULL, - zip TINYTEXT NULL, - country TINYTEXT NULL, - phone TINYTEXT NULL, - fax TINYTEXT NULL, - bill_fname TINYTEXT NULL, -- Last used billing information - Also stored in each registration request - bill_lname TINYTEXT NULL, - bill_org TINYTEXT NULL, - bill_title TINYTEXT NULL, - bill_addr1 TINYTEXT NULL, - bill_addr2 TINYTEXT NULL, - bill_city TINYTEXT NULL, - bill_state TINYTEXT NULL, - bill_zip TINYTEXT NULL, - bill_country TINYTEXT NULL, - bill_phone TINYTEXT NULL, - bill_fax TINYTEXT NULL, - email TINYTEXT NULL, - password TINYTEXT NULL, -- Crypted password for login back into this account - email_ok BOOLEAN NULL, - is_member BOOLEAN NULL, -- Is a member of the entity that owns the site - contact_id INT NULL, -- Pointer to GLM Associate member contact record if account is for a member contact - contact_fname TINYTEXT NULL, - contact_lname TINYTEXT NULL, - contact_org TINYTEXT NULL, - contact_title TINYTEXT NULL, - contact_addr1 TINYTEXT NULL, - contact_addr2 TINYTEXT NULL, - contact_city TINYTEXT NULL, - contact_state TINYTEXT NULL, - contact_zip TINYTEXT NULL, - contact_country TINYTEXT NULL, - contact_phone TINYTEXT NULL, - contact_fax TINYTEXT NULL, - contact_email TINYTEXT NULL, - contact_email_ok BOOLEAN NULL, - guardian TINYTEXT NULL, - emer_contact TINYTEXT NULL, - emer_phone TINYTEXT NULL, - med_history TINYTEXT NULL, - allergy_med TINYTEXT NULL, - date_created DATE NULL, - notes TEXT NULL, -- System operator's notes for this account - not visible to account owner - user_trace_info TINYTEXT NULL, -- IP Address of user computer and timestamp of last update - PRIMARY KEY (id), - INDEX (registered_by), - INDEX (member_id(10)), - INDEX (fname(10)), - INDEX (lname(10)), - INDEX (org(10)), - INDEX (city(10)), - INDEX (state(5)), - INDEX (zip(5)), - INDEX (email(10)), - INDEX (contact_id) -); - ----- - --- A request for registration --- Has one or more reg_detail records associated with it -CREATE TABLE {prefix}reg_request ( - id INT NOT NULL AUTO_INCREMENT, - account INT NULL, -- Pointer to user account (reg_account) who submitted the registrations - bill_fname TINYTEXT NULL, -- Billing information used for this registration submission - Updates account billing address - Kept here for each request - bill_lname TINYTEXT NULL, - bill_org TINYTEXT NULL, - bill_title TINYTEXT NULL, - bill_addr1 TINYTEXT NULL, - bill_addr2 TINYTEXT NULL, - bill_city TINYTEXT NULL, - bill_state TINYTEXT NULL, - bill_zip TINYTEXT NULL, - bill_country TINYTEXT NULL, - date_submitted DATE NULL, - pay_method INT NULL, -- See payment_method in plugin.ini - payment_code INT NULL, -- Pointer to payment_code - if submitted and validated - status SMALLINT NULL, -- See submission_status in plugin.ini - total DOUBLE PRECISION NULL, -- Total charge including all fees and taxes - cc_type TINYINT NULL, -- Credit Card type (if used) - See credit_card in plugin.ini - cc_name TINYTEXT NULL, - cc_numb TINYTEXT NULL, - cc_exp TINYTEXT NULL, - cc_cvv TINYTEXT NULL, - cc_conf TINYTEXT NULL, -- Confirmation code back from card processor - summary TEXT NULL, -- HTML summary of cart contents, costs and payment - Use same HTML displayed to user - mf_data TEXT NULL, -- Any MagicForm data associated with registrant - notes TEXT NULL, -- System operator's notes for this registration request - user_trace_info TINYTEXT NULL, -- IP Address of user computer and timestamp - PRIMARY KEY (id), - INDEX (account), - INDEX (date_submitted) -); - ----- - --- Registration for a specific event --- Has one or more reg_selected_rate records associated with it -CREATE TABLE {prefix}reg_request_event ( - id INT NOT NULL AUTO_INCREMENT, - account INT NULL, -- Pointer to account (person submitting the registration) - reg_request INT NULL, -- Pointer to reg_request table - event INT NULL, -- Pointer to reg_event - event_time INT NULL, -- Pointer to event_times table entry in Events add-on - total_charge FLOAT, -- Last calculated total of all charges for registration to this event for all registrants - notes TEXT NULL, -- System operator's notes for this registration request - mf_data TEXT NULL, -- Any MagicForm data associated with requested event - PRIMARY KEY (id), - INDEX (reg_request), - INDEX (account), - INDEX (event), - INDEX (event_time) -); - ----- - --- A particular reg_class selected --- Has one or more reg_request_rate records associated with it -CREATE TABLE {prefix}reg_request_class ( - id INT NOT NULL AUTO_INCREMENT, - account INT NULL, -- Pointer to account (person submitting the registration) - event INT NULL, -- Pointer to reg_event entry - event_time INT NULL, -- Pointer to event_times table entry in Events add-on - To help with registrant searches - reg_request_event INT NULL, -- Pointer to reg_request_event table entry - total_class_charge FLOAT, -- Last calculated total of all charges for this registration class for this request - mf_data TEXT NULL, -- Any MagicForm data associated with registrant - notes TEXT NULL, -- System operator's notes for this registration request - PRIMARY KEY (id), - INDEX (account), - INDEX (event), - INDEX (event_time), - INDEX (reg_request_event) -); - ----- - --- A particular reg_rate selected --- Has one or more reg_request_registrant records associated with it -CREATE TABLE {prefix}reg_request_rate ( - id INT NOT NULL AUTO_INCREMENT, - account INT NULL, -- Pointer to account (person submitting the registration) - event INT NULL, -- Pointer to reg_event entry - event_time INT NULL, -- Pointer to event_times table entry in Events add-on - To help with registrant searches - reg_request_event INT NULL, -- Pointer to reg_request_event table entry - reg_request_class INT NULL, -- Pointer to reg_request_class table entry - rate_base FLOAT, -- Base rate at time of registration - per_registrant FLOAT, -- Per Registrant Rate at time of registration - registrant_credits TINYINT NULL, -- Number of registrant credits in base rate at time of registration - numb_registrants TINYINT NULL, -- Last calculated number of registrants with this rate - total_registrant_charges FLOAT, -- Last calculation registrant charges assoicated with this selected rate - mf_data TEXT NULL, -- Any MagicForm data associated with registrant - notes TEXT NULL, -- System operator's notes for this registration request - PRIMARY KEY (id), - INDEX (account), - INDEX (event), - INDEX (event_time), - INDEX (reg_request_event), - INDEX (reg_request_class) -); - ----- - --- A specific registrant for a selected registration rate -CREATE TABLE {prefix}reg_request_registrant ( - id INT NOT NULL AUTO_INCREMENT, - account INT NULL, -- Pointer to account for person submitting the registration - event INT NULL, -- Pointer to reg_event entry - event_time INT NULL, -- Pointer to event_times table entry in Events add-on - To help with registrant searches - reg_request_event INT NULL, -- Pointer to reg_request_event table entry - reg_request_class INT NULL, -- Pointer to reg_request_class table entry - reg_request_rate INT NULL, -- Pointer to reg_request_rate table entry - reg_request_registrant INT NULL, -- Pointer to account for registrant (person attending) - Not needed if registrants are off for the event - mf_data TEXT NULL, -- Any MagicForm data associated with registrant - notes TEXT NULL, -- System operator's notes for this registration request - PRIMARY KEY (id), - INDEX (account), - INDEX (event), - INDEX (event_time), - INDEX (reg_request_event), - INDEX (reg_request_class), - INDEX (reg_request_rate), - INDEX (reg_request_registrant) -); - ----- - --- Insert into management table -INSERT INTO {prefix}management - ( - canonical_reg_page, - reg_org_name, - reg_org_short, - reg_org_address, - reg_org_city, - reg_org_state, - reg_org_zip, - reg_org_phone, - reg_org_toll_free, - reg_org_internal_email, - reg_org_from_email, - reg_payment_methods, - reg_proc_methods, - reg_cc_accepts, - reg_authorize_net_login, - reg_authorize_net_key, - reg_authorize_net_test, - reg_authorize_net_conf, - reg_authorize_net_merchant_email, - reg_merchant_solutions_acctid, - reg_merchant_solutions_merchantpin, - reg_merchant_solutions_test, - reg_full_billing_info, - reg_bill_info_req_no_charge, - reg_bill_info_req_comp_code, - reg_bill_info_req_cash, - reg_bill_info_req_check, - reg_bill_info_req_credit_card, - reg_bill_info_req_merchant_call, - reg_medical_info - ) - VALUES - ( - 'registrations', -- reg_canonical_reg_page, - 'Gaslight Media', -- reg_org_name, - 'GLM', -- reg_org_short, - '120 E. Lake St.', -- reg_org_address, - 'Petoskey', -- reg_org_city, - 'MI', -- reg_org_state, - '49770', -- reg_org_zip, - '231-487-0692', -- reg_org_phone, - '800-123-1234', -- reg_org_toll_free, - 'internal@gaslightmedia.com', -- reg_org_internal_email, - 'info@gaslightmedia.com', -- reg_org_from_email, - 0, -- reg_payment_methods, - 0, -- reg_proc_methods, - 0, -- reg_cc_accepts, - '', -- reg_authorize_net_login, - '', -- reg_authorize_net_key, - 1, -- reg_authorize_net_test, - true, -- reg_authorize_net_conf - '', -- reg_authorize_net_merchant_email, - '', -- reg_merchant_solutions_acctid, - '', -- reg_merchant_solutions_merchantpin, - 1, -- reg_merchant_solutions_test, - true, -- reg_full_billing_info, - 0, -- reg_bill_info_req_no_charge, - 0, -- reg_bill_info_req_comp_code, - 0, -- reg_bill_info_req_cash, - 0, -- reg_bill_info_req_check, - 0, -- reg_bill_info_req_credit_card, - 0, -- reg_bill_info_req_merchant_call, - true -- reg_medical_info, - ); - ----- - --- Insert into settings_terms table -INSERT INTO {prefix}settings_terms - ( - reg_term_registrations_name, - reg_term_registration, - reg_term_registration_cap, - reg_term_registration_plur, - reg_term_registration_plur_cap, - reg_term_register, - reg_term_register_cap, - reg_term_registers, - reg_term_registering, - reg_term_registering_cap, - reg_term_registered, - reg_term_registered_cap, - reg_term_attendee, - reg_term_attendee_cap, - reg_term_attendee_plur, - reg_term_attendee_plur_cap, - reg_term_attending, - reg_term_attended, - reg_term_registered_user, - reg_term_registered_user_cap, - reg_term_registered_user_plur, - reg_term_registered_user_plur_cap, - reg_term_id, - reg_term_id_cap, - reg_term_id_plur, - reg_term_id_plur_cap, - reg_term_password, - reg_term_password_cap, - reg_term_password_plur, - reg_term_password_plur_cap, - reg_term_instructor, - reg_term_instructor_cap, - reg_term_instructor_plur, - reg_term_instructor_plur_cap, - reg_term_payment_code, - reg_term_payment_code_cap, - reg_term_payment_code_plur, - reg_term_payment_code_plur_cap, - reg_term_registration_button, - reg_term_contact_information - ) - VALUES - ( - 'Event Registrations', -- reg_term_registrations_name - 'registration', -- reg_term_registration - 'Registration', -- reg_term_registration_cap - 'registrations', -- reg_term_registration_plur - 'Registrations', -- reg_term_registration_plur_cap - 'register', -- reg_term_registe - 'Register', -- reg_term_register_cap - 'registers', -- reg_term_registers - 'registering', -- reg_term_registering - 'Registering', -- reg_term_registering_cap - 'registered', -- reg_term_registered - 'Registered', -- reg_term_registered_cap - 'attendee', -- reg_term_attendee - 'Attendee', -- reg_term_attendee_cap - 'attendees', -- reg_term_attendee_plur - 'Attendees', -- reg_term_attendee_plur_cap - 'attending', -- reg_term_attending - 'attended', -- reg_term_attended - 'user', -- reg_term_registered_user - 'User', -- reg_term_registered_user_cap - 'users', -- reg_term_registered_user_plur - 'Users', -- reg_term_registered_user_plur_cap - 'ID', -- reg_term_id - 'ID', -- reg_term_id_cap - 'IDs', -- reg_term_id_plur - 'IDs', -- reg_term_id_plur_cap - 'password', -- reg_term_password - 'passwords', -- reg_term_password_cap - 'Password', -- reg_term_password_plur - 'Passwords', -- reg_term_password_plur_cap - 'instructor', -- reg_term_instructor - 'Instructor', -- reg_term_instructor_cap - 'instructors', -- reg_term_instructor_plur - 'Instructors', -- reg_term_instructor_plur_cap - 'payment code', -- reg_term_payment_code - 'Payment code', -- reg_term_payment_code_cap - 'payment codes', -- reg_term_payment_code_plur - 'Payment codes', -- reg_term_payment_code_plur_cap - 'Register for Event', -- reg_term_registration_button - 'Contact Information' -- reg_term_contact_information - ); - ----- - --- Insert into misc table -INSERT INTO {prefix}misc - ( - reg_bulletin, - cart_page_text, - checkout_page_text, - summary_page_text, - reg_terms, - notify_subject, - notify_text, - instr_notify_subject, - instr_notify_text, - submission_notify_subject, - submission_notify_text, - registrant_notify_subject, - registrant_notify_text, - submission_ack_subject, - submission_ack_text, - registrant_ack_subject, - registrant_ack_text - ) - VALUES - ( - 'Registration Bulletin Text', - 'Text for top of Cart Page', - 'Text for top of Checkout Page', - 'Text for top of Summary Page', - 'Terms and Conditions', - 'Subject of notification to site owner of a registration', - 'Text of notification to site owner of a registration', - 'Subject of notification to instructor of registration', - 'Text for notification to instructor of registration', - 'Subject of notification to person submitting registration', - 'Text of notification to person submitting registration', - 'Subject for notification to registrant', - 'Text for notification to registrant', - 'Subject of acknowledgement to person submitting registration', - 'Text of acknowledgement to person submitting registration', - 'Subject of acknowledgement to registrant', - 'Text of acknowledgement to registrant' - ); diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index 602f2a3..25bea06 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -14,9 +14,7 @@ */ $glmMembersRegistrationsDbVersions = array( - '0.0.1' => array('version' => '0.0.1', 'tables' => 18, 'date' => '02/6/2017'), - '0.0.2' => array('version' => '0.0.2', 'tables' => 18, 'date' => '02/17/2017'), - '0.0.3' => array('version' => '0.0.3', 'tables' => 18, 'date' => '03/2/2017') + '0.0.1' => array('version' => '0.0.1', 'tables' => 18, 'date' => '03/2/2017') ); diff --git a/setup/databaseScripts/update_database_V0.0.2.sql b/setup/databaseScripts/update_database_V0.0.2.sql deleted file mode 100644 index acd8025..0000000 --- a/setup/databaseScripts/update_database_V0.0.2.sql +++ /dev/null @@ -1,67 +0,0 @@ --- Gaslight Media Members Database - Events Add-On --- File Created: 12/09/14 15:27:15 --- Database Version: 0.0.9 --- Database Update From Previous Version Script --- --- To permit each query below to be executed separately, --- all queries must be separated by a line with four dashses - - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_payment_methods SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_proc_methods SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_cc_accepts SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_bill_info_req_no_charge SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_bill_info_req_comp_code SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_bill_info_req_cash SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_bill_info_req_check SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_bill_info_req_credit_card SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY reg_bill_info_req_merchant_call SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}reg_event MODIFY registration_account_options SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}reg_event MODIFY payment_methods SMALLINT; - ----- - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}reg_event MODIFY restricted_payment_methods SMALLINT; - diff --git a/setup/databaseScripts/update_database_V0.0.3.sql b/setup/databaseScripts/update_database_V0.0.3.sql deleted file mode 100644 index 00c832b..0000000 --- a/setup/databaseScripts/update_database_V0.0.3.sql +++ /dev/null @@ -1,11 +0,0 @@ --- Gaslight Media Members Database - Events Add-On --- File Created: 3/01/17 10:01:16 --- Database Version: 0.0.3 --- Database Update From Previous Version Script --- --- To permit each query below to be executed separately, --- all queries must be separated by a line with four dashses - - --- Change size of integer for bitmapped field. -ALTER TABLE {prefix}management MODIFY numb_registrants TINYINT; diff --git a/setup/hooksHelp.html b/setup/hooksHelp.html index bbe0e75..b77f9ba 100644 --- a/setup/hooksHelp.html +++ b/setup/hooksHelp.html @@ -1,16 +1,3 @@ - -

Sample Add-On

- - User Permission Hooks - - - some_hook_name - FILTER or ACTION - - - What this hook does. - - - ---> \ No newline at end of file +

Registrations Add-On

diff --git a/setup/validActions.php b/setup/validActions.php index 5a3eaec..6913195 100644 --- a/setup/validActions.php +++ b/setup/validActions.php @@ -60,17 +60,19 @@ $glmMembersRegistrationsAddOnValidActions = array( 'adminActions' => array( 'registrations' => array( - 'index' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, - 'list' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, - 'accounts' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'index' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'list' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'events' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'accounts' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'requests' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG ), 'management' => array( - 'registrations' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, - 'regterms' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'registrations' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'regterms' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, ), 'settings' => array( - 'registrationsPaymentCode' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, - 'registrationsMisc' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'registrationsPaymentCode' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, + 'registrationsMisc' => GLM_MEMBERS_REGISTRATIONS_PLUGIN_SLUG, ), ), 'frontActions' => array( diff --git a/views/admin/registrations/edit.html b/views/admin/registrations/edit.html deleted file mode 100644 index 86a411f..0000000 --- a/views/admin/registrations/edit.html +++ /dev/null @@ -1,516 +0,0 @@ -{include file='admin/registrations/header.html'} - - Return to Account List - - {if $option == 'edit' || $option == 'update'} - Delete this Account -
-
-

Cancel

-

-
-
-

WARNING:

-

- Clicking the "Delete this Account" button above will - delete all of the data and images associated with this contact. - -

-

- Once deleted, this information will no longer be available and cannot be retrieved! -

-
-
-

Edit Account - {else} -

Add new Account - {/if} -     - {if $accountUpdated}Account Updated{/if} - {if $accountUpdateError}Account Update Error{/if} - {if $accountAdded}Account Added{/if} - {if $accountAddError}Account Add Error{/if} -

- - -
- - {if $haveAccount} - - - {else} - - {/if} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -{include file='admin/footer.html'} - diff --git a/views/admin/registrations/editAccount.html b/views/admin/registrations/editAccount.html new file mode 100644 index 0000000..f2d9c51 --- /dev/null +++ b/views/admin/registrations/editAccount.html @@ -0,0 +1,515 @@ +{include file='admin/registrations/header.html'} + + Return to Account List + + {if $option == 'edit' || $option == 'update'} + Delete this Account +
+
+

Cancel

+

+
+
+

WARNING:

+

+ Clicking the "Delete this Account" button above will + delete all of the data and images associated with this contact. + +

+

+ Once deleted, this information will no longer be available and cannot be retrieved! +

+
+
+

Edit Account + {else} +

Add new Account + {/if} +     + {if $accountUpdated}Account Updated{/if} + {if $accountUpdateError}Account Update Error{/if} + {if $accountAdded}Account Added{/if} + {if $accountAddError}Account Add Error{/if} +

+ + +
+ + {if $haveAccount} + + + {else} + + {/if} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +{include file='admin/footer.html'} diff --git a/views/admin/registrations/editRequest.html b/views/admin/registrations/editRequest.html new file mode 100644 index 0000000..9fd144e --- /dev/null +++ b/views/admin/registrations/editRequest.html @@ -0,0 +1,25 @@ + +

Registration Request

+ +

Person submitting the registration: {$requestCart.request.bill_fname} (ID = {$requestCart.request.id})

+ +

+Info in registration request: +{if $requestCart.request.account} + {$requestCart.accounts.{$requestCart.request.account}.fname} +{else} + (No account) +{/if} + + +

+ +

Info from account of person who submitted the registration

+ +

Events selected:

+ + + +{include file='admin/footer.html'} + +
{$cart_r}
diff --git a/views/admin/registrations/events.html b/views/admin/registrations/events.html new file mode 100644 index 0000000..f32dffd --- /dev/null +++ b/views/admin/registrations/events.html @@ -0,0 +1,6 @@ +{include file='admin/registrations/header.html'} + +

Registrations Events List

+ +{include file='admin/footer.html'} + diff --git a/views/admin/registrations/header.html b/views/admin/registrations/header.html index 1966b1a..ddbd628 100644 --- a/views/admin/registrations/header.html +++ b/views/admin/registrations/header.html @@ -1,8 +1,9 @@
-

All Events

+

Event Registrations

diff --git a/views/admin/registrations/index.html b/views/admin/registrations/index.html index da6c8f9..defc85d 100644 --- a/views/admin/registrations/index.html +++ b/views/admin/registrations/index.html @@ -1,6 +1,6 @@ {include file='admin/registrations/header.html'} -

Registrations Index Page

+

Registrations Dashboard

{include file='admin/footer.html'} diff --git a/views/admin/registrations/list.html b/views/admin/registrations/list.html deleted file mode 100644 index dffe41a..0000000 --- a/views/admin/registrations/list.html +++ /dev/null @@ -1,6 +0,0 @@ -{include file='admin/registrations/header.html'} - -

Registrations List Page

- -{include file='admin/footer.html'} - diff --git a/views/admin/registrations/requests.html b/views/admin/registrations/requests.html new file mode 100644 index 0000000..5e3a229 --- /dev/null +++ b/views/admin/registrations/requests.html @@ -0,0 +1,40 @@ +{include file='admin/registrations/header.html'} + +{if $errorMsg} +

{$errorMsg}

+{/if} + +

Registrations Requests List

+ + + + + + + + + + + + + + {if $haveRequests} + {foreach $requests as $r} + + + + + + + + + {/foreach} + {else} + + {/if} + +
IDFirst NameLast NameOrgCityState
{$r.id}{$r.bill_fname}{$r.bill_lname}{$r.bill_org}{$r.bill_city}{$r.bill_state}
(no requests listed)
+ + +{include file='admin/footer.html'} +