Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 390

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

Upravy v xls exportu. Pridano strhavani vstupnich prispevku, je treba doladit.

Zobrazit rozdíly:

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