Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 263

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

Opravena chyba v pridavani clenu. V instalaci pridano zadani nazvu bankovniho uctu. Rozdelano zobrazovani neidentifikovanych plateb.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'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',
......
'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',
......
'system variables havent been updated' => 'Systémové proměnné nebyly úspěšně aktualizovány',
'tag_802_1q' => 'tag 802.1Q',
'technology' => 'Technologie',
'the first bank account information' => 'Údaje o prvním bankovím účtu',
'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.',
freenetis/trunk/kohana/application/models/money_transfer.php
)->count();
}
/**
* @author Jiri Svitak
* It gets all unidentified bank transfers from db. Unidentified transfer is that with bank info only
* and no other transfer has set previous_transfer_id to this transfer.
* @return unknown_type
*/
public function get_unidentified_transfers($limit_from = 0, $limit_results = 20, $order_by = 'mt.id', $order_by_direction = 'DESC')
{
if ($order_by == 'amount')
$order_by = 'IF( mt.destination_id = '.$account_id.', amount, amount*-1 )';
return self::$db->query("SELECT mt.id as mtid, mt.*
FROM money_transfers mt
WHERE mt.previous_transfer_id IS NULL
ORDER BY ".$order_by." ".$order_by_direction."
LIMIT ".$limit_from." , ".$limit_results
);
}
public function get_last_transfers($account_id = null)
{
return self::$db->query('SELECT mt. * , mt.id AS mtid, bi.*
freenetis/trunk/kohana/application/models/money_transfer_bank_info.php
<?php
class Money_transfer_bank_info_Model extends ORM {
// commented by Jiri Svitak
// useless functions
/*
public function count_unidentified_transfers()
{
return (int) self::$db->where(array('identified' => 0))->count_records('money_transfer_bank_infos');
......
LIMIT '.$limit_from.' , '.$limit_results.''
);
}
*/
}
?>
freenetis/trunk/kohana/application/models/enum_type.php
$type_id = self::$db->query("SELECT id
FROM enum_types
WHERE value = '".$value."'
COLLATE utf8_czech_ci");
COLLATE utf8_general_ci");
return $type_id->current()->id;
}
freenetis/trunk/kohana/application/controllers/members.php
$account = new Account_Model();
$enum = new Enum_type_Model();
$account->type = $enum->get_type_id('credit');
$account->type_id = $enum->get_type_id('credit');
$account->name = $form_data['membername'];
//if ($this->acl_check_new(get_class($this),'current_credit'))
freenetis/trunk/kohana/application/controllers/installation.php
$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->group('')->label(url_lang::lang('texts.The first bank account information'));
$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'));
......
$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->name = $form_data["account_name"];
$bank_account->type_id = $bank_enum_type->id;
$bank_account->comment = 'First default bank account of association';
$bank_account->comment = $form_data["account_comment"];
$bank_account->save();
$ba = new Bank_account_Model();
freenetis/trunk/kohana/application/controllers/money_transfers.php
* @param $order_by_direction
* @return unknown_type
*/
function unidentified_transfers($limit_results = 50, $order_by = 'timestamp', $order_by_direction = 'DESC')
function unidentified_transfers($limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'DESC')
{
// to do - access rights
//if (!$this->acl_check_view(get_class($this), 'unidentified_transfers'))
......
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;
*/
$mt_model = new Money_transfer_Model();
$total_transfers = $mt_model->count_unidentified();
$url_array = explode('/', trim(url::current(), '/'));
$sql_offset = (isset($url_array[7])) ? (int) ($url_array[7] - 1) * $limit_results : 0;
......
$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);
// could be specified for particular bank account of association
$transfers = $mt_model->get_unidentified_transfers($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
$grid = new Grid(url_lang::base().'accounts', null,array(
$grid = new Grid(url_lang::base().'money_transfers', url_lang::lang('texts.Unidentified transfers'),array(
'separator' => '<br />',
//'use_paginator' => false,
//'use_selector' => false,
......
'selector_increace' => 50, // increace
'selector_min' => 50, // minimum where selector start
'selector_max_multiplier' => 10,
'base_url' => Config::item('locale.lang').'/accounts/unidentified_transfers/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
'base_url' => Config::item('locale.lang').'/money_transfers/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
......
'limit_results' => $limit_results,
//'variables' => $acc_id.'/',
'url_array_ofset' => 0
),'unident_grid_template');
));//,'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('datetime')->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->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->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.Unidentified transfers');
$view->render(TRUE);
/*
$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->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
<?php
/*
ALTER TABLE `money_transfer_bank_infos` ADD COLUMN `comment` VARCHAR(255) after `date_time`;
ALTER TABLE `accounts` DROP COLUMN `number` VARCHAR(255) after `name`;
ALTER TABLE `accounts` CHANGE `owner_id` `member_id` INT( 11 ) NULL DEFAULT NULL ;
CREATE TABLE bank_accounts (
id INT(10) NOT NULL
, account_id INT(10) NOT NULL
, account_nr VARCHAR(254)
, bank_nr VARCHAR(10)
, IBAN VARCHAR(254)
, SWIFT VARCHAR(254)
, PRIMARY KEY (id)
, INDEX (account_id)
, CONSTRAINT FK_bank_accounts_1 FOREIGN KEY (account_id)
REFERENCES DEFAULT_SCHEMA.accounts (id)
);
DELETE FROM money_transfer_bank_infos;
DELETE FROM money_transfer;
DELETE FROM accounts;
ALTER TABLE `money_transfer_bank_infos` DROP `name`;
ALTER TABLE `money_transfer_bank_infos` DROP `date_time`;
ALTER TABLE `money_transfer_bank_infos` DROP `identified`;
ALTER TABLE `money_transfers` DROP `bank_info_id`;
ALTER TABLE `money_transfers_bank_infos` DROP `transfer_id`;
* */
class Accounts_Controller extends Controller {
protected $owner_id = NULL;
......
*/
protected $parsed_bank_account = NULL;
//const acc_nr="184932848";
//const acc_url="http://www.rb.cz/firemni-finance/transparentni-ucty/?root=firemni-finance&item1=transparentni-ucty&tr_acc=vypis&account_number=";
function index()
{
url::redirect(url_lang::base().'accounts/doubleentry_accounts');
}
// commented by Jiri Svitak, useless function
/*
function main_accounts($acc_name = 'master')
{
$model_account = new Account_Model();
$model_account->where('type=\''.$acc_name.'\'')->find();
url::redirect(url_lang::base().'accounts/account_transfers/'.$model_account->id);
}
*/
/**
* @author Jiri Svitak
* It shows bank accounts of association.
......
$view->render(TRUE);
}
// commented by Jiri Svitak, probably useless, similar function is in money_transfers
/*
function account_transfers($acc_id = NULL, $limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'DESC')
{
if (isset($acc_id))
{
// 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', 'origin_id', 'destination_id', 'timestamp', 'amount', 'variable_symbol', 'constant_symbol', 'specific_symbol', 'name', 'date_time', 'fee_transfer_id', 'trans_type');
if (!in_array(strtolower($order_by),$allowed_order_type)) $order_by = 'mt.id';
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc') $order_by_direction = 'asc';
$model_transfer = new Money_transfer_Model();
$total_transfers = $model_transfer->count_my_transfers($acc_id);
$model_account= new Account_Model();
$model_account->find_by_id($acc_id);
//if ($model_account->owner_id == $_SESSION['member_id'])
//{
// if (!$this->acl_check_3D('freenetis', 'view_all', 'view_all_transfers')) Controller::error(1);
//}
//else
//{
// if (!$this->acl_check_3D('freenetis', 'view_all', 'view_all_transfers')) Controller::error(1);
//}
$acc_name = $model_account->name;
//$acc_id = $model_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 = $model_transfer->get_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/account_transfers/'.$acc_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' => $acc_id.'/',
'url_array_ofset' => 1
),'acc_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('trans_type')->label(url_lang::lang('texts.Type'))->bool(array(url_lang::lang('texts.Arrival'),url_lang::lang('texts.Outbound')));
$grid->order_field('amount')->label(url_lang::lang('texts.Amount'))->style('style="width:80px;"');
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.From/To'));
$grid->order_field('timestamp')->label(url_lang::lang('texts.Time'));
$grid->field('name')->label(url_lang::lang('texts.Completive informations'));
$grid->action_field('mtid') ->label(url_lang::lang('texts.Details'))->url(url_lang::base().'accounts/trans_detail')->action(url_lang::lang('texts.Details'))->nextval($model_account->owner_id);
$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('account_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.Account transfers');
//$view->content->heading = "Úprava uživatele ".$data['row']['name']." ".$data['row']['surname'];
//$view->content->form = $form->html();
$view->render(TRUE);
}
else
{
Controller::warning(1);;
}
} // end of account_transfers function
*/
// commented by Jiri Svitak
// moved to Money_transfers controller and rewritten
/*
function transfers($member_id = NULL, $limit_results = 50, $order_by = 'mt.id', $order_by_direction = 'DESC')
{
if (isset($member_id))
{
// check if logged user have access right to view these transfers
if(!$this->acl_check_view(get_class($this),'transfers',$member_id)) 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', 'origin_id', 'destination_id', 'timestamp', 'amount', 'constant_symbol', 'specific_symbol', 'name', 'date_time', 'fee_transfer_id', 'trans_type');
if (!in_array(strtolower($order_by),$allowed_order_type)) $order_by = 'mt.id';
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc') $order_by_direction = 'asc';
$account_model = new Account_Model();
$account = $account_model->find_by_member_id($member_id);
$money_transfer_model = new Money_transfer_Model();
$total_transfers = $money_transfer_model->count_my_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_transfers($account->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/transfers/'.$member_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' => $member_id.'/',
'url_array_ofset' => 1
),'acc_grid_template');
if($this->acl_check_new(get_class($this),'transfers',$member_id))
$grid->add_new_button(url_lang::base().'accounts/new_transfer/'.$account->id, url_lang::lang('texts.New transfer'));
$grid->add_new_button(url_lang::base().'members/show/'.$account->member_id, url_lang::lang('texts.Back to the member'));
$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('amount')->label(url_lang::lang('texts.Amount'));
$grid->order_field('aname', 'name')->label(url_lang::lang('texts.From/To'));
$grid->order_field('timestamp')->label(url_lang::lang('texts.Time'));
$grid->field('name')->label(url_lang::lang('texts.Completive informations'));
$grid->action_field('mtid') ->label(url_lang::lang('texts.Details'))->url(url_lang::base().'accounts/trans_detail')->action(url_lang::lang('texts.Details'))->nextval($member_id);
$grid->datasource( $transfers );
$this->template->content = $grid;
unset($grid);
// ****************** ZOBRAZENI VSECH PROJEKTOVYCH UCTU
$projects = $account_model->where('type','project')->find_all_by_member_id($member_id);
$arr_projects = array();
$i = 0;
foreach ($projects as $project)
{
$project_transfers = $transfer_model->get_transfers($project->id);
$grid = new Grid(url_lang::base().'accounts', null,array(
//'separator' => '<br />-----------',
'use_paginator' => false,
'use_selector' => false,
'variables' => $member_id.'/',
'url_array_ofset' => 1
),'acc_grid_template');
$grid->add_new_button(url_lang::base().'accounts/new_transfer/'.$project->id, url_lang::lang('texts.New transfer'),' | ');
$grid->add_new_button(url_lang::base().'accounts/account_transfers/'.$project->id, url_lang::lang('texts.Show all transfers on the account'));
$grid->field('mtid','mt.id')->label('ID');
$grid->field('trans_type')->label(url_lang::lang('texts.Type'))->bool(array(url_lang::lang('texts.Arrival'),url_lang::lang('texts.Outbound')));
$grid->field('amount')->label(url_lang::lang('texts.Amount'));
$grid->field('aname')->label(url_lang::lang('texts.From/To'));
$grid->field('timestamp')->label(url_lang::lang('texts.Time'));
$grid->field('name')->label(url_lang::lang('texts.Completive informations'));
$grid->action_field('mtid') ->label(url_lang::lang('texts.Details'))->url(url_lang::base().'accounts/trans_detail')->action(url_lang::lang('texts.Details'))->nextval($member_id);
$grid->datasource( $transfers );
$arr_projects[$i]['name'] = $project->name;
$arr_projects[$i]['grid'] = $grid;
$arr_projects[$i]['credit'] = $model_transfer->count_credit($project->id)+(float)$project->start_amount;
unset($grid);
$i++;
}
/******************* KONEC PROJEKTOVYCH UCTU ************************
$all_accounts = $account_model->find_all_by_member_id($member_id);
// print_r();
$grid = new Grid(url_lang::base().'accounts', null,array(
//'separator' => '<br />-----------',
'use_paginator' => false,
'use_selector' => false,
'variables' => $member_id.'/',
'url_array_ofset' => 1
));
if ($this->gacl_class->acl_check('freenetis', 'new_own', 'all', $_SESSION['username'],get_class($this),'add_accounts')) $grid->add_new_button(url_lang::base().'accounts/add/'.$member_id, url_lang::lang('texts.Add new account'));
$grid->field('id')->label('ID');
$grid->field('name')->label(url_lang::lang('texts.Name'));
$grid->field('type')->label(url_lang::lang('texts.Type'));
$grid->field('comment')->label(url_lang::lang('texts.Comment'));
$grid->action_field('id') ->label(url_lang::lang('texts.Details'))->url(url_lang::base().'accounts/detail')->action(url_lang::lang('texts.Details'))->nextval($member_id);
$grid->action_field('id') ->label(url_lang::lang('texts.Details'))->url(url_lang::base().'accounts/account_transfers')->action(url_lang::lang('texts.Transfers'));
$grid->action_field('id') ->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'accounts/edit') ->action(url_lang::lang('texts.Edit'));
$grid->action_field('id') ->label(url_lang::lang('texts.Delete')) ->url(url_lang::base().'accounts/delete') ->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.Really delete this account').'\');"');
$grid->datasource( $all_accounts );
$view = new View('template');
$view->header = new View('base/header');
// $view->content = new View('content', $data);
$view->content = new View('account');
$view->content->account_name = $account->name;
$view->content->account_id = $account->id;
$view->content->member_id = $member_id;
$view->content->transfers = $this->template->content;
//$view->content->transfers = '';
//$view->content->accounts = $grid;
//$view->content->projects_acc = $projects_acc_data;
$view->content->projects = $arr_projects;
$view->footer = new View('base/footer');
$view->header->menu = Controller::render_menu();
$view->header->title = url_lang::lang('texts.Account transfers');
//$view->content->heading = "Úprava uživatele ".$data['row']['name']." ".$data['row']['surname'];
//$view->content->form = $form->html();
$view->render(TRUE);
}
else
{
Controller::warning(1);;
}
} // end of transfers function
*/
// probably useless function
function trans_detail($transfer_id = NULL, $member_id = NULL)
{
if (isset($transfer_id) && isset($member_id))

Také k dispozici: Unified diff