Projekt

Obecné

Profil

Stáhnout (2.73 KB) Statistiky
| Větev: | Tag: | Revize:
<?php defined('SYSPATH') or die('No direct script access.');
/*
* This file is part of open source system FreenetIS
* and it is release 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/
*
*/

/**
* Descriptions of Phone_invoice_Model
*
* @author Ondřej Fibich
* @package Model
*
* @property integer $id
* @property Date $billing_period_from
* @property Date $billing_period_to
* @property string $specific_symbol
* @property Date $date_of_issuance
* @property string $variable_symbol
* @property string $specific_symbol
* @property double $total_price
* @property double $tax
* @property double $tax_rate
* @property boolean $locked
* @property ORM_Iterator $phone_invoice_users
*/
class Phone_invoice_Model extends ORM
{

protected $has_many = array('phone_invoice_users');

/**
* Test if users has payd for invoice
*
* @return bool
*/
public function is_payed()
{
static $cache = array();
if (!$this->id)
{
return FALSE;
}
if (!isset($cache[$this->id]))
{
$cache[$this->id] = $this->db->query("
SELECT COUNT(*) AS count
FROM phone_invoice_users
WHERE phone_invoice_id = ? AND transfer_id IS NOT NULL
", $this->id)->current()->count > 0;
}
return $cache[$this->id];
}
/**
* Test if invoice is not in database already
*
* @return bool
*/
public function is_unique()
{
return ($this->db->query("
SELECT COUNT(*) AS count FROM `phone_invoices`
WHERE billing_period_from = ?
AND billing_period_to = ?
AND specific_symbol = ?
AND variable_symbol = ?
AND date_of_issuance = ?;
", array(
$this->billing_period_from,
$this->billing_period_to,
$this->specific_symbol,
$this->variable_symbol,
$this->date_of_issuance
))->current()->count <= 0);
}

/**
* Return al phone invoicces
*
* @param integer $limit_from
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @return Mysql_Result
*/
public function get_all_phone_invoices(
$limit_from = 0, $limit_results = 20,
$order_by = 'billing_period_from',
$order_by_direction = 'desc')
{
// order by direction check
if (strtolower($order_by_direction) != 'desc')
{
$order_by_direction = 'asc';
}
// query
return $this->db->query("
SELECT id, date_of_issuance, billing_period_from,
billing_period_to, variable_symbol, specific_symbol,
(total_price+tax) AS price, locked
FROM phone_invoices
ORDER BY ".$this->db->escape_column($order_by)." $order_by_direction
LIMIT ".intval($limit_from).", ".intval($limit_results)."
");
}

}
(66-66/96)