<?php

$Permissoes = User::getUser(true);

if ($Permissoes->FUN_TBL_CRITERIOS == 1) {

    class CriteriosController extends GxController {

        var $help = 'Esta é a ajuda';

        public function actionView($id) {
            $this->render('view', array(
                'model' => $this->loadModel($id, 'Criterios'),
                )
            );
        }

        public function actionCreate() {
            $model = new Criterios;

            if (isset($_POST['Criterios'])) {
                $model->setAttributes($_POST['Criterios']);
                if ($model->save()) {
                    $this->saveRelated($model);
                    if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                        Yii::app()->end();
                    } else {
                        $this->redirect(array('view', 'id' => $model->CRI_ID));
                    }
                } 
            }

            $this->render('create', array('model' => $model));
        }

        public function actionUpdate($id) {
            $model = $this->loadModel($id, 'Criterios');

            if (isset($_POST['Criterios'])) {
                $model->setAttributes($_POST['Criterios']);

                if ($model->save()) {
                    $this->saveRelated($model);
                    $this->redirect(array('view', 'id' => $model->CRI_ID));
                }
            }

            $this->render('update', array(
                'model' => $model,
                )
            );
        }

        private function saveRelated($model) {
            CriteriosLocaisPrivilegios::model()->deleteAll('CLF_IDCRITERIO = ' . $model->CRI_ID);
            if(isset($_POST['CriteriosLocaisPrivilegios']) && !empty($_POST['CriteriosLocaisPrivilegios']) && is_array($_POST['CriteriosLocaisPrivilegios'])) {
                foreach($_POST['CriteriosLocaisPrivilegios'] as $relatedData) {
                    $relatedModel = new CriteriosLocaisPrivilegios;
                    $relatedModel->setAttributes($relatedData);
                    $relatedModel->CLF_IDCRITERIO = $model->CRI_ID;
                    $relatedModel->save();
                    unset($relatedModel);
                }
            }
        }

        public function actionDelete($id) {
            if (User::getUser()->FUN_PRM_PRIVILEGIO == 1) {
                if (Yii::app()->getRequest()->getIsPostRequest()) {
                    $this->loadModel($id, 'Criterios')->delete();

                    if (!Yii::app()->getRequest()->getIsAjaxRequest())
                        $this->redirect(array('admin'));
                } else
                    throw new CHttpException(400, 'Sua solicitação é inválida.');
            }
        }

        public function actionAdmin() {
            $model = new Criterios('search');
            $model->unsetAttributes();

            if (isset($_GET['Criterios'])) {
                $model->setAttributes($_GET['Criterios']);
            }

            $this->render('admin', array(
                'model' => $model,
                )
            );
        }

        public function actionAddCriterioLocalPrivilegio() {
            $model = new CriteriosLocaisPrivilegios();
            $this->renderPartial('_criterio_local_privilegio', array(
                'model' => $model,
                )
            );
        }
    }

}