--- /dev/null
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * Admin Members Dashboard
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @coupon glmMembersDatabase
+ * @author Steve Sutton <steve@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ * @version 0.1
+ */
+
+require_once GLM_MEMBERS_COUPONS_PLUGIN_CLASS_PATH.'/data/dataCoupons.php';
+
+/**
+ * Dashboard Class Model
+ *
+ * Each Add-On can have one or more dashboards.
+ */
+
+class GlmMembersAdmin_dashboard_coupons extends GlmDataCoupons
+{
+ /**
+ * Word Press Database Object
+ *
+ * @var $wpdb
+ * @access public
+ */
+ public $wpdb;
+ /**
+ * Plugin Configuration Data
+ *
+ * @var $config
+ * @access public
+ */
+ public $config;
+
+ /**
+ * Constructor
+ *
+ * This contructor sets up this model. At this time that only includes
+ * storing away the WordPress data object.
+ *
+ * @return object Class object
+ *
+ */
+ public function __construct ($wpdb, $config)
+ {
+
+ // Save WordPress Database object
+ $this->wpdb = $wpdb;
+
+ // Save plugin configuration object
+ $this->config = $config;
+
+ // Run constructor for members data class
+ parent::__construct(false, false);
+
+ }
+
+ /**
+ * Perform Model Action
+ *
+ * This method does the work for this model and returns any resulting data
+ *
+ * @return array Status and data array
+ *
+ * 'status'
+ *
+ * True if successful and false if there was a fatal failure.
+ *
+ * 'menuItemRedirect'
+ *
+ * If not false, provides a menu item the controller should
+ * execute after this one. Normally if this is used, there would also be a
+ * modelRedirect value supplied as well.
+ *
+ * 'modelRedirect'
+ *
+ * If not false, provides an action the controller should execute after
+ * this one.
+ *
+ * 'view'
+ *
+ * A suggested view name that the controller 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.
+ *
+ */
+ public function modelAction ( $actionData = false )
+ {
+
+ $success = true;
+ $memberID = false;
+ $lockedToMember = false;
+
+ // Get list of member coupons.
+ if ( isset( $this->config['loggedInUser']['contactUser']['ref_dest'] )
+ && $memberID = filter_var( $this->config['loggedInUser']['contactUser']['ref_dest'], FILTER_VALIDATE_INT)
+ ) {
+ $lockedToMember = apply_filters('glm_members_locked_to_member_id', false);
+ if ($lockedToMember) {
+ $memberID = $lockedToMember;
+ $lockedToMember = $memberID;
+ $memberWhere = "T.id = $memberID";
+ $lockedWhereT = 'T.ref_type = '.$this->config['ref_type_numb']['Member'].' AND T.ref_dest = '.$memberID;
+ $lockedWhere = 'ref_type = '.$this->config['ref_type_numb']['Member'].' AND ref_dest = '.$memberID;
+ $where = '';
+ //$coupons = $this->getList( $lockedWhereT.$where);
+ $coupons = $this->getList( $lockedWhereT.$where, '', true, 'id', 1, 5 );
+ // If we have some, tell the template
+ if ($coupons && count($coupons['list']) > 0) {
+ $haveCoupons = true;
+ }
+
+ }
+
+ } else {
+ // This should be the Current Coupons that are current running.
+ $where = 'T.start_date <= now() and T.end_date >= now()';
+ $coupons = $this->getList( $where );
+ // If we have some, tell the template
+ if ($coupons && count($coupons) > 0) {
+ $haveCoupons = true;
+ }
+ }
+ // If we have list entries - even if it's an empty list
+ $success = true;
+ $haveCoupons = false;
+ if ($coupons !== false) {
+
+ $success = true;
+
+ // If we have any entries
+ if (count($coupons) > 0) {
+ $haveCoupons = true;
+ }
+ }
+ // Compile template data.
+ $templateData = array(
+ 'lockedToMember' => $lockedToMember,
+ 'haveCoupons' => $haveCoupons,
+ 'coupons' => (isset($coupons['list']) ? $coupons['list']: $coupons),
+ 'memberID' => $memberID,
+ );
+
+ // Return status, suggested view, and data to controller.
+ return array(
+ 'status' => $success,
+ 'menuItemRedirect' => false,
+ 'modelRedirect' => false,
+ 'view' => 'admin/dashboard/coupons.html',
+ 'data' => $templateData
+ );
+
+ }
+
+}