Revize 261
Přidáno uživatelem Jiří Sviták před asi 15 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'arrival' => 'Příchozí',
|
||
'assign' => 'Přiřadit',
|
||
'assign transfer' => 'Přiřadit převod',
|
||
'association information' => 'Informace o sdružení',
|
||
'association members' => 'Členové sdružení',
|
||
'back' => 'Zpět',
|
||
'back to account transfers' => 'Zpět na převody účtu',
|
||
... | ... | |
'back to ports list' => 'Zpět na seznam portů',
|
||
'back to segments list' => 'Zpět na seznam segmentů',
|
||
'back to the bank accounts of association' => 'Zpět na bankovní účty sdružení',
|
||
'back to the member' => 'Zpět na profil člena',
|
||
'back to the double-entry accounts' => 'Zpět na podvojné účty',
|
||
'back to the member' => 'Zpět na profil člena',
|
||
'back to the members transfers' => 'Zpět na převody člena',
|
||
'back to the user' => 'Zpět na uživatele',
|
||
'back to this member' => 'Zpět na profil člena',
|
||
'back to the members transfers' => 'Zpět na převody člena',
|
||
'back to this account' => 'Zpět na tento účet',
|
||
'back to this account' => 'Zpět na tento účet',
|
||
'back to this user' => 'Zpět na tohoto uživatele',
|
||
'back to unidentified transfers' => 'Zpět na neidentifikované platby',
|
||
'back to vlan interface parameters' => 'Zpět na parametry VLAN rozhraní',
|
||
... | ... | |
'bad phone format' => 'Špatný formát telefonu',
|
||
'bank account' => 'Bankovní účet',
|
||
'bank accounts of association' => 'Bankovní účty sdružení',
|
||
'bank code' => 'Kód banky',
|
||
'bank fee' => 'Bankovní poplatek',
|
||
'bank fee have to be a number' => 'Bankovní poplatek musí být číslo',
|
||
'bank info' => 'Údaje platby',
|
||
'bank information' => 'Údaje o bance',
|
||
'bank transfer fee' => 'Bankovní poplatek',
|
||
'basic data' => 'Základní údaje',
|
||
'basic informations' => 'Základní informace',
|
||
... | ... | |
'date and time' => 'Datum a čas',
|
||
'date from' => 'Datum od',
|
||
'date from must be smaller then date to' => 'Datum od musí být menší než datum do',
|
||
'date of foundation' => 'Datum založení',
|
||
'date to' => 'Datum do',
|
||
'debit payment rate' => 'Výše splátek',
|
||
'delete this contact' => 'Smazat tento kontakt',
|
||
... | ... | |
'minimal duration of interrupt is one month' => 'Minimální délka přerušení je jeden měsíc',
|
||
'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 double-entry account' => 'Převody peněz na podvojném účtu',
|
||
'money transfers of member' => 'Převody peněz člena',
|
||
'money transfers of bank account' => 'Převody peněz na bankovním účtu',
|
||
'monthly member payment' => 'Měsiční členské příspěvky',
|
||
'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',
|
||
'must be logged in' => 'Musíte se přihlásit.',
|
||
'must pay regular fee' => 'Platí pravidelný příspěvek',
|
||
... | ... | |
'my users' => 'Moji uživatelé',
|
||
'my works' => 'Moje práce',
|
||
'name' => 'Jméno',
|
||
'name of the association' => 'Název sdružení',
|
||
'netmask' => 'Maska',
|
||
'network address' => 'Síťová adresa',
|
||
'network address does not match the mask' => 'Síťová adresa neodpovídá zadané masce.',
|
||
... | ... | |
'non-member' => 'Nečlen',
|
||
'non-statutory member' => 'Člen bez statusu',
|
||
'number of the hours' => 'počet hodin',
|
||
'number of the first account' => 'Číslo prvního účtu',
|
||
'old password' => 'staré heslo',
|
||
'operating account' => 'Provozní účet',
|
||
'or' => 'nebo',
|
||
... | ... | |
'penalty have to be a number' => 'Pokuta musí být číslo',
|
||
'phone' => 'Telefon',
|
||
'phone already exists in database' => 'Telefon je již v databázi',
|
||
'please fill in the form with information about your administrator member' => 'Prosím, vyplňte formulář informacemi u vašem členu-administrátorovi.',
|
||
'please fill in the form with information about your association' => 'Prosím, vyplňte formulář údaji u vašem sdružení.',
|
||
'port detail' => 'Detail portu',
|
||
'port is successfully saved' => 'Port byl úspěšně uložen.',
|
||
'port is successfully updated' => 'Port byl úspěšně upraven.',
|
||
... | ... | |
'the parsed account is unknown' => 'Parsovaný účet je neznámý',
|
||
'the transfer successfully done' => 'Převod úspěšně dokončen',
|
||
'there are no items yet' => 'Neobsahuje žádné záznamy.',
|
||
'this member represents your association in the system' => 'Tento člen představuje vaše sdružení v systému.',
|
||
'time' => 'čas',
|
||
'timestamp' => 'Čas',
|
||
'to' => 'Komu',
|
freenetis/trunk/kohana/application/models/account.php | ||
---|---|---|
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It gets balance of analytic account. It subtracts all outbound transfers from all incoming transfers.
|
||
* It gets balance of account. It subtracts all outbound transfers from all incoming transfers.
|
||
* @param $account_id
|
||
* @return unknown_type
|
||
*/
|
||
... | ... | |
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It gets all bank accounts of association.
|
||
* @return unknown_type
|
||
*/
|
||
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
|
||
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'");
|
||
}
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It gets all double-entry accounts.
|
||
* @return unknown_type
|
||
*/
|
||
public function get_doubleentry_accounts()
|
||
{
|
||
return self::$db->query("SELECT a.* FROM accounts a
|
||
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'");
|
||
}
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It gets bank account number of given account.
|
||
* @param $account_id
|
||
* @return unknown_type
|
||
*/
|
||
public function get_bank_account_number($account_id)
|
||
{
|
||
$ba_nr = self::$db->query("SELECT CONCAT(ba.account_nr, '/', ba.bank_nr) AS account_number
|
||
FROM bank_accounts ba
|
||
JOIN accounts a ON ba.account_id = a.id");
|
||
return $ba_nr->current()->account_number;
|
||
}
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/models/enum_type.php | ||
---|---|---|
static function get_name($name_id) {
|
||
return self::$enum_types[$name_id];
|
||
}
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It gets type_id of value string.
|
||
* @param $value
|
||
* @return unknown_type
|
||
*/
|
||
public function get_type_id($value)
|
||
{
|
||
$type_id = self::$db->query("SELECT id
|
||
FROM enum_types
|
||
WHERE value = '".$value."'
|
||
COLLATE utf8_czech_ci");
|
||
return $type_id->current()->id;
|
||
}
|
||
|
||
}
|
||
?>
|
freenetis/trunk/kohana/application/controllers/members.php | ||
---|---|---|
|
||
// gets members from database
|
||
$query = $model_members->get_all_members($sql_offset, (int)$limit_results, $order_by, $order_by_direction, $filter->values());
|
||
//$total_members = $query->count();
|
||
|
||
// doesn't work, if you are first and only member, you can't add another member
|
||
/*
|
||
if ($total_members==1)
|
||
{
|
||
$member = $query->current();
|
||
url::redirect(url_lang::base().'members/show/'.$member->id);
|
||
die();
|
||
}
|
||
*/
|
||
|
||
$total_members = $model_members->count_all_members($filter->values());// count all members in database
|
||
|
||
unset($url_array);
|
||
... | ... | |
foreach ($this->input->get() as $key=>$value) $arr_gets[] = $key.'='.$value;
|
||
$query_string = '?'.implode('&',$arr_gets);
|
||
|
||
// to do - comment this
|
||
// $query = $model_members
|
||
// -> like($filter->values())
|
||
// -> orderby($order_by, $order_by_direction)
|
||
// -> limit($limit_results, $sql_offset)
|
||
// -> find_all();
|
||
// $query = $model_members->get_all_members();
|
||
|
||
// creates grid to view members
|
||
// it creates grid to view all members
|
||
$grid = new Grid(url_lang::base().'members', url_lang::lang('texts.List of all members'),array(
|
||
//'separator' => '<br />-----------',
|
||
//'use_paginator' => false,
|
||
... | ... | |
|
||
if ($this->acl_check_new(get_class($this), 'members'))
|
||
$grid->add_new_button(url_lang::base().'members/add', url_lang::lang('texts.Add new member'));
|
||
if ($this->acl_check_new(get_class($this), 'members'))
|
||
$grid->add_new_button(url_lang::base().'members/xls_export', url_lang::lang('texts.Export members to xls file'));
|
||
// xls export of members is still not functional, see xls_export function for explanation
|
||
//if ($this->acl_check_new(get_class($this), 'members'))
|
||
// $grid->add_new_button(url_lang::base().'members/xls_export', url_lang::lang('texts.Export members to xls file'));
|
||
$grid->order_field('id')->label('ID');
|
||
$grid->order_field('registration')->label(url_lang::lang('texts.Reg'))->bool(array(url_lang::lang('texts.No'),url_lang::lang('texts.Yes')))->class('center');
|
||
$grid->order_field('name')->label(url_lang::lang('texts.Name'));
|
||
... | ... | |
if ($this->acl_check_edit(get_class($this), 'members'))
|
||
//if ($this->acl_check_2D('freenetis', 'edit_all'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'members/edit') ->action(url_lang::lang('texts.Edit'));
|
||
//if ($this->acl_check_2D('freenetis', 'delete_all'))
|
||
//if ($this->acl_check_2D('freenetis', 'delete_all'))
|
||
|
||
// member should never be deleted
|
||
//$grid->action_field('member_id') ->label(url_lang::lang('texts.Delete')) ->url(url_lang::base().'members/delete') ->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.delete_member').'\');"');
|
||
|
||
// sets grid source of data
|
||
... | ... | |
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
// $view->content = new View('content', $data);
|
||
$view->content = $filter->view . $grid;
|
||
$view->content = $filter->view.$grid;
|
||
//$view->content = new View('pokus');
|
||
//$view->content->total = $total_members;
|
||
//$view->content->sql_offset = $sql_offset;
|
||
... | ... | |
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.List of all members');
|
||
//$view->content->heading = "Úprava uživatele ".$data['row']['name']." ".$data['row']['surname'];
|
||
//$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
} // end of show_all function
|
||
|
||
... | ... | |
->rules('length[3,50]|valid_email')
|
||
->callback(array($this, 'valid_email'));
|
||
$form->group('')->label(url_lang::lang('texts.Account informations'));
|
||
//$form->dropdown('acctype')->label(url_lang::lang('texts.Account type').':')->options(array('analytic'=>url_lang::lang('texts.Double entry account'),'bank'=>url_lang::lang('texts.Bank account')));
|
||
if ($this->acl_check_new(get_class($this),'current_credit'))
|
||
$form->input('current_credit')->label(url_lang::lang('texts.Current credit').':')->rules('valid_numeric');
|
||
$form->input('entrance_fee')->label(url_lang::lang('texts.Entrance fee').':')->rules('valid_numeric');
|
||
... | ... | |
{
|
||
$form_data[$key] = htmlspecialchars($value);
|
||
}
|
||
$user = new User_Model();
|
||
$member = new Member_Model();
|
||
$account = new Account_Model();
|
||
|
||
$account->type = 'analytic';
|
||
$account->name = $form_data['membername'];
|
||
$user = new User_Model();
|
||
$member = new Member_Model();
|
||
$account = new Account_Model();
|
||
$enum = new Enum_type_Model();
|
||
|
||
if ($this->acl_check_new(get_class($this),'current_credit'))
|
||
$account->start_amount = $form_data['current_credit'];
|
||
$account->type = $enum->get_type_id('credit');
|
||
$account->name = $form_data['membername'];
|
||
|
||
$user->name = $form_data['name'];
|
||
$user->middle_name = $form_data['middle_name'];
|
||
$user->login = $form_data['login'];
|
||
$user->surname = $form_data['surname'];
|
||
$user->pre_title = $form_data['pre_title'];
|
||
$user->post_title = $form_data['post_title'];
|
||
$user->birthday = date("Y-m-d",$form_data['birthday']);
|
||
$user->phone = $form_data['phone'];
|
||
$user->email = $form_data['email'];
|
||
$user->password = sha1($form_data['passwd']);
|
||
$user->type = "member";
|
||
//if ($this->acl_check_new(get_class($this),'current_credit'))
|
||
// $account->start_amount = $form_data['current_credit'];
|
||
|
||
$member->type = $form_data['type'];
|
||
$member->comment = $form_data['comment'];
|
||
$member->entrance_date = date("Y-m-d",$form_data['entrance_date']);
|
||
$member->name = $form_data['membername'];;
|
||
$member->street = $form_data['street'];
|
||
$member->street_number = $form_data['street_number'];
|
||
$member->town = $form_data['town'];
|
||
$member->ZIP_code = $form_data['zip_code'];
|
||
$member->qos_ceil = $form_data['qos_ceil'];
|
||
$member->qos_rate = $form_data['qos_rate'];
|
||
$member->entrance_fee = $form_data['entrance_fee'];
|
||
$member->entrance_fee_left = $form_data['entrance_fee_left'];
|
||
$member->debt_payment_rate = $form_data['debt_payment_rate'];
|
||
$user->name = $form_data['name'];
|
||
$user->middle_name = $form_data['middle_name'];
|
||
$user->login = $form_data['login'];
|
||
$user->surname = $form_data['surname'];
|
||
$user->pre_title = $form_data['pre_title'];
|
||
$user->post_title = $form_data['post_title'];
|
||
$user->birthday = date("Y-m-d",$form_data['birthday']);
|
||
$user->phone = $form_data['phone'];
|
||
$user->email = $form_data['email'];
|
||
$user->password = sha1($form_data['passwd']);
|
||
$user->type = "member";
|
||
|
||
// to do - correct enumeration
|
||
$member->type = $form_data['type'];
|
||
|
||
$member->comment = $form_data['comment'];
|
||
$member->entrance_date = date("Y-m-d",$form_data['entrance_date']);
|
||
$member->name = $form_data['membername'];;
|
||
$member->street = $form_data['street'];
|
||
$member->street_number = $form_data['street_number'];
|
||
$member->town = $form_data['town'];
|
||
$member->ZIP_code = $form_data['zip_code'];
|
||
$member->qos_ceil = $form_data['qos_ceil'];
|
||
$member->qos_rate = $form_data['qos_rate'];
|
||
$member->entrance_fee = $form_data['entrance_fee'];
|
||
$member->entrance_fee_left = $form_data['entrance_fee_left'];
|
||
$member->debt_payment_rate = $form_data['debt_payment_rate'];
|
||
|
||
// current credit shouldn't be saved, it should be always calculated from money transfers
|
||
if ($this->acl_check_new(get_class($this),'current_credit'))
|
||
$member->current_credit = $form_data['current_credit'];
|
||
$member->current_credit = $form_data['current_credit'];
|
||
|
||
if ($this->acl_check_new(get_class($this),'must_pay'))
|
||
$member->must_pay_regular_fee = $form_data['must_pay_regular_fee'];
|
||
|
||
$member_saved = $member->save();
|
||
|
||
$user->member_id = $member->id;
|
||
$account->member_id = $member->id;
|
||
$user->member_id = $member->id;
|
||
$account->member_id = $member->id;
|
||
|
||
$user_saved = $user->save();
|
||
|
freenetis/trunk/kohana/application/controllers/installation.php | ||
---|---|---|
|
||
public function index()
|
||
{
|
||
|
||
$form = new Forge(url_lang::base()."installation", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.login data'));
|
||
$form->input('login')->label(url_lang::lang('texts.username').':')->rules('required|length[3,50]')->value('admin');
|
||
$form->password('passwd')->label(url_lang::lang('texts.password').':')->rules('required|length[3,50]')->class('required');
|
||
$form->password('confirm_password')->label(url_lang::lang('texts.confirm password').':')->rules('required|length[3,50]')->matches($form->passwd);
|
||
|
||
$form->group('')->label(url_lang::lang('texts.contact data'));
|
||
$form->input('pre_title')->label(url_lang::lang('texts.pre title').':')->rules('length[3,40]');
|
||
$form->input('name')->label(url_lang::lang('texts.name').':')->rules('required|length[3,30]');
|
||
$form->input('middle_name')->label(url_lang::lang('texts.middle name').':')->rules('length[3,30]');
|
||
$form->input('surname')->label(url_lang::lang('texts.surname').':')->rules('required|length[3,60]');
|
||
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]');
|
||
$form->date('birthday')->label(url_lang::lang('texts.birthday').':')->years(date('Y')-100, date('Y'))->rules('required');
|
||
$form->input('street')->label(url_lang::lang('texts.street').':')->rules('required|length[1,200]');
|
||
$form->input('street_number')->label(url_lang::lang('texts.street number').':')->rules('required|length[1,50]');
|
||
$form->input('town')->label(url_lang::lang('texts.town').':')->rules('required|length[3,200]');
|
||
$form->input('zip_code')->label(url_lang::lang('texts.zip code').':')->rules('required|length[5,10]');
|
||
$form->input('phone')->label(url_lang::lang('texts.phone').':')->rules('required|length[9,40]')->callback(array($this, 'valid_phone'));
|
||
$form->input('email')->label(url_lang::lang('texts.email').':')->rules('length[3,50]');
|
||
|
||
$form->submit('submit')->value(url_lang::lang('texts.Install'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
$form->group('')->label(url_lang::lang('texts.login data'));
|
||
$form->input('login')->label(url_lang::lang('texts.username').':')->rules('required|length[3,50]')->value('admin');
|
||
$form->password('passwd')->label(url_lang::lang('texts.password').':')->rules('required|length[3,50]')->class('required');
|
||
$form->password('confirm_password')->label(url_lang::lang('texts.confirm password').':')->rules('required|length[3,50]')->matches($form->passwd);
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Association information'));
|
||
$form->input('name')->label(url_lang::lang('texts.Name of the association').':')->rules('required|length[3,30]');
|
||
$form->date('foundation')->label(url_lang::lang('texts.Date of foundation').':')->years(date('Y')-100, date('Y'))->rules('required');
|
||
$form->input('street')->label(url_lang::lang('texts.street').':')->rules('required|length[1,200]');
|
||
$form->input('street_number')->label(url_lang::lang('texts.street number').':')->rules('required|length[1,50]');
|
||
$form->input('town')->label(url_lang::lang('texts.town').':')->rules('required|length[3,200]');
|
||
$form->input('zip_code')->label(url_lang::lang('texts.zip code').':')->rules('required|length[5,10]');
|
||
$form->input('phone')->label(url_lang::lang('texts.phone').':')->rules('required|length[9,40]')->callback(array($this, 'valid_phone'));
|
||
$form->input('email')->label(url_lang::lang('texts.email').':')->rules('length[3,50]');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Bank information'));
|
||
$form->input('account_nr')->label(url_lang::lang('texts.Number of the first account'))->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'));
|
||
|
||
$form->submit('submit')->value(url_lang::lang('texts.Install'));
|
||
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
if ($form->validate())
|
||
{
|
||
|
||
... | ... | |
$form_data[$key] = htmlspecialchars($value);
|
||
}
|
||
|
||
$this->upgrade_sql();
|
||
$this->upgrade_sql();
|
||
|
||
$member = new Member_Model();
|
||
$member->registration = NULL;
|
||
$member->name = $form_data["name"].' '.$form_data["surname"];
|
||
$member->name = $form_data["name"];
|
||
$member->street_number = $form_data["street_number"];
|
||
$member->street = $form_data["street"];
|
||
$member->town = $form_data["town"];
|
||
$member->ZIP_code = $form_data["zip_code"];
|
||
$member->type = 4;
|
||
$member->entrance_date = date("Y-m-d");
|
||
$member->entrance_date = date("Y-m-d", $form_data["foundation"]);
|
||
$member->save();
|
||
|
||
$user = new User_Model();
|
||
$user->member_id = $member->id;
|
||
$user->name = $form_data["name"];
|
||
$user->middle_name = $form_data["middle_name"];
|
||
$user->surname = $form_data["surname"];
|
||
$user->post_title = $form_data["post_title"];
|
||
$user->birthday = date("Y-m-d",$form_data["birthday"]);
|
||
$user->name = $form_data["login"];
|
||
$user->surname = $form_data["login"];
|
||
$user->birthday = date("Y-m-d");
|
||
$user->phone = $form_data["phone"];
|
||
$user->email = $form_data["email"];
|
||
$user->login = $form_data["login"];
|
||
... | ... | |
$user->radius_password = $form_data["phone"];
|
||
$user->save();
|
||
|
||
$enum_type_model = new Enum_type_Model();
|
||
$enum_type_model = new Enum_type_Model();
|
||
|
||
$bank_enum_type = $enum_type_model->where('value','bank')->find();
|
||
|
||
$bank_account = new Account_Model();
|
||
$bank_account->member_id = $member->id;
|
||
$bank_account->name = 'First bank account';
|
||
$bank_account->type_id = $bank_enum_type->id;
|
||
$bank_account->comment = 'First default bank account of association';
|
||
$bank_account->save();
|
||
$bank_enum_type = $enum_type_model->where('value','bank')->find();
|
||
$bank_account = new Account_Model();
|
||
$bank_account->member_id = $member->id;
|
||
$bank_account->name = 'First bank account';
|
||
$bank_account->type_id = $bank_enum_type->id;
|
||
$bank_account->comment = 'First default bank account of association';
|
||
$bank_account->save();
|
||
|
||
$ba = new Bank_account_Model();
|
||
$ba->account_id = $bank_account->id;
|
||
$ba->account_nr = $form_data["account_nr"];
|
||
$ba->bank_nr = $form_data["bank_nr"];
|
||
$ba->IBAN = $form_data["IBAN"];
|
||
$ba->SWIFT = $form_data["SWIFT"];
|
||
$ba->save();
|
||
|
||
$operating_enum_type = $enum_type_model->where('value','operating')->find();
|
||
$operating_enum_type = $enum_type_model->where('value','operating')->find();
|
||
$operating_account = new Account_Model();
|
||
$operating_account->member_id = $member->id;
|
||
$operating_account->name = 'Operating account';
|
||
$operating_account->type_id = $operating_enum_type->id;
|
||
$operating_account->comment = 'Double-entry operating account of association';
|
||
$operating_account->save();
|
||
|
||
$operating_account = new Account_Model();
|
||
$operating_account->member_id = $member->id;
|
||
$operating_account->name = 'Operating account';
|
||
$operating_account->type_id = $operating_enum_type->id;
|
||
$operating_account->comment = 'Double-entry operating account of association';
|
||
$operating_account->save();
|
||
$infrastructure_enum_type = $enum_type_model->where('value','infrastructure')->find();
|
||
$infrastructure_account = new Account_Model();
|
||
$infrastructure_account->member_id = $member->id;
|
||
$infrastructure_account->name = 'Infrastructure account';
|
||
$infrastructure_account->type_id = $infrastructure_enum_type->id;
|
||
$infrastructure_account->comment = 'Double-entry infrastructure account of association';
|
||
$infrastructure_account->save();
|
||
|
||
$infrastructure_enum_type = $enum_type_model->where('value','infrastructure')->find();
|
||
|
||
$infrastructure_account = new Account_Model();
|
||
$infrastructure_account->member_id = $member->id;
|
||
$infrastructure_account->name = 'Infrastructure account';
|
||
$infrastructure_account->type_id = $infrastructure_enum_type->id;
|
||
$infrastructure_account->comment = 'Double-entry infrastructure account of association';
|
||
$infrastructure_account->save();
|
||
|
||
$suppliers_enum_type = $enum_type_model->where('value','suppliers')->find();
|
||
|
||
$suppliers_account = new Account_Model();
|
||
$suppliers_account->member_id = $member->id;
|
||
$suppliers_account->name = 'Account of suppliers';
|
||
$suppliers_account->type_id = $suppliers_enum_type->id;
|
||
$suppliers_account->comment = 'Double-entry account of suppliers';
|
||
$suppliers_account->save();
|
||
|
||
$suppliers_enum_type = $enum_type_model->where('value','suppliers')->find();
|
||
$suppliers_account = new Account_Model();
|
||
$suppliers_account->member_id = $member->id;
|
||
$suppliers_account->name = 'Account of suppliers';
|
||
$suppliers_account->type_id = $suppliers_enum_type->id;
|
||
$suppliers_account->comment = 'Double-entry account of suppliers';
|
||
$suppliers_account->save();
|
||
|
||
url::redirect(url_lang::base().'login');
|
||
die();
|
||
|
||
}
|
||
|
||
|
||
$view = new View('installation');
|
||
$view->title = url_lang::lang('texts.Installation');
|
||
$view->form = $form->html();
|
||
$view->render(TRUE);
|
||
$view = new View('installation');
|
||
$view->title = url_lang::lang('texts.Installation');
|
||
$view->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
|
||
... | ... | |
$input->add_error('required', url_lang::lang('texts.Bad phone format.'));
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
freenetis/trunk/kohana/application/controllers/money_transfers.php | ||
---|---|---|
<?php
|
||
class Money_Transfers_Controller extends Controller {
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* By default, it redirects user to his member's money transfers.
|
||
* @return unknown_type
|
||
*/
|
||
function index()
|
||
{
|
||
url::redirect(url_lang::base().'money_transfers/show_all');
|
||
$member_id = $this->session->get('member_id');
|
||
url::redirect(url_lang::base().'money_transfers/show_by_member/'.$member_id);
|
||
}
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It shows all items from money_transfers table.
|
||
* This function now seems useless.
|
||
* @param $limit_results
|
||
* @param $order_by
|
||
* @param $order_by_direction
|
||
... | ... | |
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It shows transactions of bank account. Transaction list includes bank information like
|
||
* It shows money transfers of bank account. Transaction list includes bank information like
|
||
* variable symbol or bank account number.
|
||
* @param $account_id
|
||
* @return unknown_type
|
||
... | ... | |
|
||
$transfers = $money_transfer_model->get_bank_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 bank account'), array(
|
||
$account_model = new Account_Model();
|
||
$bank_account_number = $account_model->get_bank_account_number($account_id);
|
||
|
||
$grid = new Grid(url_lang::base().'money_transfers', url_lang::lang('texts.Money transfers of bank account').' '.$bank_account_number, array(
|
||
//'separator' => '<br />-----------',
|
||
//'use_paginator' => false,
|
||
//'use_selector' => false,
|
||
... | ... | |
$view->content = $grid;
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.Money transfers');
|
||
$view->header->title = url_lang::lang('texts.Money transfers of bank account').' '.$bank_account_number;
|
||
$view->render(TRUE);
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);;
|
||
}
|
||
} // end of show_by_member function
|
||
} // end of show_by_bank_account function
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It shows money transfers of double-entry 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')
|
||
{
|
||
if (isset($account_id))
|
||
{
|
||
// to do - access control
|
||
if(!$this->acl_check_view('Accounts_Controller', 'transfers', $account_id))
|
||
Controller::Error(1);
|
||
|
||
// 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('mt.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 = '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);
|
||
|
||
$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);
|
||
|
||
$grid = new Grid(url_lang::base().'money_transfers', url_lang::lang('texts.Money transfers of double-entry account'), array(
|
||
//'separator' => '<br />-----------',
|
||
//'use_paginator' => false,
|
||
//'use_selector' => false,
|
||
'current' => $limit_results, // current selected 'records_per_page' value
|
||
'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 ,
|
||
'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
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results,
|
||
'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'));
|
||
$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'));
|
||
$grid->order_field('amount')->label(url_lang::lang('texts.Amount'));
|
||
$grid->order_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->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->render(TRUE);
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);;
|
||
}
|
||
} // end of show_by_bank_account function
|
||
|
||
/**
|
||
* It shows unidentified bank transfers.
|
||
* @param $limit_results
|
||
* @param $order_by
|
||
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
function unidentified_transfers($limit_results = 50, $order_by = 'timestamp', $order_by_direction = 'DESC')
|
||
{
|
||
// to do - access rights
|
||
//if (!$this->acl_check_view(get_class($this), 'unidentified_transfers'))
|
||
// Controller::error(1);
|
||
|
||
// get new selector
|
||
if (is_numeric($this->input->get('record_per_page')))
|
||
$limit_results = (int) $this->input->get('record_per_page');
|
||
|
||
// parameters control
|
||
$allowed_order_type = array('mt.id', 'destination_id', 'timestamp', 'amount', 'variable_symbol', 'constant_symbol', 'specific_symbol', 'name', 'date_time', 'fee_transfer_id');
|
||
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';
|
||
|
||
$model_bank_transfer = new Money_transfer_bank_info_Model();
|
||
$total_transfers = $model_bank_transfer->count_unidentified_transfers();
|
||
|
||
$model_account= new Account_Model();
|
||
$model_account->find_by_type('master');
|
||
$acc_name = $model_account->name;
|
||
$acc_id = $model_account->id;
|
||
|
||
$url_array = explode('/', trim(url::current(), '/'));
|
||
$sql_offset = (isset($url_array[7])) ? (int) ($url_array[7] - 1) * $limit_results : 0;
|
||
unset($url_array);
|
||
|
||
$sql_offset = ($sql_offset>$total_transfers) ? 0 : $sql_offset;
|
||
|
||
$transfers = $model_bank_transfer->get_unidentified_transfers($acc_id,$sql_offset, (int)$limit_results, $order_by, $order_by_direction);
|
||
|
||
$grid = new Grid(url_lang::base().'accounts', null,array(
|
||
'separator' => '<br />',
|
||
//'use_paginator' => false,
|
||
//'use_selector' => false,
|
||
'current' => $limit_results, // current selected 'records_per_page' value
|
||
'selector_increace' => 50, // increace
|
||
'selector_min' => 50, // minimum where selector start
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::item('locale.lang').'/accounts/unidentified_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_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
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results,
|
||
//'variables' => $acc_id.'/',
|
||
'url_array_ofset' => 0
|
||
),'unident_grid_template');
|
||
|
||
|
||
//$grid->add_new_button(url_lang::base().'accounts/new_transfer/'.$member_id, url_lang::lang('texts.New transfer'));
|
||
$grid->order_field('mtid','mt.id')->label('ID');
|
||
$grid->order_field('timestamp')->label(url_lang::lang('texts.Time'));
|
||
$grid->order_field('amount')->label(url_lang::lang('texts.Amount'))->style('style="width:80px;"');
|
||
$grid->order_field('variable_symbol')->label(url_lang::lang('texts.Variable symbol'));
|
||
$grid->order_field('name')->label(url_lang::lang('texts.Account name'));
|
||
$grid->field('text')->label(url_lang::lang('texts.Completive informations'));
|
||
|
||
$grid->action_field('mtid') ->label(url_lang::lang('texts.Details'))->url(url_lang::base().'accounts/unidentified_detail')->action(url_lang::lang('texts.Details'))->style('style="text-align:center;"');
|
||
$grid->action_field('mtid') ->label(url_lang::lang('texts.Assign transfer'))->url(url_lang::base().'accounts/assign_transfer')->action(url_lang::lang('texts.Assign'))->style('style="text-align:center;"');
|
||
|
||
$grid->datasource( $transfers );
|
||
$this->template->content = $grid;
|
||
|
||
unset($grid);
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
// $view->content = new View('content', $data);
|
||
$view->content = new View('unidentified_transfers');
|
||
$view->content->acc_name = $acc_name;
|
||
$view->content->acc_id = $acc_id;
|
||
$view->content->member_id = $model_account->owner_id;
|
||
$view->content->message = $this->session->get_once('message');
|
||
$view->content->transfers = $this->template->content;
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.Unidentified transfers');
|
||
$view->render(TRUE);
|
||
} // end of unidentified_transfers function
|
||
|
||
}
|
||
?>
|
freenetis/trunk/kohana/application/controllers/accounts.php | ||
---|---|---|
|
||
function index()
|
||
{
|
||
url::redirect(url_lang::base().'accounts/transfers');
|
||
url::redirect(url_lang::base().'accounts/doubleentry_accounts');
|
||
}
|
||
|
||
// commented by Jiri Svitak, useless function
|
||
... | ... | |
// it selects only bank accounts of association
|
||
$acc_model = new Account_Model();
|
||
// to do - simplification of enum types
|
||
$accs = $acc_model->join('enum_types', 'enum_types.id = accounts.type_id')->where(array('member_id' => 1, 'enum_types.value' => 'bank'))->find_all();
|
||
$accs = $acc_model->get_assoc_bank_accounts();
|
||
$total_accs = count($accs);
|
||
|
||
$acc_grid = new Grid(url_lang::base().'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->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/parse_ebank_account')->action(url_lang::lang('texts.Import'));
|
||
$acc_grid->datasource($accs);
|
||
|
||
$view = new View('template');
|
||
... | ... | |
|
||
/**
|
||
* @author Jiri Svitak
|
||
* It shows double-entry accounts like credit accounts of members, project, infrastructure, operating accounts.
|
||
* It shows double-entry accounts like credit accounts of members, project,
|
||
* infrastructure and operating accounts.
|
||
* @param $limit_results
|
||
* @param $order_by
|
||
* @param $order_by_direction
|
||
... | ... | |
*/
|
||
function doubleentry_accounts($limit_results = 50, $order_by = 'id', $order_by_direction = 'DESC')
|
||
{
|
||
// it selects only double
|
||
// it selects only double-entry accounts
|
||
$acc_model = new Account_Model();
|
||
// to do - simplification of enum types
|
||
$accs = $acc_model->get_doubleentry_accounts();
|
||
$total_accs = count($accs);
|
||
|
||
... | ... | |
$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->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->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);
|
||
|
||
$view = new View('template');
|
||
... | ... | |
|
||
} // end of unidentified_detail function
|
||
|
||
// commented by Jiri Svitak
|
||
// moved to money_transfers controller and rewritten
|
||
/*
|
||
function unidentified_transfers($limit_results = 50, $order_by = 'timestamp', $order_by_direction = 'DESC')
|
||
{
|
||
if (!$this->acl_check_view(get_class($this), 'unidentified_transfers')) Controller::error(1);
|
||
... | ... | |
$view->render(TRUE);
|
||
|
||
} // end of unidentified_transfers function
|
||
*/
|
||
|
||
/***************************** SPECIAL AND AJAX FUNCTIONS ************************
|
||
**********************************************************************************
|
freenetis/trunk/kohana/application/libraries/MY_Controller.php | ||
---|---|---|
$acc_menu = '<li>'.html::anchor(url_lang::base().'works/uncorfirmed/', url_lang::lang('texts.Unconfirmed works')).'</li>';
|
||
|
||
if ($this->acl_check_2D('menu', 'unidentified_transfers'))
|
||
$acc_menu .= '<li>'.html::anchor(url_lang::base().'accounts/unidentified_transfers/', url_lang::lang('texts.Unidentified transfers')).'</li>';
|
||
$acc_menu .= '<li>'.html::anchor(url_lang::base().'money_transfers/unidentified_transfers/', url_lang::lang('texts.Unidentified transfers')).'</li>';
|
||
|
||
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>
|
freenetis/trunk/kohana/application/views/members_show.php | ||
---|---|---|
<h2><?php echo url_lang::lang('texts.Member').' ' ?><?php echo ($member_data->pre_title!=' ') ? $member_data->pre_title.' ' : '' ?><?php echo $member_data->name.' ' ?> <?php echo ($member_data->middle_name!=' ') ? $member_data->middle_name.' ' : '' ?><?php echo $member_data->surname.' '.$member_data->post_title ?></h2><br />
|
||
<h2>
|
||
<?php echo url_lang::lang('texts.Member').' ' ?>
|
||
<?php //echo ($member_data->pre_title!=' ') ? $member_data->pre_title.' ' : '' ?>
|
||
<?php //echo $member_data->name.' ' ?>
|
||
<?php //echo ($member_data->middle_name!=' ') ? $member_data->middle_name.' ' : '' ?>
|
||
<?php //echo $member_data->surname.' '.$member_data->post_title ?>
|
||
<?php echo $member_data->namem ?>
|
||
</h2>
|
||
<br />
|
||
|
||
<?php echo $message ? '<div class="message">'.$message.'</div>' : '' ?>
|
||
|
freenetis/trunk/kohana/application/views/installation.php | ||
---|---|---|
</div>
|
||
<h2><?php echo $title ?></h2><br />
|
||
<p><?php echo url_lang::lang('texts.Welcome to the Freenetis!'); ?>
|
||
<?php echo url_lang::lang('texts.Please fill in the form with information about your administrator member.'); ?>
|
||
<?php echo url_lang::lang('texts.This member represents your association in the system.'); ?>
|
||
<?php echo url_lang::lang('texts.Please fill in the form with information about your association.'); ?>
|
||
</p>
|
||
<br />
|
||
<?php echo $form ?>
|
Také k dispozici: Unified diff
Pridano zobrazeni prevodu u podvojnych uctu. Predelana instalace. Predelano ukladani uctu u noveho clena, kvuli enum_types. Pridano tlacitko pro import u bankovnich uctu. OD TETO VERZE NEAKTUALIZOVAT NA OSTREM FREENETISU KVULI ZMENE V PRIDAVANI NOVYCH CLENU.