Revize 289
Přidáno uživatelem Jiří Sviták před asi 15 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'contact informations' => 'Kontaktní informace',
|
||
'contact value' => 'Data kontaktu',
|
||
'cookies must be enabled' => 'Musí být zapnuty cookies.',
|
||
'counteraccount' => 'Protiúčet',
|
||
'create new devices' => 'Vytvořit nové zařízení',
|
||
'create whole new device for member' => 'Vytvořit celé nové zařízení pro člena',
|
||
'create new devices for member' => 'Vytvořit nové zařízení pro člena',
|
||
... | ... | |
'error - can\'t delete translation' => 'Chyba - nelze smazat překlad.',
|
||
'error - cant do the transfer' => 'Chyba - nelze provést transakci.',
|
||
'error - cant change password' => 'Chyba - nelze změnit heslo',
|
||
'error - cant send money, account is in debt' => 'Chyba - nelze poslat peníze, účet je v dluhu.',
|
||
'error - cant send money on the same account' => 'Chyba - nelze poslat peníze na stejný účet.',
|
||
'error - cant update account' => 'Chyba - nelze upravit účet.',
|
||
'error - cant update aditional contacts' => 'Chyba - nelze upravit další kontakty.',
|
||
'error - cant update member' => 'Chyba - nelze upravit člena.',
|
||
... | ... | |
'money transfer' => 'Převod peněz',
|
||
'money transfers' => 'Převody peněz',
|
||
'money transfers of bank account' => 'Převody peněz na bankovním účtu',
|
||
'money transfers of credit account' => 'Převody peněz na kreditním účtu',
|
||
'money transfers of double-entry account' => 'Převody peněz na podvojném účtu',
|
||
'money transfers of member' => 'Převody peněz člena',
|
||
'monthly member payment' => 'Měsiční členské příspěvky',
|
||
... | ... | |
'select user' => 'Vyber uživatele',
|
||
'select vlan' => 'Vyber VLAN',
|
||
'send e-mail' => 'Pošli e-mail',
|
||
'send money to other account' => 'Poslat peníze na jiný účet',
|
||
'send sms' => 'Pošli SMS',
|
||
'send to member' => 'Pošli členovi',
|
||
'settings' => 'Nastavení',
|
||
... | ... | |
'transfer details' => 'Detaily převodu',
|
||
'transfer fee' => 'Poplatek za převod',
|
||
'transfer fee have to be a number' => 'Poplatek za převod musí být číslo',
|
||
'transfer has been successfully added' => 'Převod byl úspěšně přidán.',
|
||
'transfer informations' => 'Informace o převodu',
|
||
'transfers' => 'Převody',
|
||
'translated term' => 'Přeložený výraz',
|
freenetis/trunk/kohana/application/models/money_transfer.php | ||
---|---|---|
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
public function get_transfers($account_id = null, $limit_from = 0, $limit_results = 20, $order_by = 'mt.id', $order_by_direction = 'DESC')
|
||
public function get_transfers($account_id = null, $limit_from = 0, $limit_results = 20, $order_by = 'mt.id', $order_by_direction = 'ASC')
|
||
{
|
||
if ($order_by == 'amount')
|
||
$order_by = 'IF( mt.destination_id = '.$account_id.', amount, amount*-1 )';
|
||
... | ... | |
}
|
||
|
||
/**
|
||
* It gets all money transfers of double-entry account.
|
||
* @param $account_id
|
||
* @param $limit_from
|
||
* @param $limit_results
|
||
* @param $order_by
|
||
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
public function get_transfers_count($account_id = null)
|
||
{
|
||
return self::$db->query("SELECT
|
||
a.id AS aid, a.name AS aname,
|
||
mt.id AS mtid, IF(mt.destination_id = ".$account_id.", FALSE, TRUE) AS trans_type,
|
||
mt.text, mt.amount, mt.datetime,
|
||
CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number
|
||
FROM money_transfers mt
|
||
LEFT JOIN accounts a ON a.id = IF(mt.origin_id = ".$account_id.", mt.destination_id, mt.origin_id)
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
WHERE mt.origin_id = ".$account_id." OR mt.destination_id = ".$account_id
|
||
)->count();
|
||
}
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It gets all bank transfers of given bank account.
|
||
* @param $account_id
|
||
... | ... | |
{
|
||
if ($order_by == 'amount')
|
||
$order_by = 'IF( mt.destination_id = '.$account_id.', amount, amount*-1 )';
|
||
/*
|
||
return self::$db->query("SELECT
|
||
mt.id AS mtid, mt.datetime, mt.text, mt.amount,
|
||
bi.variable_symbol AS varsym,
|
||
a.name AS aname, CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number, IF( mt.destination_id = ".$account_id.", FALSE, TRUE ) AS trans_type
|
||
FROM money_transfers mt
|
||
LEFT JOIN accounts a ON a.id = IF( mt.origin_id = ".$account_id.", mt.destination_id, mt.origin_id )
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
LEFT JOIN money_transfer_bank_infos bi ON mt.id = bi.transfer_id
|
||
JOIN enum_types e ON a.type_id = e.id
|
||
WHERE (mt.origin_id = ".$account_id." OR mt.destination_id = ".$account_id.") AND e.value = 'bank'
|
||
ORDER BY ".$order_by." ".$order_by_direction."
|
||
LIMIT ".$limit_from." , ".$limit_results
|
||
);
|
||
*/
|
||
return self::$db->query("SELECT
|
||
mt.id AS mtid, mt.datetime, mt.text, mt.amount,
|
||
bi.variable_symbol AS varsym,
|
||
a.name AS aname, CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number,
|
||
IF( mt.destination_id = ".$account_id.", FALSE, TRUE ) AS trans_type
|
||
FROM money_transfers mt
|
||
LEFT JOIN accounts a ON a.id = IF( mt.origin_id = ".$account_id.", mt.destination_id, mt.origin_id )
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
LEFT JOIN money_transfer_bank_infos bi ON mt.id = bi.transfer_id
|
||
LEFT JOIN account_attributes aa ON a.account_attribute_id = aa.id
|
||
WHERE (mt.origin_id = ".$account_id." OR mt.destination_id = ".$account_id.") AND aa.id = ".Account_attribute_Model::$bank."
|
||
WHERE (mt.origin_id = ".$account_id." OR mt.destination_id = ".$account_id.")
|
||
AND a.account_attribute_id = ".Account_attribute_Model::$bank."
|
||
ORDER BY ".$order_by." ".$order_by_direction."
|
||
LIMIT ".$limit_from." , ".$limit_results
|
||
);
|
||
... | ... | |
*/
|
||
public function count_bank_transfers($account_id)
|
||
{
|
||
/*
|
||
return self::$db->query("SELECT
|
||
mt.id AS mtid, mt.datetime, mt.text, mt.amount,
|
||
bi.variable_symbol AS varsym,
|
||
a.name AS aname, CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number, IF( mt.destination_id = ".$account_id.", FALSE, TRUE ) AS trans_type
|
||
FROM money_transfers mt
|
||
LEFT JOIN accounts a ON a.id = IF( mt.origin_id = ".$account_id.", mt.destination_id, mt.origin_id )
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
LEFT JOIN money_transfer_bank_infos bi ON mt.id = bi.transfer_id
|
||
JOIN enum_types e ON a.type_id = e.id
|
||
WHERE (mt.origin_id = ".$account_id." OR mt.destination_id = ".$account_id.") AND e.value = 'bank'"
|
||
)->count();
|
||
*/
|
||
return self::$db->query("SELECT
|
||
mt.id AS mtid, mt.datetime, mt.text, mt.amount,
|
||
bi.variable_symbol AS varsym,
|
||
a.name AS aname, CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number,
|
||
IF( mt.destination_id = ".$account_id.", FALSE, TRUE ) AS trans_type
|
||
FROM money_transfers mt
|
||
... | ... | |
FROM money_transfers mt
|
||
LEFT JOIN bank_accounts ba ON ba.account_id = mt.origin_id
|
||
JOIN money_transfer_bank_infos bi ON bi.transfer_id = mt.id
|
||
WHERE mt.previous_transfer_id IS NULL
|
||
WHERE mt.id NOT IN
|
||
(SELECT previous_transfer_id
|
||
FROM money_transfers mt
|
||
WHERE mt.previous_transfer_id IS NOT NULL)
|
||
ORDER BY ".$order_by." ".$order_by_direction."
|
||
LIMIT ".$limit_from." , ".$limit_results
|
||
);
|
freenetis/trunk/kohana/application/models/account.php | ||
---|---|---|
*/
|
||
public function get_assoc_bank_accounts()
|
||
{
|
||
/*
|
||
return self::$db->query("SELECT
|
||
a.id, a.name, a.comment,
|
||
IFNULL(t.translated_term, e.value) AS type,
|
||
CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number
|
||
FROM accounts a
|
||
JOIN enum_types e ON e.id = a.type_id
|
||
return self::$db->query('SELECT q3.id, a.name, a.comment,
|
||
CONCAT(ba.account_nr, \'/\', ba.bank_nr) AS account_number,
|
||
q3.credit FROM
|
||
(SELECT id, member_id, (inbound - outbound) AS credit FROM
|
||
(SELECT q1.id, q1.member_id, IFNULL(sum(amount), 0) AS inbound, outbound FROM
|
||
(SELECT a.id, a.member_id, IFNULL(sum(amount), 0) AS outbound
|
||
FROM accounts a
|
||
LEFT JOIN money_transfers mt ON a.id = mt.origin_id
|
||
GROUP BY a.id) AS q1
|
||
LEFT JOIN money_transfers mt ON q1.id = mt.destination_id
|
||
GROUP BY q1.id) AS q2
|
||
) AS q3
|
||
LEFT JOIN accounts a ON q3.id = a.id
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
LEFT JOIN translations t ON t.original_term = e.value AND t.lang ='".Config::item('locale.lang')."'
|
||
WHERE e.value = 'bank' AND a.member_id = '1'");
|
||
*/
|
||
/*
|
||
return self::$db->query("SELECT
|
||
a.id, a.name AS aname, a.comment,
|
||
CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number,
|
||
FROM accounts a
|
||
LEFT JOIN account_attributes aa ON aa.id = a.account_attribute_id
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
WHERE aa.id = ".Account_attribute_Model::$bank." AND a.member_id = '1'");
|
||
*/
|
||
return self::$db->query('SELECT q3.id, a.name, a.comment,
|
||
CONCAT(ba.account_nr, \'/\', ba.bank_nr) AS account_number,
|
||
q3.credit FROM
|
||
(SELECT id, member_id, (inbound - outbound) as credit FROM
|
||
(SELECT q1.id, q1.member_id, IFNULL(sum(amount),0) as inbound, outbound FROM
|
||
(SELECT a.id, member_id, IFNULL( sum( amount ) , 0 ) AS outbound
|
||
FROM accounts a
|
||
LEFT JOIN account_attributes aa ON a.account_attribute_id = aa.id
|
||
LEFT JOIN money_transfers mt ON a.id = mt.origin_id
|
||
WHERE aa.id = '.Account_attribute_Model::$bank.'
|
||
GROUP BY a.id) AS q1
|
||
LEFT JOIN money_transfers ON q1.id = money_transfers.destination_id GROUP BY q1.id) AS q2
|
||
) AS q3
|
||
LEFT JOIN accounts a ON q3.id = a.id
|
||
LEFT JOIN bank_accounts ba ON a.id = ba.account_id
|
||
');
|
||
WHERE a.member_id = 1 AND a.account_attribute_id = '.Account_attribute_Model::$bank
|
||
);
|
||
}
|
||
|
||
/**
|
||
... | ... | |
*/
|
||
public function get_doubleentry_accounts()
|
||
{
|
||
/*
|
||
return self::$db->query("SELECT a.id, a.name, a.comment, IFNULL(t.translated_term, e.value) AS type
|
||
FROM accounts a
|
||
JOIN enum_types e ON e.id = a.type_id
|
||
LEFT JOIN translations t ON t.original_term = e.value AND t.lang = '".Config::item('locale.lang')."'
|
||
WHERE e.value <> 'bank'");
|
||
*/
|
||
return self::$db->query("SELECT a.id, a.name, a.comment, aa.name AS type
|
||
FROM accounts a
|
||
LEFT JOIN account_attributes aa ON aa.id = a.account_attribute_id
|
||
... | ... | |
*/
|
||
public function get_credit_accounts($limit_from = 0, $limit_results = 20, $order_by = 'aid', $order_by_direction = 'desc')
|
||
{
|
||
return self::$db->query('SELECT q3.id, a.name AS aname, a.comment, m.name AS mname,
|
||
q3.credit FROM
|
||
(SELECT id, member_id, (inbound - outbound) as credit FROM
|
||
(SELECT q1.id, q1.member_id, IFNULL(sum(amount),0) as inbound, outbound FROM
|
||
(SELECT a.id, member_id, IFNULL( sum( amount ) , 0 ) AS outbound
|
||
FROM accounts a
|
||
LEFT JOIN account_attributes aa ON a.account_attribute_id = aa.id
|
||
LEFT JOIN money_transfers mt ON a.id = mt.origin_id
|
||
WHERE aa.id = '.Account_attribute_Model::$credit.'
|
||
GROUP BY a.id) AS q1
|
||
LEFT JOIN money_transfers ON q1.id = money_transfers.destination_id GROUP BY q1.id) AS q2
|
||
) AS q3
|
||
LEFT JOIN members m ON q3.member_id = m.id
|
||
LEFT JOIN accounts a ON q3.id = a.id
|
||
ORDER BY '.$order_by.' '.$order_by_direction.'
|
||
return self::$db->query('SELECT q3.id, a.name AS aname, a.comment, m.name AS mname,
|
||
q3.credit FROM
|
||
(SELECT id, member_id, (inbound - outbound) as credit FROM
|
||
(SELECT q1.id, q1.member_id, IFNULL(sum(amount),0) as inbound, outbound FROM
|
||
(SELECT a.id, member_id, IFNULL( sum( amount ) , 0 ) AS outbound
|
||
FROM accounts a
|
||
LEFT JOIN account_attributes aa ON a.account_attribute_id = aa.id
|
||
LEFT JOIN money_transfers mt ON a.id = mt.origin_id
|
||
WHERE aa.id = '.Account_attribute_Model::$credit.'
|
||
GROUP BY a.id) AS q1
|
||
LEFT JOIN money_transfers ON q1.id = money_transfers.destination_id GROUP BY q1.id) AS q2
|
||
) AS q3
|
||
LEFT JOIN members m ON q3.member_id = m.id
|
||
LEFT JOIN accounts a ON q3.id = a.id
|
||
ORDER BY '.$order_by.' '.$order_by_direction.'
|
||
LIMIT '.$limit_from.','.$limit_results);
|
||
}
|
||
|
||
... | ... | |
*/
|
||
public function get_credit_accounts_count()
|
||
{
|
||
$count = self::$db->query('SELECT COUNT(id) AS total
|
||
$count = self::$db->query('SELECT COUNT(*) AS total
|
||
FROM accounts a
|
||
WHERE a.account_attribute_id = '.Account_attribute_Model::$credit.'
|
||
GROUP BY id'
|
||
WHERE a.account_attribute_id = '.Account_attribute_Model::$credit
|
||
);
|
||
return $count->current()->total;
|
||
}
|
||
... | ... | |
FROM (
|
||
SELECT SUM(amount) AS outbound
|
||
FROM money_transfers
|
||
WHERE `origin_id` = '".$account_id."'
|
||
WHERE origin_id = ".$account_id."
|
||
) a, money_transfers mt
|
||
WHERE mt.destination_id = '".$account_id."'"
|
||
WHERE mt.destination_id = ".$account_id
|
||
)->current()->credit;
|
||
return $credit;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* It gets balance of bank account.
|
||
* @param $account_id
|
||
* @return unknown_type
|
||
*/
|
||
public function get_bank_account_balance($account_id)
|
||
{
|
||
$credit = (float)self::$db->query("SELECT
|
||
(IFNULL(SUM(amount), 0) - IFNULL(a.outbound, 0)) AS credit
|
||
FROM (
|
||
SELECT SUM(amount) AS outbound
|
||
FROM money_transfers
|
||
WHERE origin_id = ".$account_id."
|
||
AND account_attribute_id = ".Account_attribute_Model::$bank."
|
||
) a, money_transfers mt
|
||
WHERE mt.destination_id = ".$account_id."
|
||
AND account_attribute_id = ".Account_attribute_Model::$bank
|
||
)->current()->credit;
|
||
return $credit;
|
||
}
|
||
|
||
/**
|
||
* It gets id of operating account.
|
||
* @return unknown_type
|
||
*/
|
||
public function get_operating_account()
|
||
{
|
||
return self::$db->query("SELECT
|
||
id
|
||
FROM accounts a
|
||
WHERE a.account_attribute_id = ".Account_attribute_Model::$operating)
|
||
->current()->id;
|
||
}
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/controllers/money_transfers.php | ||
---|---|---|
|
||
//if($this->acl_check_new(get_class($this),'transfers',$member_id))
|
||
// $grid->add_new_button(url_lang::base().'accounts/new_transfer/'.$account->id, url_lang::lang('texts.New transfer'));
|
||
$grid->add_new_button(url_lang::base().'members/show/'.$member_id, url_lang::lang('texts.Back to the member'));
|
||
$grid->order_field('mtid','mt.id')->label('ID');
|
||
// to do - access rights
|
||
$grid->add_new_button(url_lang::base().'members/show/'.$member_id, url_lang::lang('texts.Back to the member'));
|
||
// to do - has to be solved by session, add function has to know where to return
|
||
//$grid->add_new_button(url_lang::base().'money_transfers/add/'.$account->id, url_lang::lang('texts.Send money to other account'));
|
||
$grid->order_field('mtid','mt.id')->label('ID');
|
||
$grid->order_field('trans_type')->label(url_lang::lang('texts.Type'))->bool(array(url_lang::lang('texts.Arrival'),url_lang::lang('texts.Outbound')));
|
||
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.From/To'));
|
||
$grid->order_field('account_number')->label(url_lang::lang('texts.Account number'));
|
||
... | ... | |
* @param $account_id
|
||
* @return unknown_type
|
||
*/
|
||
function show_by_bank_account($account_id = NULL, $limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'DESC')
|
||
function show_by_bank_account($account_id = NULL, $limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'ASC')
|
||
{
|
||
if (isset($account_id))
|
||
{
|
||
... | ... | |
if (is_numeric($this->input->get('record_per_page')))
|
||
$limit_results = (int) $this->input->get('record_per_page');
|
||
// to do - correct allowed order type array
|
||
$allowed_order_type = array('mt.id', 'origin_id', 'destination_id', 'timestamp', 'amount', 'constant_symbol', 'specific_symbol', 'name', 'date_time', 'fee_transfer_id', 'trans_type', 'text');
|
||
$allowed_order_type = array('mt.id', 'amount', 'datetime', 'trans_type', 'account_number', 'varsym', 'aname');
|
||
if (!in_array(strtolower($order_by),$allowed_order_type))
|
||
$order_by = 'mt.id';
|
||
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc')
|
||
... | ... | |
$grid->add_new_button(url_lang::base().'accounts/bank_accounts', url_lang::lang('texts.Back to the bank accounts of association'));
|
||
$grid->order_field('mtid','mt.id')->label('ID');
|
||
$grid->order_field('trans_type')->label(url_lang::lang('texts.Type'))->bool(array(url_lang::lang('texts.Arrival'),url_lang::lang('texts.Outbound')));
|
||
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.From/To'));
|
||
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.Counteraccount'));
|
||
$grid->order_field('account_number')->label(url_lang::lang('texts.Account number'));
|
||
$grid->order_field('amount')->label(url_lang::lang('texts.Amount'));
|
||
$grid->order_field('text')->label(url_lang::lang('texts.Text'));
|
||
$grid->field('text')->label(url_lang::lang('texts.Text'));
|
||
$grid->order_field('datetime')->label(url_lang::lang('texts.Date and time'));
|
||
$grid->order_field('varsym')->label(url_lang::lang('texts.VS'));
|
||
$grid->datasource($transfers);
|
||
... | ... | |
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It shows money transfers of double-entry account.
|
||
* It shows money transfers of credit account.
|
||
* @param $account_id
|
||
* @return unknown_type
|
||
*/
|
||
function show_by_doubleentry_account($account_id = NULL, $limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'DESC')
|
||
function show_by_credit_account($account_id = NULL, $limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'ASC')
|
||
{
|
||
if (isset($account_id))
|
||
{
|
||
... | ... | |
if (is_numeric($this->input->get('record_per_page')))
|
||
$limit_results = (int) $this->input->get('record_per_page');
|
||
// to do - correct allowed order type array
|
||
$allowed_order_type = array('mt.id', 'origin_id', 'destination_id', 'timestamp', 'amount', 'constant_symbol', 'specific_symbol', 'name', 'date_time', 'fee_transfer_id', 'trans_type', 'text');
|
||
$allowed_order_type = array('mt.id', 'aname', 'amount', 'datetime', 'trans_type');
|
||
if (!in_array(strtolower($order_by),$allowed_order_type))
|
||
$order_by = 'mt.id';
|
||
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc')
|
||
$order_by_direction = 'asc';
|
||
|
||
$money_transfer_model = new Money_transfer_Model();
|
||
$total_transfers = $money_transfer_model->count_doubleentry_transfers($account_id);
|
||
$total_transfers = $money_transfer_model->get_transfers_count($account_id);
|
||
|
||
$url_array = explode('/', trim(url::current(), '/'));
|
||
$sql_offset = (isset($url_array[8])) ? (int) ($url_array[8] - 1) * $limit_results : 0;
|
||
unset($url_array);
|
||
$sql_offset = ($sql_offset>$total_transfers) ? 0 : $sql_offset;
|
||
|
||
$transfers = $money_transfer_model->get_doubleentry_transfers($account_id, $sql_offset, (int)$limit_results, $order_by, $order_by_direction);
|
||
$transfers = $money_transfer_model->get_transfers($account_id, $sql_offset, (int)$limit_results, $order_by, $order_by_direction);
|
||
|
||
$grid = new Grid(url_lang::base().'money_transfers', url_lang::lang('texts.Money transfers of double-entry account'), array(
|
||
$grid = new Grid(url_lang::base().'money_transfers', null, array(
|
||
//'separator' => '<br />-----------',
|
||
//'use_paginator' => false,
|
||
//'use_selector' => false,
|
||
... | ... | |
'selector_increace' => 50, // increace
|
||
'selector_min' => 50, // minimum where selector start
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::item('locale.lang').'/money_transfers/show_by_member/'.$account_id.'/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
|
||
'base_url' => Config::item('locale.lang').'/money_transfers/show_by_credit_account/'.$account_id.'/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
|
||
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
|
||
'total_items' => $total_transfers, // use db count query here of course
|
||
'items_per_page' => $limit_results, // it may be handy to set defaults for stuff like this in config/pagination.php
|
||
... | ... | |
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results,
|
||
'variables' => $account_id.'/',
|
||
'variables' => $account_id.'/',
|
||
'url_array_ofset' => 1
|
||
));//,'acc_grid_template');
|
||
|
||
//if($this->acl_check_new(get_class($this),'transfers',$account_id))
|
||
// $grid->add_new_button(url_lang::base().'accounts/new_transfer/'.$account->id, url_lang::lang('texts.New transfer'));
|
||
// there should be information about where to return to - credit or project accounts?
|
||
//$grid->add_new_button(url_lang::base().'accounts/doubleentry_accounts', url_lang::lang('texts.Back to the double-entry accounts'));
|
||
$grid->order_field('mtid','mt.id')->label('ID');
|
||
// to do - access rights
|
||
$grid->add_new_button(url_lang::base().'accounts/credit_accounts', url_lang::lang('texts.Back to credit accounts'));
|
||
$grid->add_new_button(url_lang::base().'money_transfers/add/'.$account_id, url_lang::lang('texts.Send money to other account'));
|
||
$grid->order_field('mtid', 'mt.id')->label('ID');
|
||
$grid->order_field('trans_type')->label(url_lang::lang('texts.Type'))->bool(array(url_lang::lang('texts.Arrival'),url_lang::lang('texts.Outbound')));
|
||
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.From/To'));
|
||
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.Counteraccount'));
|
||
$grid->order_field('amount')->label(url_lang::lang('texts.Amount'));
|
||
$grid->order_field('text')->label(url_lang::lang('texts.Text'));
|
||
$grid->field('text')->label(url_lang::lang('texts.Text'));
|
||
$grid->order_field('datetime')->label(url_lang::lang('texts.Date and time'));
|
||
$grid->datasource($transfers);
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = $grid;
|
||
$view->content = new View('money_transfers/show_by_credit_account');
|
||
$view->content->grid = $grid;
|
||
$view->content->message = $this->session->get_once('message');
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.Money transfers of double-entry account');
|
||
$view->header->title = url_lang::lang('texts.Money transfers of credit account');
|
||
$view->render(TRUE);
|
||
}
|
||
else
|
||
... | ... | |
if (isset($trans_id))
|
||
{
|
||
$account_model = new Account_Model();
|
||
$accounts = $account_model->get_credit_accounts();
|
||
$accounts = $account_model->get_credit_accounts(0, $account_model->get_credit_accounts_count(), 'a.id', 'asc');
|
||
foreach ($accounts as $account)
|
||
{
|
||
$arr_accounts[$account->id] = $account->name;
|
||
$arr_accounts[$account->id] = $account->aname;
|
||
}
|
||
asort($arr_accounts);
|
||
|
||
... | ... | |
|
||
$form = new Forge(url_lang::base().'money_transfers/assign_transfer/'.$trans_id, '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
//$form->group('')->label(url_lang::lang('texts.Payment'));
|
||
$form->dropdown('aname')->label(url_lang::lang('texts.Destination credit account').':')->rules('required')->options($arr_accounts);
|
||
$form->group('')->label(url_lang::lang('texts.Payment'));
|
||
$form->dropdown('aname')->label(url_lang::lang('texts.Destination credit account').':')->options($arr_accounts)->rules('required');
|
||
$form->input('text')->label(url_lang::lang('texts.Text'));
|
||
//$form->group('')->label(url_lang::lang('texts.Penalty'));
|
||
$form->input('penalty')->label(url_lang::lang('texts.Penalty'))->value('0');
|
||
$form->group('')->label(url_lang::lang('texts.Penalty'));
|
||
$form->input('penalty')->label(url_lang::lang('texts.Penalty'))->value('0')->rules('valid_numeric');
|
||
$form->input('penalty_text')->label(url_lang::lang('texts.Text'));
|
||
$form->submit('submit')->value(url_lang::lang('texts.Assign'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
if ($form->validate)
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
foreach($form_data as $key => $value)
|
||
... | ... | |
$form_data[$key] = htmlspecialchars($value);
|
||
}
|
||
$new_mt = new Money_transfer_Model();
|
||
$new_mt->origin_id = $trans_id->destination_id;
|
||
$new_mt->origin_id = $mt->daid;
|
||
$new_mt->destination_id = $form_data['aname'];
|
||
$new_mt->previous_transfer_id = $trans_id->id;
|
||
$new_mt->previous_transfer_id = $mt->mtid;
|
||
$new_mt->datetime = date("Y-m-d H:i:s", time());
|
||
$new_mt->text = $form_data['text'];
|
||
// this should be amount minus transfer fee
|
||
$new_mt->amount = $trans_id->amount;
|
||
$new_mt->amount = $mt->amount;
|
||
$new_save = $new_mt->save();
|
||
// also penalty should be generated
|
||
|
||
if ($new_mt->save())
|
||
$pen_save = true;
|
||
if ($form_data['penalty'] > 0)
|
||
{
|
||
$pen = new Money_transfer_Model();
|
||
$pen->origin_id = $form_data['aname'];
|
||
$pen->destination_id = $account_model->get_operating_account();
|
||
$pen->datetime = date("Y-m-d H:i:s", time());
|
||
$pen->text = $form_data['penalty_text'];
|
||
$pen->amount = $form_data['penalty'];
|
||
$pen_save = $pen->save();
|
||
}
|
||
if ($new_mt->save() && $pen_save)
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Transfer has been successfully assigned.'));
|
||
url::redirect(url_lang::base().'money_transfers/unidentified_transfers');
|
||
}
|
||
... | ... | |
$view->content->form = $form->html();
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
|
||
// commented by Jiri Svitak
|
||
/*
|
||
if ($model_transfer->origin_id == $master_acc_id)
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);
|
||
}
|
||
|
||
} // end of assign_transfer function
|
||
|
||
function add($origin_account = NULL)
|
||
{
|
||
if (isset($origin_account))
|
||
{
|
||
// to do - access rights
|
||
//if (!$this->gacl_class->acl_check('freenetis', 'new_own', 'all', $_SESSION['username'],get_class($this),'assign_transfers')) Controller::error(1);
|
||
|
||
$account_model = new Account_Model();
|
||
$accounts = $account_model->get_doubleentry_accounts();
|
||
foreach ($accounts as $account)
|
||
{
|
||
// odchozi platba
|
||
$form = new Forge(url_lang::base().'accounts/assign_transfer/'.$trans_id, '', 'POST', array('id' => 'article_form'));
|
||
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->dropdown('account')->label(url_lang::lang('texts.Pay from account').':')->rules('required')->options(array('0'=>'----- '.url_lang::lang('texts.Select the account').' -----','operating'=>url_lang::lang('texts.Operating account'),'infrastructure'=>url_lang::lang('texts.Infrastructure account')));
|
||
$form->textarea('comment')->label(url_lang::lang('texts.Comment').':')->rules('length[0,250]')->value($model_transfer->text);
|
||
special::required_forge_style($form, ' *', 'required');
|
||
$model_transfer->clear();
|
||
if($form->validate())
|
||
$arr_accounts[$account->id] = $account->name;
|
||
}
|
||
asort($arr_accounts);
|
||
|
||
$form = new Forge(url_lang::base().'money_transfers/add/'.$origin_account, '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->group('')->label(url_lang::lang('texts.Money transfer'));
|
||
$form->dropdown('aname')->label(url_lang::lang('texts.Destination credit account').':')->options($arr_accounts)->rules('required');
|
||
$form->input('amount')->label(url_lang::lang('texts.Amount').':')->rules('required|valid_numeric');
|
||
$form->input('text')->label(url_lang::lang('texts.Text'));
|
||
$form->submit('submit')->value(url_lang::lang('texts.Send'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
if ($form->validate())
|
||
{
|
||
if ($account_model->get_account_balance($origin_account) < 0)
|
||
{
|
||
$form_data = $form->as_array();
|
||
foreach($form_data as $key => $value)
|
||
{
|
||
$form_data[$key] = htmlspecialchars($value);
|
||
}
|
||
$model_account->clear();
|
||
|
||
if ($form_data['account']=='operating')
|
||
{
|
||
$model_account->where('type=\'operating\'')->find();
|
||
$orig_id = $model_account->id;
|
||
}
|
||
else
|
||
{
|
||
$model_account->where('type=\'infrastructure\'')->find();
|
||
$orig_id = $model_account->id;
|
||
}
|
||
$model_account->clear();
|
||
$model_account->where('type=\'suppliers\'')->find();
|
||
$suppliers_id = $model_account->id;
|
||
|
||
|
||
$model_transfer->clear();
|
||
$model_transfer->origin_id = $orig_id;
|
||
$model_transfer->destination_id = $suppliers_id;
|
||
$model_transfer->text = $form_data['comment'];
|
||
$model_transfer->amount = $amount;
|
||
$model_transfer->previous_transfer_id = $trans_id;
|
||
$model_transfer->save();
|
||
|
||
$model_bank_transfer = new Money_transfer_bank_info_Model($bank_info_id);
|
||
//if (isset($fee_id)) $model_bank_transfer->fee_transfer_id = $fee_id;
|
||
$model_bank_transfer->identified = 1;
|
||
|
||
if ($model_bank_transfer->save())
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.The transfer successfully done.'));
|
||
}
|
||
else
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant do the transfer.'));
|
||
}
|
||
// url::redirect(url_lang::base().'accounts/unidentified_transfers/', 'redirect');
|
||
header ("Location: ".url_lang::base().'accounts/unidentified_transfers/'."");
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant send money, account is in debt.'));
|
||
url::redirect(url_lang::base().'money_transfers/show_by_credit_account/'.$origin_account);
|
||
}
|
||
else
|
||
$form_data = $form->as_array();
|
||
foreach($form_data as $key => $value)
|
||
{
|
||
$view->form = new View('registration');
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = new View('transfers_assign');
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.Assign transfer');
|
||
$view->content->form = $form->html('forge/assign_outbound_transfer',TRUE);
|
||
$view->content->amount = $amount;
|
||
$view->content->trans_id = $trans_id;
|
||
|
||
//$view->content->acc_id = $acc_id;
|
||
|
||
$view->render(TRUE);
|
||
$form_data[$key] = htmlspecialchars($value);
|
||
}
|
||
}
|
||
else
|
||
if ($origin_account == $form_data['aname'])
|
||
{
|
||
// naplneni selectu
|
||
$arr_users = array();
|
||
$model_user = new User_Model;
|
||
$users = $model_user->select('member_id','name','surname','login')->orderby('surname, name')->where('type!=','user')->find_all();
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.Select the member').' -----';
|
||
foreach ($users as $user) {
|
||
$arr_users[$user->member_id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant send money on the same account.'));
|
||
url::redirect(url_lang::base().'money_transfers/show_by_credit_account/'.$origin_account);
|
||
}
|
||
|
||
$arr_fee = array();
|
||
$model_fee = new Bank_fee_Model;
|
||
$fees = $model_fee->find_all();
|
||
$arr_fee[0] = url_lang::lang('texts.None');
|
||
foreach ($fees as $fee) {
|
||
$arr_fee[$fee->fee] = $fee->fee.' '.url_lang::lang('texts.CZK');
|
||
}
|
||
// konec naplneni selectu
|
||
|
||
$form = new Forge(url_lang::base().'accounts/assign_transfer/'.$trans_id, '', 'POST', array('id' => 'article_form'));
|
||
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->dropdown('username')->label(url_lang::lang('texts.Send to member').':')->options($arr_users)->onchange('ajax_get_accounts(this.value,0)')->callback(array($this, 'callback_username'));
|
||
$form->dropdown('account')->label(url_lang::lang('texts.Members account').':')->options(array('0'=>'----- '.url_lang::lang('texts.Select the account').' -----'))->callback(array($this, 'callback_account'));
|
||
$form->dropdown('fee_penalty')->label(url_lang::lang('texts.Penalty and fee').':')->options($arr_fee);
|
||
$form->textarea('fee_comment')->label(url_lang::lang('texts.Fee or penalty comment').':')->rules('length[0,250]');
|
||
$form->textarea('comment')->label(url_lang::lang('texts.Comment').':')->rules('length[0,250]')->value($model_transfer->text);
|
||
special::required_forge_style($form, ' *', 'required');
|
||
$model_transfer->clear();
|
||
|
||
if($form->validate())
|
||
$mt = new Money_transfer_Model();
|
||
$mt->origin_id = $origin_account;
|
||
$mt->destination_id = $form_data['aname'];
|
||
$mt->datetime = date('Y-m-d H:i:s', time());
|
||
$mt->text = $form_data['text'];
|
||
$mt->amount = $form_data['amount'];
|
||
if ($mt->save())
|
||
{
|
||
$form_data = $form->as_array();
|
||
foreach($form_data as $key => $value)
|
||
{
|
||
$account_data->$key = htmlspecialchars($value);
|
||
}
|
||
$model_account->clear();
|
||
$model_account->where('type=\'operating\'')->find();
|
||
$operating_acc_id = $model_account->id;
|
||
|
||
if ((float)$form_data['fee_penalty']>0)
|
||
{
|
||
// do fee transfer
|
||
$model_transfer->origin_id = $form_data['account'];
|
||
$model_transfer->destination_id = $operating_acc_id;
|
||
$model_transfer->amount = (float)$form_data['fee_penalty'];
|
||
$model_transfer->text = $form_data['fee_comment'];
|
||
$model_transfer->previous_transfer_id = $trans_id;
|
||
$model_transfer->save();
|
||
}
|
||
|
||
$model_transfer->clear();
|
||
//$model_transfer->origin_id = $master_acc_id;
|
||
$model_transfer->bank_info_id = $bank_info_id;
|
||
$model_transfer->destination_id = $form_data['account'];
|
||
$model_transfer->text = $form_data['comment'];
|
||
$model_transfer->amount = $amount;
|
||
$model_transfer->previous_transfer_id = $trans_id;
|
||
$model_transfer->save();
|
||
|
||
$model_bank_transfer = new Money_transfer_bank_info_Model($bank_info_id);
|
||
//if (isset($fee_id)) $model_bank_transfer->fee_transfer_id = $fee_id;
|
||
$model_bank_transfer->identified = 1;
|
||
|
||
if ($model_bank_transfer->save())
|
||
{
|
||
$model_account->clear();
|
||
$model_account->find($form_data['account']);
|
||
if ($model_account->type=='analytic')
|
||
{
|
||
$model_members = new Member_Model($model_account->owner_id);
|
||
$model_members->current_credit = (float)$model_members->current_credit + (float)$amount-(float)$form_data['fee_penalty'];
|
||
$model_members->save();
|
||
}
|
||
$this->session->set_flash('message', url_lang::lang('texts.The transfer successfully done.'));
|
||
}
|
||
else
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant do the transfer.'));
|
||
}
|
||
url::redirect(url_lang::base().'accounts/unidentified_transfers/');
|
||
// header ("Location: ".url_lang::base().'accounts/unidentified_transfers/'."");
|
||
$this->session->set_flash('message', url_lang::lang('texts.Transfer has been successfully added.'));
|
||
url::redirect(url_lang::base().'money_transfers/show_by_credit_account/'.$origin_account);
|
||
}
|
||
else
|
||
{
|
||
$view->form = new View('registration');
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = new View('transfers_assign');
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.Assign transfer');
|
||
$view->content->form = $form->html('forge/assign_transfer',TRUE);
|
||
$view->content->amount = $amount;
|
||
$view->content->trans_id = $trans_id;
|
||
|
||
//$view->content->acc_id = $acc_id;
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
}
|
||
*/
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.Money transfer');
|
||
$view->content = $form->html();
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);;
|
||
}
|
||
|
||
} // end of assign_transfer function
|
||
|
||
}
|
||
}
|
||
?>
|
freenetis/trunk/kohana/application/controllers/accounts.php | ||
---|---|---|
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
function bank_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'DESC')
|
||
function bank_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
// it selects only bank accounts of association
|
||
$acc_model = new Account_Model();
|
||
... | ... | |
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
function credit_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'DESC')
|
||
function credit_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
// to do - correct access rights
|
||
//if(!$this->acl_check_view('Accounts_Controller','transfers',$member_id))
|
||
... | ... | |
$grid->order_field('comment')->label(url_lang::lang('texts.Comment'));
|
||
$grid->order_field('mname')->label(url_lang::lang('texts.Member name'));
|
||
$grid->order_field('credit')->label(url_lang::lang('texts.Credit'));
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Transfers'))->url(url_lang::base().'money_transfers/show_by_doubleentry_account')->action(url_lang::lang('texts.Show'));
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Transfers'))->url(url_lang::base().'money_transfers/show_by_credit_account')->action(url_lang::lang('texts.Show'));
|
||
$grid->datasource($accounts);
|
||
|
||
$view = new View('template');
|
||
... | ... | |
}
|
||
|
||
$mt = new Money_transfer_Model();
|
||
$member_model = new Member_Model();
|
||
$member = new Member_Model();
|
||
$account_model = new Account_Model();
|
||
$credit_accounts = $account_model->select('id')
|
||
->where('account_attribute_id', Account_attribute_Model::$credit)->find_all();
|
||
... | ... | |
->where('account_attribute_id', Account_attribute_Model::$operating)->find_all()->current();
|
||
|
||
$save_successful = true;
|
||
|
||
foreach($credit_accounts as $ca)
|
||
{
|
||
$member->clear();
|
||
$mt->clear();
|
||
|
||
$amount = 0;
|
||
|
||
//$entrance = $member->select('entrance_date')->join('accounts', 'accounts.member_id', 'members.id')
|
||
// ->where('accounts.id', $ca->id)->current()->entrance_date;
|
||
$entrance = $member->query('SELECT entrance_date
|
||
FROM members m
|
||
LEFT JOIN accounts a ON a.member_id = m.id
|
||
WHERE a.id = '.$ca->id)->current()->entrance_date;
|
||
$ts_entrance = strtotime($entrance);
|
||
|
||
$start = $form_data['from'];
|
||
$ts_start = strtotime($start);
|
||
|
||
if ($ts_entrance > $ts_start)
|
||
{
|
||
//$amount = ($ts_entrance - $ts_start) * 3600 * 24
|
||
}
|
||
|
||
$mt->origin_id = $ca->id;
|
||
$mt->destination_id = $oa->id;
|
||
$mt->datetime = date('Y-m-d H:i:s');
|
||
$mt->text = $form_data['text'];
|
||
$mt->amount = $form_data['fee'] * $form_data['months'];
|
||
$mt->amount = $amount;
|
||
if (!$mt->save())
|
||
$save_successful = false;
|
||
}
|
||
|
||
if ($save_successfull)
|
||
if ($save_successful)
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Fees have been successfully deducted.'));
|
||
url::redirect(url_lang::base().'accounts/credit_accounts');
|
freenetis/trunk/kohana/application/views/money_transfers/show_by_credit_account.php | ||
---|---|---|
<h2>
|
||
<?php url_lang::lang('texts.Money transfers of credit account')?>
|
||
</h2>
|
||
<?php echo $message ? '<div class="message">'.$message.'</div>' : '' ?>
|
||
<br />
|
||
<?php echo $grid; ?>
|
Také k dispozici: Unified diff
Pridana moznost odesilat penize z vlastniho kreditniho uctu na jine ucty. Uz funguje take prirazovani neidentifikovanych plateb.