Revize 555
Přidáno uživatelem Jiří Sviták před téměř 15 roky(ů)
freenetis/trunk/kohana/application/models/account.php | ||
---|---|---|
{
|
||
return self::$db->query("
|
||
SELECT a.id, m.entrance_date, m.leaving_date,
|
||
IF(e.value = 'Regular member' OR e.value = 'Former member', 1, 0) AS type,
|
||
IF(e.value = 'Regular member' OR e.value = 'Former member', 1, 0) AS correct_type,
|
||
e.value AS type_name,
|
||
IFNULL(miid, 0) AS miid
|
||
FROM accounts a
|
||
JOIN members m ON a.member_id = m.id
|
freenetis/trunk/kohana/application/controllers/transfers.php | ||
---|---|---|
$transfer->datetime = $date;
|
||
$transfer->creation_datetime = $creation_datetime;
|
||
$transfer->text = $text;
|
||
|
||
// undefined leaving date has to be set to highest date
|
||
if ($account->leaving_date == '0000-00-00')
|
||
$leaving_date = '9999-99-99';
|
||
else
|
||
$leaving_date = $account->leaving_date;
|
||
if ($account->entrance_date <= $date && $leaving_date > $date && $account->type == 1 && $account->miid == 0)
|
||
// has active membership? (entrance < membership < leaving)
|
||
if ($account->entrance_date <= $date && $leaving_date > $date )
|
||
{
|
||
$transfer->amount = $member_fee;
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
// correct member type without membership interrupt?
|
||
if ($account->correct_type == 1 && $account->miid == 0)
|
||
{
|
||
$transfer->amount = $member_fee;
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
}
|
||
// else if member has interrupted membership or if he is of non-deduct type
|
||
// then zero transfer is generated
|
||
else
|
||
{
|
||
// reason for zero transfer
|
||
if ($account->correct_type != 1)
|
||
{
|
||
$translation = ORM::factory('translation')->
|
||
where(array('original_term' => $account->type_name, 'lang' => Config::item('locale.lang')))->find();
|
||
$transfer->text .= ' - '.url_lang::lang("texts.".$translation->translated_term);
|
||
}
|
||
elseif ($account->miid != 0)
|
||
{
|
||
$transfer->text .= ' - '.url_lang::lang("texts.Membership interrupt");
|
||
}
|
||
|
||
$transfer->amount = 0;
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
}
|
||
}
|
||
elseif ($account->miid > 0)
|
||
{
|
||
$transfer->amount = 0;
|
||
if (!$transfer->save())
|
||
$save_successful = false;
|
||
}
|
||
}
|
||
/*
|
||
echo '<table>';
|
Také k dispozici: Unified diff
Jeste dalsi drobna uprava - lidem s aktivnim clenstvim (datum vstupu < clenstvi < datum vystoupeni) to vzdy nejaky prevod vytvori. Pokud nema prerusene clenstvi a je to radny nebo byvaly clen, pak je mu strzena castka za mesic, dle databaze. V opacnem pripade mu je vygenerovan prevod s nulovou castkou a do textu prevodu je pridana informace duvodu nuloveho prevodu (preruseni clenstvi, neplatici radny clen nebo jiny zvyhodneny clen, pripadne oba duvody dohromady). Toto je vyhodne kvuli evidenci zmenam typu clenstvi - je tak zpetne dohledatelne kdy a kolik bylo clenovi strzeno. Lidem s neaktivnim clenstvim se zadne prevody netvori.