Projekt

Obecné

Profil

Stáhnout (3.94 KB) Statistiky
| Větev: | Tag: | Revize:
31ca0a32 Michal Kliment
<?php defined('SYSPATH') or die('No direct script access.');
/*
* This file is part of open source system FreenetIS
* and it is released under GPLv3 licence.
*
* More info about licence can be found:
* http://www.gnu.org/licenses/gpl-3.0.html
*
* More info about project can be found:
* http://www.freenetis.org/
*
*/

/**
* Membership transfer model.
*
* @package Model
*
* @property integer $id
* @property integer $from_member_id
* @property Member_Model $from_member
* @property integer $to_member_id
* @property Member_Model $to_member
*/
class Membership_transfer_Model extends ORM
{
protected $belongs_to = array
(
'from_member' => 'member',
'to_member' => 'member'
);
/**
* Returns all membership transfers
*
* @author Michal Kliment
* @param integer $limit_from
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param string $filter_sql
* @return MySQL_Iterator
*/
public function get_all_membership_transfers($limit_from = NULL, $limit_results = NULL,
$order_by = NULL, $order_by_direction = NULL, $filter_sql = '')
{
$limit = '';
$order = '';
$where = '';
if (!is_null($limit_from) && !is_null($limit_results))
{
$limit = 'LIMIT '.intval($limit_from).', '.intval($limit_results);
}
if (!is_null($order_by) && !is_null($order_by_direction))
{
$order = 'ORDER BY '.$this->db->escape_column($order_by).' '.$order_by_direction;
}
if ($filter_sql != '')
{
$where = 'WHERE '.$filter_sql;
}
return $this->db->query("
SELECT * FROM
(
SELECT mt.id,
mt.from_member_id, fm.name AS from_member_name,
mt.to_member_id, tm.name AS to_member_name
FROM membership_transfers mt
JOIN members fm ON mt.from_member_id = fm.id
JOIN members tm ON mt.to_member_id = tm.id
) mt
$where
$order
$limit
");
}
/**
* Counts all membership transfers
*
* @author Michal Kliment
* @param string $filter_sql
* @return integer
*/
public function count_all_membership_transfers($filter_sql = '')
{
return $this
->get_all_membership_transfers(NULL, NULL, NULL, NULL, $filter_sql)
->count();
}
/**
* Returns membership transfer with given from_member_id
*
* @author Michal Kliment
* @param integer $from_member_id
* @return MySQL_Result
*/
public function get_transfer_from_member($from_member_id)
{
return $this->db->query("
SELECT mt.id, m.id AS member_id, m.name AS member_name
FROM membership_transfers mt
JOIN members m ON mt.to_member_id = m.id
WHERE mt.from_member_id = ?
", $from_member_id)->current();
}
/**
* Returns membership transfer with given to_member_id
*
* @author Michal Kliment
* @param integer $to_member_id
* @return MySQL_Result
*/
public function get_transfer_to_member($to_member_id)
{
return $this->db->query("
SELECT mt.id, m.id AS member_id, m.name AS member_name
FROM membership_transfers mt
JOIN members m ON mt.from_member_id = m.id
WHERE mt.to_member_id = ?
", $to_member_id)->current();
}
/**
* Returns all members with transfer from
*
* @author Michal Kliment
* @return MySQL_Iterator
*/
public function get_all_members_with_transfer_from()
{
return $this->db->query("
SELECT m.*
FROM membership_transfers mt
JOIN members m ON mt.from_member_id = m.id
");
}
/**
* Returns all members with transfer to
*
* @author Michal Kliment
* @return MySQL_Iterator
*/
public function get_all_members_with_transfer_to()
{
return $this->db->query("
SELECT m.*
FROM membership_transfers mt
JOIN members m ON mt.to_member_id = m.id
");
}
/**
* Deletes membership transfer with given from_member_id
*
* @author Michal Kliment
* @param integer $from_member_id
* @return type
*/
public function delete_transfer_from_member($from_member_id)
{
return $this->db->query("
DELETE FROM membership_transfers
WHERE from_member_id = ?
", $from_member_id);
}
}