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

class AuditoriaDadosController extends GxController
{
    public function actionIndex()
    {
        $model = new Clientes();
        $criteria = new CDbCriteria;

        $model->unsetAttributes();
        if (isset($_GET['Clientes'])) {
            $model->setAttributes($_GET['Clientes']);
            $criteria->compare('CLI_IDCLIENTE', $model->CLI_IDCLIENTE);
            $criteria->compare('CLI_NOME', $model->CLI_NOME, true);
            if(empty($model->situacao_revisao)) {
                $model->situacao_revisao = [Clientes::STATUS_DOCUMENTOS_REVISAO_PENDENTE, Clientes::STATUS_DOCUMENTOS_REVISAO_REVISADO, Clientes::STATUS_DOCUMENTOS_REVISAO_CLIENTE_RECENTE];
            }
            if($model->CLI_NOME) {
                $criteria->addCondition("
                    CLI_NOME like '%" . Util::secureForSelect($model->CLI_NOME, true) . "%' or
                    CLI_FANTASIA like '%" . Util::secureForSelect($model->CLI_NOME, true) . "%' or
                    CLI_NOME like '%" . Util::secureForSelect($model->CLI_NOME) . "%' or
                    CLI_FANTASIA like '%" . Util::secureForSelect($model->CLI_NOME) . "%'
                ");
            }
        } else {
            $model->situacao_revisao = [Clientes::STATUS_DOCUMENTOS_REVISAO_PENDENTE];
        }
        $status = "'" . implode("', '", $model->situacao_revisao) . "'";
        $criteria->compare('CLI_SITUACAO', "A");
        $criteria->addCondition('CLI_STATUS_REVISAO IN ('. $status .')');

        if($model->CLI_SEM_CONTRATO) {
            $criteria->addCondition('not exists(select * from contratos where COT_IDCLIENTE = CLI_IDCLIENTE and COT_STATUS = 2 AND COT_SITUACAO = 1)');
        }
        $dataProvider = new CActiveDataProvider($model, array(
                'criteria' => $criteria,
                'pagination' => array(
                    'pageSize' => 20,
                )
            )
        );
        $this->render('index', array(
            'dataProvider' => $dataProvider,
            'model' => $model
        ));
    }

    public function actionUpdate($id)
    { 

       $model = $this->loadModel($id, 'Contratos');

        if (isset($_POST['Contratos'])) {

            $model->setAttributes($_POST['Contratos']);

            $data_assinatura = explode('/', $model->COT_DTCADASTRO);
            if($data_assinatura[0] == '01') {
                $model->COT_DTINICARENCIA = '';
                $model->COT_DTFIMCARENCIA = '';
            }

            $model->COT_FOI_REVISADO = false;
            if($_POST['salvar_finalizar'] == 'salvar_finalizar') {
                $model->COT_FOI_REVISADO = true;
            }

            $data_cadastro = $model->COT_DTCADASTRO;
            $data_ini_carencia = $model->COT_DTINICARENCIA;
            $data_fim_carencia = $model->COT_DTFIMCARENCIA;
            $data_ini_cobranca = $model->COT_DTINICOBRANCA;
            $data_pri_cobranca = $model->COT_DTPRICOBRANCA;
            $data_ativacao = $model->COT_DTATIVACAO;

            $model->COT_DTCADASTRO = Util::formatDataMysql($model->COT_DTCADASTRO);
            $model->COT_DTINICARENCIA = Util::formatDataMysql($model->COT_DTINICARENCIA);
            $model->COT_DTFIMCARENCIA = Util::formatDataMysql($model->COT_DTFIMCARENCIA);
            $model->COT_DTINICOBRANCA = Util::formatDataMysql($model->COT_DTINICOBRANCA);
            $model->COT_DTPRICOBRANCA = Util::formatDataMysql($model->COT_DTPRICOBRANCA);
            $model->COT_DTATIVACAO = Util::formatDataMysql($model->COT_DTATIVACAO);
            $model->COT_VLRMENSAL = Util::convertdecimal($model->COT_VLRMENSAL);
            $model->COT_VLRIMPLANTACAO = Util::convertdecimal($model->COT_VLRIMPLANTACAO);

            if(isset($_POST['produtos'])) {
                $model->produtos = $_POST['produtos'];
            }

            if ($model->save()) {
                $model_cliente = $this->loadModel($model->COT_IDCLIENTE, 'Clientes');
                $model_contratos = new Contratos('searchAuditoriaDocumentos');
                $model_contratos->unsetAttributes();
                $model_contratos->COT_IDCLIENTE = $model_cliente->CLI_IDCLIENTE;
                $model_contratos->COT_GERADO_AUTOMATICAMENTE = true;
                $data_provider = $model_contratos->searchAuditoriaDocumentos();
                $total_gerados_automaticamente = $data_provider->totalItemCount;

                $model_revisado = new Contratos('searchAuditoriaDocumentos');
                $model_revisado->unsetAttributes();
                $model_revisado->COT_IDCLIENTE = $model_cliente->CLI_IDCLIENTE;
                $model_revisado->COT_FOI_REVISADO = true;
                $data_provider_revisao = $model_revisado->searchAuditoriaDocumentos();
                $total_revisado = $data_provider_revisao->totalItemCount;

                if($total_gerados_automaticamente == $total_revisado) {
                    $model_cliente->CLI_STATUS_REVISAO = Clientes::STATUS_DOCUMENTOS_REVISAO_REVISADO;
                    $model_cliente->save(false, array('CLI_STATUS_REVISAO'));
                }

                ContratosItens::model()->deleteAll('CTI_IDCONTRATO=:CotId', array(':CotId' => $model->COT_IDCONTRATO));
                if (isset($_POST['produtos']) && is_array($_POST['produtos'])) {
                    foreach ($_POST['produtos'] as $id_produto => $produtos) {
                        $model2 = new ContratosItens;
                        $model2->CTI_IDCONTRATO = $model->COT_IDCONTRATO;
                        $model2->CTI_IDPRODUTO = $produtos;
                        $model2->save();
                    }
                }
                Yii::app()->user->setFlash('success', 'Contrato editado com sucesso');
                $this->redirect(array('resolver', 'id' => $model->COT_IDCLIENTE));
            } else {
                $model->COT_DTCADASTRO = $data_cadastro;
                $model->COT_DTINICARENCIA = $data_ini_carencia;
                $model->COT_DTFIMCARENCIA = $data_fim_carencia;
                $model->COT_DTINICOBRANCA = $data_ini_cobranca;
                $model->COT_DTPRICOBRANCA = $data_pri_cobranca;
                $model->COT_DTATIVACAO = $data_ativacao;           
            }            
        }

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

    public function actionResolver($id)
    {   
        $model_cliente = $this->loadModel($id, 'Clientes');
        $model_contratos = new Contratos('searchAuditoriaDocumentos');
        $model_contratos->unsetAttributes();
        $model_contratos->COT_IDCLIENTE = $model_cliente->CLI_IDCLIENTE;
        $model_contratos->COT_FOI_ATIVADO = true;

        $this->render('documentos_auditoria', array(
            'model_cliente' => $model_cliente,
            'model_contratos' => $model_contratos,
        ));
    }
}