<?php

class BizController extends Controller {

    public function filters() {
        return array(
            'accessControl',
        );
    }

    public function accessRules() {
        return array(
            array('allow',
                'actions' => array('index', 'buy', 'info', 'my', 'panel', 'panel_cost', 'sale'),
                'users' => array('@'),
            ),
            array('allow',
                'actions' => array('del_message'),
                'roles' => array('moderator'),
            ),
            array('deny',
                'users' => array('*'),
            // 'deniedCallback' => $this->redirect('?r=site/index'),
            )
        );
    }

    public function actions() {
        return array(
            'page' => array(
                'class' => 'CViewAction',
            ),
        );
    }

    public function actionIndex() {
        $criteria = new CDbCriteria();
        $criteria->order = 'id asc';
        $models = Biz::model()->findAll($criteria);
        $mybizcount = Biz_user::model()->countByAttributes(array('user_id' => Yii::app()->user->id));

        $this->render('index', array(
            'models' => $models,
            'mybizcount' => $mybizcount,
        ));
    }

    public function actionInfo($id) {
        $b = Biz::findBiz($id);
        $ownedmeornot = Biz_user::ownedmeornot($b->id);
        $this->render('info', array(
            'b' => $b,
            'ownedmeornot' => $ownedmeornot,
        ));
    }

    public function actionBuy($id) {
        $b = Biz::findBiz($id);
        $user = Users::findUser();
        $ownedmeornot = Biz_user::ownedmeornot($id);
        if ($ownedmeornot == FALSE) {
            if ($user->money >= $b->price) {
                $user_out_money = Users::model()->findByPk(Yii::app()->user->id);
                $user_out_money->saveCounters(array('money' => -$b->price));
                $biz = new Biz_user();
                $biz->user_id = Yii::app()->user->id;
                $biz->biz_id = $b->id;
                $biz->level = 1;
                $biz->time = time() + 3600 * 6;
                $biz->save(FALSE);
                Yii::app()->user->setFlash('success', 'Вы успешно купили бизнес');
            } else {
                Yii::app()->user->setFlash('error', 'Не хватает денег на покупку');
            }
        } else {
            Yii::app()->user->setFlash('error', 'Вы уже владеете данным бизнесом');
        }
        $this->redirect(array('biz/info', 'id' => $b->id));
    }

    public function actionMy() {
        $criteria = new CDbCriteria();
        $criteria->order = 'id asc';
        $criteria->condition = 'user_id = :user_id';
        $criteria->params = array(':user_id' => Yii::app()->user->id);
        $models = Biz_user::model()->findAll($criteria);
        $this->render('my', array(
            'models' => $models,
        ));
    }

    public function actionPanel($id) {
        $b = Biz::findBiz($id);
        $ownedmeornot = Biz_user::ownedmeornot($id);
        if ($ownedmeornot == TRUE) {
            $my = Biz_user::model()->findByAttributes(array('user_id' => Yii::app()->user->id, 'biz_id' => $id));
            if (intval($my->time - time()) <= 0) {
                $income = CHtml::link('Забрать выручку', array('biz/panel_cost', 'id' => $id));
            }
        } else {
            throw new CHttpException(404, 'Данного бизнеса не существует или недоступен');
        }
        $this->render('panel', array(
            'b' => $b,
            'my' => $my,
            'income' => $income,
        ));
    }

    public function actionPanel_cost($id) {
        $b = Biz::findBiz($id);
        $ownedmeornot = Biz_user::ownedmeornot($id);
        if ($ownedmeornot == TRUE) {
            $my = Biz_user::model()->findByAttributes(array('user_id' => Yii::app()->user->id, 'biz_id' => $id));
            if (intval($my->time - time()) <= 0) {
                Biz_user::model()->updateByPk($my->id, array('time' => time() + 3600 * 6));
                $user_get_money = Users::model()->findByPk(Yii::app()->user->id);
                $user_get_money->saveCounters(array('money' => $b->income));
                Yii::app()->user->setFlash('success', 'Вы получили ' . $b->income . '<img src="/images/money.png">');
            }
        } else {
            throw new CHttpException(404, 'Данного бизнеса не существует или недоступен');
        }
        $this->redirect(array('biz/panel', 'id' => $b->id));
    }

    public function actionSale($id) {
        $b = Biz::findBiz($id);
        $ownedmeornot = Biz_user::ownedmeornot($id);
        if ($ownedmeornot == TRUE) {
            Biz_user::model()->DeleteAllByAttributes(array('user_id' => Yii::app()->user->id, 'biz_id' => $id));
            $user_get_money = Users::model()->findByPk(Yii::app()->user->id);
            $user_get_money->saveCounters(array('money' => intval($b->income/2)));
            Yii::app()->user->setFlash('success', 'Бизнес ' . $b->title . ' успешно продан. Вы получили ' . $b->income/2 . '<img src="/images/money.png">');
        } else {
            throw new CHttpException(404, 'Данного бизнеса не существует или недоступен');
        }
        $this->redirect(array('biz/index'));
    }

}
