Revize 2134
Přidáno uživatelem Ondřej Fibich před asi 11 roky(ů)
freenetis/branches/1.1/application/controllers/clouds.php | ||
---|---|---|
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_delete('Clouds_Controller', 'clouds'))
|
||
if (!$this->acl_check_new('Clouds_Controller', 'clouds'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
... | ... | |
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_delete('Clouds_Controller', 'clouds'))
|
||
if (!$this->acl_check_new('Clouds_Controller', 'clouds'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
... | ... | |
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_delete('Clouds_Controller', 'clouds'))
|
||
if (!$this->acl_check_edit('Clouds_Controller', 'clouds'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
freenetis/branches/1.1/application/vendors/axo_doc/axo_doc.dtd | ||
---|---|---|
<!ELEMENT axoDocumentation (object)*>
|
||
|
||
<!--- Object that represents a class of the given type. -->
|
||
<!ELEMENT object (method)*>
|
||
<!ELEMENT object (method*,axo*)>
|
||
<!ATTLIST object
|
||
type (controller|helper|library|view) #REQUIRED
|
||
name CDATA #REQUIRED
|
||
hide (true|false) "false"
|
||
comment-en CDATA
|
||
comment-cs CDATA
|
||
comment-en CDATA #IMPLIED
|
||
comment-cs CDATA #IMPLIED
|
||
>
|
||
|
||
<!--- Method of the object -->
|
||
... | ... | |
<!ATTLIST method
|
||
name CDATA #REQUIRED
|
||
hide (true|false) "false"
|
||
comment-en CDATA
|
||
comment-cs CDATA
|
||
comment-en CDATA #IMPLIED
|
||
comment-cs CDATA #IMPLIED
|
||
>
|
||
|
||
<!--- An AXO calll -->
|
||
... | ... | |
value CDATA #REQUIRED
|
||
section CDATA #REQUIRED
|
||
action (edit|new|delete|confirm|view) #REQUIRED
|
||
usage_type (unknown|access|breadcrumbs|links|grid-action) #REQUIRED
|
||
usage_type (unknown|access|access-partial|breadcrumbs|links|grid-action) #REQUIRED
|
||
>
|
||
|
||
<!-- Comment in a defined language for the AXO call -->
|
||
<!ELEMENT comment EMPTY>
|
||
<!ELEMENT comment (#PCDATA)>
|
||
<!ATTLIST comment
|
||
lang (en|cs) #REQUIRED
|
||
>
|
freenetis/branches/1.1/application/vendors/axo_doc/axo_doc.xml | ||
---|---|---|
<!DOCTYPE axoDocumentation SYSTEM "axo_doc.dtd">
|
||
|
||
<axoDocumentation>
|
||
<object name="accounts" type="controller">
|
||
<object name="accounts" type="controller"
|
||
comment-en="Credit accounts and recalculation of fees and balances"
|
||
comment-cs="Kreditní účty a přepočítání poplatků a stavů účtů">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
... | ... | |
<axo section="Accounts_Controller" value="accounts" action="edit" own="false" usage_type="access"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="acl" type="controller">
|
||
<object name="acl" type="controller"
|
||
comment-en="Access rights"
|
||
comment-cs="Přístupová práva">
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<axo section="Acl_Controller" value="acl" action="view" own="false" usage_type="access"></axo>
|
||
... | ... | |
<axo section="Acl_Controller" value="acl" action="delete" own="false" usage_type="access"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="address_points" type="controller">
|
||
<object name="address_points" type="controller"
|
||
comment-en="Address points"
|
||
comment-cs="Adresní body">
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<axo usage_type="access" section="Address_points_Controller" value="address_point" action="view" own="false"></axo>
|
||
... | ... | |
<method name="get_gps_by_address"></method>
|
||
<method name="autocomplete_gps"></method>
|
||
</object>
|
||
<object name="allowed_subnets" type="controller">
|
||
<object name="allowed_subnets" type="controller"
|
||
comment-en="Allowed subnets of a member"
|
||
comment-cs="Povolené podsítě člena">
|
||
<method name="show_by_member">
|
||
<axo usage_type="access" section="Allowed_subnets_Controller" value="allowed_subnet" action="view" own="true"></axo>
|
||
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
... | ... | |
<axo usage_type="access" section="Allowed_subnets_Controller" value="allowed_subnet" action="edit" own="true"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="allowed_subnets_counts" type="controller">
|
||
<object name="allowed_subnets_counts" type="controller"
|
||
comment-en="Count of allow subnets of a member"
|
||
comment-cs="Počet povolených podsítí člena">
|
||
<method name="edit">
|
||
<axo usage_type="access" section="Allowed_subnets_Controller" value="allowed_subnet" action="edit" own="true"></axo>
|
||
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="true"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="approval_template_items" type="controller">
|
||
<object name="approval_template_items" type="controller"
|
||
comment-en="Approval template items"
|
||
comment-cs="Položky schvalovací šablony">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="add">
|
||
... | ... | |
<axo usage_type="access" section="approval" value="template_items" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="approval_templates" type="controller">
|
||
<object name="approval_templates" type="controller"
|
||
comment-en="Approval templates - defines vote rules"
|
||
comment-cs="Schvalovací šablony - definují hlasovací pravidla">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
... | ... | |
<axo usage_type="access" section="approval" value="templates" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="approval_types" type="controller">
|
||
<object name="approval_types" type="controller"
|
||
comment-en="Approval types - defines who should vote about works/requests"
|
||
comment-cs="Hlasovací typy - definuje kdo by měl hlasovat o pracích/požadavcích">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
... | ... | |
<axo usage_type="access" section="approval" value="types" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="aro_groups" type="controller">
|
||
<object name="aro_groups" type="controller"
|
||
comment-en="Access rights - users groups"
|
||
comment-cs="Přístupová práva - skupiny uživatelů">
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<axo usage_type="access" section="Aro_groups_Controller" value="aro_group" action="view" own="false"></axo>
|
||
... | ... | |
<axo usage_type="access" section="Aro_groups_Controller" value="aro_group" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="bank_accounts" type="controller">
|
||
<object name="bank_accounts" type="controller"
|
||
comment-en="Bank accounts"
|
||
comment-cs="Bankovní účty">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<!-- show_all(
|
||
$limit_results = 500, $order_by = 'id', $order_by_direction = 'ASC',
|
||
$page_word = null, $page = 1)
|
||
{
|
||
// access
|
||
if (!$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
// it gets only bank accounts of association
|
||
$bank_account_model = new Bank_account_Model();
|
||
$baa = $bank_account_model->get_assoc_bank_accounts();
|
||
|
||
$baa_headline = __('Bank accounts of association').' '
|
||
. help::hint('bank_accounts_of_association');
|
||
|
||
$baa_grid = new Grid('bank_accounts', null, array
|
||
(
|
||
'use_paginator' => false,
|
||
'use_selector' => false
|
||
));
|
||
|
||
// adding bank account
|
||
if ($this->acl_check_new('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
$baa_grid->add_new_button(
|
||
'bank_accounts/add/1', 'Add new bank account of association'
|
||
);
|
||
}
|
||
|
||
$baa_grid->field('id')
|
||
->label('ID');
|
||
|
||
$baa_grid->field('baname')
|
||
->label('Account name');
|
||
|
||
$baa_grid->callback_field('type')
|
||
->callback('callback::bank_account_type');
|
||
|
||
$baa_grid->field('account_number');
|
||
|
||
$baa_grid->field('mname')
|
||
->label('Member name');
|
||
|
||
$actions = $baa_grid->grouped_action_field();
|
||
|
||
if ($this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
||
{
|
||
$actions->add_action('id')
|
||
->icon_action('transfer')
|
||
->url('bank_transfers/show_by_bank_account')
|
||
->label('Show transfers');
|
||
}
|
||
|
||
if ($this->acl_check_view('Accounts_Controller', 'bank_statements'))
|
||
{
|
||
$actions->add_action('id')
|
||
->icon_action('dumps')
|
||
->url('bank_statements/show_by_bank_account')
|
||
->label('Show statements');
|
||
}
|
||
|
||
if ($this->acl_check_new('Accounts_Controller', 'bank_transfers'))
|
||
{
|
||
$actions->add_conditional_action('id')
|
||
->condition('is_import_of_statement_available')
|
||
->icon_action('import')
|
||
->url('import/upload_bank_file')
|
||
->label('Import');
|
||
}
|
||
|
||
if ($this->acl_check_view('Accounts_Controller', 'bank_account_auto_down_config'))
|
||
{
|
||
$actions->add_conditional_action('id')
|
||
->condition('is_automatical_down_of_statement_available')
|
||
->icon_action('settings_auto')
|
||
->url('bank_accounts_auto_down_settings/show')
|
||
->label('Setup automatical downloading of statements');
|
||
}
|
||
|
||
if ($this->acl_check_edit('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
$actions->add_conditional_action('id')
|
||
->icon_action('edit')
|
||
->url('bank_accounts/edit');
|
||
}
|
||
|
||
$baa_grid->datasource($baa);
|
||
|
||
// bank accounts except association's
|
||
if ($this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
// get new selector
|
||
if (is_numeric($this->input->post('record_per_page')))
|
||
{
|
||
$limit_results = (int) $this->input->post('record_per_page');
|
||
}
|
||
|
||
// parameters control
|
||
$allowed_order_type = array('id', 'baname', 'account_number', 'mname');
|
||
|
||
if (!in_array(strtolower($order_by),$allowed_order_type))
|
||
{
|
||
$order_by = 'id';
|
||
}
|
||
|
||
if (strtolower($order_by_direction) != 'desc')
|
||
{
|
||
$order_by_direction = 'asc';
|
||
}
|
||
|
||
// Create filter form
|
||
$filter_form = new Filter_form();
|
||
|
||
$filter_form->add('name')
|
||
->label('Account name')
|
||
->table('ba')
|
||
->callback('json/bank_account_name');
|
||
|
||
$filter_form->add('account_nr')
|
||
->label('Account number');
|
||
|
||
$filter_form->add('bank_nr')
|
||
->label('Bank code');
|
||
|
||
// bank accounts
|
||
$total_baccounts = $bank_account_model->count_bank_accounts($filter_form->as_sql());
|
||
|
||
if (($sql_offset = ($page - 1) * $limit_results) > $total_baccounts)
|
||
$sql_offset = 0;
|
||
|
||
$ba = $bank_account_model->get_bank_accounts(
|
||
$sql_offset, (int)$limit_results, $order_by,
|
||
$order_by_direction, $filter_form->as_sql()
|
||
);
|
||
|
||
$title = __('Bank accounts').' '.help::hint('bank_accounts');
|
||
|
||
$grid = new Grid('bank_accounts', $title, array
|
||
(
|
||
'separator' => '<br /><br />',
|
||
'current' => $limit_results,
|
||
'selector_increace' => 500,
|
||
'selector_min' => 500,
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::get('lang').'/bank_accounts/show_all/'
|
||
. $limit_results.'/'.$order_by.'/'.$order_by_direction,
|
||
'uri_segment' => 'page',
|
||
'total_items' => $total_baccounts,
|
||
'items_per_page' => $limit_results,
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results,
|
||
'filter' => $filter_form,
|
||
));
|
||
|
||
// adding bank account
|
||
if ($this->acl_check_new('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
$grid->add_new_button('bank_accounts/add', 'Add new bank account');
|
||
}
|
||
|
||
$grid->order_field('id')
|
||
->label('ID');
|
||
|
||
$grid->order_field('baname')
|
||
->label('Account name');
|
||
|
||
$grid->order_field('account_nr')
|
||
->label('Account number');
|
||
|
||
$grid->order_field('bank_nr')
|
||
->label('Bank code');
|
||
|
||
$grid->order_link_field('member_id')
|
||
->link('members/show', 'member_name')
|
||
->label('Member name');
|
||
|
||
$actions = $grid->grouped_action_field();
|
||
|
||
if ($this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
||
{
|
||
$actions->add_action('id')
|
||
->icon_action('transfer')
|
||
->url('bank_transfers/show_by_bank_account')
|
||
->label('Show transfers');
|
||
}
|
||
|
||
$grid->datasource($ba);
|
||
}
|
||
else
|
||
{
|
||
$grid = '';
|
||
}
|
||
|
||
// breadcrubs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('members/show/1', 'Profile of association',
|
||
$this->acl_check_view('Members_Controller', 'members'))
|
||
->text('Bank accounts')
|
||
->html();
|
||
|
||
// view
|
||
$view = new View('main');
|
||
$view->title = __('Bank accounts');
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('bank_accounts/show_all');
|
||
$view->content->baa_headline = $baa_headline;
|
||
$view->content->baa_grid = $baa_grid;
|
||
$view->content->grid = $grid;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Function adds bank account.
|
||
* If member id 1 is specified, then it is new bank account of association.
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_transfers" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_statements" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_transfers" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_account_auto_down_config" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_transfers" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="links" section="Accounts_Controller" value="bank_accounts" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_transfers" action="view" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_statements" action="view" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_transfers" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_account_auto_down_config" action="view" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_accounts" action="edit" own="false"></axo>
|
||
<axo usage_type="access-partial" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="links" section="Accounts_Controller" value="bank_accounts" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_transfers" action="view" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="add">
|
||
<!-- add($member_id = NULL)
|
||
{
|
||
// access
|
||
if (!$this->acl_check_new('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
// form
|
||
if (!isset($member_id) || $member_id != Member_Model::ASSOCIATION)
|
||
{
|
||
// members list
|
||
$arr_members = ORM::factory('member')->select_list();
|
||
|
||
if (isset($arr_members[1]))
|
||
{
|
||
unset($arr_members[1]);
|
||
}
|
||
|
||
$form = new Forge('bank_accounts/add/');
|
||
|
||
$form->dropdown('member_id')
|
||
->label('Member name')
|
||
->options($arr_members)
|
||
->selected($this->session->get('member_id'))
|
||
->rules('required')
|
||
->style('width:200px');
|
||
}
|
||
else
|
||
{
|
||
$form = new Forge('bank_accounts/add/' . $member_id);
|
||
|
||
$form->dropdown('type')
|
||
->options(Bank_account_Model::get_type_names())
|
||
->style('width:200px');
|
||
}
|
||
|
||
$form->input('account_name')
|
||
->rules('required|length[3,50]');
|
||
|
||
$form->input('account_nr')
|
||
->label('Account number')
|
||
->rules('required|length[3,50]|valid_numeric');
|
||
|
||
$form->input('bank_nr')
|
||
->label('Bank code')
|
||
->rules('required|length[3,10]|valid_numeric');
|
||
|
||
$form->input('IBAN');
|
||
|
||
$form->input('SWIFT');
|
||
|
||
// submit button
|
||
$form->submit('Add');
|
||
// validation
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
// determining owner's id
|
||
if (!isset($member_id) || $member_id != 1)
|
||
{
|
||
$member_id = $form_data["member_id"];
|
||
}
|
||
|
||
// determinig type
|
||
if ($member_id == Member_Model::ASSOCIATION)
|
||
{
|
||
$type = $form_data["type"];
|
||
}
|
||
else
|
||
{
|
||
$type = Bank_account_Model::TYPE_OTHER;
|
||
}
|
||
|
||
// real bank account
|
||
$bank_account = new Bank_account_Model();
|
||
$bank_account->name = $form_data['account_name'];
|
||
$bank_account->member_id = $member_id;
|
||
$bank_account->type = $type;
|
||
$bank_account->account_nr = $form_data['account_nr'];
|
||
$bank_account->bank_nr = $form_data['bank_nr'];
|
||
$bank_account->IBAN = $form_data['IBAN'];
|
||
$bank_account->SWIFT = $form_data['SWIFT'];
|
||
$bank_account->save();
|
||
// only member 1 - association itself - has related double-entry accounts to added bank account
|
||
if ($member_id == Member_Model::ASSOCIATION)
|
||
{
|
||
// these three double-entry accounts are related to one bank account through relation table
|
||
// double-entry bank account
|
||
$doubleentry_bank_account = new Account_Model();
|
||
$doubleentry_bank_account->member_id = $member_id;
|
||
$doubleentry_bank_account->name = $form_data['account_name'];
|
||
$doubleentry_bank_account->account_attribute_id = Account_attribute_Model::BANK;
|
||
$doubleentry_bank_account->comment = __('Bank accounts');
|
||
$doubleentry_bank_account->add($bank_account);
|
||
$doubleentry_bank_account->save();
|
||
// double-entry account of bank fees
|
||
$bank_fees_account = new Account_Model();
|
||
$bank_fees_account->member_id = $member_id;
|
||
$bank_fees_account->name = $form_data['account_name'].' - '.__('Bank fees');
|
||
$bank_fees_account->account_attribute_id = Account_attribute_Model::BANK_FEES;
|
||
$bank_fees_account->comment = __('Bank fees');
|
||
$bank_fees_account->add($bank_account);
|
||
$bank_fees_account->save();
|
||
// double-entry account of bank interests
|
||
$bank_interests_account = new Account_Model();
|
||
$bank_interests_account->member_id = $member_id;
|
||
$bank_interests_account->name = $form_data['account_name'].' - '.__('Bank interests');
|
||
$bank_interests_account->account_attribute_id = Account_attribute_Model::BANK_INTERESTS;
|
||
$bank_interests_account->comment = __('Bank interests');
|
||
$bank_interests_account->add($bank_account);
|
||
$bank_interests_account->save();
|
||
}
|
||
// redirection
|
||
url::redirect('bank_accounts/show_all');
|
||
}
|
||
|
||
if ($member_id == 1)
|
||
$headline = __('Add new bank account of association');
|
||
else
|
||
$headline = __('Add new bank account');
|
||
|
||
// breadcrubs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('members/show/1', 'Profile of association',
|
||
$this->acl_check_view('Members_Controller', 'members'))
|
||
->link('bank_accounts/show_all', 'Bank accounts')
|
||
->disable_translation()
|
||
->text($headline)
|
||
->html();
|
||
|
||
// view
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('form');
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Enables to edit bank account of association.
|
||
*
|
||
* @param integer $bank_account_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_accounts" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="edit">
|
||
<!-- edit($bank_account_id = NULL)
|
||
{
|
||
// param
|
||
if (!intval($bank_account_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
// access
|
||
if (!$this->acl_check_edit('Accounts_Controller', 'bank_accounts'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
$bank_account = new Bank_account_Model($bank_account_id);
|
||
|
||
// exists?
|
||
if (!$bank_account || !$bank_account->id ||
|
||
$bank_account->member_id != Member_Model::ASSOCIATION)
|
||
{
|
||
self::error(RECORD);
|
||
}
|
||
|
||
try
|
||
{
|
||
$ba_driver = Bank_Account_Settings::factory($bank_account->type);
|
||
$ba_driver->load_column_data($bank_account->settings);
|
||
}
|
||
catch (InvalidArgumentException $e)
|
||
{
|
||
$ba_driver = NULL;
|
||
}
|
||
|
||
// form
|
||
$form = new Forge();
|
||
|
||
$form->group('Basic information');
|
||
|
||
$form->dropdown('type')
|
||
->options(Bank_account_Model::get_type_names())
|
||
->selected($bank_account->type)
|
||
->style('width:200px');
|
||
|
||
$form->input('IBAN')
|
||
->value($bank_account->IBAN);
|
||
|
||
$form->input('SWIFT')
|
||
->value($bank_account->SWIFT);
|
||
|
||
// bank account settings
|
||
if ($ba_driver && count($ba_driver->get_column_fields()))
|
||
{
|
||
$form->group('Settings');
|
||
|
||
$columns = $ba_driver->get_column_fields();
|
||
|
||
foreach ($columns as $column => $info)
|
||
{
|
||
switch ($info['type'])
|
||
{
|
||
case Bank_Account_Settings::FIELD_TYPE_BOOL:
|
||
$input = $form->checkbox($column)->checked($ba_driver->$column);
|
||
break;
|
||
|
||
default:
|
||
$input = $form->input($column)->value($ba_driver->$column);
|
||
break;
|
||
}
|
||
|
||
if (isset($info['name']) && !empty($info['name']))
|
||
$input->label($info['name']);
|
||
|
||
if (isset($info['help']) && !empty($info['help']))
|
||
$input->help(help::hint($info['help']));
|
||
|
||
if (isset($info['rules']) && !empty($info['rules']))
|
||
$input->rules($info['rules']);
|
||
}
|
||
}
|
||
|
||
// submit button
|
||
$form->submit('Edit');
|
||
|
||
// validation
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
// real bank account
|
||
$bank_account->type = $form_data['type'];
|
||
$bank_account->IBAN = $form_data['IBAN'];
|
||
$bank_account->SWIFT = $form_data['SWIFT'];
|
||
|
||
if ($ba_driver && count($ba_driver->get_column_fields()))
|
||
{
|
||
unset($form_data['type']);
|
||
unset($form_data['IBAN']);
|
||
unset($form_data['SWIFT']);
|
||
|
||
foreach ($form_data as $key => $value)
|
||
{
|
||
$ba_driver->$key = $value;
|
||
}
|
||
|
||
$bank_account->settings = $ba_driver->get_column_data();
|
||
}
|
||
|
||
$bank_account->save();
|
||
|
||
// redirection
|
||
url::redirect('bank_accounts/show_all');
|
||
}
|
||
|
||
$headline = __('Edit bank account');
|
||
|
||
// breadcrubs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('members/show/1', 'Profile of association',
|
||
$this->acl_check_view('Members_Controller', 'members'))
|
||
->link('bank_accounts/show_all', 'Bank accounts')
|
||
->disable_translation()
|
||
->text($bank_account->account_nr . '/' . $bank_account->bank_nr)
|
||
->text($headline)
|
||
->html();
|
||
|
||
// view
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('form');
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
}
|
||
-->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_accounts" action="edit" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="bank_accounts_auto_down_settings" type="controller">
|
||
<object name="bank_accounts_auto_down_settings" type="controller"
|
||
comment-en="Manages configuration of automatical downloading and importing of bank statements"
|
||
comment-cs="Spravuje konfiguraci automatického stahování a importování bankovních výpisů">
|
||
<method name="show">
|
||
<!-- show($bank_account_id = NULL)
|
||
{
|
||
// check param
|
||
if (!intval($bank_account_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
$ba = new Bank_account_Model($bank_account_id);
|
||
$ba_ad = new Bank_accounts_automatical_download_Model();
|
||
|
||
$ba_settings = Bank_Account_Settings::factory($ba->type);
|
||
$ba_settings->load_column_data($ba->settings);
|
||
|
||
// check if exists
|
||
if (!$ba || !$ba->id ||
|
||
!$ba_settings->can_download_statements_automatically())
|
||
{
|
||
self::error(RECORD);
|
||
}
|
||
|
||
// access check
|
||
if (!$this->acl_check_view('Accounts_Controller', 'bank_account_auto_down_config'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
// gets data
|
||
$query = $ba_ad->get_bank_account_settings($ba->id);
|
||
|
||
// grid
|
||
$grid = new Grid('bank_accounts_auto_down_settings', null, array
|
||
(
|
||
'use_paginator' => false,
|
||
'use_selector' => false
|
||
));
|
||
|
||
if ($this->acl_check_new('Accounts_Controller', 'bank_account_auto_down_config'))
|
||
{
|
||
$grid->add_new_button(
|
||
'bank_accounts_auto_down_settings/add/' . $ba->id,
|
||
__('Add new rule'), array('class' => 'popup_link')
|
||
);
|
||
}
|
||
|
||
$grid->field('id')
|
||
->label('ID');
|
||
|
||
$grid->callback_field('type')
|
||
->callback('callback::message_auto_setting_type');
|
||
|
||
$grid->callback_field('attribute')
|
||
->callback('callback::message_auto_setting_attribute');
|
||
|
||
if (module::e('notification'))
|
||
{
|
||
if (Settings::get('email_enabled'))
|
||
{
|
||
$grid->callback_field('email_enabled')
|
||
->callback('callback::boolean')
|
||
->label('E-mail');
|
||
}
|
||
|
||
if (Settings::get('sms_enabled'))
|
||
{
|
||
$grid->callback_field('sms_enabled')
|
||
->callback('callback::boolean')
|
||
->label('SMS');
|
||
}
|
||
}
|
||
|
||
$actions = $grid->grouped_action_field();
|
||
|
||
if ($this->acl_check_delete('Accounts_Controller', 'bank_account_auto_down_config'))
|
||
{
|
||
$actions->add_action()
|
||
->icon_action('delete')
|
||
->url('bank_accounts_auto_down_settings/delete')
|
||
->class('delete_link');
|
||
}
|
||
|
||
// load datasource
|
||
$grid->datasource($query);
|
||
|
||
// bread crumbs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('bank_accounts/show_all', 'Bank accounts',
|
||
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
->text($ba->account_nr . '/' . $ba->bank_nr)
|
||
->text('Setup automatical downloading of statements')
|
||
->html();
|
||
|
||
// main view
|
||
$view = new View('main');
|
||
$view->title = __('Automatical settings for downloading of statements');
|
||
$view->content = new View('show_all');
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content->headline = $view->title;
|
||
$view->content->table = $grid;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Adds a new rule
|
||
*
|
||
* @param integer $bank_account_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_account_auto_down_config" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_account_auto_down_config" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_account_auto_down_config" action="delete" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_account_auto_down_config" action="view" own="false"></axo>
|
||
<axo usage_type="links" section="Accounts_Controller" value="bank_account_auto_down_config" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_account_auto_down_config" action="delete" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="add">
|
||
<!-- add($bank_account_id = NULL)
|
||
{
|
||
// check param
|
||
if (!$bank_account_id || !is_numeric($bank_account_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_new('Accounts_Controller', 'bank_account_auto_down_config'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
// load model
|
||
$ba = new Bank_account_Model($bank_account_id);
|
||
$types = Bank_accounts_automatical_download_Model::get_type_messages();
|
||
|
||
$ba_settings = Bank_Account_Settings::factory($ba->type);
|
||
$ba_settings->load_column_data($ba->settings);
|
||
|
||
// check if exists
|
||
if (!$ba || !$ba->id ||
|
||
!$ba_settings->can_download_statements_automatically())
|
||
{
|
||
self::error(RECORD);
|
||
}
|
||
|
||
// form
|
||
$form = new Forge('bank_accounts_auto_down_settings/add/' . $bank_account_id);
|
||
|
||
$form->group('Basic information');
|
||
|
||
$form->dropdown('type')
|
||
->rules('required')
|
||
->options(array_map('strtolower', $types))
|
||
->style('width:200px');
|
||
|
||
for ($i = 0; $i < Time_Activity_Rule::get_attribute_types_max_count(); $i++)
|
||
{
|
||
$form->input('attribute[' . $i . ']')
|
||
->callback(array($this, 'valid_attribute'))
|
||
->label(__('Attribute') . ' ' . ($i + 1));
|
||
}
|
||
|
||
if (module::e('notification'))
|
||
{
|
||
if (Settings::get('email_enabled'))
|
||
{
|
||
$form->checkbox('email_enabled')
|
||
->label('Sending of e-mail messages enabled')
|
||
->value('1')
|
||
->checked(TRUE);
|
||
}
|
||
|
||
if (Settings::get('sms_enabled'))
|
||
{
|
||
$form->checkbox('sms_enabled')
|
||
->label('Sending of SMS messages enabled')
|
||
->value('1');
|
||
}
|
||
}
|
||
|
||
$form->submit('Add');
|
||
|
||
// validate form and save data
|
||
if ($form->validate())
|
||
{
|
||
// model
|
||
$baad = new Bank_accounts_automatical_download_Model();
|
||
|
||
try
|
||
{
|
||
// start transaction
|
||
$baad->transaction_start();
|
||
|
||
// load data
|
||
$form_data = $form->as_array();
|
||
|
||
// prepare attribute
|
||
$attrs = @$_POST['attribute'];
|
||
$attrs_finished = array();
|
||
$count = Time_Activity_Rule::get_type_attributes_count($form_data['type']);
|
||
|
||
for ($i = 0; $i < $count; $i++)
|
||
{
|
||
if (is_array($attrs) && count($attrs))
|
||
{
|
||
$attrs_finished[] = array_shift($attrs);
|
||
}
|
||
else
|
||
{
|
||
$attrs_finished[] = NULL;
|
||
}
|
||
}
|
||
|
||
// save
|
||
$baad->bank_account_id = $ba->id;
|
||
$baad->type = $form_data['type'];
|
||
$baad->attribute = implode('/', $attrs_finished);
|
||
|
||
$baad->email_enabled =
|
||
Settings::get('email_enabled') &&
|
||
$form_data['email_enabled'];
|
||
|
||
$baad->sms_enabled =
|
||
Settings::get('sms_enabled') &&
|
||
$form_data['sms_enabled'];
|
||
|
||
$baad->save_throwable();
|
||
|
||
// commit transaction
|
||
$baad->transaction_commit();
|
||
|
||
// message
|
||
status::success('Rule for automatical download of statement has been succesfully added');
|
||
|
||
// redirection
|
||
$this->redirect('bank_accounts_auto_down_settings/show', $ba->id);
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
// roolback transaction
|
||
$baad->transaction_rollback();
|
||
Log::add_exception($e);
|
||
// message
|
||
status::error('Error - cant add rule for automatical download of statement', $e);
|
||
}
|
||
}
|
||
|
||
// headline
|
||
$headline = __('Add a new rule for automatical download of statement');
|
||
|
||
// bread crumbs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('bank_accounts/show_all', 'Bank accounts',
|
||
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
->disable_translation()
|
||
->text($ba->account_nr . '/' . $ba->bank_nr)
|
||
->text($headline)
|
||
->html();
|
||
|
||
// view
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->headline = $headline;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Deletes settings rule
|
||
*
|
||
* @param integer $baad_setting_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_account_auto_down_config" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_account_auto_down_config" action="new" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="delete">
|
||
<!-- delete($baad_setting_id = NULL)
|
||
{
|
||
// check param
|
||
if (!$baad_setting_id || !is_numeric($baad_setting_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_delete('Accounts_Controller', 'bank_account_auto_down_config'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
// load model
|
||
$baad = new Bank_accounts_automatical_download_Model($baad_setting_id);
|
||
|
||
$bank_account_id = $baad->bank_account_id;
|
||
|
||
// check exists
|
||
if (!$baad->id)
|
||
{
|
||
Controller::error(RECORD);
|
||
}
|
||
|
||
// delete
|
||
if ($baad->delete())
|
||
{
|
||
status::success('Rule for automatical download of statement has been succesfully deleted.');
|
||
}
|
||
else
|
||
{
|
||
status::error('Error - cant delete rule for automatical download of statement.');
|
||
}
|
||
|
||
// redirect to show all
|
||
url::redirect('bank_accounts_auto_down_settings/show/' . $bank_account_id);
|
||
}
|
||
|
||
/**
|
||
* Checks if attribute form element has valid value
|
||
*
|
||
* @param object $input
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_account_auto_down_config" action="delete" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_account_auto_down_config" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="bank_statements" type="controller">
|
||
<object name="bank_statements" type="controller"
|
||
comment-en="Bank statements - imported from association bank accounts"
|
||
comment-cs="Bankovní výpisy - omportované z bankovních účtů organizace">
|
||
<method name="__construct"></method>
|
||
<method name="show_by_bank_account">
|
||
<!-- show_by_bank_account(
|
||
$bank_account_id = NULL, $limit_results = 500, $order_by = 'id',
|
||
$order_by_direction = 'desc', $page_word = null, $page = 1)
|
||
{
|
||
// param check
|
||
if (!isset($bank_account_id) || !is_numeric($bank_account_id))
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
}
|
||
|
||
// access rights
|
||
if (!$this->acl_check_view('Accounts_Controller', 'bank_statements'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
// model
|
||
$ba = new Bank_account_Model($bank_account_id);
|
||
|
||
// record
|
||
if (!$ba->id)
|
||
{
|
||
Controller::error(RECORD);
|
||
}
|
||
|
||
if (is_numeric($this->input->post('record_per_page')))
|
||
{
|
||
$limit_results = (int) $this->input->post('record_per_page');
|
||
}
|
||
|
||
$allowed_order_type = array(
|
||
'id', 'from', 'to', 'type',
|
||
'opening_balance', 'closing_balance'
|
||
);
|
||
|
||
if (!in_array(strtolower($order_by), $allowed_order_type))
|
||
{
|
||
$order_by = 'id';
|
||
}
|
||
|
||
if (strtolower($order_by_direction) != 'desc')
|
||
{
|
||
$order_by_direction = 'desc';
|
||
}
|
||
|
||
// model
|
||
$bs_model = new Bank_statement_Model();
|
||
|
||
$total_bank_statements = $bs_model->count_bank_statements($bank_account_id);
|
||
|
||
if (($sql_offset = ($page - 1) * $limit_results) > $total_bank_statements)
|
||
$sql_offset = 0;
|
||
|
||
$bank_statements = $bs_model->get_bank_statements(
|
||
$bank_account_id, $sql_offset, (int)$limit_results,
|
||
$order_by, $order_by_direction
|
||
);
|
||
|
||
$headline = __('Bank statements');
|
||
|
||
$grid = new Grid('bank_statements', null, array
|
||
(
|
||
'current' => $limit_results,
|
||
'selector_increace' => 500,
|
||
'selector_min' => 500,
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::get('lang').'/bank_statements/show_by_bank_account/'
|
||
. $bank_account_id.'/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
|
||
'uri_segment' => 'page',
|
||
'total_items' => $total_bank_statements,
|
||
'items_per_page' => $limit_results,
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results,
|
||
'variables' => $bank_account_id.'/',
|
||
'url_array_ofset' => 1,
|
||
));
|
||
|
||
$grid->order_field('id')
|
||
->label('ID');
|
||
|
||
$grid->order_field('statement_number')
|
||
->label('Number');
|
||
|
||
$grid->order_field('from')
|
||
->label('Date from');
|
||
|
||
$grid->order_field('to')
|
||
->label('Date to');
|
||
|
||
$grid->order_field('type');
|
||
|
||
$grid->order_callback_field('opening_balance')
|
||
->callback('money');
|
||
|
||
$grid->order_callback_field('closing_balance')
|
||
->callback('money');
|
||
|
||
if ($this->acl_check_new('Accounts_Controller', 'bank_transfers'))
|
||
{
|
||
$grid->add_new_button(
|
||
'import/upload_bank_file/'.$bank_account_id,
|
||
__('Upload bank transfers listing')
|
||
);
|
||
}
|
||
|
||
$actions = $grid->grouped_action_field();
|
||
|
||
if ($this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
||
{
|
||
$actions->add_action('id')
|
||
->icon_action('show')
|
||
->url('bank_transfers/show_by_bank_statement');
|
||
}
|
||
|
||
if ($this->acl_check_edit('Accounts_Controller', 'bank_statements'))
|
||
{
|
||
$actions->add_action('id')
|
||
->icon_action('edit')
|
||
->url('bank_statements/edit');
|
||
}
|
||
|
||
if ($this->acl_check_delete('Accounts_Controller', 'bank_statements'))
|
||
{
|
||
$actions->add_action('id')
|
||
->icon_action('delete')
|
||
->url('bank_statements/delete')
|
||
->class('delete_link');
|
||
}
|
||
|
||
$grid->datasource($bank_statements);
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('bank_accounts/show_all', 'Bank accounts',
|
||
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
->disable_translation()
|
||
->link('bank_transfers/show_by_bank_account/'.$bank_account_id,
|
||
$ba->name . ' (' . $ba->id . ')',
|
||
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
->text($headline)
|
||
->html();
|
||
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('show_all');
|
||
$view->content->headline = $headline;
|
||
$view->content->table = $grid;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
|
||
/**
|
||
* Edits bank statement.
|
||
*
|
||
* @param integer $bank_statement_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_statements" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_transfers" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_transfers" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_statements" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_statements" action="delete" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_statements" action="view" own="false"></axo>
|
||
<axo usage_type="links" section="Accounts_Controller" value="bank_transfers" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_transfers" action="view" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_statements" action="edit" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Accounts_Controller" value="bank_statements" action="delete" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="edit">
|
||
<!-- edit($bank_statement_id = null)
|
||
{
|
||
if (!isset($bank_statement_id) || !is_numeric($bank_statement_id))
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
}
|
||
|
||
$bs = new Bank_statement_Model($bank_statement_id);
|
||
|
||
if (!$bs->id)
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
}
|
||
|
||
if (!$this->acl_check_edit('Accounts_Controller', 'bank_statements'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
// form
|
||
$form = new Forge('bank_statements/edit/'.$bank_statement_id);
|
||
|
||
$form->group('Basic data');
|
||
|
||
$form->input('statement_number')
|
||
->value($bs->statement_number);
|
||
|
||
$form->date('from')
|
||
->label(__('Date from').':')
|
||
->years(date('Y')-100, date('Y'))
|
||
->rules('required')
|
||
->value(strtotime($bs->from));
|
||
|
||
$form->date('to')
|
||
->label(__('Date to').':')
|
||
->years(date('Y')-100, date('Y'))
|
||
->rules('required')
|
||
->value(strtotime($bs->to));
|
||
|
||
$form->input('opening_balance')
|
||
->value($bs->opening_balance);
|
||
|
||
$form->input('closing_balance')
|
||
->value($bs->closing_balance);
|
||
|
||
$form->submit('Edit');
|
||
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
$bs->statement_number = $form_data['statement_number'];
|
||
$bs->opening_balance = $form_data['opening_balance'];
|
||
$bs->closing_balance = $form_data['closing_balance'];
|
||
$bs->from = date('Y-m-d', $form_data['from']);
|
||
$bs->to = date('Y-m-d', $form_data['to']);
|
||
|
||
unset($form_data);
|
||
|
||
$bs_saved = $bs->save();
|
||
|
||
if ($bs_saved)
|
||
{
|
||
status::success('Bank statement has been successfully updated.');
|
||
url::redirect('bank_statements/show_by_bank_account/'.$bs->bank_account_id);
|
||
}
|
||
}
|
||
|
||
$headline = __('Editing of bank statement');
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('bank_accounts/show_all', 'Bank accounts',
|
||
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
->disable_translation()
|
||
->link('bank_transfers/show_by_bank_account/'.$bs->bank_account->id,
|
||
$bs->bank_account->name . ' (' . $bs->bank_account->id . ')',
|
||
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
||
->text($bs->statement_number . ' (' . $bs->id . ')')
|
||
->text($headline)
|
||
->html();
|
||
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->headline = $headline;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Deletes bank statement including all transfers created during import.
|
||
*
|
||
* @author Jiri Svitak
|
||
* @param integer $bank_statement_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_statements" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_statements" action="edit" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="delete">
|
||
<!-- delete($bank_statement_id = null)
|
||
{
|
||
if (!isset($bank_statement_id))
|
||
Controller::error(PARAMETER);
|
||
|
||
$statement = new Bank_statement_Model($bank_statement_id);
|
||
|
||
// access rights
|
||
if (!$this->acl_check_delete('Accounts_Controller', 'bank_statements'))
|
||
Controller::error(ACCESS);
|
||
|
||
$bts = $statement->bank_transfers;
|
||
|
||
$dtids = array();
|
||
$itids = array();
|
||
$btids = array();
|
||
|
||
foreach($bts as $bank_transfer)
|
||
{
|
||
$bt = new Bank_transfer_Model($bank_transfer->id);
|
||
$transfer = new Transfer_Model($bt->transfer_id);
|
||
$dependent = $transfer->get_dependent_transfers($transfer->id);
|
||
|
||
foreach($dependent as $d)
|
||
{
|
||
$dtids[] = $d->id;
|
||
}
|
||
|
||
$itids[] = $transfer->id;
|
||
$bt_model = new Bank_transfer_Model($bt->id);
|
||
$btids[] = $bt->id;
|
||
}
|
||
|
||
$itids = array_unique($itids);
|
||
$dtids = array_diff($dtids, $itids);
|
||
$btids = array_unique($btids);
|
||
|
||
try
|
||
{
|
||
$db = new Transfer_Model();
|
||
$db->transaction_start();
|
||
|
||
// delete dependent transfers
|
||
foreach($dtids as $dtid)
|
||
{
|
||
Transfer_Model::delete_transfer($dtid);
|
||
}
|
||
|
||
foreach($btids as $btid)
|
||
{
|
||
$btm = new Bank_transfer_Model($btid);
|
||
$btm->delete_throwable();
|
||
}
|
||
|
||
// delete independent transfers
|
||
foreach($itids as $itid)
|
||
{
|
||
Transfer_Model::delete_transfer($itid);
|
||
}
|
||
|
||
$ba_id = $statement->bank_account_id;
|
||
$statement->delete_throwable();
|
||
$db->transaction_commit();
|
||
|
||
status::success('Bank statement (including %d transfers and %d bank transfers) has been successfully deleted.',
|
||
true, array(0 => (count($itids) + count($dtids)), 1 => count($btids))
|
||
);
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
$db->transaction_rollback();
|
||
Log::add_exception($e);
|
||
status::error('Error - cannot delete bank statement.', $e);
|
||
}
|
||
url::redirect('bank_statements/show_by_bank_account/' . $ba_id);
|
||
}
|
||
|
||
}
|
||
-->
|
||
<axo usage_type="unknown" section="Accounts_Controller" value="bank_statements" action="delete" own="false"></axo>
|
||
<axo usage_type="access" section="Accounts_Controller" value="bank_statements" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="bank_templates" type="controller">
|
||
<object name="bank_transfers" type="controller"
|
||
comment-en="Bank transfers - enables to view transfers by bank accounts or bank statements, manages unidenfified transfers and enables to add new transfers"
|
||
comment-cs="Bankovní převody - umožňují zobrazit převody dle účtu nebo výpisu, spravovat neidentifikkovatelné převody a umožňuje přidavat nové převody">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<!-- show_all(
|
||
$limit_results = 200, $order_by = 'id', $order_by_direction = 'asc',
|
||
$page_word = null, $page = 1)
|
||
{
|
||
if (!$this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
||
Controller::Error(ACCESS);
|
||
|
||
// get new selector
|
||
if (is_numeric($this->input->post('record_per_page')))
|
||
$limit_results = (int) $this->input->post('record_per_page');
|
||
|
||
// get order of grid from parameters
|
||
$allowed_order_type = array('id', 'original_term', 'translated_term', 'lang');
|
||
|
||
if (!in_array(strtolower($order_by),$allowed_order_type))
|
||
$order_by = 'id';
|
||
|
||
if (strtolower($order_by_direction) != 'desc')
|
||
$order_by_direction = 'asc';
|
||
|
||
// get data from database
|
||
$model_templates = new Bank_template_Model();
|
||
$total_templates = $model_templates->count_all();
|
||
|
||
if (($sql_offset = ($page - 1) * $limit_results) > $total_templates)
|
||
$sql_offset = 0;
|
||
|
||
$templates = $model_templates->orderby($order_by, $order_by_direction)
|
||
->limit($limit_results, $sql_offset)
|
||
->find_all();
|
||
|
||
$headline = __('Bank templates of CSV files');
|
||
|
||
$grid = new Grid('translations', null, array
|
||
(
|
||
'use_paginator' => true,
|
||
'use_selector' => true,
|
||
'current' => $limit_results,
|
||
'selector_increace' => 200,
|
||
'selector_min' => 200,
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::get('lang').'/bank_templates/show_all/'
|
||
. $limit_results.'/'.$order_by.'/'.$order_by_direction,
|
||
'uri_segment' => 'page',
|
||
'total_items' => $total_templates,
|
||
'items_per_page' => $limit_results,
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results
|
||
));
|
||
|
||
$grid->add_new_button('bank_templates/add', __('Add new template'));
|
||
|
||
$grid->order_field('id')
|
||
->label(__('ID'));
|
||
|
Také k dispozici: Unified diff
Upravy:
- dokumentace AXO: controllery A-C
Opravy:
- skript pro generovani AXO dokumentace zvada pohledy a uklada nazvy vcetne slozky
- opraveno DTD k AXO dokumentaci (chyba v definici atributu komentaru)
- opravene chyby v pristupovych pravech u cloudu (privani, editace)