/**
  * 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 dirigente
  * @access public
  * @param void
  * @return void
  */
 public function gravardirigentecompletoAction()
 {
     // caso o formulário seja enviado via post
     if ($this->getRequest()->isPost()) {
         // recebe os dados via post
         $post = Zend_Registry::get('post');
         $idAgente = $post->idAgente;
         // id do dirigente
         $idAgenteGeral = $post->idAgenteGeral;
         // usuário associado ao dirigente
         $cpf = Mascara::delMaskCPF(Mascara::delMaskCNPJ($post->cpf));
         // retira as máscaras
         $TipoNome = 18;
         // pessoa física
         $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) {
             $this->view->message = "Erro ao salvar o nome: " . $e->getMessage();
         }
         // ========== FIM SALVAR NOME ==========
         // ========== INÍCIO SALVAR ENDEREÇO ==========
         $TipoEndereco = $post->tipoEndereco;
         $TipoLogradouro = $post->tipoLogradouro;
         $Logradouro = $post->logradouro;
         $Numero = $post->numero;
         $Bairro = $post->bairro;
         $Complemento = $post->complemento;
         $Cidade = $post->cidade;
         $UF = $post->uf;
         $Cep = Mascara::delMaskCEP($post->cep);
         $Divulgar = $post->divulgarEndereco;
         $Status = $post->enderecoCorrespondencia;
         $GravarEnderecoNacional = array('idAgente' => $idAgente, 'TipoEndereco' => $TipoEndereco, 'TipoLogradouro' => $TipoLogradouro, 'Logradouro' => $Logradouro, 'Numero' => $Numero, 'Bairro' => $Bairro, 'Complemento' => $Complemento, 'Cidade' => $Cidade, 'UF' => $UF, 'Cep' => $Cep, 'Status' => $Status, 'Divulgar' => $Divulgar, 'Usuario' => $Usuario);
         $AtualizarEnderecoNacional = array('TipoEndereco' => $TipoEndereco, 'TipoLogradouro' => $TipoLogradouro, 'Logradouro' => $Logradouro, 'Numero' => $Numero, 'Bairro' => $Bairro, 'Complemento' => $Complemento, 'Cidade' => $Cidade, 'UF' => $UF, 'Cep' => $Cep, 'Status' => $Status, 'Divulgar' => $Divulgar, 'Usuario' => $Usuario);
         try {
             // busca o endereço do agente
             $busca = EnderecoNacionalDAO::buscarEnderecoNacional($idAgente);
             if (!$busca) {
                 $i = EnderecoNacionalDAO::gravarEnderecoNacional($GravarEnderecoNacional);
             } else {
                 $i = EnderecoNacionalDAO::atualizaEnderecoNacional($idAgente, $AtualizarEnderecoNacional);
             }
         } catch (Exception $e) {
             $this->view->message = "Erro ao salvar o endereço: " . $e->getMessage();
         }
         // ========== FIM SALVAR ENDEREÇO ==========
         // ========== INÍCIO SALVAR VISÃO ==========
         $Visao = $post->visao;
         $GravarVisao = array('idAgente' => $idAgente, 'Visao' => $Visao, 'Usuario' => $Usuario, 'stAtivo' => 'A');
         try {
             // busca as visões do agente
             $busca = VisaoDAO::buscarVisao($idAgente, $Visao);
             if (!$busca) {
                 $i = VisaoDAO::cadastrarVisao($GravarVisao);
             }
         } catch (Exception $e) {
             $this->view->message = "Erro ao salvar a visão: " . $e->getMessage();
         }
         // ========== FIM SALVAR VISÃO ==========
         // ========== INÍCIO TELEFONES ==========
         // array com os telefones
         $tipoFones = $post->tipoFones;
         $ufFones = $post->ufFones;
         $dddFones = $post->dddFones;
         $Fones = $post->Fones;
         $divulgarFones = $post->divulgarFones;
         try {
             // exclui todos os telefones
             $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);
             }
             // fecha for
         } catch (Exception $e) {
             $this->view->message = "Erro ao salvar o componente: " . $e->getMessage();
         }
         // ========== FIM TELEFONES ==========
         // ========== INÍCIO E-MAILS ==========
         // array com os e-mails
         $tipoEmails = $post->tipoEmails;
         $Emails = $post->Emails;
         $divulgarEmails = $post->divulgarEmails;
         $enviarEmails = $post->enviarEmails;
         try {
             // exclui todos os e-mails
             $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);
             }
             // fecha for
         } catch (Exception $e) {
             $this->view->message = "Erro ao salvar o componente: " . $e->getMessage();
         }
         // ========== FIM E-MAILS ==========
         // ========== INÍCIO DIRIGENTES ==========
         // busca os dados do associado ao dirigente (idVinculoPrincipal)
         //$buscarAgente = ManterAgentesDAO::buscarAgentes(null, null, $idAgenteGeral);
         // busca o dirigente vinculado ao cnpj/cpf
         //$dadosDirigente = ManterAgentesDAO::buscarVinculados($buscarAgente[0]->CNPJCPF, null, $idAgente, $idAgenteGeral, $idAgenteGeral);
         $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);
         }
         // ========== FIM DIRIGENTES ==========
     }
     // fecha if ($this->getRequest()->isPost())
     parent::message("Cadastro realizado com sucesso!", "manteragentes/dirigentes?acao=cc&idAgenteGeral=" . $idAgenteGeral, "CONFIRM");
 }