/** * * @param string $name * @param int $amount * @return boolean false if failed */ private function credit($name = null, $amount = 0) { $output = $this->getOutput(); $output->addWikiText("=== Credit (name, amount) ==="); $output->addWikiText("name = {$name}"); $output->addWikiText("amount = {$amount}"); $user = User::newFromName($name); if (!$user || $user->getId() == 0) { $output->addWikiText("=== ERROR: Invalid UserName ==="); return false; } $output->addWikiText("=== User ==="); $output->addWikiText("user_id = " . $user->getId()); $output->addWikiText("user_name = " . $user->getName()); $output->addWikiText("user_realname = " . $user->getRealName()); $output->addWikiText("user_email = " . $user->getEmail()); $output->addWikiText("=== Transaction ==="); $output->addWikiText("True balance before = " . TMRecord::getTrueBalanceFromDB($user->getId())); if (!is_int($amount) || $amount <= 0 || $amount > 1000) { $output->addWikiText("=== ERROR: Invalid Amount ==="); return false; } $tmr = array('tmr_type' => TM_REFUND_TYPE, 'tmr_user_id' => $user->getId(), 'tmr_mail' => $user->getEmail(), 'tmr_ip' => IP::sanitizeIP(wfGetIP()), 'tmr_amount' => $amount, 'tmr_currency' => 'EUR', 'tmr_desc' => 'tm-refund', 'tmr_status' => 'OK'); wfRunHooks('CreateTransaction', array(&$tmr)); $output->addWikiText("==== DONE ===="); $output->addWikiText("True balance after = " . TMRecord::getTrueBalanceFromDB($user->getId())); $output->addWikiText("== SUCCESS =="); }
private function constructDefault($errorKey = null) { $user = $this->getUser(); $output = $this->getOutput(); $balance = 0; if ($user->isLoggedIn()) { $balance = TMRecord::getTrueBalanceFromDB($user->getId()); } # Set Minimum payment value (regarding banking fees) $min = max(-$balance, 5); $defaultAmount = ''; # Building the pending transaction table and sum if ($balance < 0) { $defaultAmount = $min; $table = new TransactionsTablePager(); $table->setSelectFields(array('tmr_desc', 'tmr_date_created', 'tmr_amount', 'tmr_currency')); $table->setSelectConds(array('tmr_user_id' => $user->getId(), 'tmr_status' => 'PE', 'tmr_amount < 0', 'tmr_currency' => 'EUR')); $table->setFieldSortable(false); $tableHtml = $table->getBody(); } # We check if the user has some pending transaction to pay # We are using the HTMLFormS Helper # That's the way to create a form $formDescriptor = array('amount' => array('label-message' => 'ep-cd-amountlabel', 'section' => 'section1', 'type' => 'float', 'required' => 'true', 'help-message' => array('ep-help-amount', $min), 'min' => $min, 'max' => 9000000, 'default' => $defaultAmount, 'filter-callback' => array($this, 'filterAmount')), 'mail' => array('label-message' => 'youremail', 'section' => 'section1', 'type' => 'email', 'required' => 'true', 'validation-callback' => array($this, 'validateEmail'), 'help-message' => 'ep-help-mail')); # If user has an email registered, don't let him change it if (!(($mail = $user->getEmail()) == '')) { $formDescriptor['mail']['default'] = $user->getEmail(); #@FIXME: If form disabled $formDescriptor['mail']['disabled'] = true; } $htmlForm = new HTMLFormS($formDescriptor, 'ep-cd'); $htmlForm->setSubmitText(wfMsg('next')); $htmlForm->setTitle($this->getTitle()); $htmlForm->setSubmitCallback(array($this, 'initAttempt')); if ($balance < 0) { $htmlForm->addHeaderText(wfMessage('ep-default-formheader') . ' ' . wfMessage('ep-default-formheader-pending', $this->getLanguage()->formatNum(-$balance), 'cur-euro') . $tableHtml); $htmlForm->addFooterText(wfMessage('ep-default-formfooter-pending')); } else { $htmlForm->addHeaderText(wfMessage('ep-default-formheader')); } if (isset($errorKey)) { $output->addHTML($htmlForm->getErrors(wfMessage("ep-{$errorKey}"))); } $htmlForm->show(); }
private function cancelSubscription($name = null, $confirm = false) { $output = $this->getOutput(); $output->addWikiText("=== Cancel Subscription (name, confirm) ==="); $output->addWikiText("name = {$name}"); $user = User::newFromName($name); if (!$user || $user->getId() == 0) { $output->addWikiText("=== ERROR: Invalid UserName ==="); return false; } $output->addWikiText("=== User ==="); $output->addWikiText("user_id = " . $user->getId()); $output->addWikiText("user_name = " . $user->getName()); $output->addWikiText("user_realname = " . $user->getRealName()); $output->addWikiText("user_email = " . $user->getEmail()); $output->addWikiText("True balance = " . TMRecord::getTrueBalanceFromDB($user->getId())); $subscription = WpSubscription::newByUserId($user->getId()); if (!$subscription instanceof WpSubscription || $subscription == null) { $output->addWikiText("=== ERROR: No subscription ==="); return false; } $output->addWikiText("=== Subscription ==="); $output->addWikiText("==== Subscription ===="); $output->addWikiText("wps_id = " . $subscription->getId()); $output->addWikiText("wps_start_date = " . $subscription->getStart()); $output->addWikiText("wps_end_date = " . $subscription->getEnd()); $output->addWikiText("wps_active = " . ($subscription->isActive() ? "true" : "false")); $output->addWikiText("wps_renewal_notified = " . ($subscription->isRenewalNotified() ? "true" : "false")); $output->addWikiText("==== Plan ===="); $output->addWikiText("wps_wpp_id = " . $subscription->getPlanId()); $output->addWikiText("wps_renew_wpp_id = " . $subscription->getRenewalPlanId()); $output->addWikiText("==== TMR ===="); $output->addWikiText("wps_tmr_id = " . $subscription->getTmrId()); $output->addWikiText("wps_tmr_status = " . $subscription->getTmrStatus()); if ($subscription->getTmrStatus() == 'OK') { $output->addWikiText("== THE TRANSACTION STATUS = OK, YOU ARE DESTROYING MONEY !!! =="); } if (!$confirm) { $output->addWikiText("=== Cancel Subscription Test ==="); $result = $subscription->canCancel($this->getUser()); if ($result === true) { $output->addWikiText("You can cancel this subscription"); $output->addWikiText("=== Add &confirm=true to really do the action ==="); $output->addWikiText("=== To confirm ==="); $output->addHTML($this->getLink(self::ACTION_CANCEL_SUBSCRIPTION, array('name' => $user->getName()), true)); } else { $output->addWikiText("You cannot cancel this subscription:"); $output->addWikiText("=== ERROR: CanCancel() did not return true ==="); } } else { if ($confirm) { $output->addWikiText("=== Cancel Subscription ==="); $result = $subscription->cancel($this->getUser()); if ($result === true) { $output->addWikiText("==== DONE - The Subscription has been cancelled ===="); $output->addWikiText("==== Subscription ===="); $output->addWikiText("wps_end_date = " . $subscription->getEnd()); $output->addWikiText("wps_active = " . ($subscription->isActive() ? "true" : "false")); $output->addWikiText("==== TMR ===="); $output->addWikiText("wps_tmr_status = " . $subscription->getTmrStatus()); $output->addWikiText("== SUCCESS =="); } else { $output->addWikiText("==== Cancelation failed ===="); $output->addWikiText($result); $output->addWikiText("==== Subscription ===="); $output->addWikiText("wps_end_date = " . $subscription->getEnd()); $output->addWikiText("wps_active = " . ($subscription->isActive() ? "true" : "false")); $output->addWikiText("==== TMR ===="); $output->addWikiText("wps_tmr_status = " . $subscription->getTmrStatus()); $output->addWikiText("== FAIL =="); } } } }
private function displayList() { $output = $this->getOutput(); $user = $this->getUser(); $table = new TransactionsTablePager(); $table->setSelectFields(array('tmr_id', 'tmr_desc', 'tmr_date_created', 'tmr_amount', 'tmr_currency', 'tmr_status', 'tmr_tmb_id')); $table->setSelectConds(array('tmr_user_id' => $user->getId(), 'tmr_currency' => 'EUR')); $table->setHeader(wfMessage('tm-balance', $this->getLanguage()->formatNum(TMRecord::getTrueBalanceFromDB($user->getId())), 'cur-euro')->parse() . ' ' . wfMessage('tm-table-desc')->parse()); $output->addHtml($table->getWholeHtml()); }
private function buildQuickAccount() { $user = $this->getUser(); $balance = TMRecord::getTrueBalanceFromDB($user->getId()); $html = '<div class="ms-info-qa">' . wfMessage('ms-quickaccount')->parse() . '</div>'; $html .= '<ul>'; $html .= '<li>' . wfMessage('ms-accountbalance', $this->getLanguage()->formatNum($balance), 'cur-euro')->parse() . '</li>'; $html .= '<li>' . wfMessage('ms-electronicpayment')->parse() . '</li>'; $html .= '<li>' . wfMessage('ms-subscriptions')->parse() . '</li>'; $html .= '<li>' . wfMessage('ms-transactions')->parse() . '</li>'; if ($this->mode == 'artist') { $html .= '<li>' . wfMessage('ms-invitations')->parse() . '</li>'; } /** @todo Add private profile for adress, phone... $html .= '<li>' . wfMessage('ms-privateprofile')->parse() . '</li>';*/ $html .= '</ul>'; return $html; }