<?php

class BillsAdmin_ extends \bff\modules\bills\Admin
{
    /**
     * Обработка события пополнения/списания со счета пользователя администратором
     * @param int $userID ID пользователя
     * @param int $billID ID счета
     * @param bool $notify отправлять уведомление
     * @return void
     */
    public function onUserBalanceAdmin($userID, $billID, $notify)
    {
        # отправим почтовое уведомление пользователю
        $user = Users::model()->userData($userID, ['name','email','balance','user_id','user_id_ex','last_login','lang']);
        $bill = $this->model->billData($billID, ['type','amount','description']);
        if (empty($user) || empty($bill)) {
            return;
        }

        if ($notify) {
            $langCurrent = $this->locale->current();
            $this->locale->setCurrentLanguage($user['lang'], true);
            $mailData = [
                'name'    => $user['name'],
                'email'   => $user['email'],
                'user_id' => $userID,
                'amount'  => Currency::formatPriceAndCurrency($bill['amount']),
                'balance' => Currency::formatPriceAndCurrency($user['balance']),
                'description' => $bill['description'],
                'auth_link' => $this->url('wallet', ['alogin' => Users::loginAutoHash($user)]),
            ];
            $mailTemplate = false;
            if ($bill['type'] == static::TYPE_IN_GIFT) {
                $mailTemplate = 'users_balance_admin_plus';
            } elseif ($bill['type'] == static::TYPE_OUT_ADMIN) {
                $mailTemplate = 'users_balance_admin_minus';
            }
            if ($mailTemplate !== false) {
                $this->app->sendMailTemplate($mailData, $mailTemplate, $user['email'], false, '', '', $user['lang']);
            }
            $this->locale->setCurrentLanguage($langCurrent, true);
        }
    }
}