Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 261

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

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.

Zobrazit rozdíly:

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!='&nbsp;') ? $member_data->pre_title.' ' : '' ?><?php echo $member_data->name.' ' ?> <?php echo ($member_data->middle_name!='&nbsp;') ? $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!='&nbsp;') ? $member_data->pre_title.' ' : '' ?>
<?php //echo $member_data->name.' ' ?>
<?php //echo ($member_data->middle_name!='&nbsp;') ? $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