|
<?php defined('SYSPATH') or die('No direct script access.');
|
|
/*
|
|
* This file is part of open source system FreeNetIS
|
|
* and it is released under GPLv3 licence.
|
|
*
|
|
* More info about licence can be found:
|
|
* http://www.gnu.org/licenses/gpl-3.0.html
|
|
*
|
|
* More info about project can be found:
|
|
* http://www.freenetis.org/
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* This controller handles work with bank templates for CSV bank listing files.
|
|
*
|
|
* @author Jiri Svitak
|
|
* @package Controller
|
|
*/
|
|
class Bank_templates_Controller extends Controller
|
|
{
|
|
/**
|
|
* Index redirects to show all
|
|
*/
|
|
public function index()
|
|
{
|
|
url::redirect(url_lang::base().'bank_templates/show_all');
|
|
}
|
|
|
|
/**
|
|
* Shows all bank templates for CSV files.
|
|
*
|
|
* @param integer $limit_results
|
|
* @param string $order_by
|
|
* @param string $order_by_direction
|
|
* @param string $page_word
|
|
* @param integer $page
|
|
*/
|
|
public function 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->get('record_per_page')))
|
|
$limit_results = (int) $this->input->get('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 = count($model_templates->find_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 = url_lang::lang('texts.Bank templates of CSV files');
|
|
|
|
$grid = new Grid(url_lang::base().'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(
|
|
url_lang::base().'bank_templates/add',
|
|
url_lang::lang('texts.Add new template')
|
|
);
|
|
|
|
$grid->order_field('id')
|
|
->label(url_lang::lang('texts.ID'));
|
|
|
|
$grid->order_field('template_name')
|
|
->label(url_lang::lang('texts.Template name'));
|
|
|
|
$grid->action_field('id')
|
|
->label(url_lang::lang('texts.Show'))
|
|
->url(url_lang::base().'bank_templates/show')
|
|
->action(url_lang::lang('texts.Show'));
|
|
|
|
$grid->action_field('id')
|
|
->label(url_lang::lang('texts.Edit'))
|
|
->url(url_lang::base().'bank_templates/edit')
|
|
->action(url_lang::lang('texts.Edit'));
|
|
|
|
$grid->datasource($templates);
|
|
|
|
$breadcrumbs = breadcrumbs::add()
|
|
->link('bank_accounts/show_all', 'Bank accounts',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
|
->text('Bank templates')
|
|
->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);
|
|
}
|
|
|
|
/**
|
|
* Function shows bank template of csv file.
|
|
*
|
|
* @param integer $template_id
|
|
*/
|
|
public function show($template_id = null)
|
|
{
|
|
if (!isset($template_id))
|
|
{
|
|
Controller::warning(PARAMETER);
|
|
}
|
|
|
|
$template = new Bank_template_Model($template_id);
|
|
|
|
if ($template->id == 0)
|
|
{
|
|
Controller::error(RECORD);
|
|
}
|
|
|
|
if (!$this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
|
{
|
|
Controller::Error(ACCESS);
|
|
}
|
|
|
|
$headline = url_lang::lang('texts.Show bank template');
|
|
|
|
$breadcrumbs = breadcrumbs::add()
|
|
->link('bank_accounts/show_all', 'Bank accounts',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
|
->link('bank_templates/show_all', 'Bank templates',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
|
->disable_translation()
|
|
->text($template->template_name . ' (' . $template->id . ')')
|
|
->html();
|
|
|
|
$view = new View('main');
|
|
$view->title = $headline;
|
|
$view->breadcrumbs = $breadcrumbs;
|
|
$view->content = new View('bank_templates_show');
|
|
$view->content->template = $template;
|
|
$view->content->headline = $headline;
|
|
$view->content->message = $this->session->get_once('message');
|
|
$view->render(TRUE);
|
|
}
|
|
|
|
/**
|
|
* Function adds new bank template for csv files.
|
|
*/
|
|
public function add()
|
|
{
|
|
$form = new Forge(
|
|
url_lang::base().'bank_templates/add', '',
|
|
'POST', array('id' => 'article_form')
|
|
);
|
|
|
|
$form->set_attr('class', 'form_class')
|
|
->set_attr('method', 'post');
|
|
|
|
$form->group('')
|
|
->label(url_lang::lang('texts.Template name'));
|
|
|
|
$form->input('template_name')
|
|
->label(url_lang::lang('texts.Template name').':')
|
|
->rules('required|length[1,50]');
|
|
|
|
$form->input('item_separator')
|
|
->label(url_lang::lang('texts.Item separator').':')
|
|
->rules('required|length[1,1]')
|
|
->value(';');
|
|
|
|
$form->input('string_separator')
|
|
->label(url_lang::lang('texts.String separator').':')
|
|
->rules('required|length[1,1]')
|
|
->value('"');
|
|
|
|
$form->group('')
|
|
->label(url_lang::lang('texts.Column headers'));
|
|
|
|
$form->input('account_name')
|
|
->label(url_lang::lang('texts.Account name').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('account_number')
|
|
->label(url_lang::lang('texts.Account number').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('bank_code')
|
|
->label(url_lang::lang('texts.Bank code').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('constant_symbol')
|
|
->label(url_lang::lang('texts.Constant symbol').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('variable_symbol')
|
|
->label(url_lang::lang('texts.Variable symbol').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('specific_symbol')
|
|
->label(url_lang::lang('texts.Specific symbol').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('counteraccount_name')
|
|
->label(url_lang::lang('texts.Counteraccount name').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('counteraccount_number')
|
|
->label(url_lang::lang('texts.Counteraccount number').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('counteraccount_bank_code')
|
|
->label(url_lang::lang('texts.Counteraccount bank code').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('text')
|
|
->label(url_lang::lang('texts.Text').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('amount')
|
|
->label(url_lang::lang('texts.Amount').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->input('expenditure_earning')
|
|
->label(url_lang::lang('texts.Expenditure-earning').':')
|
|
->rules('length[1,30]');
|
|
|
|
$form->input('value_for_earning')
|
|
->label(url_lang::lang('texts.Value for earning').':')
|
|
->rules('length[1,10]');
|
|
|
|
$form->input('datetime')
|
|
->label(url_lang::lang('texts.Date and time').':')
|
|
->rules('required|length[1,30]');
|
|
|
|
$form->submit('submit')
|
|
->value(url_lang::lang('texts.Add'));
|
|
|
|
special::required_forge_style($form, ' *', 'required');
|
|
|
|
if ($form->validate())
|
|
{
|
|
$form_data = $form->as_array();
|
|
$template = new Bank_template_Model();
|
|
foreach($form_data as $key => $value)
|
|
{
|
|
$template->$key = htmlspecialchars($value);
|
|
}
|
|
if ($template->save())
|
|
{
|
|
$this->session->set_flash('message', url_lang::lang(
|
|
'texts.Template has been successfully added.'
|
|
));
|
|
url::redirect(url_lang::base().'bank_templates/show/'.$template->id);
|
|
}
|
|
else
|
|
{
|
|
$this->session->set_flash('message', url_lang::lang(
|
|
'texts.Error - cant add new template.'
|
|
));
|
|
url::redirect(url_lang::base().'bank_templates/show_all');
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$headline = url_lang::lang('texts.Add new template');
|
|
|
|
$breadcrumbs = breadcrumbs::add()
|
|
->link('bank_accounts/show_all', 'Bank accounts',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
|
->link('bank_templates/show_all', 'Bank templates',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
|
->disable_translation()
|
|
->text($headline)
|
|
->html();
|
|
|
|
$view = new View('main');
|
|
$view->title = url_lang::lang('texts.Add new template');
|
|
$view->breadcrumbs = $breadcrumbs;
|
|
$view->content = new View('form');
|
|
$view->content->headline = url_lang::lang('texts.Add new template');
|
|
$view->content->form = $form->html();
|
|
$view->render(TRUE);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function edits bank template for csv files.
|
|
*/
|
|
public function edit($template_id = null)
|
|
{
|
|
if (!isset($template_id))
|
|
{
|
|
Controller::warning(PARAMETER);
|
|
}
|
|
|
|
$template = new Bank_template_Model($template_id);
|
|
|
|
if ($template->id == 0)
|
|
{
|
|
Controller::error(RECORD);
|
|
}
|
|
|
|
$form = new Forge(
|
|
url_lang::base().'bank_templates/edit/'.$template_id, '',
|
|
'POST', array('id' => 'article_form')
|
|
);
|
|
|
|
$form->set_attr('class', 'form_class')
|
|
->set_attr('method', 'post');
|
|
|
|
$form->group('')
|
|
->label(url_lang::lang('texts.Basic information'));
|
|
|
|
$form->input('template_name')
|
|
->label(url_lang::lang('texts.Template name').':')
|
|
->rules('required|length[1,50]')
|
|
->value($template->template_name);
|
|
|
|
$form->input('item_separator')
|
|
->label(url_lang::lang('texts.Item separator').':')
|
|
->rules('required|length[1,1]')
|
|
->value($template->item_separator);
|
|
|
|
$form->input('string_separator')
|
|
->label(url_lang::lang('texts.String separator').':')
|
|
->rules('required|length[1,1]')
|
|
->value($template->string_separator);
|
|
|
|
$form->group('')
|
|
->label(url_lang::lang('texts.Column headers'));
|
|
|
|
$form->input('account_name')
|
|
->label(url_lang::lang('texts.Account name').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->account_name);
|
|
|
|
$form->input('account_number')
|
|
->label(url_lang::lang('texts.Account number').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->account_number);
|
|
|
|
$form->input('bank_code')
|
|
->label(url_lang::lang('texts.Bank code').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->bank_code);
|
|
|
|
$form->input('constant_symbol')
|
|
->label(url_lang::lang('texts.Constant symbol').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->constant_symbol);
|
|
|
|
$form->input('variable_symbol')
|
|
->label(url_lang::lang('texts.Variable symbol').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->variable_symbol);
|
|
|
|
$form->input('specific_symbol')
|
|
->label(url_lang::lang('texts.Specific symbol').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->specific_symbol);
|
|
|
|
$form->input('counteraccount_name')
|
|
->label(url_lang::lang('texts.Counteraccount name').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->counteraccount_name);
|
|
|
|
$form->input('counteraccount_number')
|
|
->label(url_lang::lang('texts.Counteraccount number').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->counteraccount_number);
|
|
|
|
$form->input('counteraccount_bank_code')
|
|
->label(url_lang::lang('texts.Counteraccount bank code').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->counteraccount_bank_code);
|
|
|
|
$form->input('text')
|
|
->label(url_lang::lang('texts.Text').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->text);
|
|
|
|
$form->input('amount')
|
|
->label(url_lang::lang('texts.Amount').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->amount);
|
|
|
|
$form->input('expenditure_earning')
|
|
->label(url_lang::lang('texts.Expenditure-earning').':')
|
|
->rules('length[1,30]')
|
|
->value($template->expenditure_earning);
|
|
|
|
$form->input('value_for_earning')
|
|
->label(url_lang::lang('texts.Value for earning').':')
|
|
->rules('length[1,10]')
|
|
->value($template->value_for_earning);
|
|
|
|
$form->input('datetime')
|
|
->label(url_lang::lang('texts.Date and time').':')
|
|
->rules('required|length[1,30]')
|
|
->value($template->datetime);
|
|
|
|
$form->submit('submit')
|
|
->value(url_lang::lang('texts.Edit'));
|
|
|
|
special::required_forge_style($form, ' *', 'required');
|
|
|
|
if ($form->validate())
|
|
{
|
|
$form_data = $form->as_array();
|
|
foreach($form_data as $key => $value)
|
|
{
|
|
if ($key != 'string_separator')
|
|
$template->$key = htmlspecialchars($value);
|
|
else
|
|
$template->$key = $value;
|
|
}
|
|
if ($template->save())
|
|
{
|
|
$this->session->set_flash('message', url_lang::lang(
|
|
'texts.Template has been successfully updated.'
|
|
));
|
|
url::redirect(url_lang::base().'bank_templates/show/'.$template->id);
|
|
}
|
|
else
|
|
{
|
|
$this->session->set_flash('message', url_lang::lang(
|
|
'texts.Error - cant update template.'
|
|
));
|
|
url::redirect(url_lang::base().'bank_templates/show/'.$template->id);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$headline = url_lang::lang('texts.Edit bank template');
|
|
|
|
$breadcrumbs = breadcrumbs::add()
|
|
->link('bank_accounts/show_all', 'Bank accounts',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_accounts'))
|
|
->link('bank_templates/show_all', 'Bank templates',
|
|
$this->acl_check_view('Accounts_Controller', 'bank_transfers'))
|
|
->link('bank_templates/show/' . $template_id,
|
|
$template->template_name . ' (' . $template->id . ')')
|
|
->disable_translation()
|
|
->text($headline)
|
|
->html();
|
|
|
|
$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);
|
|
}
|
|
}
|
|
}
|