Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 376

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

Pridano pridavani projektovych uctu a bankovnich uctu sdruzeni.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'account overview' => 'Přehled účtů',
'add' => 'Přidat',
'add new account' => 'Přidat nový účet',
'add new bank account of association' => 'Přidat nový bankovní účet sdružení',
'add new contact' => 'Přidat nový kontakt',
'add new credit account' => 'Přidat nový kreditní účet',
'add new device' => 'Přidat nové zařízení',
......
'administration of members registrations' => 'Administrace přihlášek členů',
'admins' => 'Správci',
'amount' => 'Částka',
'amount have to be more than 0!' => 'Částka musí být větší než 0',
'antenna' => 'Anténa',
'applicant' => 'Čekatel na členství',
'application password' => 'Aplikační heslo',
......
'back to list of works of member' => 'Zpět na seznam prací člena',
'back to login' => 'Zpět na přihlášení',
'back to ports list' => 'Zpět na seznam portů',
'back to project accounts' => 'Zpět na projektové účty',
'back to segments list' => 'Zpět na seznam segmentů',
'back to the double-entry accounts' => 'Zpět na podvojné účty',
'back to the invoice' => 'Zpět na fakturu',
......
'interfaces' => 'Rozhraní',
'ignore' => 'Ignorovat',
'import new invoice' => 'Import nové faktury',
'in database can be only one infrastructure account' => 'V databázi může být pouze jeden účet infrastruktury.',
'in database can be only one master bank account' => 'V databázi může být pouze jeden hlavní bankovní účet',
'in database can be only one operating account' => 'V databázi může být pouze jeden operační účet.',
'in database can be only one suppliers account' => 'V databázi může být pouze jeden účet dodavatelů.',
'in database can be only one unidentified account' => 'V databázi může být pouze jeden neidentifikovaný účet.',
'information' => 'Informace',
'infrastructure account' => 'Účet infrastruktury',
'install' => 'Instalovat',
......
'map' => 'Mapa',
'master bank account' => 'Hlavní bankovní účet sdružení',
'member' => 'Člen',
'member already have the double entry account' => 'Člen už má podvojný účet.',
'member cannot left association before entrance' => 'Člen nemůže opustit sdružení před vstupem.',
'member cannot be former, if his membership was not ended' => 'Člen nemůže být bývalý, pokud jeho členství nebylo ukončeno.',
'member have to own ONE double entry account' => 'Člen musí mít jeden podvojný účet',
'member has been successfully added' => 'Člen byl úspěšně přidán.',
'member has been successfully updated' => 'Člen byl úspěšně upraven.',
'member name' => 'Jméno člena (organizace)',
......
'segments list' => 'Seznam segmentů',
'segments' => 'Segmenty',
'select' => 'Vyber',
'select destination member' => 'Vyberte člena, kterému chcete peníze převést.',
'select device' => 'Vyber zařízení',
'select interface' => 'Vyber rozhraní',
'select vlan interface' => 'Vyber VLAN rozhraní',
freenetis/trunk/kohana/application/models/member.php
)->current();
}
/**
* Function gets ids and names of members. Used in accounts/projects for selection of account owner.
* @return unknown_type
*/
public function get_names_of_members()
{
return self::$db->query("SELECT id, name
FROM members
");
}
}
?>
freenetis/trunk/kohana/application/controllers/transfers.php
'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'));
// to do - access rights
$grid->add_new_button(url_lang::base().'accounts/show_all', url_lang::lang('texts.Back to double-entry accounts'));
$grid->add_new_button(url_lang::base().'accounts/show_all?name=&group='.$this->session->get('account_group').'&submit=Filter', url_lang::lang('texts.Back to double-entry accounts'));
$grid->add_new_button(url_lang::base().'transfers/add/'.$account_id, url_lang::lang('texts.Send money to other account'));
$grid->order_field('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')));
freenetis/trunk/kohana/application/controllers/bank_accounts.php
'use_paginator' => false,
'use_selector' => false
));
// adding bank account, to do - access rights and correction
//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'));
// adding bank account
if ($this->acl_check_new('Accounts_Controller', 'bank_accounts'))
$baa_grid->add_new_button(url_lang::base().'bank_accounts/add', url_lang::lang('texts.Add new bank account of association'));
$baa_grid->field('id')->label(url_lang::lang('texts.ID'));
$baa_grid->field('baname')->label(url_lang::lang('texts.Account name'));
$baa_grid->field('account_number')->label(url_lang::lang('texts.Account number'));
......
$view->render(TRUE);
}
/**
* Function adds bank account of association. Bank accounts of members are added during import.
* @return unknown_type
*/
function add()
{
if (!$this->acl_check_new('Accounts_Controller', 'bank_accounts'))
Controller::error(1);
// form
$form = new Forge(url_lang::base()."bank_accounts/add", '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
// input boxes
$form->input('account_name')->label(url_lang::lang('texts.Account name'))->rules('required|length[3,50]');
$form->input('account_comment')->label(url_lang::lang('texts.Comment'));
$form->input('account_nr')->label(url_lang::lang('texts.Account number'))->rules('required|length[3,50]|valid_numeric');
$form->input('bank_nr')->label(url_lang::lang('texts.Bank code'))->rules('required|length[3,10]|valid_numeric');
$form->input('IBAN')->label(url_lang::lang('texts.IBAN'));
$form->input('SWIFT')->label(url_lang::lang('texts.SWIFT'));
// submit button
$form->submit('submit')->value(url_lang::lang('texts.Add'));
special::required_forge_style($form, ' *', 'required');
// validation
if ($form->validate())
{
$form_data = $form->as_array();
foreach($form_data as $key => $value)
{
$form_data[$key] = htmlspecialchars($value);
}
// real bank account
$bank_account = new Bank_account_Model();
$bank_account->name = $form_data["account_name"];
$bank_account->member_id = 1;
$bank_account->account_nr = $form_data["account_nr"];
$bank_account->bank_nr = $form_data["bank_nr"];
$bank_account->IBAN = $form_data["IBAN"];
$bank_account->SWIFT = $form_data["SWIFT"];
$bank_account->save();
// these three double-entry accounts are related to one bank account through relation table
// double-entry bank account
$doubleentry_bank_account = new Account_Model();
$doubleentry_bank_account->member_id = 1;
$doubleentry_bank_account->name = $form_data["account_name"];
$doubleentry_bank_account->account_attribute_id = Account_attribute_Model::$bank;
$doubleentry_bank_account->comment = url_lang::lang('texts.Bank accounts');
$doubleentry_bank_account->save();
$doubleentry_bank_account->add_bank_account($bank_account);
// double-entry account of bank fees
$bank_fees_account = new Account_Model();
$bank_fees_account->member_id = 1;
$bank_fees_account->name = $form_data["account_name"].' - '.url_lang::lang('texts.Bank fees');
$bank_fees_account->account_attribute_id = Account_attribute_Model::$bank_fees;
$bank_fees_account->comment = url_lang::lang('texts.Bank fees');
$bank_fees_account->save();
$bank_fees_account->add_bank_account($bank_account);
// double-entry account of bank interests
$bank_interests_account = new Account_Model();
$bank_interests_account->member_id = 1;
$bank_interests_account->name = $form_data["account_name"].' - '.url_lang::lang('texts.Bank interests');
$bank_interests_account->account_attribute_id = Account_attribute_Model::$bank_interests;
$bank_interests_account->comment = url_lang::lang('texts.Bank interests');
$bank_interests_account->save();
$bank_interests_account->add_bank_account($bank_account);
// redirection
url::redirect(url_lang::base().'bank_accounts/show_all');
}
$headline = url_lang::lang('texts.Add new bank account of association');
$view = new View('template');
$view->header = new View('base/header');
$view->header->title = $headline;
$view->header->menu = Controller::render_menu();
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->link_back = html::anchor(url_lang::base().'bank_accounts/show_all', url_lang::lang('texts.Back to bank accounts'));
$view->content->form = $form->html();
$view->footer = new View('base/footer');
$view->render(TRUE);
}
}
?>
freenetis/trunk/kohana/application/controllers/accounts.php
// creates parameters of filter in url
$arr_gets = array();
foreach ($this->input->get() as $key=>$value)
{
$arr_gets[] = $key.'='.$value;
$query_string = '?'.implode('&',$arr_gets);
}
$query_string = '?'.implode('&', $arr_gets);
if (count($filter_values) == 0)
$filter_values['group'] = Account_Model::$credit;
$headline = $arr_groups[$filter_values['group']];
// set correct headline for chosen group
$headline = $arr_groups[$filter_values['group']];
// save current group of double entry accounts to session
$this->session->set('account_group', $filter_values['group']);
$grid = new Grid(url_lang::base().'accounts', null, array(
//'separator' => '<br /><br />',
......
'limit_results' => $limit_results,
'query_string' => $query_string
));
// access rights
//if ($this->acl_check_new('Accounts_Controller', 'accounts', $member_id))
// $acc_grid->add_new_button(url_lang::base().'accounts/add_project_account/'.$member_id, url_lang::lang('texts.Add new project account'));
if ($filter_values['group'] == Account_Model::$project && $this->acl_check_new('Accounts_Controller', 'accounts'))
$grid->add_new_button(url_lang::base().'accounts/add_project', url_lang::lang('texts.Add new project account'));
$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'));
......
* @param $member_id
* @return unknown_type
*/
function add_project($member_id = NULL)
function add_project()
{
// access rights
if (!$this->acl_check_new('Accounts_Controller', 'accounts', $member_id))
if (!$this->acl_check_new('Accounts_Controller', 'accounts'))
Controller::error(1);
if (isset($member_id))
$member_model = new Member_Model();
$members = $member_model->get_names_of_members();
foreach($members as $member)
{
$this->owner_id = $member_id;
$form = new Forge(url_lang::base().'accounts/add_project/'.$member_id, '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->group('')->label(url_lang::lang('texts.Basic information'));
$form->input('name')->label(url_lang::lang('texts.Name').':')->rules('required|length[3,50]');
$form->textarea('comment')->label(url_lang::lang('texts.Comment').':')->rules('length[0,250]');
$form->submit('submit')->value(url_lang::lang('texts.Add'));
special::required_forge_style($form, ' *', 'required');
if($form->validate())
$arr_members[$member->id] = $member->id.' - '.$member->name;
}
$form = new Forge(url_lang::base().'accounts/add_project', '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->dropdown('member')->label(url_lang::lang('texts.Owner').':')->rules('required')->options($arr_members);
$form->input('name')->label(url_lang::lang('texts.Account name').':')->rules('required|length[3,50]');
$form->textarea('comment')->label(url_lang::lang('texts.Comment').':')->rules('length[0,250]');
$form->submit('submit')->value(url_lang::lang('texts.Add'));
special::required_forge_style($form, ' *', 'required');
if($form->validate())
{
$form_data = $form->as_array();
$account = new Account_Model;
$account->member_id = $form_data['member'];
$account->account_attribute_id = Account_attribute_Model::$project;
$account->name = htmlspecialchars($form_data['name']);
$account->comment = htmlspecialchars($form_data['comment']);
unset($form_data);
if ($account->save())
{
$form_data = $form->as_array();
$account = new Account_Model;
$account->name = htmlspecialchars($form_data['name']);
$account->comment = htmlspecialchars($form_data['comment']);
unset($form_data);
$account->member_id = $member_id;
if ($account->save())
{
$this->session->set_flash('message', url_lang::lang('texts.Account has been successfully added.'));
}
else
{
$this->session->set_flash('message', url_lang::lang('texts.Error - cant add new account.'));
}
url::redirect(url_lang::base().'members/show/'.$member_id);
$this->session->set_flash('message', url_lang::lang('texts.Account has been successfully added.'));
}
else
{
$view->form = new View('registration');
$view = new View('template');
$view->header = new View('base/header');
$view->content = new View('account_add');
$view->footer = new View('base/footer');
$view->header->menu = Controller::render_menu();
$view->header->title = url_lang::lang('texts.Add new project account');
$view->content->form = $form->html();
$view->content->member_id = $member_id;
$view->render(TRUE);
$this->session->set_flash('message', url_lang::lang('texts.Error - cant add new account.'));
}
url::redirect(url_lang::base().'accounts/show_all?name=&group=2&submit=Filter');
}
else
{
Controller::warning(1);;
$headline = url_lang::lang('texts.Add new project account');
$view = new View('template');
$view->header = new View('base/header');
$view->header->menu = Controller::render_menu();
$view->header->title = $headline;
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->link_back = html::anchor(url_lang::base().'accounts/show_all?name=&group=2&submit=Filter', url_lang::lang('texts.Back to project accounts'));
$view->content->form = $form->html();
$view->footer = new View('base/footer');
$view->render(TRUE);
}
} // end of add_credit_account function
......
$form->textarea('comment')->label(url_lang::lang('texts.Comment').':')->rules('length[0,250]')->value($model_account->comment);
$form->submit('submit')->value(url_lang::lang('texts.Edit'));
special::required_forge_style($form, ' *', 'required');
$linkback = url_lang::base()."accounts/show_all?name=&group=".$this->session->get('account_group')."&submit=Filter";
if($form->validate())
{
$form_data = $form->as_array();
......
{
$this->session->set_flash('message', url_lang::lang('texts.Error - cant update account.'));
}
url::redirect(url_lang::base().'accounts/show_all');
url::redirect($linkback);
}
else
{
......
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->form = $form->html();
$view->content->link_back = html::anchor(url_lang::base().'accounts/show_all', url_lang::lang('texts.Back to double-entry accounts'));
$view->content->link_back = html::anchor($linkback, url_lang::lang('texts.Back to double-entry accounts'));
$view->footer = new View('base/footer');
$view->header->menu = Controller::render_menu();
$view->header->title = $headline;
......
}
} // end of delete function
/***************************** SPECIAL AND AJAX FUNCTIONS ************************
**********************************************************************************
*********************HERE ARE FUNCTIONS FOR DIRECT GET ACCESS *******************/
/**
* Function uploads bank files.
* @param $id
* @return unknown_type
*/
public function upload_bank_file($id=null) {
$form = new Forge(url_lang::base()."accounts/upload_bank_file/$id", '','POST',array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
......
}
public function ajax_check()
{
$acc_id = $this->input->get('acc_id');
$model_account = new Account_Model();
$owner_id = ($this->input->get('account')!=0) ? 'id!='.$this->input->get('account').' AND ' : '';
$accounts = $model_account->where($owner_id.'type!=\'master\' AND type!=\'bank\' AND owner_id='.$acc_id)->find_all();
if (count($accounts)>0)
{
$return = '<accounts>';
foreach ($accounts as $account)
{
$return .= '<account> <name>'.$account->name.'</name> <type>'.$account->type.'</type> <value>'.$account->id.'</value> </account>
';
} //*/
$return .= '</accounts>';
header("Content-Type: text/xml");
echo $return;
}
else
{
header("Content-Type: text/xml");
echo "<exists>0</exists>";
}
}
/* ************** CALLBACK FUNCTIONS ******************* */
function callback_acc_type($input)
{
$model_account= new Account_Model();
if ($input->value == 'analytic' || trim($input->value)=='')
{
if ($model_account->acc_type_exist($input->value, $this->owner_id, $this->acc_id) || trim($input->value)=='')
{
$input->add_error('required', url_lang::lang('texts.Member already have the double entry account.'));
}
}
elseif ($input->value == 'master')
{
if ($model_account->acc_type_exist($input->value, NULL, $this->acc_id))
{
$input->add_error('required', url_lang::lang('texts.In database can be only one master bank account.'));
}
}
elseif ($input->value == 'operating')
{
if ($model_account->acc_type_exist($input->value, NULL, $this->acc_id))
{
$input->add_error('required', url_lang::lang('texts.In database can be only one operating account.'));
}
}
elseif ($input->value == 'infrastructure')
{
if ($model_account->acc_type_exist($input->value, NULL, $this->acc_id))
{
$input->add_error('required', url_lang::lang('texts.In database can be only one infrastructure account.'));
}
}
elseif ($input->value == 'suppliers')
{
if ($model_account->acc_type_exist($input->value, NULL, $this->acc_id))
{
$input->add_error('required', url_lang::lang('texts.In database can be only one suppliers account.'));
}
}
elseif ($input->value == 'unidentified')
{
if ($model_account->acc_type_exist($input->value, NULL, $this->acc_id))
{
$input->add_error('unidentified', url_lang::lang('texts.In database can be only one unidentified account.'));
}
}
if ($this->editation)
{
// member must have ONE double entry account
if (!$model_account->acc_type_exist('analytic', $this->owner_id, $this->acc_id) && $input->value != 'analytic')
{
$input->add_error('required', url_lang::lang('texts.Member have to own ONE double entry account.'));
}
}
}
function callback_amount($input)
{
if ((int)$input->value < 1)
{
$input->add_error('required', url_lang::lang('texts.Amount have to be more than 0!'));
}
else
{
$model_transfer = new Transfer_Model();
$credit = (float)$model_transfer->count_credit($this->acc_id, TRUE);
if ($credit<$input->value)
{
$input->add_error('required', url_lang::lang('texts.On your account is only').' '.$credit.' '.url_lang::lang('texts.CZK'));
}
}
}
function callback_username($input)
{
if ($input->value < 1)
{
$input->add_error('required', url_lang::lang('texts.Select destination member.'));
}
$this->sel_member = $input->value;
}
function callback_account($input)
{
if ($input->value < 1)
{
$input->add_error('required', url_lang::lang('texts.Select destination account.'));
}
if ($this->sel_member>0)
{
$model_account = new Account_Model();
$owner_id = ($this->acc_id) ? 'id!='.$this->acc_id.' AND ' : '';
$accounts = $model_account->where($owner_id.'type!=\'master\' AND type!=\'bank\' AND owner_id='.$this->sel_member)->find_all();
$arr_users = array();
$arr_users[0] = '----- '.url_lang::lang('texts.Select the account').' -----';
foreach ($accounts as $account) {
$arr_users[$account->id] = $account->name.' ('.$account->type.')';
}
$input->options($arr_users);
$input->selected($input->value);
}
}
}
?>

Také k dispozici: Unified diff