예제 #1
0
파일: Index.php 프로젝트: nikonehauser/pt
 protected function init()
 {
     $locales = \Tbmt\Localizer::plain('common');
     $this->textBrandName = $locales['brand_name'];
     $viewCommon = \Tbmt\Localizer::get('view.common');
     $linkNames = $viewCommon['navigation_links'];
     $subLinkNames = $viewCommon['navigation_sublinks'];
     $this->navigationLinks = [];
     foreach (['projects', 'member', 'about', 'account'] as $linkName) {
         $locale = $linkNames[$linkName];
         $sublinks = null;
         if (isset($subLinkNames[$linkName])) {
             $sublinks = [];
             foreach ($subLinkNames[$linkName] as $action => $name) {
                 array_push($sublinks, [\Tbmt\Router::toModule($linkName, $action), $name, $action === CURRENT_MODULE_ACTION ? true : false]);
             }
         }
         array_push($this->navigationLinks, [\Tbmt\Router::toModule($linkName), $locale, $linkName === CURRENT_MODULE ? true : false, $sublinks]);
     }
     $this->isLoggedIn = \Tbmt\Session::isLoggedIn();
     if (!$this->isLoggedIn) {
         $accountLinks =& $this->navigationLinks[count($this->navigationLinks) - 1];
         $accountLinks[1] = $viewCommon['member_login'];
         unset($accountLinks[3]);
     }
     $this->baseUrl = \Tbmt\Router::toBase();
     $this->locales = $viewCommon;
 }
예제 #2
0
 public function action_allinvoices()
 {
     $members = \MemberQuery::create()->filterByDeletionDate(null, \Criteria::ISNULL)->filterByNum('101', \Criteria::NOT_EQUAL)->orderBy('num')->find();
     $result = '<div class="container"><div class="row sheet">
   <table class="table2Debug">
     <tbody>
         <tr>
           <th>Member</th>
           <th>Total</th>
           <th>Reasons Total</th>
           <th>Quantity</th>
           <th>Reasons</th>
         </tr>';
     $reasons = \Tbmt\Localizer::get('view.account.tabs.invoice.transaction_reasons');
     foreach ($members as $member) {
         $result .= '<tr>';
         $result .= '<td>' . $member->getNum() . ' - ' . $member->getFirstName() . ' - ' . $member->getLastName() . '</td>';
         $result .= '<td>' . \Tbmt\view\Factory::currencyArrToString($member->getOutstandingTotal()) . '</td>';
         $result .= '<td colspan="3"></td>';
         $result .= '</tr>';
         $transactions = \TransactionQuery::create()->join('Transfer')->useTransferQuery()->filterByMember($member)->endUse()->select(['Reason'])->withColumn('count(*)', 'Quantity')->withColumn('sum(Transaction.Amount)', 'Total')->groupBy('Transfer.Currency')->groupBy('Transaction.Reason')->find();
         foreach ($transactions as $transaction) {
             $result .= '<tr>';
             $result .= '<td colspan="2"></td>';
             $result .= '<td>' . \Tbmt\Localizer::numFormat($transaction['Total']) . '</td>';
             $result .= '<td>' . $transaction['Quantity'] . '</td>';
             $result .= '<td>' . $reasons[$transaction['Reason']] . '</td>';
             $result .= '</tr>';
         }
     }
     $result .= '</tbody></table></div></div>';
     return $result;
 }
예제 #3
0
 protected function init()
 {
     $this->i18nView = \Tbmt\Localizer::get('view.common');
     $this->textBrandName = $this->i18nView['brand_name'];
     $this->textBrandMail = \Tbmt\Config::get('brand.mail');
     $linkNames = $this->i18nView['navigation_links'];
     $subLinkNames = $this->i18nView['navigation_sublinks'];
     $this->navigationLinks = [];
     foreach (['projects', 'member', 'about', 'impressum', 'account'] as $linkName) {
         $locale = $linkNames[$linkName];
         $sublinks = null;
         if (isset($subLinkNames[$linkName])) {
             $sublinks = [];
             foreach ($subLinkNames[$linkName] as $action => $name) {
                 $anchor = '';
                 if (is_array($name)) {
                     $anchor = '#' . $name[2];
                     $action = $name[0];
                     $name = $name[1];
                 }
                 array_push($sublinks, [\Tbmt\Router::toModule($linkName, $action) . $anchor, $name, defined('CURRENT_MODULE_ACTION') && $action === CURRENT_MODULE_ACTION ? true : false]);
             }
         }
         array_push($this->navigationLinks, [\Tbmt\Router::toModule($linkName), $locale, defined('CURRENT_MODULE') && $linkName === CURRENT_MODULE ? true : false, $sublinks]);
     }
     $this->isLoggedIn = \Tbmt\Session::isLoggedIn();
     if (!$this->isLoggedIn) {
         $accountLinks =& $this->navigationLinks[count($this->navigationLinks) - 1];
         $accountLinks[1] = $this->i18nView['member_login'];
         unset($accountLinks[3]);
     }
     $this->navigationIcons = ['road', 'lightbulb-o', 'envelope', 'legal', 'user'];
     $this->baseUrl = \Tbmt\Router::toBase();
     $this->i18nView = $this->i18nView;
 }
예제 #4
0
 public function render(array $params = array())
 {
     $this->formLabels = $this->i18nView['form_labels'];
     $formParams = isset($params['formVal']) ? $params['formVal'] : $_REQUEST;
     $loginTry = !empty($formParams['num']) || !empty($formParams['pwd']);
     $this->formVal = \Tbmt\Arr::initMulti($formParams, ['num' => \Tbmt\TYPE_STRING]);
     $this->formVal['pwd'] = 'demo1234';
     $this->formErrors = [];
     $this->loginError = $loginTry ? \Tbmt\Localizer::get('error.login') . '.' : null;
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'login.account.html', $params);
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param member for account index view.');
     }
     $this->member = $params['member'];
     $this->formVal = \Invitation::initInvitationForm(isset($params['formVal']) ? $params['formVal'] : $_REQUEST);
     $this->formErrors = isset($params['formErrors']) ? $params['formErrors'] : [];
     $this->invitations = \InvitationQuery::create()->filterByMemberId($this->member->getId())->orderBy('AcceptedDate', \Criteria::DESC)->orderBy('CreationDate', \Criteria::DESC)->limit(100)->find();
     $this->invitationDateFormat = \Tbmt\Localizer::get('datetime_format_php.long');
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.invitation.account.html', $params);
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param "member" for account index view.');
     }
     $this->member = $params['member'];
     $query = \TransactionQuery::create()->join('Transfer')->useTransferQuery()->filterByMember($this->member)->endUse()->select(['Reason', 'Transfer.Currency'])->withColumn('count(*)', 'Quantity')->withColumn('sum(Transaction.Amount)', 'Total')->groupBy('Transfer.Currency')->groupBy('Transaction.Reason')->limit(100);
     $this->transactions = $query->find();
     $this->transDateForm = \Tbmt\Localizer::get('datetime_format_php.long');
     $this->allowTotalInvoice = $this->member->getType() >= \Member::TYPE_SALES_MANAGER;
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.invoice.account.html', $params);
 }
예제 #7
0
 public static function validatePasswordResetForm(array $data = array())
 {
     $data = self::initPasswordResetForm($data);
     $res = \Tbmt\Validator::getErrors($data, self::$PASSWORD_RESET_FORM_FILTERS);
     if ($res !== false) {
         return [false, $res, null];
     }
     $recipient = \MemberQuery::create()->filterByDeletionDate(null, \Criteria::ISNULL)->findOneByNum($data['num']);
     if ($recipient == null) {
         return [false, ['num' => \Tbmt\Localizer::get('error.member_num')], null];
     }
     return [true, $data, $recipient];
 }
예제 #8
0
 public static function createPayPal($invoiceNumber, \PropelPDO $con)
 {
     $i18n = Localizer::get('payment');
     // ### Payer
     // A resource representing a Payer that funds a payment
     // For direct credit card payments, set payment method
     // to 'credit_card' and add an array of funding instruments.
     $payer = new Payer();
     $payer->setPaymentMethod("paypal");
     // ### Itemized information
     // (Optional) Lets you specify item wise
     // information
     $item1 = new Item();
     $item1->setName($i18n['item_name'])->setDescription($i18n['item_description'])->setCurrency(TransactionEntity::$BASE_CURRENCY)->setQuantity(1)->setTax(0)->setPrice(TransactionEntity::$MEMBER_FEE);
     $itemList = new ItemList();
     $itemList->setItems(array($item1));
     // ### Amount
     // Lets you specify a payment amount.
     // You can also specify additional details
     // such as shipping, tax.
     $amount = new Amount();
     $amount->setCurrency(TransactionEntity::$BASE_CURRENCY)->setTotal(TransactionEntity::$MEMBER_FEE);
     // ### Transaction
     // A transaction defines the contract of a
     // payment - what is the payment for and who
     // is fulfilling it.
     $transaction = new Transaction();
     $transaction->setAmount($amount)->setItemList($itemList)->setDescription($i18n['transaction_description'])->setInvoiceNumber($invoiceNumber);
     // ### Redirect urls
     // Set the urls that the buyer must be redirected to after
     // payment approval/ cancellation.
     $success = Router::toModule('account', 'index');
     $failure = Router::toModule('guide', 'index', ['purchase_failed' => true]);
     $redirectUrls = new RedirectUrls();
     $redirectUrls->setReturnUrl($success)->setCancelUrl($failure);
     // ### Payment
     // A Payment Resource; create one using
     // the above types and intent set to sale 'sale'
     $payment = new Payment();
     $payment->setIntent("sale")->setPayer($payer)->setRedirectUrls($redirectUrls)->setExperienceProfileId(self::getPaymentExperienceProfileId())->setTransactions(array($transaction));
     // ### Create Payment
     // Create a payment by calling the payment->create() method
     // with a valid ApiContext (See bootstrap.php for more on `ApiContext`)
     // The return object contains the state.
     $apiContext = self::getApiContext();
     $payment->create($apiContext);
     return $payment;
 }
예제 #9
0
 public static function validateBonusTransactionForm(array $data = array())
 {
     $data = self::initBonusTransactionForm($data);
     $res = \Tbmt\Validator::getErrors($data, self::$BONUS_TRANSACTION_FORM_FILTERS);
     if ($res !== false) {
         return [false, $res, null];
     }
     $recipient = \MemberQuery::create()->filterByDeletionDate(null, Criteria::ISNULL)->findOneByNum($data['recipient_num']);
     if ($recipient == null) {
         return [false, ['recipient_num' => \Tbmt\Localizer::get('error.member_num')], null];
     }
     if (!$recipient->hadPaid()) {
         return [false, ['recipient_num' => \Tbmt\Localizer::get('error.member_num_unpaid')], null];
     }
     return [true, $data, $recipient];
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param member for account index view.');
     }
     $this->member = $params['member'];
     $this->recipient = isset($params['recipient']) ? $params['recipient'] : null;
     $this->formVal = \Transaction::initBonusTransactionForm(isset($params['formVal']) ? $params['formVal'] : $_REQUEST);
     $this->formErrors = isset($params['formErrors']) ? $params['formErrors'] : [];
     $objBonusTransactions = \TransactionQuery::create()->filterByRelatedId($this->member->getId())->filterByReason(\Transaction::REASON_CUSTOM_BONUS)->join('Transaction.Transfer')->join('Transfer.Member')->select(['Member.Num', 'Transaction.Amount', 'Purpose', 'Transaction.Date'])->limit(100)->find();
     $arrBonusTransactions = [];
     $dateFormat = \Tbmt\Localizer::get('datetime_format_php.long');
     foreach ($objBonusTransactions as $bonusTransaction) {
         $arrBonusTransactions[] = [$bonusTransaction['Member.Num'], $bonusTransaction['Transaction.Amount'], $bonusTransaction['Purpose'], (new \DateTime($bonusTransaction['Transaction.Date']))->format($dateFormat)];
     }
     $this->bonusTransactions = $arrBonusTransactions;
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.bonus_payments.account.html', $params);
 }
예제 #11
0
 public static function validateInvitationForm(array $data = array())
 {
     $data = self::initInvitationForm($data);
     if ($data['type'] !== \Member::TYPE_SUB_PROMOTER) {
         $data['promoter_num'] = '';
     }
     if ($data['type'] === \Member::TYPE_SUB_PROMOTER && !$data['promoter_num']) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.empty')], null];
     }
     $recipient = \MemberQuery::create()->filterByDeletionDate(null, Criteria::ISNULL)->findOneByNum($data['promoter_num']);
     if ($recipient == null) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.member_num')], null];
     }
     if ($recipient->getType() !== \Member::TYPE_PROMOTER) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.sub_promoter_to_promoter')], null];
     }
     if (!$recipient->hadPaid()) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.member_num_unpaid')], null];
     }
     return [true, $data, $recipient];
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param member for account index view.');
     }
     $this->member = $params['member'];
     $this->recipient = isset($params['recipient']) ? $params['recipient'] : null;
     $this->formVal = \Member::initBonusLevelForm(isset($params['formVal']) ? $params['formVal'] : $_REQUEST);
     $this->formErrors = isset($params['formErrors']) ? $params['formErrors'] : [];
     $this->successmsg = isset($params['successmsg']) ? true : false;
     $query = \MemberQuery::create()->joinActivity()->select(['Num', 'BonusLevel', 'Activity.Meta', 'Activity.Date'])->where('Activity.MemberId = ?', $this->member->getId())->orderBy('Activity.Date', \Criteria::DESC)->limit(100);
     $objBonusMembers = $query->find();
     $arrBonusMembers = [];
     $currencySymbol = \Tbmt\Localizer::get('currency_symbol.' . \Transaction::$BASE_CURRENCY);
     $dateFormat = \Tbmt\Localizer::get('datetime_format_php.long');
     foreach ($objBonusMembers as $bonusMembers) {
         $meta = json_decode($bonusMembers['Activity.Meta'], true);
         $amount = isset($meta[\Activity::MK_BONUS_PAYMENT_AMOUNT]) ? \Tbmt\Localizer::currencyFormat($meta[\Activity::MK_BONUS_PAYMENT_AMOUNT], $currencySymbol) : ' - ';
         $arrBonusMembers[] = [$bonusMembers['Num'], $amount, (new \DateTime($bonusMembers['Activity.Date']))->format($dateFormat)];
     }
     $this->bonusMembers = $arrBonusMembers;
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.bonus_levels.account.html', $params);
 }
예제 #13
0
 public function transferTransactionsToArray($transfer)
 {
     $i18nView = \Tbmt\Localizer::get('view.account.tabs.invoice');
     $reasons = $i18nView['transaction_reasons'];
     $result = [];
     $transactions = $transfer->getTransactions();
     foreach ($transactions as $trans) {
         $result[] = ['id' => $trans->getId(), 'amount' => $trans->getAmount(), 'reason' => $reasons[$trans->getReason()], 'related_id' => $trans->getRelatedId()];
     }
     return $result;
 }
예제 #14
0
파일: Base.php 프로젝트: nikonehauser/pt
 protected function init()
 {
     if ($this->moduleName && $this->actioName) {
         $this->i18nView = \Tbmt\Localizer::get("view.{$this->moduleName}.{$this->actioName}");
     }
 }
 protected function init()
 {
     $this->i18nView = \Tbmt\Localizer::get('view.account.tabs.index');
     $this->i18nCommon = \Tbmt\Localizer::plain('common');
 }
예제 #16
0
 public function validateSignupForm(array $data = array())
 {
     $data['referral_member_num'] = Session::hasValidToken();
     $data = $this->initSignupForm($data);
     if ($data['password'] !== $data['password2']) {
         return [false, ['password' => \Tbmt\Localizer::get('error.password_unequal')], null, null];
     }
     $res = \Tbmt\Validator::getErrors($data, $this->SIGNUP_FORM_FILTERS);
     if ($res !== false) {
         return [false, $res, null, null];
     }
     // Validate member number exists
     $parentMember = \MemberQuery::create()->filterByDeletionDate(null, \Criteria::ISNULL)->filterByType(\Member::TYPE_SYSTEM, \Criteria::NOT_EQUAL)->findOneByHash($data['referral_member_num'])->findOneByIsExtended(1);
     if ($parentMember == null || $parentMember->getNum() == 0) {
         return [false, ['referral_member_num' => \Tbmt\Localizer::get('error.referral_member_num')], null, null];
     }
     // else if ( $parentMember->hadPaid() ) {
     //   return [false, ['referral_member_num' => \Tbmt\Localizer::get('error.referrer_paiment_outstanding')], null];
     // }
     $invitation = null;
     if ($data['invitation_code'] !== '') {
         $invitation = \InvitationQuery::create()->findOneByHash($data['invitation_code']);
         if ($parentMember == null) {
             return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_inexisting')], null, null];
         }
         if ($invitation->getMemberId() != $parentMember->getId()) {
             return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_invalid')], null, null];
         }
         if ($invitation->getAcceptedMemberId()) {
             return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_used')], null, null];
         }
     }
     if (!isset($data['email'])) {
         $data['email'] = '';
     }
     return [true, $data, $parentMember, $invitation];
 }
예제 #17
0
 /**
  * [buildPurchaseAgreements description]
  * @return [type]
  */
 static function buildPurchaseAgreements()
 {
     return \Tbmt\Localizer::getInsert('common.purchase_agreemensts', ['terms' => '' . self::buildLink(\Tbmt\Localizer::get('common.terms'), \Tbmt\Router::toModule('about', 'terms'), '', 'target="_blank"'), 'privacy' => '' . self::buildLink(\Tbmt\Localizer::get('common.privacy'), \Tbmt\Router::toModule('about', 'privacy'), '', 'target="_blank"'), 'cancelation_right' => '' . self::buildLink(\Tbmt\Localizer::get('common.cancelation_right'), \Tbmt\Router::toModule('about', 'cancelation_right'), '', 'target="_blank"')], false);
 }
 protected function init()
 {
     $this->i18nView = \Tbmt\Localizer::get('view.account.tabs.invoice');
 }
예제 #19
0
파일: Factory.php 프로젝트: nikonehauser/pt
 static function currencyArrToString($arrCurrencies)
 {
     if (empty($arrCurrencies)) {
         return ' - ';
     }
     $arr = [];
     foreach ($arrCurrencies as $currency => $amount) {
         $arr[] = \Tbmt\Localizer::currencyFormat($amount, $currency);
     }
     return implode(', ', $arr);
 }
예제 #20
0
 protected function init()
 {
     $locales = \Tbmt\Localizer::get('view.home');
     $this->textBlocks = $locales['text'];
 }
예제 #21
0
 public function next()
 {
     $text = $this->texts['' . $this->i];
     if (isset($this->texts['' . $this->i . 'h'])) {
         $text = \Tbmt\Localizer::insert($text, $this->texts['' . $this->i . 'h'], false, '<strong class="text-mark">{_val_}</strong>');
     }
     if (isset($this->texts['' . $this->i . 'r'])) {
         $text = \Tbmt\Localizer::insert($text, $this->texts['' . $this->i . 'r'], false);
     }
     $this->i++;
     return $text;
 }
 protected function init()
 {
     $this->locales = \Tbmt\Localizer::get('view.account.tabs.tree');
 }
예제 #23
0
 /**
  * #6
  * @param  \Member $referrer
  * @return [type]
  */
 public static function sendFeeReminderWithAdvertisingsReferrer(\Member $referrer, \Member $recruited)
 {
     $email = $referrer->getEmail();
     $locale = Localizer::get('mail.fee_reminder_referrer_with_advertisings');
     $num = $referrer->getNum();
     $fullName = \Tbmt\view\Factory::buildMemberFullNameString($referrer);
     $recruited_fullname = \Tbmt\view\Factory::buildMemberFullNameString($recruited);
     return self::send($email, $fullName, Localizer::insert($locale['subject'], ['recruited_fullname' => $recruited_fullname]), Localizer::insert($locale['body'], ['fullname' => $fullName, 'member_id' => $num, 'recruited_fullname' => $recruited_fullname, 'recruited_firstname' => $recruited->getFirstName(), 'recruited_signup_date' => \Tbmt\Localizer::dateLong($recruited->getSignupDate()), 'bankaccount' => \Tbmt\view\Factory::buildBankAccountStr()], false));
 }