Revize 2183
Přidáno uživatelem David Raška před asi 11 roky(ů)
freenetis/branches/1.1/application/controllers/fees.php | ||
---|---|---|
* @param string $order_by_direction
|
||
*/
|
||
public function show_all(
|
||
$limit_results = 200, $order_by = 'id', $order_by_direction = 'ASC')
|
||
$limit_results = 200, $order_by = 'from',
|
||
$order_by_direction = 'ASC', $page_word = 'page', $page = 1)
|
||
{
|
||
// check if logged user have access right to view all fees
|
||
if (!$this->acl_check_view('Fees_Controller', 'fees'))
|
||
... | ... | |
if (is_numeric($this->input->post('record_per_page')))
|
||
$limit_results = (int) $this->input->post('record_per_page');
|
||
|
||
$allowed_order_type = array('id', 'type', 'fee', 'from', 'to');
|
||
$allowed_order_type = array('id', 'type', 'name', 'fee', 'from', 'to');
|
||
|
||
if (!in_array(strtolower($order_by), $allowed_order_type))
|
||
$order_by = 'id';
|
||
$order_by = 'from';
|
||
|
||
if (strtolower($order_by_direction) != 'desc')
|
||
$order_by_direction = 'asc';
|
||
|
||
$fee_model = new Fee_Model();
|
||
$fees = $fee_model->get_all_fees($order_by, $order_by_direction);
|
||
|
||
$total_fees = $fee_model->count_all();
|
||
|
||
// limit check
|
||
if (($sql_offset = ($page - 1) * $limit_results) > $total_fees)
|
||
$sql_offset = 0;
|
||
|
||
$fees = $fee_model->get_all_fees(
|
||
$sql_offset, $limit_results, $order_by, $order_by_direction
|
||
);
|
||
|
||
// path to form
|
||
$path = Config::get('lang') . '/fees/show_all/' . $limit_results . '/'
|
||
. $order_by . '/' . $order_by_direction.'/'.$page_word.'/'
|
||
. $page;
|
||
|
||
// create grid
|
||
$grid = new Grid('fees', '', array
|
||
... | ... | |
'selector_increace' => 200,
|
||
'selector_min' => 200,
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::get('lang') . '/fees/show_all/'
|
||
. $limit_results . '/' . $order_by . '/' . $order_by_direction,
|
||
'base_url' => $path,
|
||
'uri_segment' => 'page',
|
||
'total_items' => $total_fees,
|
||
'items_per_page' => $limit_results,
|
||
... | ... | |
}
|
||
|
||
// set grid fields
|
||
$grid->order_field('id');
|
||
$grid->order_field('id')
|
||
->label('ID');
|
||
|
||
$grid->order_field('type');
|
||
|
||
... | ... | |
}
|
||
|
||
/**
|
||
* Adds new enum type
|
||
* Adds new fee
|
||
*
|
||
* @author Michal Kliment
|
||
* @author David Raška
|
||
*/
|
||
public function add($fee_type_id = NULL)
|
||
{
|
||
// access control
|
||
if (!$this->acl_check_new('Fees_Controller', 'fees'))
|
||
Controller::error(ACCESS);
|
||
|
||
|
||
if ($fee_type_id && is_numeric($fee_type_id))
|
||
{
|
||
$enum_type_model = new Enum_type_Model();
|
||
... | ... | |
$enum_type_model = new Enum_type_Model();
|
||
$enum_types = $enum_type_model->get_values($enum_type_name->id);
|
||
}
|
||
|
||
$form = array
|
||
(
|
||
'name' => '',
|
||
'fee' => 0,
|
||
'from' => array
|
||
(
|
||
'day' => date('j'),
|
||
'month' => date('n'),
|
||
'year' => date('Y')
|
||
),
|
||
'to' => array
|
||
(
|
||
'day' => date('j'),
|
||
'month' => date('n'),
|
||
'year' => date('Y')
|
||
),
|
||
'type_id' => 1
|
||
);
|
||
|
||
$errors = array
|
||
(
|
||
'fee' => '',
|
||
'from' => '',
|
||
'to' => '',
|
||
'type_id' => ''
|
||
);
|
||
|
||
|
||
$days = array();
|
||
for ($i = 1; $i <= 31; $i++)
|
||
$days[$i] = $i;
|
||
|
||
$months = array();
|
||
for ($i = 1; $i <= 12; $i++)
|
||
$months[$i] = $i;
|
||
|
||
$years = array();
|
||
for ($i = date('Y') - 100; $i <= date('Y') + 100; $i++)
|
||
$years[$i] = $i;
|
||
|
||
|
||
if ($_POST)
|
||
|
||
$form = new Forge();
|
||
|
||
$form->dropdown('type_id')
|
||
->label('Type')
|
||
->options($enum_types);
|
||
|
||
$form->input('name')
|
||
->label('Tariff name');
|
||
|
||
$form->input('fee')
|
||
->rules('valid_numeric')
|
||
->value(0);
|
||
|
||
$form->date('from')
|
||
->rules('required')
|
||
->callback(array($this, 'valid_interval'))
|
||
->label('Date from');
|
||
|
||
$form->date('to')
|
||
->rules('required')
|
||
->label('Date to');
|
||
|
||
$form->submit('Add');
|
||
|
||
if ($form->validate())
|
||
{
|
||
$post = new Validation($_POST);
|
||
$post->add_rules('fee', 'required', 'numeric');
|
||
|
||
$post->add_rules('from', array('valid', 'date'));
|
||
$post->add_rules('to', array('valid', 'date'));
|
||
|
||
// new system is not restricted on overlapping intervals in global scale
|
||
// overlapping will be checked individually with each member
|
||
$post->add_callbacks('type_id', array($this, 'valid_interval'));
|
||
$form_data = $form->as_array();
|
||
|
||
if ($post->validate())
|
||
$fee = new Fee_Model();
|
||
|
||
try
|
||
{
|
||
$fee = new Fee_Model();
|
||
$fee->type_id = $post->type_id;
|
||
$fee->name = $post->name;
|
||
$fee->fee = $post->fee;
|
||
$fee->from = date::round_month(
|
||
$post->from['day'],
|
||
$post->from['month'],
|
||
$post->from['year']
|
||
);
|
||
$fee->to = date::round_month(
|
||
$post->to['day'],
|
||
$post->to['month'],
|
||
$post->to['year'], TRUE
|
||
);
|
||
// clears form content
|
||
unset($form_data);
|
||
|
||
$fee->transaction_start();
|
||
|
||
$fee->type_id = $form_data['type_id'];
|
||
$fee->name = $form_data['name'];
|
||
$fee->fee = $form_data['fee'];
|
||
$fee->from = date("Y-m-d", $form_data['from']);
|
||
$fee->to = date("Y-m-d", $form_data['to']);
|
||
|
||
$fee->save_throwable();
|
||
|
||
$fee->transaction_commit();
|
||
|
||
// for popup adding
|
||
if ($this->popup)
|
||
{
|
||
// save fee
|
||
$fee->save();
|
||
|
||
$fee_name = ($fee->name != '') ? "$fee->name - " : "";
|
||
$from = str_replace('-', '/', $fee->from);
|
||
$to = str_replace('-', '/', $fee->to);
|
||
$fee_name = "$fee_name$fee->fee " . __($this->settings->get('currency')) . " ($from-$to)";
|
||
$this->redirect('fees/show_all', $fee->id);
|
||
}
|
||
else
|
||
{
|
||
// has fee been successfully saved?
|
||
if ($fee->save())
|
||
{
|
||
status::success('Fee has been successfully added');
|
||
}
|
||
else
|
||
{
|
||
status::error('Error - can\'t add new fee.');
|
||
}
|
||
|
||
// classic adding
|
||
url::redirect(url_lang::base() . 'fees/show_all');
|
||
status::success('Fee has been successfully added');
|
||
|
||
$this->redirect('fees/show_all');
|
||
}
|
||
}
|
||
else
|
||
catch (Exception $e)
|
||
{
|
||
$form = arr::overwrite($form, $post->as_array());
|
||
$errors = arr::overwrite($errors, $post->errors('errors'));
|
||
$fee->transaction_rollback();
|
||
status::error('Error - can\'t add new fee.');
|
||
Log::add_exception($e);
|
||
|
||
$this->redirect('fees/show_all');
|
||
}
|
||
}
|
||
|
||
$headline = __('Add new fee');
|
||
|
||
// bread crumbs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('fees/show_all', 'Fees',
|
||
... | ... | |
|
||
// view for adding translation
|
||
$view = new View('main');
|
||
$view->title = __('Add new fee');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->content = new View('fees/add');
|
||
$view->content->name = $form['name'];
|
||
$view->content->fee = $form['fee'];
|
||
$view->content->from = $form['from'];
|
||
$view->content->to = $form['to'];
|
||
$view->content->type_id = $form['type_id'];
|
||
$view->content->errors = $errors;
|
||
$view->content->days = $days;
|
||
$view->content->months = $months;
|
||
$view->content->years = $years;
|
||
$view->content->types = $enum_types;
|
||
$view->content->fee_model = isset($fee) && $fee->id ? $fee : NULL;
|
||
$view->content->fee_name = isset($fee_name) ? $fee_name : NULL;
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Edits fee
|
||
*
|
||
* @author Michal Kliment
|
||
* @author David Raška
|
||
* @param integer $fee_id
|
||
*/
|
||
public function edit($fee_id = NULL)
|
||
... | ... | |
$enum_type_model = new Enum_type_Model();
|
||
$enum_types = $enum_type_model->get_values($enum_type_name->id);
|
||
|
||
$this->fee_id = $fee->id;
|
||
$form = new Forge();
|
||
|
||
$form->dropdown('type_id')
|
||
->label('Type')
|
||
->options($enum_types)
|
||
->selected($fee->type_id);
|
||
|
||
$form->input('name')
|
||
->label('Tariff name')
|
||
->value($fee->name);
|
||
|
||
$form->input('fee')
|
||
->rules('valid_numeric')
|
||
->value($fee->fee);
|
||
|
||
$form->date('from')
|
||
->rules('required')
|
||
->callback(array($this, 'valid_interval'))
|
||
->label('Date from')
|
||
->value(strtotime($fee->from));
|
||
|
||
$form->date('to')
|
||
->rules('required')
|
||
->label('Date to')
|
||
->value(strtotime($fee->to));
|
||
|
||
$form->submit('Edit');
|
||
|
||
$form = array
|
||
(
|
||
'name' => $fee->name,
|
||
'fee' => $fee->fee,
|
||
'from' => array
|
||
(
|
||
'day' => (int) substr($fee->from, 8, 2),
|
||
'month' => (int) substr($fee->from, 5, 2),
|
||
'year' => (int) substr($fee->from, 0, 4)
|
||
),
|
||
'to' => array
|
||
(
|
||
'day' => (int) substr($fee->to, 8, 2),
|
||
'month' => (int) substr($fee->to, 5, 2),
|
||
'year' => (int) substr($fee->to, 0, 4)
|
||
),
|
||
'type_id' => $fee->type_id
|
||
);
|
||
|
||
$errors = array
|
||
(
|
||
'fee' => '',
|
||
'from' => '',
|
||
'to' => '',
|
||
'type_id' => ''
|
||
);
|
||
|
||
|
||
$days = array();
|
||
for ($i = 1; $i <= 31; $i++)
|
||
$days[$i] = $i;
|
||
|
||
$months = array();
|
||
for ($i = 1; $i <= 12; $i++)
|
||
$months[$i] = $i;
|
||
|
||
$years = array();
|
||
for ($i = date('Y') - 100; $i <= date('Y') + 100; $i++)
|
||
$years[$i] = $i;
|
||
|
||
|
||
if ($_POST)
|
||
if ($form->validate())
|
||
{
|
||
$post = new Validation($_POST);
|
||
$post->add_rules('fee', 'required', 'numeric');
|
||
$form_data = $form->as_array();
|
||
|
||
$fee = new Fee_Model($fee_id);
|
||
|
||
try
|
||
{
|
||
$fee->transaction_start();
|
||
|
||
$fee->type_id = $form_data['type_id'];
|
||
$fee->name = $form_data['name'];
|
||
$fee->fee = $form_data['fee'];
|
||
$fee->from = date("Y-m-d", $form_data['from']);
|
||
$fee->to = date("Y-m-d", $form_data['to']);
|
||
|
||
$fee->save_throwable();
|
||
|
||
$fee->transaction_commit();
|
||
|
||
status::success('Fee has been successfully updated.');
|
||
|
||
$post->add_rules('from', array('valid', 'date'));
|
||
$post->add_rules('to', array('valid', 'date'));
|
||
|
||
// new system is not restricted on overlapping intervals in global scale
|
||
// overlapping will be checked individually with each member
|
||
$post->add_callbacks('type_id', array($this, 'valid_interval'));
|
||
|
||
if ($post->validate())
|
||
$this->redirect('fees/show_all');
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
$fee = new Fee_Model($fee_id);
|
||
$fee->type_id = $post->type_id;
|
||
$fee->name = $post->name;
|
||
$fee->fee = $post->fee;
|
||
$fee->from = date::round_month(
|
||
$post->from['day'],
|
||
$post->from['month'],
|
||
$post->from['year']
|
||
);
|
||
$fee->to = date::round_month(
|
||
$post->to['day'],
|
||
$post->to['month'],
|
||
$post->to['year']
|
||
);
|
||
// clears form content
|
||
unset($form_data);
|
||
// has fee been successfully saved?
|
||
if ($fee->save())
|
||
$fee->transaction_rollback();
|
||
status::error('Error - cant edit fee.');
|
||
Log::add_exception($e);
|
||
|
||
if (!$this->popup)
|
||
{
|
||
status::success('Fee has been successfully updated');
|
||
url::redirect(url_lang::base() . 'fees/show_all');
|
||
$this->redirect('fees/show_all');
|
||
}
|
||
else
|
||
{
|
||
status::error('Error - cant edit fee.');
|
||
}
|
||
}
|
||
else
|
||
{
|
||
$form = arr::overwrite($form, $post->as_array());
|
||
$errors = arr::overwrite($errors, $post->errors('errors'));
|
||
}
|
||
}
|
||
|
||
|
||
$headline = __('Edit fee');
|
||
|
||
// bread crumbs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('fees/show_all', 'Fees',
|
||
... | ... | |
|
||
// view for adding translation
|
||
$view = new View('main');
|
||
$view->title = __('Edit fee');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->content = new View('fees/edit');
|
||
$view->content->fee_id = $fee_id;
|
||
$view->content->name = $form['name'];
|
||
$view->content->fee = $form['fee'];
|
||
$view->content->from = $form['from'];
|
||
$view->content->to = $form['to'];
|
||
$view->content->type_id = $form['type_id'];
|
||
$view->content->errors = $errors;
|
||
$view->content->days = $days;
|
||
$view->content->months = $months;
|
||
$view->content->years = $years;
|
||
$view->content->types = $enum_types;
|
||
$view->content = new View('fees/add');
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
... | ... | |
/**
|
||
* Checks overlapping of fee validity intervals.
|
||
*
|
||
* @param Validation $post
|
||
* @param Input $input
|
||
*/
|
||
public function valid_interval($post = NULL)
|
||
public function valid_interval($input = NULL)
|
||
{
|
||
if (empty($post) || !is_object($post) || !($post instanceof Validation) ||
|
||
!array_key_exists('day', $post) ||
|
||
!array_key_exists('month', $post) ||
|
||
!array_key_exists('year', $post))
|
||
// validators cannot be accessed
|
||
if (empty($input) || !is_object($input))
|
||
{
|
||
self::error(PAGE);
|
||
}
|
||
|
||
$from_date = date::round_month(
|
||
$post->from['day'], $post->from['month'], $post->from['year']
|
||
);
|
||
|
||
$to_date = date::round_month(
|
||
$post->to['day'], $post->to['month'], $post->to['year'], TRUE
|
||
);
|
||
|
||
$diff = date::diff_month($to_date, $from_date);
|
||
$arr_from = date_parse_from_format(DateTime::ISO8601, $this->input->post('from'));
|
||
$arr_to = date_parse_from_format(DateTime::ISO8601, $this->input->post('to'));
|
||
|
||
if ($diff < -1)
|
||
$date_from = date::round_month($arr_from['day'], $arr_from['month'], $arr_from['year']);
|
||
$date_to = date::round_month($arr_to['day'], $arr_to['month'], $arr_to['year']);
|
||
|
||
$diff = date::diff_month($date_to, $date_from);
|
||
|
||
if ($diff < 0)
|
||
{
|
||
$post->add_error('from', 'bigger');
|
||
$input->add_error('required', __('Date from must be smaller then date to.'));
|
||
return;
|
||
}
|
||
|
||
if ($diff < 0)
|
||
|
||
if ($diff == 0)
|
||
{
|
||
$post->add_error('to', 'minimal');
|
||
$input->add_error('required', __('Minimal duration is one month.'));
|
||
return;
|
||
}
|
||
}
|
freenetis/branches/1.1/application/controllers/js.php | ||
---|---|---|
// fee_id is not set (or it is not numeric)
|
||
else
|
||
{
|
||
$fees = $fee_model->get_all_fees('type_id');
|
||
$total_fees = $fee_model->count_all();
|
||
$fees = $fee_model->get_all_fees(0, $total_fees, 'type_id');
|
||
}
|
||
|
||
$this->views['members_fees_add'] = View::factory('js/members_fees_add');
|
freenetis/branches/1.1/application/controllers/json.php | ||
---|---|---|
json_decode(array());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Returns fee details in json format
|
||
*
|
||
* @author David Raška
|
||
*/
|
||
public function get_fee_by_id()
|
||
{
|
||
// access control
|
||
if (!$this->acl_check_view('Fees_Controller', 'fees'))
|
||
Controller::Error(ACCESS);
|
||
|
||
$id = (int) $this->input->get('id');
|
||
|
||
$fee_model = new Fee_Model($id);
|
||
|
||
$fee = array(
|
||
'id' => $fee_model->id,
|
||
'from' => $fee_model->from,
|
||
'to' => $fee_model->to,
|
||
'type' => $fee_model->type_id
|
||
);
|
||
|
||
echo json_encode($fee);
|
||
}
|
||
|
||
/**
|
||
* Returns all fees belongs to fee type in json format
|
||
*
|
freenetis/branches/1.1/application/controllers/members_fees.php | ||
---|---|---|
), $arr_fee_types);
|
||
|
||
// finds all fees
|
||
$fees = $fee_model->get_all_fees('type_id');
|
||
$total_fees = $fee_model->count_all();
|
||
$fees = $fee_model->get_all_fees(0, $total_fees, 'type_id');
|
||
}
|
||
|
||
// converts to array
|
||
... | ... | |
->label('Fee')
|
||
->options($arr_fees)
|
||
->rules('required')
|
||
->add_button('fees', 'add', $fee_type_id)
|
||
->add_button('fees', 'add', $fee_type_id."?popup=1")
|
||
->style('width: 600px');
|
||
|
||
$form->date('from')
|
freenetis/branches/1.1/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'tariff has been successfully added' => 'Tarif byl úspěšně přidán.',
|
||
'tariff has been successfully updated' => 'Tarif byl úspěšně aktualizován.',
|
||
'tariff has been successfully deleted' => 'Tarif byl úspěšně smazán.',
|
||
'tariff name' => 'Název tarifu',
|
||
'tariff name (optional)' => 'Název tarifu (nepovinné)',
|
||
'tax' => 'DPH',
|
||
'tax rate' => 'Sazba DPH',
|
freenetis/branches/1.1/application/models/fee.php | ||
---|---|---|
* @param string $order_by_direction
|
||
* @return Mysql_Result object
|
||
*/
|
||
public function get_all_fees($order_by = 'from', $order_by_direction = 'asc')
|
||
public function get_all_fees($limit_from = 0, $limit_results = NULL,
|
||
$order_by = 'from', $order_by_direction = 'asc')
|
||
{
|
||
$limit = '';
|
||
// order by direction check
|
||
if (strtolower($order_by_direction) != 'desc')
|
||
{
|
||
$order_by_direction = 'asc';
|
||
}
|
||
|
||
if ($limit_results !== NULL &&
|
||
is_numeric($limit_results))
|
||
{
|
||
$limit = "LIMIT ". intval($limit_from) . ", " . intval($limit_results);
|
||
}
|
||
|
||
return $this->db->query("
|
||
SELECT fees.id, fees.readonly, fees.special_type_id, fees.type_id,
|
||
fees.fee, fees.from, fees.to, fees.name,
|
||
... | ... | |
LEFT JOIN enum_types on enum_types.id = fees.type_id
|
||
LEFT JOIN translations on translations.original_term = enum_types.value
|
||
and translations.lang = ?
|
||
ORDER BY fees.readonly DESC, fees.special_type_id ASC, fees.from ASC
|
||
GROUP BY fees.id
|
||
ORDER BY fees.readonly DESC,
|
||
fees.special_type_id ASC, "
|
||
. $this->db->escape_column($order_by) . " $order_by_direction
|
||
$limit
|
||
", Config::get('lang'));
|
||
}
|
||
|
freenetis/branches/1.1/application/views/fees/add.php | ||
---|---|---|
<?php if ($this->popup && isset($fee_model) && isset($fee_name)): ?>
|
||
<script type="text/javascript"><!--
|
||
|
||
var fee_from_date = new Date(<?php echo $fee_model->from ?>);
|
||
var fee_to_date = new Date(<?php echo $fee_model->to ?>);
|
||
var fee = opener.document.getElementById('fee_id');
|
||
var from = opener.document.getElementById('from');
|
||
if (from.value == '')
|
||
from.value = '<?php echo $fee_model->from ?>';
|
||
else
|
||
{
|
||
var from_date = new Date(from.value);
|
||
if (from_date.getTime() < fee_from_date.getTime() || from_date.getTime() > fee_to_date.getTime())
|
||
from.value = '<?php echo $fee_model->from ?>';
|
||
}
|
||
var to = opener.document.getElementById('to');
|
||
if (to.value == '')
|
||
to.value = '<?php echo $fee_model->to ?>';
|
||
else
|
||
{
|
||
var to_date = new Date(to.value);
|
||
if (to_date.getTime() > fee_to_date.getTime() || to_date.getTime() < fee_from_date.getTime())
|
||
to.value = '<?php echo $fee_model->to ?>';
|
||
}
|
||
fee.options[fee.options.length] = new Option('<?php echo $fee_name ?>', '<?php echo $fee_model->id ?>', true);
|
||
fee.selectedIndex = fee.options.length-1;
|
||
opener.fee_intervals[<?php echo $fee_model->id ?>] = new Array();
|
||
opener.fee_intervals[<?php echo $fee_model->id ?>]['from'] = '<?php echo $fee_model->from ?>';
|
||
opener.fee_intervals[<?php echo $fee_model->id ?>]['to'] = '<?php echo $fee_model->to ?>';
|
||
self.close();
|
||
<h2><?php echo $headline ?></h2>
|
||
|
||
--></script>
|
||
<?php endif; ?>
|
||
|
||
<h2><?php echo __('Add new fee') ?></h2><br />
|
||
|
||
<?php echo form::open(url::base(TRUE) . url::current(TRUE), '', 'POST', array('id' => 'article_form')) ?>
|
||
<table cellspacing="3" class="form">
|
||
<tr>
|
||
<th><?php echo form::label('type_id', __('Type') . ':') ?></th>
|
||
<td><?php echo form::dropdown('type_id', $types, $type_id, 'style="width:200px"'); ?>
|
||
<p class="error"><?php echo $errors['type_id'] ?></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th><?php echo form::label('name', __('Tariff name (optional)') . ':') ?></th>
|
||
<td><?php echo form::input('name', $name); ?></td>
|
||
</tr>
|
||
<tr>
|
||
<th><?php echo form::label('fee', __('Fee') . ':') ?></th>
|
||
<td><?php echo form::input('fee', $fee); ?>
|
||
<p class="error"><?php echo (empty($errors['fee'])) ? '' : $errors['fee'] ?></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th><?php echo form::label('from', __('Date from') . ':') ?></th>
|
||
<td><?php echo form::dropdown('from[day]', $days, $from['day']); ?><?php echo form::dropdown('from[month]', $months, $from['month']); ?><?php echo form::dropdown('from[year]', $years, $from['year']); ?>
|
||
<p class="error"><?php echo (empty($errors['from'])) ? '' : $errors['from'] ?></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th><?php echo form::label('to', __('Date to') . ':') ?></th>
|
||
<td><?php echo form::dropdown('to[day]', $days, $to['day']); ?><?php echo form::dropdown('to[month]', $months, $to['month']); ?><?php echo form::dropdown('to[year]', $years, $to['year']); ?>
|
||
<p class="error"><?php echo $errors['to'] ?></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th></th>
|
||
<td><?php echo form::submit('submit', __('Add'), ' class=submit') ?></td>
|
||
</tr>
|
||
</table>
|
||
<?php echo form::close() ?>
|
||
<br /><?php echo $form ?><br />
|
freenetis/branches/1.1/application/views/js/members_fees_add.php | ||
---|---|---|
$("#from").datepicker("option", "maxDate", new Date($("#to").val()));
|
||
$("#to").datepicker("option", "minDate", new Date($("#from").val()));
|
||
});
|
||
|
||
// select correct fee if new was created
|
||
$('#fee_id').live('addOption', function (e, new_option_id)
|
||
{
|
||
$.ajaxSetup({
|
||
async: false
|
||
});
|
||
|
||
$('#fee_type_id').change();
|
||
|
||
$.ajaxSetup({
|
||
async: true
|
||
});
|
||
|
||
$.getJSON("<?php echo url_lang::base() ?>json/get_fee_by_id?id=" + new_option_id, function(data)
|
||
{
|
||
$('#fee_id').val(data['id']);
|
||
|
||
fee_intervals[data['id']] = new Array();
|
||
fee_intervals[data['id']]['from'] = data['from'];
|
||
fee_intervals[data['id']]['to'] = data['to'];
|
||
|
||
$('#fee_id').change();
|
||
})
|
||
});
|
Také k dispozici: Unified diff
Opravy:
- fixes #763: Oprava pridavani a editace prispevku
- Oprava razeni polozek v seznamu vsech prispevku
- Oprava naplneni formulare pri pridani poplatku popup dialogem