/**
  * Método salvadirigentegeral()
  * @access public
  * @param void
  * @return void
  */
 public function salvadirigentegeralAction()
 {
     $this->autenticacao();
     $Usuario = $this->getIdUsuario;
     // id do usuário logado
     $idAgenteGeral = $this->_request->getParam("id");
     // id da instituicao
     // =============================================== INÍCIO SALVAR CPF/CNPJ ==================================================
     $cpf = Mascara::delMaskCPF(Mascara::delMaskCNPJ($this->_request->getParam("cpf")));
     // retira as máscaras
     $Tipo = $this->_request->getParam("Tipo");
     $arrayAgente = array('CNPJCPF' => $cpf, 'TipoPessoa' => $Tipo, 'Status' => 0, 'Usuario' => $Usuario);
     // Retorna o idAgente cadastrado
     $Agentes = new Agentes();
     $salvaAgente = $Agentes->inserirAgentes($arrayAgente);
     $Agente = $Agentes->BuscaAgente($cpf);
     $idAgente = $Agente[0]->idAgente;
     // ================================================ FIM SALVAR CPF/CNPJ =====================================================
     // ================================================ INÍCIO SALVAR NOME ======================================================
     $nome = $this->_request->getParam("nome");
     $TipoNome = strlen($cpf) == 11 ? 18 : 19;
     // 18 = pessoa física e 19 = pessoa jurídica
     try {
         $gravarNome = NomesDAO::gravarNome($idAgente, $TipoNome, $nome, 0, $Usuario);
     } catch (Exception $e) {
         parent::message("Erro ao salvar o nome: " . $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
     }
     // ================================================ FIM SALVAR NOME ======================================================
     // ================================================ INICIO SALVAR VISÃO ======================================================
     $Visao = $this->_request->getParam("visao");
     $grupologado = $this->_request->getParam("grupologado");
     /*
      * Validação - Se for componente da comissão ele não salva a visão
      * Regra o componente da comissão não pode alterar sua visão.
      */
     if ($grupologado != 118) {
         $GravarVisao = array('idAgente' => $idAgente, 'Visao' => $Visao, 'Usuario' => $Usuario, 'stAtivo' => 'A');
         try {
             $busca = VisaoDAO::buscarVisao($idAgente, $Visao);
             if (!$busca) {
                 $i = VisaoDAO::cadastrarVisao($GravarVisao);
             }
         } catch (Exception $e) {
             parent::message("Erro ao salvar a visão: " . $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
         }
         // ================================================ FIM SALVAR visão ======================================================
         // ===================== INÍCIO SALVAR TITULAÇÃO (área/SEGMENTO DO COMPONENTE DA COMISSÃO) ================================
         $titular = $this->_request->getParam("titular");
         $areaCultural = $this->_request->getParam("areaCultural");
         $segmentoCultural = $this->_request->getParam("segmentoCultural");
         // só salva área e segmento para a visão de Componente da Comissão e se os campos titular e areaCultural forem informados
         if ((int) $Visao == 210 && ((int) $titular == 0 || (int) $titular == 1) && !empty($areaCultural)) {
             $GravarComponente = array('idAgente' => $idAgente, 'cdArea' => $areaCultural, 'cdSegmento' => $segmentoCultural, 'stTitular' => $titular, 'stConselheiro' => 'A');
             $AtualizarComponente = array('cdArea' => $areaCultural, 'cdSegmento' => $segmentoCultural, 'stTitular' => $titular);
             try {
                 // busca a titulação do agente (titular/suplente de área cultural)
                 $busca = TitulacaoConselheiroDAO::buscarComponente($idAgente, $Visao);
                 if (!$busca) {
                     $i = TitulacaoConselheiroDAO::gravarComponente($GravarComponente);
                 } else {
                     $i = TitulacaoConselheiroDAO::atualizaComponente($idAgente, $AtualizarComponente);
                 }
             } catch (Exception $e) {
                 parent::message("Erro ao salvar a área e segmento: " . $e->getMessage(), $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
             }
         }
         // ============================= FIM SALVAR TITULAÇÃO (área/SEGMENTO DO COMPONENTE DA COMISSÃO) ===========================
     }
     // Fecha o if da regra do componente da comissão
     // =========================================== INICIO SALVAR ENDEREÇOS ====================================================
     $cepEndereco = $this->_request->getParam("cep");
     $tipoEndereco = $this->_request->getParam("tipoEndereco");
     $ufEndereco = $this->_request->getParam("uf");
     $CidadeEndereco = $this->_request->getParam("cidade");
     $Endereco = $this->_request->getParam("logradouro");
     $divulgarEndereco = $this->_request->getParam("divulgarEndereco");
     $tipoLogradouro = $this->_request->getParam("tipoLogradouro");
     $numero = $this->_request->getParam("numero");
     $complemento = $this->_request->getParam("complemento");
     $bairro = $this->_request->getParam("bairro");
     $enderecoCorrespodencia = 1;
     try {
         $arrayEnderecos = array('idAgente' => $idAgente, 'Cep' => str_replace(".", "", str_replace("-", "", $cepEndereco)), 'TipoEndereco' => $tipoEndereco, 'UF' => $ufEndereco, 'Cidade' => $CidadeEndereco, 'Logradouro' => $Endereco, 'Divulgar' => $divulgarEndereco, 'TipoLogradouro' => $tipoLogradouro, 'Numero' => $numero, 'Complemento' => $complemento, 'Bairro' => $bairro, 'Status' => $enderecoCorrespodencia, 'Usuario' => $Usuario);
         $insere = EnderecoNacionalDAO::gravarEnderecoNacional($arrayEnderecos);
     } catch (Exception $e) {
         parent::message("Erro ao salvar o endereço: " . $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
     }
     // ============================================= FIM SALVAR ENDEREÇOS ====================================================
     // =========================================== INICIO SALVAR TELEFONES ====================================================
     $tipoFone = $this->_request->getParam("tipoFone");
     $ufFone = $this->_request->getParam("ufFone");
     $dddFone = $this->_request->getParam("dddFone");
     $Fone = $this->_request->getParam("fone");
     $divulgarFone = $this->_request->getParam("divulgarFone");
     try {
         $arrayTelefones = array('idAgente' => $idAgente, 'TipoTelefone' => $tipoFone, 'UF' => $ufFone, 'DDD' => $dddFone, 'Numero' => $Fone, 'Divulgar' => $divulgarFone, 'Usuario' => $Usuario);
         $insere = Telefone::cadastrar($arrayTelefones);
     } catch (Exception $e) {
         parent::message("Erro ao salvar o telefone: " . $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
     }
     // =========================================== FIM SALVAR TELEFONES ====================================================
     // =========================================== INICIO SALVAR EMAILS ====================================================
     $tipoEmail = $this->_request->getParam("tipoEmail");
     $Email = $this->_request->getParam("email");
     $divulgarEmail = $this->_request->getParam("divulgarEmail");
     $enviarEmail = 1;
     try {
         $arrayEmail = array('idAgente' => $idAgente, 'TipoInternet' => $tipoEmail, 'Descricao' => $Email, 'Status' => $enviarEmail, 'Divulgar' => $divulgarEmail, 'Usuario' => $Usuario);
         $insere = Email::cadastrar($arrayEmail);
     } catch (Exception $e) {
         parent::message("Erro ao salvar o e-mail: " . $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
     }
     // =========================================== FIM SALVAR EMAILS ====================================================
     // =========================================== INICIO SALVAR VINCULO ====================================================
     try {
         // busca o dirigente vinculado ao cnpj/cpf
         $dadosDirigente = ManterAgentesDAO::buscarVinculados(null, null, $idAgente, $idAgenteGeral, $idAgenteGeral);
         // caso o agente não esteja vinculado, realizará a vinculação
         if (!$dadosDirigente) {
             // associa o dirigente ao cnpj/cpf
             $dadosVinculacao = array('idAgente' => $idAgente, 'idVinculado' => $idAgenteGeral, 'idVinculoPrincipal' => $idAgenteGeral, 'Usuario' => $Usuario);
             $vincular = ManterAgentesDAO::cadastrarVinculados($dadosVinculacao);
         }
     } catch (Exception $e) {
         parent::message("Erro ao vincular o dirigente: " . $e->getMessage(), "agentes/incluirdirigente/id/" . $idAgenteGeral, "ERROR");
     }
     parent::message("Cadastro realizado com sucesso!", "agentes/dirigentes/id/" . $idAgenteGeral, "CONFIRM");
 }
 /**
  * Método para gravação de todos os dados do agente
  * @access public
  * @param void
  * @return void
  */
 public function gravaragentecompletoAction()
 {
     if ($this->getRequest()->isPost()) {
         $post = Zend_Registry::get('post');
         $idAgente = $post->idAgente;
         $cpf = Mascara::delMaskCPF(Mascara::delMaskCNPJ($post->cpf));
         // retira as máscaras
         $TipoNome = strlen($cpf) == 11 ? 18 : 19;
         // 18 = pessoa física e 19 = pessoa jurídica
         $Usuario = $this->getIdUsuario;
         // id do usuário logado
         // ================================================ INÍCIO SALVAR NOME ======================================================
         $nome = $post->nome;
         try {
             // busca o nome do agente
             $busca = NomesDAO::buscarNome($idAgente);
             if (!$busca) {
                 $i = NomesDAO::gravarNome($idAgente, $TipoNome, $nome, 0, $Usuario);
             } else {
                 $i = NomesDAO::atualizaNome($idAgente, $TipoNome, $nome, 0, $Usuario);
             }
         } catch (Exception $e) {
             parent::message("Erro ao salvar o nome: " . $e->getMessage(), "manteragentes/agentes?acao=cc", "ERROR");
         }
         // ================================================ FIM SALVAR NOME ======================================================
         // ================================================ INICIO SALVAR VISÂO ======================================================
         $Visao = $post->visao;
         $grupologado = $post->grupologado;
         /* 
          * Validação - Se for componente da comissão ele não salva a visão
          * Regra o componente da comissão não pode alterar sua visão.
          */
         if ($grupologado != 118) {
             $GravarVisao = array('idAgente' => $idAgente, 'Visao' => $Visao, 'Usuario' => $Usuario, 'stAtivo' => 'A');
             try {
                 $busca = VisaoDAO::buscarVisao($idAgente, $Visao);
                 if (!$busca) {
                     $i = VisaoDAO::cadastrarVisao($GravarVisao);
                 }
             } catch (Exception $e) {
                 parent::message("Erro ao salvar a visão: " . $e->getMessage(), "manteragentes/agentes?acao=cc", "ERROR");
             }
             // ================================================ FIM SALVAR VISÂO ======================================================
             // ===================== INÍCIO SALVAR TITULAÇÃO (ÁREA/SEGMENTO DO COMPONENTE DA COMISSÃO) ================================
             $titular = $post->titular;
             $areaCultural = $post->areaCultural;
             $segmentoCultural = $post->segmentoCultural;
             // só salva área e segmento para a visão de Componente da Comissão e se os campos titular e areaCultural forem informados
             if ((int) $Visao == 210 && ((int) $titular == 0 || (int) $titular == 1) && !empty($areaCultural)) {
                 $GravarComponente = array('idAgente' => $idAgente, 'cdArea' => $areaCultural, 'cdSegmento' => $segmentoCultural, 'stTitular' => $titular, 'stConselheiro' => 'A');
                 $AtualizarComponente = array('cdArea' => $areaCultural, 'cdSegmento' => $segmentoCultural, 'stTitular' => $titular);
                 try {
                     // busca a titulação do agente (titular/suplente de área cultural)
                     $busca = TitulacaoConselheiroDAO::buscarComponente($idAgente, $Visao);
                     if (!$busca) {
                         $i = TitulacaoConselheiroDAO::gravarComponente($GravarComponente);
                     } else {
                         $i = TitulacaoConselheiroDAO::atualizaComponente($idAgente, $AtualizarComponente);
                     }
                 } catch (Exception $e) {
                     parent::message("Erro ao salvar a Área e Segmento: " . $e->getMessage(), "manteragentes/agentes?acao=cc", "ERROR");
                 }
             }
             // ============================= FIM SALVAR TITULAÇÃO (ÁREA/SEGMENTO DO COMPONENTE DA COMISSÃO) ===========================
         }
         // Fecha o if da regra do componente da comissão
         // =========================================== INICIO SALVAR ENDEREÇOS ====================================================
         $cepEnderecos = $post->ceps;
         $tipoEnderecos = $post->tipoEnderecos;
         $ufEnderecos = $post->ufs;
         $CidadeEnderecos = $post->cidades;
         $Enderecos = $post->logradouros;
         $divulgarEnderecos = $post->divulgarEnderecos;
         if (!empty($post->correspondenciaEnderecos)) {
             $correspondenciaEnderecos = $post->correspondenciaEnderecos;
         } else {
             $correspondenciaEnderecos = -1;
         }
         $tipoLogradouros = $post->tipoLogradouros;
         $numeros = $post->numeros;
         $complementos = $post->complementos;
         $bairros = $post->bairros;
         try {
             // exclui todos os telefones do agente
             $delete = EnderecoNacionalDAO::deletarEnderecoNacional($idAgente);
             // cadastra todos os telefones
             for ($i = 0; $i < sizeof($cepEnderecos); $i++) {
                 if ($correspondenciaEnderecos == "end" + $i) {
                     $correspondenciaEnderecos = 1;
                 } else {
                     $correspondenciaEnderecos = 0;
                 }
                 $arrayEnderecos = array('idAgente' => $idAgente, 'Cep' => str_replace(".", "", str_replace("-", "", $cepEnderecos[$i])), 'TipoEndereco' => $tipoEnderecos[$i], 'UF' => $ufEnderecos[$i], 'Cidade' => $CidadeEnderecos[$i], 'Logradouro' => $Enderecos[$i], 'Divulgar' => $divulgarEnderecos[$i], 'TipoLogradouro' => $tipoLogradouros[$i], 'Numero' => $numeros[$i], 'Complemento' => $complementos[$i], 'Bairro' => $bairros[$i], 'Status' => $correspondenciaEnderecos, 'Usuario' => $Usuario);
                 $insere = EnderecoNacionalDAO::gravarEnderecoNacional($arrayEnderecos);
             }
         } catch (Exception $e) {
             parent::message("Erro ao salvar o endereço: " . $e->getMessage(), "manteragentes/agentes?acao=cc", "ERROR");
         }
         // ============================================= FIM SALVAR ENDEREÇOS ====================================================
         // =========================================== INICIO SALVAR TELEFONES ====================================================
         $tipoFones = $post->tipoFones;
         $ufFones = $post->ufFones;
         $dddFones = $post->dddFones;
         $Fones = $post->Fones;
         $divulgarFones = $post->divulgarFones;
         try {
             // exclui todos os telefones do agente
             $delete = Telefone::excluirTodos($idAgente);
             // cadastra todos os telefones
             for ($i = 0; $i < sizeof($Fones); $i++) {
                 $arrayTelefones = array('idAgente' => $idAgente, 'TipoTelefone' => $tipoFones[$i], 'UF' => $ufFones[$i], 'DDD' => $dddFones[$i], 'Numero' => $Fones[$i], 'Divulgar' => $divulgarFones[$i], 'Usuario' => $Usuario);
                 $insere = Telefone::cadastrar($arrayTelefones);
             }
         } catch (Exception $e) {
             parent::message("Erro ao salvar o componente: " . $e->getMessage(), "manteragentes/agentes?acao=cc", "ERROR");
         }
         // =========================================== FIM SALVAR TELEFONES ====================================================
         // =========================================== INICIO SALVAR EMAILS ====================================================
         $tipoEmails = $post->tipoEmails;
         $Emails = $post->Emails;
         $divulgarEmails = $post->divulgarEmails;
         $enviarEmails = $post->enviarEmails;
         try {
             // exclui todos os e-mails do agente
             $delete = Email::excluirTodos($idAgente);
             // cadastra todos os e-mails
             for ($i = 0; $i < sizeof($Emails); $i++) {
                 $arrayEmail = array('idAgente' => $idAgente, 'TipoInternet' => $tipoEmails[$i], 'Descricao' => $Emails[$i], 'Status' => $enviarEmails[$i], 'Divulgar' => $divulgarEmails[$i], 'Usuario' => $Usuario);
                 $insere = Email::cadastrar($arrayEmail);
             }
         } catch (Exception $e) {
             parent::message("Erro ao salvar o componente: " . $e->getMessage(), "manteragentes/agentes?acao=cc", "ERROR");
         }
         // =========================================== FIM SALVAR EMAILS ====================================================
     }
     parent::message("Cadastro realizado com sucesso!", "manteragentes/agentes?acao=cc", "CONFIRM");
 }