Example #1
0
    /**
     * Vis informasjon om betaling for FF
     */
    protected function page_pay_handle()
    {
        $pay_info = $this->ff->pay_info();
        if (isset($_POST['pay'])) {
            // har vi ikke gått over tiden
            if ($pay_info['in_time']) {
                ess::$b->page->add_message("Du har ikke mulighet til å betale nå.");
            } elseif (login::$user->player->data['up_cash'] <= $pay_info['price']) {
                ess::$b->page->add_message("Du har ikke nok penger på hånda.");
            } else {
                // utfør betalingen
                $result = $this->ff->pay_action();
                if ($result !== false) {
                    ess::$b->page->add_message("Du har betalt driftskostnaden på <b>" . game::format_cash($result) . "</b>. Neste gang driftskostnaden skal trekkes er " . ess::$b->date->get($this->ff->data['ff_pay_next'])->format() . ".");
                    $this->ff->redirect();
                } else {
                    ess::$b->page->add_message("Noe gikk galt ved betaling. Prøv på nytt.");
                    redirect::handle("panel?ff_id={$this->ff->id}&a=pay");
                }
            }
        }
        ess::$b->page->add_title("Driftskostnad");
        // hent oversikt over medlemmer og vis hvor mye hver av dem har ranket som teller for FF
        $rank_info = $this->ff->get_rank_info();
        ess::$b->page->add_css('
.ff_panel_pay { padding-bottom: 1em }
.ff_panel_pay .progressbar p { color: #EEEEEE }
.ff_panel_pay .progressbar { margin-bottom: 2px; background-color: #2D2D2D }
.ff_panel_pay .progressbar .progress { background-color: #434343 }');
        echo '
<div class="section w350 ff_panel_pay">
	<h2>Driftskostnad</h2>
	<p class="h_right"><a href="panel?ff_id=' . $this->ff->id . '">Tilbake</a></p>
	<boxes />
	<p>For at ' . $this->ff->type['refobj'] . ' ikke skal dø ut, må det betales inn et beløp på <u>100 mill</u> i tillegg til kostnad per ekstra medlemsplass til spillet hver 10. dag.</p>
	<p>Når medlemmene i ' . $this->ff->type['refobj'] . ' ranker, vil beløpet som må innbetales synke med 1 og 1 mill avhengig av hvor mye som rankes.</p>
	<p>' . ucfirst($this->ff->type['refobj']) . ' mister ikke ranken hvis et medlem forlater ' . $this->ff->type['refobj'] . '.</p>
	<p>Beløpet vil bli trukket fra banken for ' . $this->ff->type['refobj'] . ' automatisk ved innbetalingstidspunkt. Hvis det ikke er nok penger i banken, vil ' . $this->ff->type['refobj'] . ' få frist på å innbetale beløpet manuelt innen 24 timer. Beløpet vil da øke med 50 %.</p>' . (!$pay_info['in_time'] ? '
	<div class="section" style="width: 220px">
		<h2>Betaling av driftskostnad</h2>
		<p class="error_box">' . ucfirst($this->ff->type['refobj']) . ' har overskredet tidspunktet for innbetaling. Betaling må skje manuelt av ' . $this->ff->type['priority'][1] . '/' . $this->ff->type['priority'][2] . '.</p>
		<dl class="dd_right">
			<dt>Betalingsfrist</dt>
			<dd>' . ess::$b->date->get($pay_info['next'])->format() . '<br />' . game::timespan($pay_info['next'], game::TIME_ABS) . '</dd>
			<dt>Beløp</dt>
			<dd>' . game::format_cash($pay_info['price']) . '</dd>
		</dl>' . ($this->ff->access(2) ? '
		<form action="panel?ff_id=' . $this->ff->id . '&amp;a=pay" method="post">
			<p class="c">' . show_sbutton("Betal driftskostnaden", 'name="pay"') . '</p>
		</form>' : '') . '
		<p>Hvis beløpet ikke blir betalt innen betalingsfristen vil ' . $this->ff->type['refobj'] . ' bli oppløst.</p>
	</div>' : '
	<dl class="dd_right">
		<dt>Neste innbetaling</dt>
		<dd>' . ess::$b->date->get($pay_info['next'])->format() . '</dd>
		<dt>Utgangspunkt for beløp (' . fwords("%d eksta spillerplass", "%d ekstra spillerplasser", $pay_info['members_limit']) . ')</dt>
		<dd>' . game::format_cash($pay_info['price_max']) . '</dd>
		<dt>Foreløpig beløp</dt>
		<dd>' . game::format_cash($pay_info['price']) . '</dd>
	</dl>') . '
	<p>Medlemmers bidrag:</p>';
        if (count($rank_info['players']) == 0) {
            echo '
	<p>' . ucfirst($this->ff->type['refobj']) . ' har ingen medlemmer.</p>';
        } else {
            foreach ($rank_info['players'] as $info) {
                echo '
	<div class="progressbar">
		<div class="progress' . ($info['points'] < 0 ? ' ff_progress_negative' : '') . '" style="width: ' . round($info['percent_bar']) . '%">
			<p>' . game::profile_link($info['member']->id, $info['member']->data['up_name'], $info['member']->data['up_access_level']) . ' (' . $info['member']->get_priority_name() . ($info['member']->data['ffm_parent_up_id'] ? ' underordnet <user id="' . $info['member']->data['ffm_parent_up_id'] . '" />' : '') . ') (' . game::format_number($info['percent_text'], 1) . ' %)</p>
		</div>
	</div>';
            }
        }
        if (isset($rank_info['others'])) {
            echo '
	<div class="progressbar">
		<div class="progress' . ($rank_info['others']['points'] < 0 ? ' ff_progress_negative' : '') . '" style="width: ' . round($rank_info['others']['percent_bar']) . '%">
			<p>Tidligere medlemmer av ' . $this->ff->type['refobj'] . ' (' . game::format_number($rank_info['others']['percent_text'], 1) . ' %)</p>
		</div>
	</div>';
        }
        echo '
</div>';
        $this->ff->load_page();
    }