/**
  * 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");
 }
 private function cadastrarVinculoFornecedor($dados)
 {
     if ($dados['idAgente'] == '') {
         $agentesDao = new Agentes();
         $nomeDao = new Nomes();
         $auth = Zend_Auth::getInstance();
         // instancia da autenticação
         $idusuario = $auth->getIdentity()->usu_codigo;
         $agentesDao->inserirAgentes(array('CNPJCPF' => $dados['CNPJCPF'], 'TipoPessoa' => $dados['TipoPessoa'], 'DtCadastro' => date('Y-m-d'), 'Status' => '0', 'Usuario' => $idusuario));
         $agentes = $agentesDao->buscar(array('CNPJCPF = ?' => $dados['CNPJCPF']));
         $dados['idAgente'] = $agentes[0]->idAgente;
         $nomeDao->insert(array('idAgente' => $dados['idAgente'], 'Descricao' => utf8_decode($dados['Descricao']), 'TipoNome' => $dados['TipoNome'], 'Status' => 0, 'Usuario' => $idusuario));
     }
     if ($dados['idContrato'] != '') {
         $contratoxAgentesDao = new Contratoxagentes();
         $resultado = $contratoxAgentesDao->buscar(array('idContrato = ? ' => $dados['idContrato']));
         if (count($resultado) == 0) {
             $contratoxAgentesDao->insert(array('idContrato' => $dados['idContrato'], 'idAgente' => $dados['idAgente']));
         } else {
             $idAgenteAntigo = $resultado[0]->idAgente;
             if ($idAgenteAntigo != $dados['idAgente']) {
                 $contratoxAgentesDao->alterarContratoxAgentes(array('idAgente' => $dados['idAgente']), " idContrato = {$dados['idContrato']} and idAgente = {$idAgenteAntigo}");
             }
         }
         return false;
     }
     if ($dados['DispensaLicitacao']) {
         return $dados['idAgente'];
     }
     if ($dados['idLicitacao'] != '') {
         $licitacaoxAgentesDao = new Licitacaoxagentes();
         //verifica se o agente nao esta cadastrado.
         $cadastrado = false;
         $licitacaoAgentes = $licitacaoxAgentesDao->buscarFornecedoresLicitacao($dados['idLicitacao'])->toArray();
         foreach ($licitacaoAgentes as $la) {
             if (in_array($dados['idAgente'], $la)) {
                 $cadastrado = true;
             }
         }
         if ($cadastrado) {
             $dados['idAgente'] = 'cadastrado';
         } else {
             $licitacaoxAgentesDao->insert(array('idLicitacao' => $dados['idLicitacao'], 'idAgente' => $dados['idAgente']));
         }
         return $dados['idAgente'];
     }
     if ($dados['idCotacao'] != '') {
         return $dados['idAgente'];
     }
     return true;
 }