Added more data classes
authorChuck Scott <cscott@gaslightmedia.com>
Mon, 5 Mar 2018 22:08:42 +0000 (17:08 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Mon, 5 Mar 2018 22:08:42 +0000 (17:08 -0500)
classes/data/dataAccount.php [new file with mode: 0644]
classes/data/dataAssetAssignments.php [new file with mode: 0644]
classes/data/dataAssetItems.php [new file with mode: 0644]
classes/data/dataAssetsAssigned.php [new file with mode: 0644]

diff --git a/classes/data/dataAccount.php b/classes/data/dataAccount.php
new file mode 100644 (file)
index 0000000..36909f5
--- /dev/null
@@ -0,0 +1,547 @@
+<?php
+/**
+ * GLM Member-DB WordPress Add-On Plugin
+ * Assets Management - Account Data Class
+ *
+ * PHP version 5.3
+ *
+ * @category Data
+ * @package  GLM Member-DB
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @release  SVN: $Id: dataAddedInfoFields.php,v 1.0 2011/01/25 19:31:47 cscott Exp $
+ */
+
+/**
+ * GlmDataAssetsAccounts class
+ *
+ * PHP version 5
+ *
+ * @category Data
+ * @package GLM Member DB
+ * @author  Chuck Scott <cscott@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ *          @release SVN: $Id: dataAddedInfoFields.php,v 1.0 2011/01/25 19:31:47 cscott
+ *          Exp $
+ */
+class GlmDataAssetsAccounts extends GlmDataAbstract
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+    /**
+     * Data Table Name
+     *
+     * @var $table
+     * @access public
+     */
+    public $table;
+    /**
+     * Field definitions
+     *
+     * 'type' is type of field as defined by the application
+     * text Regular text field
+     * pointer Pointer to an entry in another table
+     * 'filters' is the filter name for a particular filter ID in PHP filter
+     * functions
+     * See PHP filter_id()
+     *
+     * 'use' is when to use the field
+     * l = List
+     * g = Get
+     * n = New
+     * i = Insert
+     * e = Edit
+     * u = Update
+     * d = Delete
+     * a = All
+     *
+     * @var $ini
+     * @access public
+     */
+    public $fields = false;
+
+    /**
+     * 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, $limitedEdit = false)
+    {
+
+        // 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;
+
+        }
+
+        /*
+         * Table Name
+         */
+        $this->table = GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'account';
+
+        /*
+         * Table Data Fields
+         */
+
+        $this->fields = array (
+
+            // ID
+            'id' => array (
+                'field'     => 'id',
+                'type'      => 'integer',
+                'view_only' => true,
+                'use'       => 'a'
+            ),
+
+            // Is active flag (may be accessed or used) - default is true
+            'active' => array (
+                'field'     => 'active',
+                'type'      => 'checkbox',
+                'use'       => 'a',
+                'default'   => 1
+            ),
+
+            // Validated E-Mail address flag
+            'validated' => array (
+                'field'     => 'validated',
+                'type'      => 'checkbox',
+                'use'       => 'lg',
+                'default'   => false
+            ),
+
+            // Validation Code - Used to confirm the person creating an account
+            // During validation process this includes the following.  {validation_code}-{timestamp} - validation code is 6 digit number
+            // The validation code is sent in a simple E-Mail to the user who then has to provide that in a certain amount of time
+            // The timestamp is to determine if the time for validation has expired.
+            'validation_code' => array (
+                'field'     => 'validation_code',
+                'type'      => 'text',
+                'use'       => 'lg'
+            ),
+
+            // Member ID if account derived from a member contact
+            'member_id' => array (
+                'field'     => 'member_id',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // First Name
+            'fname' => array (
+                'field'     => 'fname',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Last Name
+            'lname' => array (
+                'field'     => 'lname',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Organization
+            'org' => array (
+                'field'     => 'org',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Title
+            'title' => array (
+                'field'     => 'title',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Address 1
+            'addr1' => array (
+                'field'     => 'addr1',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Address 2
+            'addr2' => array (
+                'field'     => 'addr2',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // City
+            'city' => array (
+                'field'     => 'city',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // State
+            'state' => array (
+                'field' => 'state',
+                'type' => 'list',
+                'list' => $this->config['states'],
+                'default'  => $this->config['settings']['default_state'],
+                'use' => 'a'
+            ),
+
+            //
+            'zip' => array (
+                'field'     => 'zip',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Country
+            'country' => array (
+                'field' => 'country',
+                'type' => 'list',
+                'list' => $this->config['countries'],
+                'default' => 'US',
+                'use' => 'a'
+            ),
+
+            //
+            'phone' => array (
+                'field'     => 'phone',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'fax' => array (
+                'field'     => 'fax',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Last used billing information
+            '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
+            'bill_state' => array (
+                'field' => 'bill_state',
+                'type' => 'list',
+                'list' => $this->config['states'],
+                'default'  => $this->config['settings']['default_state'],
+                'use' => 'a'
+            ),
+
+            //
+            'bill_zip' => array (
+                'field'     => 'bill_zip',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Country
+            'bill_country' => array (
+                'field' => 'bill_country',
+                'type' => 'list',
+                'list' => $this->config['countries'],
+                'default' => 'US',
+                'use' => 'a'
+            ),
+
+            //
+            'bill_phone' => array (
+                'field'     => 'bill_phone',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'bill_fax' => array (
+                'field'     => 'bill_fax',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'email' => array (
+                'field'     => 'email',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            // Cryped password for login back into this account
+            'password' => array (
+                'field'     => 'password',
+                'type'      => 'password',
+                'pw_type'   => 'strong',
+                'minLength' => 8,
+                'use'       => 'a'
+            ),
+
+            //
+            'email_ok' => array (
+                'field'     => 'email_ok',
+                'type'      => 'checkbox',
+                'use'       => 'a',
+                'default'   => 0
+            ),
+
+            // Is a member of the entity that owns the site
+            'is_member' => array (
+                'field'     => 'is_member',
+                'type'      => 'checkbox',
+                'use'       => 'a',
+                'default'   => 0
+            ),
+
+            // Pointer to GLM Associate member contact record if account is for a member contact
+            'contact_id' => array (
+                'field'     => 'contact_id',
+                'type'      => 'integer',
+                'required'  => false,
+                'use'       => 'lgneud'
+            ),
+
+            //
+            'contact_fname' => array (
+                'field'     => 'contact_fname',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_lname' => array (
+                'field'     => 'contact_lname',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_org' => array (
+                'field'     => 'contact_org',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_title' => array (
+                'field'     => 'contact_title',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_addr1' => array (
+                'field'     => 'contact_addr1',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_addr2' => array (
+                'field'     => 'contact_addr2',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_city' => array (
+                'field'     => 'contact_city',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_state' => array (
+                'field'     => 'contact_state',
+                'type'      => 'text',
+                'required'  => '',
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_zip' => array (
+                'field'     => 'contact_zip',
+                'type'      => 'text',
+                'required'  => '',
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_country' => array (
+                'field'     => 'contact_country',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_phone' => array (
+                'field'     => 'contact_phone',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_fax' => array (
+                'field'     => 'contact_fax',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_email' => array (
+                'field'     => 'contact_email',
+                'type'      => 'text',
+                'required'  => false,
+                'use'       => 'a'
+            ),
+
+            //
+            'contact_email_ok' => array (
+                'field'     => 'contact_email_ok',
+                'type'      => 'checkbox',
+                'use'       => 'a',
+                'default'   => 0
+            ),
+
+            //
+            'date_created' => array (
+                'field'     => 'date_created',
+                'type'      => 'datetime',
+                'use'       => 'a',
+                'default'   => 'NOW()'
+            ),
+
+            //
+            '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'
+            ),
+
+        );
+
+    }
+
+    /**
+     * Entry Post Processing Call-Back Method
+     *
+     * Perform post-processing for all result entries.
+     *
+     * @param array  $r Array of field result data for a single entry
+     * @param string $a Action being performed (l, i, g, ...)
+     *
+     * @return object Class object
+     *
+     */
+    public function entryPostProcessing( $result_data, $action )
+    {
+
+        return $result_data;
+    }
+
+}
diff --git a/classes/data/dataAssetAssignments.php b/classes/data/dataAssetAssignments.php
new file mode 100644 (file)
index 0000000..61f210f
--- /dev/null
@@ -0,0 +1,164 @@
+<?php
+/**
+ * GLM Member-DB WordPress Add-On Plugin
+ * Asset Management - Asset Assignments
+ *
+ * PHP version 5.3
+ *
+ * @category Data
+ * @package  GLM Member-DB
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @release  SVN: $Id: dataSettingsTerms.php,v 1.0 2011/01/25 19:31:47 cscott Exp $
+ */
+
+/**
+ * GlmDataAssetsAssetAssignments class
+ *
+ * PHP version 5
+ *
+ * @category Data
+ * @package GLM Member DB
+ * @author  Chuck Scott <cscott@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ *          @release SVN: $Id: dataSettingsTerms.php,v 1.0 2011/01/25 19:31:47 cscott
+ *          Exp $
+ */
+class GlmDataAssetsAssetAssignments extends GlmDataAbstract
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+    /**
+     * Data Table Name
+     *
+     * @var $table
+     * @access public
+     */
+    public $table;
+    /**
+     * Field definitions
+     *
+     * 'type' is type of field as defined by the application
+     * text Regular text field
+     * pointer Pointer to an entry in another table
+     * 'filters' is the filter name for a particular filter ID in PHP filter
+     * functions
+     * See PHP filter_id()
+     *
+     * 'use' is when to use the field
+     * l = List
+     * g = Get
+     * n = New
+     * i = Insert
+     * e = Edit
+     * u = Update
+     * d = Delete
+     * a = All
+     *
+     * @var $ini
+     * @access public
+     */
+    public $fields = false;
+
+    /**
+     * 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, $limitedEdit = false)
+    {
+
+        // 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;
+
+        }
+
+        /*
+         * Table Name
+         */
+        $this->table = GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_assignments';
+
+        /*
+         * Table Data Fields
+         */
+
+        $this->fields = array (
+
+            // ID
+            'id' => array (
+                'field' => 'id',
+                'type' => 'integer',
+                'view_only' => true,
+                'use' => 'a'
+            ),
+
+            // Status
+            'status' => array (
+                'field' => 'status',
+                'type' => 'list',
+                    'list' => $this->config['assignment_status'],
+                'force_list' => true,
+                'use' => 'a'
+            ),
+
+            // Name
+            'name' => array (
+                'field' => 'name',
+                'type' => 'text',
+                'use' => 'a'
+            ),
+
+            // Account
+            'account' => array (
+                'field' => 'account',
+                'type' => 'pointer',
+                    'p_table'   => GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'account',
+                    'p_field'   => 'name',
+                    'p_static'  => true,
+                'required' => true,
+                'use' => 'elg'
+            ),
+
+            // Start Time
+            'start_time' => array (
+                'field' => 'start_time',
+                'type' => 'datetime',
+                'use' => 'a'
+            ),
+
+            // Start Time
+            'start_time' => array (
+                'field' => 'start_time',
+                'type' => 'datetime',
+                'use' => 'a'
+            )
+
+        );
+
+    }
+
+}
\ No newline at end of file
diff --git a/classes/data/dataAssetItems.php b/classes/data/dataAssetItems.php
new file mode 100644 (file)
index 0000000..d1c472b
--- /dev/null
@@ -0,0 +1,213 @@
+<?php
+/**
+ * GLM Member-DB WordPress Add-On Plugin
+ * Asset Management - Asset Items
+ *
+ * PHP version 5.3
+ *
+ * @category Data
+ * @package  GLM Member-DB
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @release  SVN: $Id: dataSettingsTerms.php,v 1.0 2011/01/25 19:31:47 cscott Exp $
+ */
+
+/**
+ * GlmDataAssetsAssetItems class
+ *
+ * PHP version 5
+ *
+ * @category Data
+ * @package GLM Member DB
+ * @author  Chuck Scott <cscott@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ *          @release SVN: $Id: dataSettingsTerms.php,v 1.0 2011/01/25 19:31:47 cscott
+ *          Exp $
+ */
+class GlmDataAssetsAssetItems extends GlmDataAbstract
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+    /**
+     * Data Table Name
+     *
+     * @var $table
+     * @access public
+     */
+    public $table;
+    /**
+     * Field definitions
+     *
+     * 'type' is type of field as defined by the application
+     * text Regular text field
+     * pointer Pointer to an entry in another table
+     * 'filters' is the filter name for a particular filter ID in PHP filter
+     * functions
+     * See PHP filter_id()
+     *
+     * 'use' is when to use the field
+     * l = List
+     * g = Get
+     * n = New
+     * i = Insert
+     * e = Edit
+     * u = Update
+     * d = Delete
+     * a = All
+     *
+     * @var $ini
+     * @access public
+     */
+    public $fields = false;
+
+    /**
+     * 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, $limitedEdit = false)
+    {
+
+        // 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;
+
+        }
+
+        /*
+         * Table Name
+         */
+        $this->table = GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_item';
+
+        /*
+         * Table Data Fields
+         */
+
+        $this->fields = array (
+
+            // ID
+            'id' => array (
+                'field' => 'id',
+                'type' => 'integer',
+                'view_only' => true,
+                'use' => 'a'
+            ),
+
+            // Asset Type
+            'asset_type' => array (
+                'field' => 'asset_type',
+                'type' => 'pointer',
+                    'p_table'   => GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_type',
+                    'p_field'   => 'name',
+                    'p_static'  => true,
+                'required' => true,
+                'use' => 'a'
+            ),
+
+            // Name
+            'name' => array (
+                'field' => 'name',
+                'type' => 'text',
+                'use' => 'a'
+            ),
+
+            // Use Type
+            'use_type' => array (
+                'field' => 'state',
+                'type' => 'list',
+                'list' => $this->config['use_type'],
+                'force_list' => true,
+                'use' => 'a'
+            ),
+
+            // Number
+            'number' => array (
+                'field' => 'number',
+                'type' => 'integer',
+                'use' => 'a'
+            ),
+
+            // Quantity
+            'quant' => array (
+                'field' => 'quant',
+                'type' => 'integer',
+                'default' => 1,
+                'use' => 'a'
+            ),
+
+            // Description
+            'descr' => array (
+                'field' => 'descr',
+                'type' => 'text',
+                'use' => 'a'
+            ),
+
+            // Area Units
+            'area_units' => array (
+                'field' => 'area_units',
+                'type' => 'list',
+                    'list' => $this->config['area_unit'],
+                'force_list' => true,
+                'use' => 'a'
+            ),
+
+            // Lead Time
+            'lead_time' => array (
+                'field' => 'lead_time',
+                'type' => 'integer',
+                'use' => 'a'
+            ),
+
+            // Reuse Time
+            'reuse_time' => array (
+                'field' => 'reuse_time',
+                'type' => 'integer',
+                'use' => 'a'
+            ),
+
+            // Cost
+            'cost' => array (
+                'field' => 'cost',
+                'type' => 'money',
+                'use' => 'a'
+            ),
+
+            // Facility
+            'facility' => array (
+                'field' => 'facility',
+                'type' => 'pointer',
+                    'p_table'   => GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'facility',
+                    'p_field'   => 'name',
+                    'p_static'  => true,
+                'required' => true,
+                'use' => 'a'
+            )
+
+        );
+
+    }
+
+}
\ No newline at end of file
diff --git a/classes/data/dataAssetsAssigned.php b/classes/data/dataAssetsAssigned.php
new file mode 100644 (file)
index 0000000..cd715a5
--- /dev/null
@@ -0,0 +1,169 @@
+<?php
+/**
+ * GLM Member-DB WordPress Add-On Plugin
+ * Asset Management - Assets Assigned
+ *
+ * PHP version 5.3
+ *
+ * @category Data
+ * @package  GLM Member-DB
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @release  SVN: $Id: dataSettingsTerms.php,v 1.0 2011/01/25 19:31:47 cscott Exp $
+ */
+
+/**
+ * GlmDataAssetsAssetsAssigned class
+ *
+ * PHP version 5
+ *
+ * @category Data
+ * @package GLM Member DB
+ * @author  Chuck Scott <cscott@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ *          @release SVN: $Id: dataSettingsTerms.php,v 1.0 2011/01/25 19:31:47 cscott
+ *          Exp $
+ */
+class GlmDataAssetsAssetsAssigned extends GlmDataAbstract
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+    /**
+     * Data Table Name
+     *
+     * @var $table
+     * @access public
+     */
+    public $table;
+    /**
+     * Field definitions
+     *
+     * 'type' is type of field as defined by the application
+     * text Regular text field
+     * pointer Pointer to an entry in another table
+     * 'filters' is the filter name for a particular filter ID in PHP filter
+     * functions
+     * See PHP filter_id()
+     *
+     * 'use' is when to use the field
+     * l = List
+     * g = Get
+     * n = New
+     * i = Insert
+     * e = Edit
+     * u = Update
+     * d = Delete
+     * a = All
+     *
+     * @var $ini
+     * @access public
+     */
+    public $fields = false;
+
+    /**
+     * 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, $limitedEdit = false)
+    {
+
+        // 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;
+
+        }
+
+        /*
+         * Table Name
+         */
+        $this->table = GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_assigned';
+
+        /*
+         * Table Data Fields
+         */
+
+        $this->fields = array (
+
+            // ID
+            'id' => array (
+                'field' => 'id',
+                'type' => 'integer',
+                'view_only' => true,
+                'use' => 'a'
+            ),
+
+            // Asset Assignment
+            'asset_assignment' => array (
+                'field' => 'asset_assignment',
+                'type' => 'pointer',
+                    'p_table'   => GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_assignment',
+                    'p_field'   => 'name',
+                    'p_static'  => true,
+                'required' => true,
+                'use' => 'elg'
+            ),
+
+            // Asset Item
+            'asset_item' => array (
+                'field' => 'asset_item',
+                'type' => 'pointer',
+                    'p_table'   => GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_item',
+                    'p_field'   => 'name',
+                    'p_static'  => true,
+                'required' => true,
+                'use' => 'elg'
+            ),
+
+            // Asset Type
+            'asset_type' => array (
+                'field' => 'asset_type',
+                'type' => 'pointer',
+                    'p_table'   => GLM_MEMBERS_ASSETS_PLUGIN_DB_PREFIX . 'asset_type',
+                    'p_field'   => 'name',
+                    'p_static'  => true,
+                'required' => true,
+                'use' => 'elg'
+            ),
+
+            // Quantity
+            'quant' => array (
+                'field' => 'quant',
+                'type' => 'text',
+                'use' => 'a'
+            ),
+
+            // Hold Release Time
+            'hold_release_time' => array (
+                'field' => 'hold_release_time',
+                'type' => 'datetime',
+                'use' => 'a'
+            )
+        );
+
+    }
+
+}
\ No newline at end of file