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; }
public static function sendPasswordResetLink(\Member $member) { $email = $member->getEmail(); $locale = Localizer::get('mail.password_reset'); $num = $member->getNum(); $now = time(); $email = $member->getEmail(); $href = Router::toModule('manage', 'do_reset_password', ['num' => $num, 'exp' => time(), 'hash' => Cryption::getPasswordResetToken($num, $now, $email)]); return self::send($email, \Tbmt\view\Factory::buildMemberFullNameString($member), $locale['subject'], Localizer::insert($locale['body'], ['link' => $href], false)); }