Revize 390
Přidáno uživatelem Jiří Sviták před asi 15 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'debit payment rate' => 'Výše splátek',
|
||
'debtors' => 'Dlužníci',
|
||
'deduct' => 'Strhnout',
|
||
'deduct entrance fee' => 'Strhnout vstupní příspěvek',
|
||
'deduction of member fees' => 'Stržení členských příspěvků',
|
||
'deduction of entrance fees' => 'Stržení vstupních příspěvků',
|
||
'delete this contact' => 'Smazat tento kontakt',
|
||
... | ... | |
'entrance date' => 'Datum vstupu',
|
||
'entrance_date' => 'Datum vstupu',
|
||
'entrance fee' => 'Vstupní příspěvek',
|
||
'entrance fee has been successfully deducted' => 'Vstupní příspěvek byl úspěšně stržen.',
|
||
'entrance fee have to be a number' => 'Vstupní příspěvk musí být číslo',
|
||
'entrance fee left' => 'Nedoplatek vstupního příspěvku',
|
||
'enum type has been successfully added' => 'Výčet byl úspěšně přidán',
|
||
'entrance fees have been successfully deducted' => 'Vstupní příspěvky byly úspěšně strženy.',
|
||
'enum type has been successfully added' => 'Výčet byl úspěšně přidán',
|
||
'enum type has been successfully deleted' => 'Výčet byl úspěšně smazán',
|
||
'enum type has been successfully updated' => 'Výčet byl úspěšně aktualizován',
|
||
'enumerations' => 'Výčty',
|
||
... | ... | |
'error - cant add new member' => 'Chyba - nelze vytvořit člena.',
|
||
'error - cant add new user' => 'Chyba - nelze vytvořit uživatele.',
|
||
'error - cant add new work' => 'Chyba - nelze přidat novou práci.',
|
||
'error - cant deduct entrance fee' => 'Chyba - nelze strhnout vstupní příspěvek.',
|
||
'error - cant delete device' => 'Chyba - nelze smazat zařízení.',
|
||
'error - cant delete interface' => 'Chyba - nelze smazat rozhraní.',
|
||
'error - cant delete ip address' => 'Chyba - nelze smazat IP adresu.',
|
freenetis/trunk/kohana/application/models/member.php | ||
---|---|---|
LIMIT $limit, $limit_results");
|
||
}
|
||
|
||
/**
|
||
* Function gets all members to export to xls file.
|
||
* @return unknown_type
|
||
*/
|
||
public function get_all_members_to_export()
|
||
{
|
||
self::$db->query("SET CHARACTER SET 'utf8'");
|
||
self::$db->query("SET collation_connection=utf8_czech_ci");
|
||
return self::$db->query("SELECT m.id,
|
||
m.registration,
|
||
m.name,
|
||
... | ... | |
}
|
||
|
||
/**
|
||
* Function gets all members to deduct entrance fees.
|
||
* @return unknown_type
|
||
*/
|
||
public function get_all_members_to_deduct_entrance_fees()
|
||
{
|
||
return self::$db->query("SELECT m.id, a.id AS aid
|
||
FROM members m
|
||
JOIN accounts a ON a.member_id = m.id
|
||
WHERE m.entrance_fee_left <> 0
|
||
");
|
||
}
|
||
|
||
/**
|
||
* Function counts all members.
|
||
* @param $filter_values
|
||
* @return unknown_type
|
freenetis/trunk/kohana/application/models/account.php | ||
---|---|---|
public function get_operating_account()
|
||
{
|
||
return self::$db->query("SELECT id
|
||
FROM accounts a
|
||
WHERE a.account_attribute_id = ".Account_attribute_Model::$operating)
|
||
FROM accounts
|
||
WHERE account_attribute_id = ".Account_attribute_Model::$operating)
|
||
->current();
|
||
}
|
||
|
||
/**
|
||
* Function gets id of infrastructure account. Used for deducting entrance fees.
|
||
* @return unknown_type
|
||
*/
|
||
public function get_infrastructure_account()
|
||
{
|
||
return self::$db->query("SELECT id
|
||
FROM accounts
|
||
WHERE account_attribute_id = ".Account_attribute_Model::$infrastructure)
|
||
->current();
|
||
}
|
||
|
||
/**
|
||
* Function gets credit account id of given member.
|
||
* @param $member_id
|
||
* @return unknown_type
|
||
*/
|
||
public function get_credit_account_of_member($member_id)
|
||
{
|
||
return self::$db->query("SELECT id
|
||
FROM accounts
|
||
WHERE member_id = $member_id AND account_attribute_id = ".Account_attribute_Model::$credit)
|
||
->current();
|
||
}
|
||
|
||
/**
|
||
* @author Tomas Dulik
|
freenetis/trunk/kohana/application/controllers/members.php | ||
---|---|---|
|
||
$form->group('')->label(url_lang::lang('texts.Account information'));
|
||
$form->input('entrance_fee')->label(url_lang::lang('texts.Entrance fee').':')->rules('valid_numeric')->value($entrance_fee);
|
||
//$form->input('entrance_fee_left')->label(url_lang::lang('texts.Entrance fee left').':')->rules('valid_numeric')->value(2000);
|
||
$form->input('debt_payment_rate')->label(url_lang::lang('texts.Debit payment rate').':')->rules('valid_numeric');
|
||
$form->group('')->label(url_lang::lang('texts.Additional information'));
|
||
$form->input('qos_ceil')->label(url_lang::lang('texts.qos ceil').':')->rules('valid_numeric');
|
||
... | ... | |
->callback(array($this, 'valid_email'))->value($member_data->email);
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Account information'));
|
||
if ($this->acl_check_edit(get_class($this),'en_fee',$member_id))
|
||
$form->input('entrance_fee')->label(url_lang::lang('texts.Entrance fee').':')->rules('valid_numeric')->value($member_data->entrance_fee);
|
||
if ($this->acl_check_edit(get_class($this),'en_fee_left',$member_id))
|
||
$form->input('entrance_fee_left')->label(url_lang::lang('texts.Entrance fee left').':')->rules('valid_numeric')->value($member_data->entrance_fee_left);
|
||
// to do
|
||
//if ($this->acl_check_edit(get_class($this),'en_fee',$member_id) )// && ($member_data->entrance_fee == $member_data->entrance_fee_left))
|
||
// $form->input('entrance_fee')->label(url_lang::lang('texts.Entrance fee').':')->rules('valid_numeric')->value($member_data->entrance_fee);
|
||
if ($this->acl_check_edit(get_class($this),'debit',$member_id))
|
||
$form->input('debt_payment_rate')->label(url_lang::lang('texts.Debit payment rate').':')->rules('valid_numeric')->value($member_data->debt_payment_rate);
|
||
|
||
... | ... | |
$member_data->qos_ceil = $form_data['qos_ceil'];
|
||
if ($this->acl_check_edit(get_class($this),'qos_rate',$member_id))
|
||
$member_data->qos_rate = $form_data['qos_rate'];
|
||
if ($this->acl_check_edit(get_class($this),'en_fee',$member_id))
|
||
$member_data->entrance_fee = $form_data['entrance_fee'];
|
||
if ($this->acl_check_edit(get_class($this),'en_fee_left',$member_id))
|
||
$member_data->entrance_fee_left = $form_data['entrance_fee_left'];
|
||
//if ($this->acl_check_edit(get_class($this),'en_fee',$member_id))
|
||
// $member_data->entrance_fee = $form_data['entrance_fee'];
|
||
//if ($this->acl_check_edit(get_class($this),'en_fee_left',$member_id))
|
||
// $member_data->entrance_fee_left = $form_data['entrance_fee'];
|
||
if ($this->acl_check_edit(get_class($this),'debit',$member_id))
|
||
$member_data->debt_payment_rate = $form_data['debt_payment_rate'];
|
||
|
||
... | ... | |
// set content header
|
||
header('Content-type: application/xls');
|
||
// requires xls module from library PEAR
|
||
require_once(APPPATH.'vendors/Spreadsheet/Excel/Writer.php');
|
||
//require_once(APPPATH.'vendors/Spreadsheet/Excel/Writer.php');
|
||
require_once('Spreadsheet/Excel/Writer.php');
|
||
// workbook represents xls file
|
||
$workbook = new Spreadsheet_Excel_Writer();
|
||
$workbook->setVersion(8);
|
||
$workbook->send(url_lang::lang('texts.Members').'.xls');
|
||
$workbook->setVersion(8);
|
||
// set xls cells format
|
||
$format_bold =& $workbook->addFormat();
|
||
$format_bold->setBold();
|
||
// worksheet represents sheet in xls file
|
||
$worksheet =& $workbook->addWorksheet('Clenove');
|
||
$worksheet->setInputEncoding("UTF-8");
|
||
$worksheet->setInputEncoding("utf-8");
|
||
// creates database member model
|
||
$member_model = new Member_Model();
|
||
$members = $member_model->get_all_members_to_export();
|
freenetis/trunk/kohana/application/controllers/transfers.php | ||
---|---|---|
// and all transfers should have the same date of deduct start
|
||
$datetime = date('Y-m-d H:i:s', mktime(0, 0, 0, $month, 1, $year));
|
||
// database models
|
||
$mt = new Transfer_Model();
|
||
$transfer = new Transfer_Model();
|
||
$member_model = new Member_Model();
|
||
$account_model = new Account_Model();
|
||
$mi_model = new Membership_interrupt_Model();
|
||
... | ... | |
foreach($credit_accounts as $ca)
|
||
{
|
||
// clears transfer model
|
||
$mt->clear();
|
||
$transfer->clear();
|
||
// starting month
|
||
$start = $month;
|
||
// finishing month
|
||
... | ... | |
// if deducting interval is between entrance and leaving date, transfer will be generated
|
||
if ($e_okay && $l_okay && $total_months > 0)
|
||
{
|
||
$mt->origin_id = $ca->id;
|
||
$mt->destination_id = $oa->id;
|
||
$mt->datetime = $datetime;
|
||
$mt->creation_datetime = $creation_datetime;
|
||
$mt->text = $text;
|
||
$mt->amount = $total_months * $fee;
|
||
$transfer->origin_id = $ca->id;
|
||
$transfer->destination_id = $oa->id;
|
||
$transfer->datetime = $datetime;
|
||
$transfer->creation_datetime = $creation_datetime;
|
||
$transfer->text = $text;
|
||
$transfer->amount = $total_months * $fee;
|
||
// money transfer is saved and checked
|
||
if (!$mt->save())
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
}
|
||
}
|
||
// end of transaction processing
|
||
$db->query("COMMIT;");
|
||
if ($save_successful)
|
||
{
|
||
$db->query("COMMIT;");
|
||
$this->session->set_flash('message', url_lang::lang('texts.Fees have been successfully deducted.'));
|
||
url::redirect(url_lang::base().'transfers/show_all');
|
||
}
|
||
else
|
||
{
|
||
$db->query("ROLLBACK;");
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - some fees have not been deducted.'));
|
||
}
|
||
}
|
||
... | ... | |
* the fee is deducted.
|
||
* @return unknown_type
|
||
*/
|
||
function deduct_entrance_fees()
|
||
function deduct_entrance_fees($member_id = null)
|
||
{
|
||
// access rights
|
||
if (!$this->acl_check_new('Accounts_Controller', 'transfers'))
|
||
Controller::error(1);
|
||
Controller::error(1);
|
||
// preparation
|
||
$transfer = new Transfer_Model();
|
||
$account_model = new Account_Model();
|
||
$infrastructure = $account_model->get_infrastructure_account();
|
||
$creation_datetime = date('Y-m-d H:i:s');
|
||
$text = url_lang::lang('texts.Entrance fee');
|
||
$save_successful = true;
|
||
// if member id has been set, then entrance fee will be deducted for this member
|
||
if (isset($member_id))
|
||
{
|
||
$member = new Member_Model($member_id);
|
||
$transfer->origin_id = $account_model->get_credit_account_of_member($member_id)->id;
|
||
$transfer->destination_id = $infrastructure->id;
|
||
$transfer->datetime = $member->entrance_date;
|
||
$transfer->creation_datetime = $creation_datetime;
|
||
$transfer->text = $text;
|
||
$transfer->amount = $member->entrance_fee_left;
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
$member->entrance_fee_left = 0;
|
||
if (!$member->save())
|
||
$save_successful = false;
|
||
if ($save_successful)
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Entrance fee has been successfully deducted.'));
|
||
}
|
||
else
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant deduct entrance fee.'));
|
||
}
|
||
url::redirect(url_lang::base()."members/show/$member_id");
|
||
}
|
||
// entrance fees of all members will be deducted
|
||
else
|
||
{
|
||
$member_model = new Member_Model();
|
||
$members = $member_model->get_all_members_to_deduct_entrance_fees();
|
||
$db = new Database();
|
||
$db->query("BEGIN;");
|
||
foreach($members as $m)
|
||
{
|
||
$member = ORM::factory($member_model, $m->id);
|
||
$transfer->clear();
|
||
$transfer->origin_id = $account_model->get_credit_account_of_member($member->id)->id;
|
||
$transfer->destination_id = $infrastructure->id;
|
||
$transfer->datetime = $member->entrance_date;
|
||
$transfer->creation_datetime = $creation_datetime;
|
||
$transfer->text = $text;
|
||
$transfer->amount = $member->entrance_fee_left;
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
$member->entrance_fee_left = 0;
|
||
if (!$m->save())
|
||
$save_successful = false;
|
||
}
|
||
if ($save_successful)
|
||
{
|
||
$db->query("COMMIT;");
|
||
$this->session->set_flash('message', url_lang::lang('texts.Entrance fees have been successfully deducted.'));
|
||
}
|
||
else
|
||
{
|
||
$db->query("ROLLBACK;");
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant deduct entrance fee.'));
|
||
}
|
||
url::redirect(url_lang::base().'transfers/show_all');
|
||
}
|
||
|
||
/*
|
||
// form
|
||
$form = new Forge(url_lang::base().'transfers/deduct_fees', '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
... | ... | |
$view->content->message = $this->session->get_once('message');
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
}
|
||
}
|
||
*/
|
||
}
|
||
|
||
/**
|
freenetis/trunk/kohana/application/views/members/show.php | ||
---|---|---|
$links[] = html::anchor(url_lang::base().'users/change_password/'.$member_data->id, url_lang::lang('texts.Change password'));
|
||
|
||
if ($this->acl_check_edit('Users_Controller', 'application_password', $member_data->id))
|
||
$links[] = html::anchor(url_lang::base().'users/change_application_password/'.$member_data->id, url_lang::lang('texts.Change application password'));
|
||
$links[] = html::anchor(url_lang::base().'users/change_application_password/'.$member_data->id, url_lang::lang('texts.Change application password'));
|
||
|
||
if ($this->acl_check_view('Devices_Controller', 'devices', $member_data->member_id))
|
||
$links[] = html::anchor(url_lang::base().'devices/show_by_member/'.$member_data->member_id,url_lang::lang('texts.Show his devices'));
|
||
|
||
if ($this->acl_check_view('Accounts_Controller', 'transfers', $member_data->member_id))
|
||
$links[] = html::anchor(url_lang::base().'transfers/show_by_member/'.$member_data->member_id,url_lang::lang('texts.Show his transfers'));
|
||
|
||
if ($member_data->entrance_fee_left != 0 && $this->acl_check_edit('Members_Controller', 'en_fee_left', $member_data->member_id))
|
||
$links[] = html::anchor(url_lang::base().'transfers/deduct_entrance_fees/'.$member_data->member_id, url_lang::lang('texts.Deduct entrance fee'));
|
||
|
||
|
||
echo implode (' | ', $links)
|
||
?>
|
Také k dispozici: Unified diff
Upravy v xls exportu. Pridano strhavani vstupnich prispevku, je treba doladit.