Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 286

Přidáno uživatelem Jiří Sviták před asi 15 roky(ů)

Predelano menu. Predelany vypisy vsech druhu uctu. Rozdelano odecitani clenskych prispevku.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'back' => 'Zpět',
'back to account transfers' => 'Zpět na převody účtu',
'back to all subnets' => 'Zpět na seznam podsítí',
'back to credit accounts' => 'Zpět na kreditní účty',
'back to detail' => 'Zpět na detail',
'back to device parameters' => 'Zpět na parametry zařízení',
'back to devices list' => 'Zpět na seznam zařízení',
......
'create new vlan interface' => 'Vytvoření nového VLAN rozhraní',
'create new vlan' => 'Vytvořit nový VLAN',
'create whole new device' => 'Vytvořit celé nové zařízení',
'credit' => 'Kredit',
'credit accounts' => 'Kreditní účty',
'current credit' => 'Stav kreditu',
'current credit' => 'Současný kredit',
'current credit on this account is' => 'Stav kreditu na tomto účtu je',
'currency' => 'Měna',
'czk' => 'Kč',
......
'date to' => 'Datum do',
'debit payment rate' => 'Výše splátek',
'debtors' => 'Dlužníci',
'deduct' => 'Odečíst',
'deduction of membership fees' => 'Odečtení členských příspěvků',
'delete this contact' => 'Smazat tento kontakt',
'delete_member' => 'Smazat tohoto člena',
'delete_user' => 'Smazat tohoto uživatele',
......
'fee has been successfully updated' => 'Poplatek byl úspěšně aktualizován',
'fee or penalty comment' => 'Komentář k poplatku/pokutě',
'fees' => 'Poplatky',
'fees have been successfully deducted' => 'Členské příspěvky byly úspěšně odečteny.',
'file with bank transfer listing' => 'HTML soubor výpisem z Ebanky',
'filter' => 'Filtrovat',
'finances' => 'Finance',
......
'money transfers of member' => 'Převody peněz člena',
'monthly member payment' => 'Měsiční členské příspěvky',
'monthly member payment have to be a number' => 'Měsíční členské příspěvky musí být číslo',
'monthly membership fee' => 'Měsíční členský příspěvek',
'must be logged in' => 'Musíte se přihlásit.',
'must pay regular fee' => 'Platí pravidelný příspěvek',
'my profile' => 'Můj profil',
......
'none' => 'žádný',
'non-member' => 'Nečlen',
'non-statutory member' => 'Člen bez statusu',
'number of months' => 'Počet měsíců',
'number of the hours' => 'počet hodin',
'old password' => 'staré heslo',
'operating account' => 'Provozní účet',
......
'pppoe' => 'pppoe',
'pre title' => 'Tituly před jménem',
'project account' => 'Účet projektu',
'project accounts' => 'Projektové účty',
'qos ceil' => 'Ceil (max-limit) pro QoS',
'qos rate' => 'Rate (limit-at) pro QoS',
'really delete this account' => 'Opravdu smazat tento účet',
freenetis/trunk/kohana/application/models/account.php
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, a.comment,
aa.name AS type,
CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number
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'");
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
');
}
/**
......
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
WHERE aa.id >= ".Account_attribute_Model::$credit." AND aa.id < ".Account_attribute_Model::$bank_debts);
WHERE aa.id = ".Account_attribute_Model::$credit." AND aa.id < ".Account_attribute_Model::$bank_debts);
}
/**
......
/**
* @author Jiri Svitak
* It gets all credit accounts from database.
* It gets all credit accounts from database including member name and credit.
* @return unknown_type
*/
public function get_credit_accounts()
public function get_credit_accounts($limit_from = 0, $limit_results = 20, $order_by = 'aid', $order_by_direction = 'desc')
{
/*
return self::$db->query("SELECT a.*, 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 = 'credit'");
*/
return self::$db->query("SELECT a.*, aa.name AS type
FROM accounts a
JOIN account_attributes aa ON aa.id = a.account_attribute_id
WHERE aa.id = ".Account_attribute_Model::$credit);
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);
}
/**
* @author Jiri Svitak
* It gets count of credit accounts.
* @return unknown_type
*/
public function get_credit_accounts_count()
{
$count = self::$db->query('SELECT COUNT(id) AS total
FROM accounts a
WHERE a.account_attribute_id = '.Account_attribute_Model::$credit.'
GROUP BY id'
);
return $count->current()->total;
}
/**
* @author Jiri Svitak
* It gets balance of account. It subtracts all outbound transfers from all incoming transfers.
* @param $account_id
* @return unknown_type
freenetis/trunk/kohana/application/controllers/money_transfers.php
//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'));
$grid->add_new_button(url_lang::base().'accounts/doubleentry_accounts', url_lang::lang('texts.Back to the double-entry accounts'));
// 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');
$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'));
freenetis/trunk/kohana/application/controllers/accounts.php
function index()
{
url::redirect(url_lang::base().'accounts/doubleentry_accounts');
url::redirect(url_lang::base().'accounts/credit_accounts');
}
/**
......
$acc_grid->order_field('id')->label('ID');
$acc_grid->order_field('name')->label(url_lang::lang('texts.Account name'));
$acc_grid->order_field('comment')->label(url_lang::lang('texts.Comment'));
$acc_grid->order_field('type')->label(url_lang::lang('texts.Type'));
$acc_grid->order_field('account_number')->label(url_lang::lang('texts.Account number'));
$acc_grid->order_field('credit')->label(url_lang::lang('texts.Credit'));
$acc_grid->action_field('id')->label(url_lang::lang('texts.Transfers'))->url(url_lang::base().'money_transfers/show_by_bank_account')->action(url_lang::lang('texts.Show'));
$acc_grid->action_field('id')->label(url_lang::lang('texts.Import'))->url(url_lang::base().'accounts/upload_bank_file')->action(url_lang::lang('texts.Import'));
$acc_grid->datasource($accs);
......
/**
* @author Jiri Svitak
* It shows double-entry accounts like credit accounts of members, project,
* infrastructure and operating accounts.
* It shows credit accounts of members.
* @param $limit_results
* @param $order_by
* @param $order_by_direction
* @return unknown_type
*/
function doubleentry_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'DESC')
{
// it selects only double-entry accounts
$acc_model = new Account_Model();
$accs = $acc_model->get_doubleentry_accounts();
$total_accs = count($accs);
function credit_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'DESC')
{
// to do - correct access rights
//if(!$this->acl_check_view('Accounts_Controller','transfers',$member_id))
// Controller::Error(1);
$acc_grid = new Grid(url_lang::base().'accounts',
url_lang::lang('texts.Double-entry accounts'), array(
// gets grid settings
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('id', 'origin_id', 'destination_id', 'timestamp', 'amount', 'constant_symbol', 'specific_symbol', 'name', 'date_time', 'fee_transfer_id', 'trans_type', 'text');
if (!in_array(strtolower($order_by),$allowed_order_type))
$order_by = 'id';
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc')
$order_by_direction = 'asc';
$account_model = new Account_Model();
$total_accounts = $account_model->get_credit_accounts_count();
$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_accounts) ? 0 : $sql_offset;
$accounts = $account_model->get_credit_accounts($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
$grid = new Grid(url_lang::base().'accounts',
null, array(
'separator' => '<br /><br />',
'current' => $limit_results, // current selected 'records_per_page' value
'selector_increace' => 50, // increace
'selector_increace' => 50, // increace
'selector_min' => 50, // minimum where selector start
'selector_max_multiplier' => 10,
'base_url' => Config::item('locale.lang').'/accounts/doubleentry_transfers/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
'base_url' => Config::item('locale.lang').'/accounts/credit_transfers/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
'total_items' => $total_accs, // use db count query here of course
'total_items' => $total_accounts, // 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
'style' => 'classic',
'order_by' => $order_by,
......
// adding account, to do - access rights
//if ($this->acl_check_new(get_class($this), 'accounts', $member_id))
// $acc_grid->add_new_button(url_lang::base().'accounts/add_bank_account/'.$member_id, url_lang::lang('texts.Add new bank account'));
$acc_grid->order_field('id')->label('ID');
$acc_grid->order_field('name')->label(url_lang::lang('texts.Account name'));
$acc_grid->order_field('comment')->label(url_lang::lang('texts.Comment'));
$acc_grid->order_field('type')->label(url_lang::lang('texts.Type'));
$acc_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'));
$acc_grid->datasource($accs);
$grid->add_new_button(url_lang::base().'accounts/deduct_fees', url_lang::lang('texts.Deduction of membership fees'));
$grid->order_field('id')->label('ID');
$grid->order_field('aname')->label(url_lang::lang('texts.Account name'));
$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->datasource($accounts);
$view = new View('template');
$view->header = new View('base/header');
$view->header->title = url_lang::lang('texts.Double-entry accounts');
$view->header->title = url_lang::lang('texts.Credit accounts');
$view->header->menu = Controller::render_menu();
$view->content = $acc_grid;
$view->content = new View('accounts/credit');
$view->content->grid = $grid;
$view->content->message = $this->session->get_once('message');
$view->footer = new View('base/footer');
$view->render(TRUE);
}
/**
* Form for deducting membership fees.
* @return unknown_type
*/
function deduct_fees()
{
// to do - access rights
//if (!$this->acl_check_new(get_class($this),'members')) Controller::error(1);
$form = new Forge(url_lang::base().'accounts/deduct_fees', '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->date('from')->label(url_lang::lang('texts.Date from').':')->years(date('Y')-10, date('Y'))->rules('required');
$form->input('months')->label(url_lang::lang('texts.Number of months').':')->rules('required|valid_numeric');
$form->input('fee')->label(url_lang::lang('texts.Monthly membership fee').':')->rules('required|valid_numeric');
$form->input('text')->label(url_lang::lang('texts.Text').':');
$form->submit('submit')->value(url_lang::lang('texts.Deduct'));
special::required_forge_style($form, ' *', 'required');
if ($form->validate())
{
$form_data = $form->as_array();
foreach($form_data as $key => $value)
{
$form_data[$key] = htmlspecialchars($value);
}
$mt = new Money_transfer_Model();
$member_model = new Member_Model();
$account_model = new Account_Model();
$credit_accounts = $account_model->select('id')
->where('account_attribute_id', Account_attribute_Model::$credit)->find_all();
$oa = $account_model->select('id')
->where('account_attribute_id', Account_attribute_Model::$operating)->find_all()->current();
$save_successful = true;
foreach($credit_accounts as $ca)
{
$member->clear();
$mt->clear();
$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'];
if (!$mt->save())
$save_successful = false;
}
if ($save_successfull)
{
$this->session->set_flash('message', url_lang::lang('texts.Fees have been successfully deducted.'));
url::redirect(url_lang::base().'accounts/credit_accounts');
}
else
{
$this->session->set_flash('message', url_lang::lang('texts.Error - cant deduct fees.'));
}
}
else
{
$view = new View('template');
$view->header = new View('base/header');
$view->header->title = url_lang::lang('texts.Deduction of membership fees');
$view->header->menu = Controller::render_menu();
$view->content = new View('accounts/deduct_fees');
$view->content->form = $form->html();
$view->footer = new View('base/footer');
$view->render(TRUE);
}
}
function trans_detail($transfer_id = NULL, $member_id = NULL)
{
if (isset($transfer_id) && isset($member_id))
freenetis/trunk/kohana/application/controllers/fees.php
{
// check if logged user have access right to view all fees
if (!$this->acl_check_view('Settings_Controller','fees'))
Controller::Error(1);
//if (!$this->acl_check_view('Settings_Controller','fees'))
// Controller::Error(1);
// to-do - pagination
......
function add()
{
// access control
if (!$this->acl_check_new('Settings_Controller','fees'))
Controller::error(1);
//if (!$this->acl_check_new('Settings_Controller','fees'))
// Controller::error(1);
$enum_type_name_model = new Enum_type_name_Model();
$enum_type_name = $enum_type_name_model->where('type_name','Fees types')->find();
freenetis/trunk/kohana/application/libraries/MY_Controller.php
if ($this->acl_check_2D('menu', 'accounts'))
$acc_menu .= '<li>'.html::anchor(url_lang::base().'accounts/bank_accounts', url_lang::lang('texts.Bank accounts of association')).'</li>
<li>'.html::anchor(url_lang::base().'accounts/doubleentry_accounts', url_lang::lang('texts.Double-entry accounts')).'</li>
<li>'.html::anchor(url_lang::base().'accounts/credit_accounts', url_lang::lang('texts.Credit accounts')).'</li>
<li>'.html::anchor(url_lang::base().'accounts/project_accounts', url_lang::lang('texts.Project accounts')).'</li>
<li>'.html::anchor(url_lang::base().'accounts/cash_flow', url_lang::lang('texts.Cash flow')).'</li>';
// commented by Jiri Svitak, it's probably useless
//<li>'.html::anchor(url_lang::base().'money_transfers', url_lang::lang('texts.Money transfers')).'</li>';
freenetis/trunk/kohana/application/views/accounts/credit.php
<h2>
<?php echo url_lang::lang('texts.Credit accounts')?>
</h2>
<?php echo $message ? '<div class="message">'.$message.'</div>' : '' ?>
<br />
<?php echo $grid ?>
freenetis/trunk/kohana/application/views/accounts/deduct_fees.php
<h2><?php echo url_lang::lang('texts.Deduction of membership fees'); ?></h2>
<br />
<?php echo html::anchor(url_lang::base().'accounts/credit_accounts',url_lang::lang('texts.Back to credit accounts'))?>
<br />
<br />
<?php echo $form?>

Také k dispozici: Unified diff