<?php
$Permissoes = User::getUser(true);
if(!$Permissoes){
    User::blockAction("Você não tem permissão para acessar esta tela");
}
class AtasController extends GxController {

    var $help = 'Esta é a ajuda';

    public function actionView($id) {
        $Atas = Atas::model()->findByPk($id);
        $AtasFuncionarios = AtasFuncionarios::model()->find("ATA_REL_IDFUNCIONARIO = " . User::getId() . " and ATA_REL_IDATA = " . $id);
        if (!empty($Atas) or ! empty($AtasFuncionarios)) {
            $model_aprovacao = AtasAprovacoes::model();
            $this->render('view', array(
                'model' => $this->loadModel($id, 'Atas'),
                'model_aprovacao' => $model_aprovacao
            ));
        }
    }

    public function actionCreate() {
        if (User::getUser()->FUN_TBL_ATAS == 1) {
            $model = new Atas;
            
            if (isset($_POST['Atas'])) {
                $model->setAttributes($_POST['Atas']);
                $model->ATA_IDFUNCIONARIO = User::getId();
                if ($model->save()) {
                    $corpo = "<p><h2>Existe uma nova ata cadastrada em seu nome:</h2>
                        <b>Data:</b> ".Util::formatDataBr($model->ATA_DATA)."<br />
                        <b>Assunto:</b> ".$model->ATA_ASSUNTO."<br />";
                    if ($model->ATA_DATAPROXIMAREUNIAO != '0000-00-00' && $model->ATA_DATAPROXIMAREUNIAO != null) {
                        $corpo .= "<b>Próxima Reunião:</b> ".Util::formatDataBr($model->ATA_DATAPROXIMAREUNIAO).(!empty($model->ATA_HORARIO)?' - '.$model->ATA_HORARIO:'')."<br />";
                    }
                    $corpo .= "<b>Autor:</b> ".$model->Usuario."</p>";
                    $corpo .= Util::createMailButton(Util::createUrl('atas/view', array('id' => $model->ATA_IDATA)), 'ABRIR ATA');

                    $copia = array();
                    if (isset($_POST['Atas']['Participantes']) && is_array($_POST['Atas']['Participantes'])) {
                        foreach ($_POST['Atas']['Participantes'] as $id_funcionario) {
                            $model2 = new AtasFuncionarios;
                            $model2->ATA_REL_IDATA = (int) $model->ATA_IDATA;
                            $model2->ATA_REL_IDFUNCIONARIO = (int) $id_funcionario;
                            $model2->save();

                            $copia[] = $model2->Funcionario->FUN_EMAIL;
                        }
                    }
                    $extra = (empty($copia) ? array() : array('CC' => $copia));
                    Util::sendEmail($model->Usuario->FUN_EMAIL, 'Nova ata cadastrada', $corpo, $extra);

                    if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                        Yii::app()->end();
                    } else {

                        $this->redirect(array('view', 'id' => $model->ATA_IDATA));
                    }
                }
            }

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

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

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

            if ($model->validate()) {
                $model->save(false, array('ATA_DATAPROXIMAREUNIAO', 'ATA_HORARIO'));
                AtasFuncionarios::model()->deleteAll('ATA_REL_IDATA = ' . $model->ATA_IDATA);
                if (is_array($_POST['Atas']['Participantes'])) {
                    foreach ($_POST['Atas']['Participantes'] as $id_funcionario) {
                        $model2 = new AtasFuncionarios;
                        $model2->ATA_REL_IDATA = (int) $model->ATA_IDATA;
                        $model2->ATA_REL_IDFUNCIONARIO = (int) $id_funcionario;
                        $model2->save();
                    }
                }
                $AtasEdicao = new AtasEdicao;
                $AtasEdicao->ATE_IDATA = $model->ATA_IDATA;
                $AtasEdicao->ATE_DATAEDICAO = date('d/m/Y H:i:s');
                $AtasEdicao->ATE_CONTEUDO = $model->ATA_CONTEUDO;
                $AtasEdicao->ATE_IDFUNCIONARIO = User::getId();
                $AtasEdicao->ATE_DATAPROXIMAREUNIAO = $model->ATA_DATAPROXIMAREUNIAO;
                $AtasEdicao->ATE_HORARIO = $model->ATA_HORARIO;
                $AtasEdicao->save();

                $this->redirect(array('view', 'id' => $model->ATA_IDATA));
            }
        }

        $model->ATA_CONTEUDO = '';

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

    public function actionDelete($id) {
        if (User::getUser()->FUN_PRM_PRIVILEGIO == 1) {
            if (Yii::app()->getRequest()->getIsPostRequest()) {
                $this->loadModel($id, 'Atas')->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 Atas('search');
        $model->unsetAttributes();

        if (isset($_GET['Atas']))
            $model->setAttributes($_GET['Atas']);

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

    public function actionAprovacao($id){
        $model_aprovacao = AtasAprovacoes::model()->find("ATP_ATA = $id AND ATP_FUNCIONARIO = ".User::getId());
        if(isset($model_aprovacao)){
            $model_aprovacao->ATP_SITUACAO = $model_aprovacao->ATP_SITUACAO == 1 ? 0 : 1;
            $model_aprovacao->ATP_DATA = date('Y-m-d H:i:s');
            if($model_aprovacao->save(false, array('ATP_SITUACAO','ATP_DATA'))){
                if($model_aprovacao->ATP_SITUACAO == 1){
                    Yii::app()->user->setFlash('success', 'Ata aprovada com sucesso!');
                }
                else{
                    Yii::app()->user->setFlash('success', 'Aprovação removida com sucesso!');          
                }
            }
            else{
                Yii::app()->user->setFlash('success', 'Ocorreu um erro ao tentar salvar!');
            }
        }
        else{
            $model_aprovacao = new AtasAprovacoes();
            
            $model_aprovacao->ATP_ATA = $id;
            $model_aprovacao->ATP_FUNCIONARIO = User::getId();
            $model_aprovacao->ATP_SITUACAO = 1;
            $model_aprovacao->ATP_DATA = date('Y-m-d H:i:s');

            if($model_aprovacao->save()){
                Yii::app()->user->setFlash('success', 'Ata aprovada com sucesso!');
            }
            else{
                Yii::app()->user->setFlash('success', 'Ocorreu um erro ao tentar salvar!');
            }
        }
        $this->redirect(array('view', 'id' => $id));
    }

    public function actionGerarpdf($id) {
        $this->render('pdf', array(
            'model' => $this->loadModel($id, 'Atas'),
        ));
    }

}