/** * Fjern salg av FF hvis brukeren er involvert i det */ public function sell_remove() { $sell_status = $this->ff->sell_status(); if ($sell_status) { if ($sell_status['up_id'] == $this->id) { // avslå salg $this->ff->sell_reject(); } elseif ($sell_status['init_up_id'] == $this->id) { // trekk tilbake salg $this->ff->sell_abort(); } } }
/** * Behandle salg */ protected function page_selge_handle() { // crewtilgang? if ($this->ff->uinfo->crew || $this->ff->uinfo->data['ffm_priority'] > 2) { ess::$b->page->add_message("Du kan ikke benytte deg av denne handlingen som moderator. Må være {$this->ff->type['priority'][1]} eller {$this->ff->type['priority'][2]}.", "error"); redirect::handle(); } // finn status på salg av FF $status = $this->ff->sell_status(); // tittel ess::$b->page->add_title("Salg av {$this->ff->type['refobj']}"); // i salgsmodus? if ($status) { // eier? if ($this->ff->access(1) && $status['up_id'] != $this->ff->uinfo->id) { // trekke tilbake salget? if (isset($_POST['abort']) && validate_sid(false)) { // trekk tilbake salget $this->ff->sell_abort(); ess::$b->page->add_message("Salget av {$this->ff->type['refobj']} ble avbrutt."); redirect::handle("panel?ff_id={$this->ff->id}&a=sell"); } $seller = $status['init_up_id'] == $this->ff->uinfo->id; echo ' <div class="bg1_c xsmall" style="width: 320px"> <h1 class="bg1">Salg av ' . $this->ff->type['refobj'] . '<span class="left"></span><span class="right"></span></h1> <p class="h_left"><a href="panel?ff_id=' . $this->ff->id . '">« Tilbake</a></p> <div class="bg1"> <boxes />' . ($seller ? ' <p>Når ' . $this->ff->type['priority'][2] . ' godtar kjøpet, vil hele beløpet bli satt inn i banken din.</p>' : ' <p>Når ' . $this->ff->type['priority'][2] . ' godtar kjøpet, vil hele beløpet bli satt inn i banken til <user id="' . $status['init_up_id'] . '" />.</p>') . ' <p>Salgsgebyret vil bli trukket fra banken, og det må være til stede i banken for at kjøperen skal kunne fullføre.</p> <dl class="dd_right">' . ($seller ? '' : ' <dt>Selger</dt> <dd><user id="' . $status['init_up_id'] . '" /></dd>') . ' <dt>Kjøper (' . $this->ff->type['priority'][2] . ')</dt> <dd><user id="' . $status['up_id'] . '" /></dd> <dt>Tid salget ble åpnet</dt> <dd>' . ess::$b->date->get($status['time'])->format(date::FORMAT_SEC) . '</dd> </dl> <dl class="dd_right"> <dt>Penger i banken</dt> <dd>' . game::format_cash($this->ff->data['ff_bank']) . '</dd> <dt>Salgsgebyr (trekkes fra banken)</dt> <dd>' . game::format_cash($status['fee']) . '</dd> <dt>Salgsbeløp (overføres fra kjøper)</dt> <dd>' . game::format_cash($status['amount']) . '</dd> </dl> <form action="" method="post"> <input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" /> <p class="c">' . show_sbutton("Avbryt salg", 'name="abort"') . ' <a href="panel?ff_id=' . $this->ff->id . '">Tilbake</a></p> </form> </div> </div>'; } elseif ($status['up_id'] == $this->ff->uinfo->id) { // kjøpe FF? if (isset($_POST['approve']) && validate_sid(false)) { // forsøk å kjøp FF $result = $this->ff->sell_approve(); if ($result === true) { // vellykket ess::$b->page->add_message(($status['amount'] == 0 ? 'Du overtok ' . $this->ff->type['refobj'] : 'Du kjøpte ' . $this->ff->type['refobj'] . ' for <b>' . game::format_cash($status['amount']) . '</b>') . ', og er nå satt som ' . $this->ff->type['priority'][1] . '. <user id="' . $status['init_up_id'] . '" /> ble satt som ' . $this->ff->type['priority'][2] . '.'); redirect::handle("?ff_id={$this->ff->id}"); } elseif ($result == "player_cash") { ess::$b->page->add_message("Du har ikke nok penger på hånda for å gjennomføre kjøpet."); } elseif ($result == "ff_cash") { ess::$b->page->add_message('Det er ikke nok penger i banken til å dekke salgsgebyret. Donér til ' . $this->ff->type['refobj'] . ' eller be <user id="' . $status['init_up_id'] . '" /> sette inn penger. Salgsgebyret er på ' . game::format_cash($status['fee']) . '.', "error"); } else { ess::$b->page->add_message("Ukjent feil. Prøv på nytt.", "error"); } } // avslå kjøp? if (isset($_POST['reject']) && validate_sid(false)) { // forsøk å avbryt $result = $this->ff->sell_reject(); if ($result) { ess::$b->page->add_message("Du avslo kjøpet av {$this->ff->type['refobj']}."); redirect::handle("?ff_id={$this->ff->id}"); } else { ess::$b->page->add_message("Ukjent feil. Prøv på nytt.", "error"); } } echo ' <div class="bg1_c xsmall"> <h1 class="bg1">Salg av ' . $this->ff->type['refobj'] . '<span class="left"></span><span class="right"></span></h1> <p class="h_left"><a href="panel?ff_id=' . $this->ff->id . '">« Tilbake</a></p> <div class="bg1"> <boxes /> <p><user id="' . $status['init_up_id'] . '" /> har startet salg av ' . $this->ff->type['refobj'] . ' til deg. Du må enten godta eller avslå salget.</p> <p>Salgsgebyret vil bli trukket fra banken. Salgsbeløpet vil bli overført direkte fra deg til <user id="' . $status['init_up_id'] . '" /> sin bank.</p> <p>Du vil bli satt til ' . $this->ff->type['priority'][1] . ', mens <user id="' . $status['init_up_id'] . '" /> vil bli satt til ' . $this->ff->type['priority'][2] . '.</p> <dl class="dd_right"> <dt>Tid salget ble åpnet</dt> <dd>' . ess::$b->date->get($status['time'])->format(date::FORMAT_SEC) . '</dd> </dl> <dl class="dd_right"> <dt>Penger i banken</dt> <dd>' . game::format_cash($this->ff->data['ff_bank']) . '</dd> <dt>Salgsgebyr</dt> <dd>' . game::format_cash($status['fee']) . '</dd> <dt>Salgsbeløp</dt> <dd>' . game::format_cash($status['amount']) . '</dd> </dl> <form action="" method="post"> <input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" /> <p class="c"> ' . show_sbutton("Gjennomfør kjøp", 'name="approve"') . ' <span class="red">' . show_sbutton("Avslå kjøp", 'name="reject"') . '</span> </p> </form> </div> </div>'; } else { ess::$b->page->add_message("Du har ikke tilgang til å se detaljer for salget av {$this->ff->type['refobj']}.", "error"); redirect::handle(); } } else { // medeier har ikke tilgang her if (!$this->ff->access(1)) { ess::$b->page->add_message(ucfirst($this->ff->type['refobj']) . " er ikke til salgs for øyeblikket.", "error"); redirect::handle(); } // legge ut FF til salg? if (isset($_POST['sell_init']) && validate_sid(false)) { $up_id = intval(postval("up_id")); $amount = game::intval(postval("amount")); // for høyt beløp? if (mb_strlen($amount) > 12) { ess::$b->page->add_message("Salgsbeløpet er for høyt.", "error"); } elseif ($amount < 0) { ess::$b->page->add_message("Salgsbeløpet kan ikke være negativt.", "error"); } else { if (($result = $this->ff->sell_init($up_id, $amount)) === true) { ess::$b->page->add_message('Du har nå startet salg av ' . $this->ff->type['refobj'] . ' til <user id="' . $up_id . '" /> for ' . game::format_cash($amount) . '. Salgsgebyret blir trukket fra banken når kjøperen godtar kjøpet.'); redirect::handle("panel?ff_id={$this->ff->id}&a=sell"); } elseif ($result == "player_rank") { ess::$b->page->add_message('<user id="' . $up_id . '" /> har ikke høy nok rank til å kunne bli ' . $this->ff->type['priority'][1] . '. Må være minst ' . game::$ranks['items_number'][$this->ff->get_priority_rank(1)]['name'] . '.', "error"); } else { ess::$b->page->add_message("Noe gikk galt. Prøv igjen.", "error"); } } } // vis skjema ess::$b->page->add_title("Velg salgsbeløp"); echo ' <div class="bg1_c small"> <h1 class="bg1">Salg av ' . $this->ff->type['refobj'] . '<span class="left"></span><span class="right"></span></h1> <p class="h_left"><a href="panel?ff_id=' . $this->ff->id . '">« Tilbake</a></p> <div class="bg1"> <form action="" method="post"> <input type="hidden" name="sid" value="' . login::$info['ses_id'] . '" /> <boxes /> <p>Du er i ferd med å starte salg av ' . $this->ff->type['refobj'] . '. ' . ucfirst($this->ff->type['refobj']) . ' kan kun selges til ' . $this->ff->type['priority'][2] . '. Når ' . $this->ff->type['priority'][2] . ' har godtatt kjøpet og betalt pengene, vil hele beløpet bli satt inn i banken din.</p> <p>Salgsgebyret vil bli trukket fra bankkontoen til ' . $this->ff->type['refobj'] . ' i det ' . $this->ff->type['priority'][2] . ' godtar kjøpet. ' . ucfirst($this->ff->type['priority'][2]) . ' vil ikke kunne godta kjøpet hvis pengene ikke er i banken.</p>'; // er det ingen medeier if (!isset($this->ff->members['members_priority'][2]) || count($this->ff->members['members_priority'][2]) == 0) { echo ' <p><b>Det finnes ingen ' . $this->ff->type['priority'][2] . ' i ' . $this->ff->type['refobj'] . '.</b></p>'; } else { $in_dl = true; if (count($this->ff->members['members_priority'][2]) > 1) { $in_dl = false; echo ' <p>Velg ' . $this->ff->type['priority'][2] . ':</p> <table class="table"> <thead> <tr> <th>Spiller</th> <th>Sist pålogget</th> <th>Ble medlem</th> </tr> </thead> <tbody>'; $i = 0; foreach ($this->ff->members['members_priority'][2] as $member) { echo ' <tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '> <td><input type="radio" name="up_id" id="sell_up_id" class="box_handle"' . (postval("up_id") == $member->id ? ' selected="selected"' : '') . ' />' . game::profile_link($member->id, $member->data['up_name'], $member->data['up_access_level']) . '</td> <td>' . ess::$b->date->get($member->data['up_last_online'])->format() . '</td> <td>' . ess::$b->date->get($member->data['ffm_date_join'])->format() . '</td> </tr>'; } echo ' </tbody> </table>'; } echo ' <dl class="dd_right">'; if ($in_dl) { foreach ($this->ff->members['members_priority'][2] as $member) { echo ' <input type="hidden" name="up_id" value="' . $member->id . '" /> <dt>' . ucfirst($this->ff->type['priority'][2]) . ' (kjøper)</dt> <dd>' . game::profile_link($member->id, $member->data['up_name'], $member->data['up_access_level']) . '</dd>'; } } echo ' <dt>Penger i banken</dt> <dd>' . game::format_cash($this->ff->data['ff_bank']) . '</dd> <dt>Salgsgebyr (trekkes fra banken ved kjøp)</dt> <dd>' . game::format_cash(ff::SELL_COST) . '</dd> <dt>Salgsbeløp (overføres fra kjøper til deg)</dt> <dd><input type="text" name="amount" class="styled w100" value="' . game::format_cash(postval("amount", "1 000 000")) . '" /></dd> </dl> <p class="c">' . show_sbutton("Start salg", 'name="sell_init"') . ' <a href="panel?ff_id=' . $this->ff->id . '">Avbryt</a></p>'; } echo ' </form> </div> </div>'; } $this->ff->load_page(); }