Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 555

Přidáno uživatelem Jiří Sviták před téměř 15 roky(ů)

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.

Zobrazit rozdíly:

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