/**
  * Saves a new product credit
  *
  * @param int $market_id
  * @param int $presenter_sequence_id The presenter sequence id
  * @param int $credit_type
  * @param decimal $amount
  * @param int $user_id
  * @return boolean
  */
 public function saveCredit($market_id, $presenter_sequence_id, $credit_type, $amount, $user_id)
 {
     $entry_type_id = 2;
     $status_type_id = 2;
     $ref = CakeSession::read('admin_user')->id;
     $entry_user = '******';
     //convert presenter sequence id to primary key id
     require_once APPLICATION_PATH . MODEL_DIR . '/Presenter.php';
     $presenter = new Presenter();
     $presenter_id = $presenter->getIdBySequenceId($presenter_sequence_id);
     $sql = "INSERT INTO {$this->_table_name} " . "(market_id, user_id, presenter_id, product_credit_type_id, product_credit_entry_type_id, product_credit_status_type_id, entry_user, created, reference_id, amount) " . "VALUES (:market, :user, :presenter, :type, :entry, :status, :entry_user, NOW(), :ref, :amt)";
     $query = $this->_db->prepare($sql);
     $query->bindParam(':market', $market_id);
     $query->bindParam(':user', $user_id);
     $query->bindParam(':presenter', $presenter_id);
     $query->bindParam(':type', $credit_type);
     $query->bindParam(':entry', $entry_type_id);
     $query->bindParam(':status', $status_type_id);
     $query->bindParam(':ref', $ref);
     $query->bindParam(':entry_user', $entry_user);
     $query->bindParam(':amt', $amount);
     if ($query->execute()) {
         return TRUE;
     }
 }
 /**
  * Loads a coupon presenter record
  *
  * If noe exists, this function will create it and then load the record just created.
  *
  * @param int $presenter_sequence_id
  */
 public function loadDataByPresenterSequenceId($presenter_sequence_id)
 {
     //first get the presenter id
     require_once APPLICATION_PATH . MODEL_DIR . '/Presenter.php';
     $presenter = new Presenter();
     $presenter_id = $presenter->getIdBySequenceId($presenter_sequence_id);
     //then see if there's a record for that presenter
     $this->data = $this->getDataByPresenterId($presenter_id);
     //add if not
     if ($this->data == FALSE) {
         $sql = "INSERT INTO {$this->_table_name} " . "(presenter_id,coupon_id,start_date,end_date,max_redemptions,discount_percentage,discount_flat) " . "VALUES(:p_id, 1, NOW(),'0000-00-00 00:00:00',-1,50,0) ";
         $query = $this->_db->prepare($sql);
         $query->bindParam(':p_id', $presenter_id);
         $query->execute();
         $coupon_presenter_id = $this->_db->lastInsertId();
         $this->data = $this->getDataById($coupon_presenter_id);
     }
 }
            $result->message = "Hostess changed successfully.";
        } else {
            $result->success = FALSE;
            $result->message = "Failed to change hostess.";
        }
    }
}
/**
 * Handler for the change presenter functionality
 */
if (isset($_POST['form']) && $_POST['form'] == "change_presenter") {
    if (isset($_POST['presenter_sequence_id']) && isset($_POST['party_id'])) {
        //get the presenter id from the sequence id
        require_once APPLICATION_PATH . MODEL_DIR . '/Presenter.php';
        $presenter = new Presenter();
        $presenter_id = $presenter->getIdBySequenceId($_POST['presenter_sequence_id']);
        if ($presenter_id) {
            $data = array("id" => $_POST['party_id'], "presenter_id" => $presenter_id);
            require_once APPLICATION_PATH . MODEL_DIR . '/Party.php';
            $party = new Party();
            $party->set($data);
            if ($party->save()) {
                $result->success = TRUE;
                $result->message = "Presenter changed successfully.";
            } else {
                $result->success = FALSE;
                $result->message = "Failed to change presenter.";
            }
        } else {
            $result->success = FALSE;
            $result->message = "Failed to change presenter. Check the presenter id.";
Beispiel #4
0
 /**
  * Search function for Parties
  * Provides limited fields to display in a list of
  * possible matches.
  * This function prepares a list of party ids
  * based on the search type, then sends then into
  * _getSearchResults to get the party objects
  *
  * See _getSearchResults for structure
  *
  * @param string $search_term
  * @param array $filters
  * @param string $search_type
  * @return array|bool
  */
 public function search($search_term, $filters, $search_type)
 {
     $sql = "SELECT p.id as party_id " . "FROM {$this->_table_name} p ";
     switch ($search_type) {
         case "party_name":
             $column_name = "name";
             $sql .= "WHERE p.{$column_name} " . "LIKE CONCAT('%', :st,'%') ";
             break;
         case "party_hostess_name":
             require_once APPLICATION_PATH . MODEL_DIR . '/User.php';
             $user = new User();
             $filters["presenter_only"] = "false";
             $filters["active_only"] = "false";
             $user_ids_string = '';
             if ($user_ids_first_name_array = $user->getUsersByName($search_term, $filters, "first", FALSE)) {
                 $user_ids_string = implode(',', $user_ids_first_name_array);
             }
             if ($user_ids_last_name_array = $user->getUsersByName($search_term, $filters, "last", FALSE)) {
                 if ($user_ids_string != '') {
                     $user_ids_string .= ",";
                 }
                 $user_ids_string .= implode(',', $user_ids_last_name_array);
             }
             $column_name = "hostess_id";
             if ($user_ids_string != '') {
                 $sql .= " WHERE p.{$column_name} " . " IN ({$user_ids_string}) ";
             } else {
                 return FALSE;
             }
             break;
         case "party_presenter_name":
             require_once APPLICATION_PATH . MODEL_DIR . '/User.php';
             require_once APPLICATION_PATH . MODEL_DIR . '/Presenter.php';
             $user = new User();
             $presenter = new Presenter();
             $filters["presenter_only"] = "false";
             $filters["active_only"] = "false";
             $user_ids_string = '';
             if ($user_ids_first_name_array = $user->getUsersByName($search_term, $filters, "first", FALSE)) {
                 $user_ids_string = implode(',', $user_ids_first_name_array);
             }
             if ($user_ids_last_name_array = $user->getUsersByName($search_term, $filters, "last", FALSE)) {
                 if ($user_ids_string != '') {
                     $user_ids_string .= ",";
                 }
                 $user_ids_string .= implode(',', $user_ids_last_name_array);
             }
             $presenter_ids_string = $presenter->convertUserIdsToPresenterIds($user_ids_string);
             $column_name = "presenter_id";
             if ($user_ids_string != '') {
                 $sql .= " WHERE p.{$column_name} " . " IN ({$presenter_ids_string}) ";
             } else {
                 return FALSE;
             }
             break;
         case "party_presenter_sequence_id":
             require_once APPLICATION_PATH . MODEL_DIR . '/Presenter.php';
             $presenter = new Presenter();
             $presenter_id = $presenter->getIdBySequenceId($search_term);
             $sql .= " WHERE p.presenter_id = {$presenter_id} ";
             break;
         case "party_id":
         default:
             $party_ids = array($search_term);
     }
     if ($filters["recent_only"] != "false") {
         $sql .= "AND DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= p.end_time ";
     }
     if (!isset($party_ids)) {
         $party_ids = array();
         $query = $this->_db->prepare($sql);
         $query->bindParam(':st', $search_term);
         $query->execute();
         while ($row = $query->fetch()) {
             $party_ids[] = $row['party_id'];
         }
     }
     $result = array();
     if (count($party_ids) > 0) {
         $results = $this->_getSearchResults($party_ids);
     }
     return $results;
 }