コード例 #1
0
        public void ImportarCaracterizacaoCDLA(Requerimento requerimento, BancoDeDados bancoCredenciado, BancoDeDados bancoInterno)
        {
            BarragemDispensaLicenca caracterizacao = _da.ImportarCaracterizacaoCdla(requerimento.Id, bancoCredenciado);

            Dictionary <Int32, String> _diretorioCred     = _da.ObterCredenciadoDiretorioArquivo(bancoCredenciado);
            Dictionary <Int32, String> _diretorioTempCred = _da.ObterCredenciadoDiretorioArquivoTemp(bancoCredenciado);

            ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado, _diretorioCred, _diretorioTempCred, UsuarioCredenciado);
            ArquivoBus _busArquivoInterno     = new ArquivoBus(eExecutorTipo.Interno, usuarioCredenciado: UsuarioCredenciado);

            Arquivo aux = _busArquivoCredenciado.Obter(caracterizacao.Autorizacao.Id.Value); //Obtém o arquivo completo do diretorio do Institucional(nome, buffer, etc)

            aux.Id = 0;                                                                      //Zera o ID
            aux    = _busArquivoInterno.SalvarTemp(aux);                                     //salva no diretório temporário
            aux    = _busArquivoInterno.Copiar(aux);                                         //Copia para o diretório oficial

            Executor executor = Executor.Current;

            ArquivoDa arquivoDa = new ArquivoDa();

            arquivoDa.Salvar(aux, executor.Id, executor.Nome, executor.Login, (int)eExecutorTipo.Interno, executor.Tid, bancoInterno);

            caracterizacao.Autorizacao.Id = aux.Id;

            _da.CopiarDadosCredenciado(caracterizacao, bancoInterno);
        }
コード例 #2
0
        public void Salvar(HabilitacaoEmissaoPTV habilitacao)
        {
            try
            {
                if (!_validar.Salvar(habilitacao))
                {
                    return;
                }

                habilitacao.SituacaoId = (int)eHabilitacaoEmissaoPTV.Ativo;
                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados banco = BancoDeDados.ObterInstancia())
                {
                    banco.IniciarTransacao();

                    #region Arquivo

                    if (habilitacao.Arquivo != null)
                    {
                        if (!string.IsNullOrWhiteSpace(habilitacao.Arquivo.Nome))
                        {
                            if (habilitacao.Arquivo.Id != null && habilitacao.Arquivo.Id == 0)
                            {
                                ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                                habilitacao.Arquivo = _busArquivo.Copiar(habilitacao.Arquivo);
                            }

                            if (habilitacao.Arquivo.Id == 0)
                            {
                                ArquivoDa _arquivoDa = new ArquivoDa();
                                _arquivoDa.Salvar(habilitacao.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, banco);
                            }
                        }
                        else
                        {
                            habilitacao.Arquivo.Id = null;
                        }
                    }
                    else
                    {
                        habilitacao.Arquivo = new Blocos.Arquivo.Arquivo();
                    }

                    #endregion

                    _da.Salvar(habilitacao, banco);

                    Validacao.Add(Mensagem.HabilitacaoEmissaoPTV.SalvoSucesso);

                    banco.Commit();
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
コード例 #3
0
        public bool Salvar(MaterialApreendido entidade)
        {
            try
            {
                if (_validar.Salvar(entidade))
                {
                    if (entidade.Id < 1)
                    {
                        entidade.Id = _da.ObterID(entidade.FiscalizacaoId);
                    }

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo

                        if (entidade.Arquivo != null)
                        {
                            if (!string.IsNullOrWhiteSpace(entidade.Arquivo.Nome))
                            {
                                if (entidade.Arquivo.Id != null && entidade.Arquivo.Id == 0)
                                {
                                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                                    entidade.Arquivo = _busArquivo.Copiar(entidade.Arquivo);
                                }

                                if (entidade.Arquivo.Id == 0)
                                {
                                    ArquivoDa _arquivoDa = new ArquivoDa();
                                    _arquivoDa.Salvar(entidade.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                            else
                            {
                                entidade.Arquivo.Id = null;
                            }
                        }

                        #endregion

                        _da.Salvar(entidade, bancoDeDados);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }

            return(Validacao.EhValido);
        }
コード例 #4
0
        public void Salvar(TituloModelo tituloModelo)
        {
            try
            {
                if (_validar.Salvar(tituloModelo))
                {
                    if (!tituloModelo.Regra(eRegra.PdfGeradoSistema))
                    {
                        tituloModelo.Arquivo.Id = null;
                    }

                    GerenciadorTransacao.ObterIDAtual();
                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo

                        if (tituloModelo.Arquivo.Id != null && tituloModelo.Arquivo.Id == 0)
                        {
                            ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                            tituloModelo.Arquivo = _busArquivo.Copiar(tituloModelo.Arquivo);
                        }

                        if (tituloModelo.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(tituloModelo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        tituloModelo.Regras = tituloModelo.Regras.FindAll(x => x.Valor == true);

                        if (tituloModelo.Regra(eRegra.Renovacao))
                        {
                            TituloModeloRegra regra = tituloModelo.Regras.SingleOrDefault(x => x.TipoEnum == eRegra.Renovacao);
                            regra.Respostas.Add(new TituloModeloResposta()
                            {
                                Valor = tituloModelo.Id, TipoEnum = eResposta.Modelo
                            });
                        }

                        _da.Salvar(tituloModelo, bancoDeDados);

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.TituloModelo.TituloModeloEditado);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
コード例 #5
0
        public bool Salvar(HabilitarEmissaoCFOCFOC habilitar)
        {
            try
            {
                if (_validar.Salvar(habilitar))
                {
                    #region Arquivos/Diretorio
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (habilitar.Arquivo != null && !String.IsNullOrWhiteSpace(habilitar.Arquivo.TemporarioNome))
                    {
                        if (habilitar.Arquivo.Id == 0)
                        {
                            habilitar.Arquivo = _busArquivo.Copiar(habilitar.Arquivo);
                        }
                    }
                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco
                        ArquivoDa arquivoDa = new ArquivoDa();

                        if (habilitar.Arquivo != null && !String.IsNullOrWhiteSpace(habilitar.Arquivo.TemporarioNome))
                        {
                            if (habilitar.Arquivo.Id == 0)
                            {
                                arquivoDa.Salvar(habilitar.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                            }
                        }
                        #endregion

                        _da.Salvar(habilitar, bancoDeDados);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(Validacao.EhValido);
        }
コード例 #6
0
        private void CopiarArquivosParaDiretorioPadrao(Cobranca entidade)
        {
            if (entidade?.Anexos == null)
            {
                return;
            }

            var _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

            foreach (var anexo in entidade.Anexos)
            {
                if (anexo.Arquivo.Id == 0)
                {
                    anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                }
            }
        }
コード例 #7
0
        public ArquivoProjeto EnviarArquivo(ProjetoGeografico projeto)
        {
            ArquivoProjeto arquivoEnviado;

            if (projeto.Arquivos == null || projeto.Arquivos.Count <= 0)
            {
                Validacao.Add(Mensagem.ProjetoGeografico.ArquivoNaoEncontrado);
            }

            arquivoEnviado = projeto.Arquivos[0];

            try
            {
                if (_validar.EnviarArquivo(arquivoEnviado))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                        _busArquivo.Copiar(arquivoEnviado);

                        _busArquivo.ObterTemporario(arquivoEnviado);

                        arquivoEnviado.IdRelacionamento = _da.ExisteArquivoFila(arquivoEnviado);

                        List <ArquivoProjeto> arquivosSalvos = _da.ObterArquivos(arquivoEnviado.ProjetoId).Where(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado).ToList();

                        #region Erro de Duplicaçao de arquivos enviados

                        if (arquivosSalvos.Count > 1)
                        {
                            _da.ExcluirArquivoDuplicados(arquivoEnviado.ProjetoId, bancoDeDados);
                            arquivosSalvos = _da.ObterArquivos(arquivoEnviado.ProjetoId, bancoDeDados).Where(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado).ToList();
                        }

                        #endregion

                        Arquivo arqAnterior = null;

                        if (arquivosSalvos.Count > 0)
                        {
                            ArquivoProjeto arq = arquivosSalvos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado);
                            try
                            {
                                arqAnterior = _busArquivo.Obter((arq ?? new ArquivoProjeto()).Id.GetValueOrDefault());
                                if (arqAnterior != null)
                                {
                                    arquivoEnviado.Id = arqAnterior.Id.Value;
                                    _busArquivo.Deletar(arqAnterior.Caminho);
                                }
                            }
                            catch
                            {
                                ArquivoDa arqDa = new ArquivoDa();
                                if (arqAnterior == null && (arq ?? new ArquivoProjeto()).Id.GetValueOrDefault() > 0)
                                {
                                    arqAnterior = _busArquivo.ObterDados((arq ?? new ArquivoProjeto()).Id.GetValueOrDefault());
                                }
                                arqDa.MarcarDeletado(arqAnterior.Id.Value, arqAnterior.Caminho);
                            }
                        }

                        ArquivoDa _arquivoDa = new ArquivoDa();
                        _arquivoDa.Salvar(arquivoEnviado, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);

                        //Atualiza a lista de arquivos do projeto
                        _da.AtualizarArquivosEnviado(arquivoEnviado, bancoDeDados);

                        arquivoEnviado.Buffer.Close();
                        arquivoEnviado.Buffer.Dispose();
                        arquivoEnviado.Buffer   = null;
                        arquivoEnviado.Etapa    = (int)eFilaEtapaGeo.Validacao;                     //1;
                        arquivoEnviado.Situacao = (int)eFilaSituacaoGeo.Aguardando;                 //1;

                        if (arquivoEnviado.IdRelacionamento <= 0)
                        {
                            _da.InserirFila(arquivoEnviado, bancoDeDados);
                        }
                        else
                        {
                            _da.AlterarSituacaoFila(arquivoEnviado, bancoDeDados);
                        }

                        bancoDeDados.Commit();

                        ObterSituacao(arquivoEnviado);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(arquivoEnviado);
        }
コード例 #8
0
        public bool Salvar(Funcionario funcionario, String senha, String ConfirmarSenha)
        {
            try
            {
                if (_validar.Salvar(funcionario, senha, ConfirmarSenha))
                {
                    #region Mensagem

                    Mensagem msgSucesso = Mensagem.Funcionario.Salvar;

                    if (funcionario.Id > 0)
                    {
                        msgSucesso = Mensagem.Funcionario.Editar;
                    }

                    if (funcionario.Id > 0 && funcionario.Tipo != 3)
                    {
                        throw new Exception("Tipo de funcionário inválido");
                    }

                    #endregion


                    #region Arquivos/Diretorio
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (funcionario.Arquivo != null && !String.IsNullOrWhiteSpace(funcionario.Arquivo.TemporarioNome))
                    {
                        if (funcionario.Arquivo.Id == 0)
                        {
                            funcionario.Arquivo = _busArquivo.Copiar(funcionario.Arquivo);
                        }
                    }
                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Usuario

                        string hashSenha = GerenciarAutenticacao.Criptografar(funcionario.Usuario.Login, senha);
                        AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor();

                        if (funcionario.Usuario.Id <= 0)
                        {
                            _busUsuario.Salvar(funcionario.Usuario, hashSenha, executor, bancoDeDados);
                        }
                        else
                        {
                            if (!String.IsNullOrEmpty(senha))
                            {
                                _busUsuario.AlterarSenha(funcionario.Usuario, hashSenha, executor, bancoDeDados);
                                funcionario.Situacao = 5;                                //Alterar senha
                            }
                        }

                        #endregion


                        #region Arquivos/Banco
                        ArquivoDa arquivoDa = new ArquivoDa();

                        if (funcionario.Arquivo != null && !String.IsNullOrWhiteSpace(funcionario.Arquivo.TemporarioNome))
                        {
                            if (funcionario.Arquivo.Id == 0)
                            {
                                arquivoDa.Salvar(funcionario.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                            }
                        }
                        #endregion


                        _da.Salvar(funcionario, bancoDeDados);
                        bancoDeDados.Commit();
                    }

                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #9
0
        public bool Salvar(Documento documento)
        {
            try
            {
                documento.Emposse.Id = User.FuncionarioId;

                if (documento.Arquivo == null)
                {
                    documento.Arquivo = new Arquivo();
                }

                bool isEdicao = (documento.Id > 0);

                if (_validar.Salvar(documento))
                {
                    #region Arquivos/Diretorio

                    if (documento.Arquivo.Id != null && documento.Arquivo.Id == 0)
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                        documento.Arquivo = _busArquivo.Copiar(documento.Arquivo);
                    }

                    #endregion

                    #region Setar Valores

                    ListaBus      listaBus     = new ListaBus();
                    ProtocoloTipo configuracao = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id);

                    documento.ProtocoloAssociado = (configuracao.PossuiProcesso || configuracao.ProcessoObrigatorio) ? documento.ProtocoloAssociado : new Protocolo();
                    documento.ChecagemPendencia  = (configuracao.PossuiChecagemPendencia || configuracao.ChecagemPendenciaObrigatorio) ? documento.ChecagemPendencia : new ChecagemPendencia();
                    documento.ChecagemRoteiro    = (configuracao.PossuiChecagemRoteiro || configuracao.ChecagemRoteiroObrigatorio) ? documento.ChecagemRoteiro : new ChecagemRoteiro();
                    documento.Requerimento       = (configuracao.PossuiRequerimento || configuracao.RequerimentoObrigatorio) ? documento.Requerimento : new Requerimento();

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        if (documento.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(documento.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus();

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            #region Alterar Situacao Requerimento

                            if (documento.Id.HasValue)
                            {
                                Documento docOriginal = _da.ObterSimplificado(documento.Id.Value) as Documento;
                                docOriginal.Requerimento = _busRequerimento.ObterSimplificado(docOriginal.Requerimento.Id);

                                if (docOriginal.Requerimento.Id != documento.Requerimento.Id)
                                {
                                    AlterarRequerimentoSituacao(docOriginal, banco: bancoDeDados);

                                    if (docOriginal.Requerimento.IsRequerimentoDigital)
                                    {
                                        CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                        carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao()
                                        {
                                            Requerimento = docOriginal.Requerimento
                                        }, bancoDeDadosCredenciado);

                                        if (!_busProjetoDigital.AlterarSituacao(docOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado))
                                        {
                                            bancoDeDados.Rollback();
                                            return(false);
                                        }
                                    }
                                }
                            }

                            #endregion

                            Documento documentoOriginal = new Documento();
                            if (documento.Id != null && documento.Id.GetValueOrDefault() > 0)
                            {
                                documentoOriginal = ObterSimplificado(documento.Id.Value);
                            }

                            #region Titulo

                            if (documento.ChecagemPendencia.Id > 0 && documento.Id.GetValueOrDefault() == 0)
                            {
                                documento.ChecagemPendencia = _checagemPendenciaBus.Obter(documento.ChecagemPendencia.Id);

                                TituloBus tituloBus = new TituloBus();
                                Titulo    titulo    = tituloBus.Obter(documento.ChecagemPendencia.TituloId);

                                if (titulo.Situacao.Id != 5)                                //5 - Encerrado
                                {
                                    titulo.DataEncerramento.Data = DateTime.Now;
                                    titulo.MotivoEncerramentoId  = 7;                                   //Encerrado
                                    TituloSituacaoBus tituloSituacaoBus = new TituloSituacaoBus();
                                    tituloSituacaoBus.AlterarSituacao(titulo, (int)eAlterarSituacaoAcao.Encerrar, bancoDeDados);

                                    if (Validacao.EhValido)
                                    {
                                        Validacao.Erros.Clear();
                                    }
                                }

                                #region Itens da Analise

                                AnaliseItensBus busAnalise = new AnaliseItensBus(new AnaliseItensValidar());

                                AnaliseItem analiseItem = busAnalise.ObterAnaliseTitulo(documento.ChecagemPendencia.TituloId);
                                analiseItem = busAnalise.Obter(analiseItem.Id, bancoDeDados);
                                //int setorId = _busProc.ObterSetor(analiseItem.Protocolo.Id);

                                foreach (Item item in analiseItem.Itens)
                                {
                                    if (documento.ChecagemPendencia.Itens.Exists(x => x.Id == item.Id))
                                    {
                                        item.Analista = User.Name;
                                        item.Situacao = (int)eAnaliseItemSituacao.Recebido;
                                        item.Motivo   = String.Empty;
                                        item.Recebido = true;
                                        item.Editado  = true;
                                        //item.SetorId = setorId;
                                        item.DataAnalise = DateTime.Now.ToString();
                                    }
                                }

                                AnaliseItensDa _daAnalise = new AnaliseItensDa();
                                _daAnalise.Salvar(analiseItem, bancoDeDados);

                                #endregion
                            }

                            #endregion

                            #region Atividade

                            List <Atividade> lstAtividadesAtual = null;
                            if ((documento.Id ?? 0) > 0)
                            {
                                lstAtividadesAtual = _da.ObterAtividades(documento.Id.GetValueOrDefault(), bancoDeDados).Atividades;
                            }

                            if (documento.Atividades != null && documento.Atividades.Count > 0)
                            {
                                documento.Atividades.ForEach(x =>
                                {
                                    x.Protocolo.Id         = documento.Id.GetValueOrDefault();
                                    x.Protocolo.IsProcesso = false;
                                });

                                AtividadeBus atividadeBus = new AtividadeBus();
                                atividadeBus.AlterarSituacaoProcDoc(documento.Atividades, lstAtividadesAtual, bancoDeDados);
                                atividadeBus.TituloAnteriores(documento.Atividades, lstAtividadesAtual, bancoDeDados);
                            }

                            #endregion

                            _da.Salvar(documento, bancoDeDados);

                            #region Checagens

                            // cadastrando, seta situação da checagem de itens de roteiro/pendencia como protocolada
                            if (documentoOriginal.Id.GetValueOrDefault() <= 0)
                            {
                                _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada

                                documento.ChecagemPendencia.SituacaoId = 2;                                   //protocolada
                                _checagemPendenciaBus.AlterarSituacao(documento.ChecagemPendencia, bancoDeDados);
                            }
                            else                             // editando documento
                            {                                // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada
                                if (documento.ChecagemRoteiro.Id != documentoOriginal.ChecagemRoteiro.Id)
                                {
                                    _busCheckList.AlterarSituacao(documentoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados);                            //finalizada
                                    _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados);                                    //protocolada
                                }
                            }

                            #endregion

                            documento.Requerimento = _busRequerimento.ObterSimplificado(documento.Requerimento.Id);

                            if (documento.Requerimento.IsRequerimentoDigital)
                            {
                                CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao()
                                {
                                    Requerimento = documento.Requerimento
                                }, bancoDeDadosCredenciado);

                                if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id)
                                {
                                    if (!_busProjetoDigital.AlterarSituacao(documento.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado))
                                    {
                                        bancoDeDados.Rollback();
                                        return(false);
                                    }
                                }
                            }

                            AlterarRequerimentoSituacao(documento, 3, bancoDeDados);                            // Protocolado

                            #region Fiscalizacao

                            if (isEdicao && documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id && documentoOriginal.Fiscalizacao.Id > 0)
                            {
                                documentoOriginal.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                                documentoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                documentoOriginal.Fiscalizacao.SituacaoAtualTipo     = documento.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(documentoOriginal.Fiscalizacao, bancoDeDados);
                            }

                            if (documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id)
                            {
                                documento.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.Protocolado;
                                documento.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                documento.Fiscalizacao.SituacaoAtualTipo     = documento.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(documento.Fiscalizacao, bancoDeDados);
                            }

                            #endregion

                            //sempre no final esse if
                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                    }

                    Mensagem msgSucesso = Mensagem.Documento.Salvar(documento.Numero);
                    if (isEdicao)
                    {
                        msgSucesso = Mensagem.Documento.Editar;
                    }

                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #10
0
        public void Salvar(Titulo titulo)
        {
            try
            {
                titulo.Autor = new Funcionario()
                {
                    Id = User.FuncionarioId
                };

                if (titulo.Id <= 0)
                {
                    titulo.Situacao.Id      = (int)eTituloSituacao.Cadastrado;
                    titulo.DataCriacao.Data = DateTime.Now;
                }

                if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica))
                {
                    titulo.Numero.Inteiro = null;
                    titulo.Numero.Ano     = null;
                }

                //Carrega o Modelo e suas regras do modelo
                titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id);

                if (titulo.Condicionantes != null && titulo.Condicionantes.Count > 0)
                {
                    foreach (var cond in titulo.Condicionantes)
                    {
                        if (!cond.PossuiPrazo || !cond.PossuiPeriodicidade)
                        {
                            if (cond.Periodicidades != null)
                            {
                                cond.Periodicidades.Clear();
                            }
                            continue;
                        }

                        TituloCondicionantePeriodicidade periodicidade = new TituloCondicionantePeriodicidade();
                        periodicidade.Situacao.Id = 1;
                    }
                }

                IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault());

                string jsonEsp = (titulo.Especificidade != null) ? titulo.Especificidade.Json : null;
                titulo.Especificidade = (Especificidade)busEsp.Deserialize(jsonEsp);
                titulo.Especificidade = titulo.ToEspecificidade();

                //Delega a validação de especificidade
                _validar.ValidarEspecificidade = () =>
                {
                    busEsp.Validar.Salvar(titulo.Especificidade);
                };

                if (_validar.Salvar(titulo))
                {
                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (!titulo.Modelo.Regra(eRegra.PdfGeradoSistema) && titulo.ArquivoPdf.Id == 0)
                    {
                        titulo.ArquivoPdf = _busArquivo.Copiar(titulo.ArquivoPdf);
                    }

                    if (titulo.Anexos != null && titulo.Anexos.Count > 0)
                    {
                        foreach (Anexo anexo in titulo.Anexos)
                        {
                            if (anexo.Arquivo.Id == 0)
                            {
                                anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                            }
                        }
                    }

                    #endregion

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        GerenciadorTransacao.ObterIDAtual();
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        ArquivoDa arquivoDa = new ArquivoDa();

                        if (!titulo.Modelo.Regra(eRegra.PdfGeradoSistema))
                        {
                            arquivoDa.Salvar(titulo.ArquivoPdf, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        if (titulo.Anexos != null && titulo.Anexos.Count > 0)
                        {
                            foreach (Anexo anexo in titulo.Anexos)
                            {
                                if (anexo.Arquivo.Id == 0)
                                {
                                    arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                        }

                        #endregion

                        _da.Salvar(titulo, bancoDeDados);

                        //Atualiza os Ids em Especificidade
                        titulo.Especificidade = titulo.ToEspecificidade();
                        busEsp.Salvar(titulo.Especificidade, bancoDeDados);

                        //Trata quando o catch do busEsp.Salvar silencia o erro.
                        if (!Validacao.EhValido)
                        {
                            return;
                        }

                        bancoDeDados.Commit();
                    }

                    Validacao.Add(Mensagem.Titulo.Salvar);
                    if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo))
                    {
                        Validacao.Add(Mensagem.Retificacao.msgInst4());
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
コード例 #11
0
        public bool Salvar(Agrotoxico agrotoxico)
        {
            try
            {
                agrotoxico.IngredientesAtivos.ForEach(item =>
                {
                    if (item.UnidadeMedidaOutro != null)
                    {
                        item.UnidadeMedidaOutro = item.UnidadeMedidaOutro.DeixarApenasUmEspaco();
                    }
                });

                if (_validar.Salvar(agrotoxico))
                {
                    if (!agrotoxico.PossuiCadastro)
                    {
                        if (agrotoxico.Id < 1)
                        {
                            agrotoxico.NumeroCadastro = _da.ObterSequenciaNumeroCadastro();
                        }
                        else
                        {
                            agrotoxico.NumeroCadastro = _da.Obter(agrotoxico.Id, true).NumeroCadastro;
                        }
                    }

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo Bula

                        if (agrotoxico.Bula != null)
                        {
                            if (!string.IsNullOrWhiteSpace(agrotoxico.Bula.Nome))
                            {
                                if (agrotoxico.Bula.Id != null && agrotoxico.Bula.Id == 0)
                                {
                                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                                    agrotoxico.Bula = _busArquivo.Copiar(agrotoxico.Bula);
                                }

                                if (agrotoxico.Bula.Id == 0)
                                {
                                    ArquivoDa _arquivoDa = new ArquivoDa();
                                    _arquivoDa.Salvar(agrotoxico.Bula, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                            else
                            {
                                agrotoxico.Bula.Id = null;
                            }
                        }
                        else
                        {
                            agrotoxico.Bula = new Blocos.Arquivo.Arquivo();
                        }

                        #endregion

                        _da.Salvar(agrotoxico, bancoDeDados);

                        bancoDeDados.Commit();

                        Validacao.Add(Mensagem.Agrotoxico.SalvoSucesso(agrotoxico.NumeroCadastro.ToString()));
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #12
0
        public bool Salvar(Acompanhamento entidade)
        {
            try
            {
                if (_validar.Salvar(entidade))
                {
                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (entidade.Arquivo != null && !string.IsNullOrWhiteSpace(entidade.Arquivo.Nome) && entidade.Arquivo.Id.GetValueOrDefault() == 0)
                    {
                        entidade.Arquivo = _busArquivo.Copiar(entidade.Arquivo);
                    }

                    foreach (var anexo in entidade.Anexos)
                    {
                        if (anexo.Arquivo.Id == 0)
                        {
                            anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        ArquivoDa _arquivoDa = new ArquivoDa();

                        if (entidade.Arquivo != null && entidade.Arquivo.Id.GetValueOrDefault() == 0)
                        {
                            _arquivoDa.Salvar(entidade.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        foreach (var anexo in entidade.Anexos)
                        {
                            if (anexo.Arquivo.Id == 0)
                            {
                                _arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                            }
                        }

                        #endregion

                        if (entidade.Id == 0)
                        {
                            entidade.NumeroSufixo = ObterNumeroAcompanhamento(entidade);
                        }

                        _da.Salvar(entidade, bancoDeDados);

                        bancoDeDados.Commit();

                        Validacao.Add(Mensagem.Acompanhamento.Salvar(entidade.Numero));
                    }
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }

            return(Validacao.EhValido);
        }
コード例 #13
0
        public ArquivoProjeto EnviarArquivo(ArquivoProjeto arquivo)
        {
            try
            {
                if (_validar.EnviarArquivo(arquivo))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaBancoCredenciado))
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado);

                        _busArquivo.Copiar(arquivo);

                        _busArquivo.ObterTemporario(arquivo);

                        arquivo.Processamento.Id = _da.ExisteItemFila(arquivo.Processamento);

                        _da.ExcluirArquivoDuplicados(arquivo.ProjetoId, bancoDeDados);

                        ArquivoProjeto arq = _da.ObterArquivos(arquivo.ProjetoId, bancoDeDados).SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado) ?? new ArquivoProjeto();
                        if (arq.Id.GetValueOrDefault() > 0 && !_da.ArquivoAssociadoProjetoDigital(arq.Id.GetValueOrDefault()))
                        {
                            Arquivo arqAnterior = null;

                            try
                            {
                                arqAnterior = _busArquivo.Obter(arq.Id.GetValueOrDefault());
                                if (arqAnterior != null)
                                {
                                    arquivo.Id = arqAnterior.Id.Value;
                                    _busArquivo.Deletar(arqAnterior.Caminho);
                                }
                            }
                            catch
                            {
                                ArquivoDa arqDa = new ArquivoDa();
                                if (arqAnterior == null && (arq ?? new ArquivoProjeto()).Id.GetValueOrDefault() > 0)
                                {
                                    arqAnterior = _busArquivo.ObterDados((arq ?? new ArquivoProjeto()).Id.GetValueOrDefault());
                                }
                                arqDa.MarcarDeletado(arqAnterior.Id.Value, arqAnterior.Caminho, bancoDeDados);
                            }
                        }

                        ArquivoDa arquivoDa = new ArquivoDa();
                        arquivoDa.Salvar(arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);

                        //Atualiza a lista de arquivos do projeto
                        _da.AtualizarArquivosEnviado(arquivo, bancoDeDados);

                        arquivo.Buffer.Close();
                        arquivo.Buffer.Dispose();
                        arquivo.Buffer = null;
                        arquivo.Processamento.Etapa    = (int)eFilaEtapaGeo.Validacao;
                        arquivo.Processamento.Situacao = (int)eFilaSituacaoGeo.Aguardando;

                        if (arquivo.Processamento.Id <= 0)
                        {
                            _da.InserirFila(arquivo.Processamento, bancoDeDados);
                        }
                        else
                        {
                            _da.AlterarSituacaoFila(arquivo.Processamento, bancoDeDados);
                        }

                        bancoDeDados.Commit();

                        ObterSituacao(arquivo.Processamento);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(arquivo);
        }
コード例 #14
0
        public bool CopiarDadosInstitucional(int empreendimentoID, int empreendimentoInternoID, BancoDeDados banco)
        {
            if (banco == null)
            {
                return(false);
            }

            if (_validar == null)
            {
                _validar = new BarragemDispensaLicencaValidar();
            }

            BarragemDispensaLicencaInternoBus barragemDispLicencaInternoBus = new BarragemDispensaLicencaInternoBus();
            BarragemDispensaLicenca           caracterizacao = barragemDispLicencaInternoBus.ObterPorEmpreendimento(empreendimentoInternoID);

            caracterizacao.EmpreendimentoID = empreendimentoID;
            caracterizacao.InternoID        = caracterizacao.Id;
            caracterizacao.InternoTID       = caracterizacao.Tid;

            if (_validar.CopiarDadosInstitucional(caracterizacao))
            {
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaCredenciadoBanco))
                {
                    bancoDeDados.IniciarTransacao();

                    #region Configurar

                    caracterizacao.Id = ObterPorEmpreendimento(empreendimentoID, simplificado: true, banco: bancoDeDados).Id;

                    if (caracterizacao.PossuiMonge.HasValue && !Convert.ToBoolean(caracterizacao.PossuiMonge))
                    {
                        caracterizacao.MongeTipo          = null;
                        caracterizacao.EspecificacaoMonge = string.Empty;
                    }

                    if (caracterizacao.PossuiVertedouro.HasValue && !Convert.ToBoolean(caracterizacao.PossuiVertedouro))
                    {
                        caracterizacao.VertedouroTipo          = null;
                        caracterizacao.EspecificacaoVertedouro = string.Empty;
                    }

                    #endregion

                    #region Arquivo

                    if (caracterizacao.Autorizacao != null && caracterizacao.Autorizacao.Id > 0)
                    {
                        ArquivoBus _busArquivoInterno     = new ArquivoBus(eExecutorTipo.Interno);
                        ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado);

                        Arquivo aux = _busArquivoInterno.Obter(caracterizacao.Autorizacao.Id.Value); //Obtém o arquivo completo do diretorio do Institucional(nome, buffer, etc)

                        aux.Id = 0;                                                                  //Zera o ID
                        aux    = _busArquivoCredenciado.SalvarTemp(aux);                             //salva no diretório temporário
                        aux    = _busArquivoCredenciado.Copiar(aux);                                 //Copia para o diretório oficial

                        //Salvar na Oficial
                        ArquivoDa arquivoDa = new ArquivoDa();
                        arquivoDa.Salvar(aux, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);

                        caracterizacao.Autorizacao.Id = aux.Id;
                    }

                    #endregion

                    _da.CopiarDadosInstitucional(caracterizacao, bancoDeDados);

                    bancoDeDados.Commit();
                }
            }

            return(Validacao.EhValido);
        }
コード例 #15
0
ファイル: PTVBus.cs プロジェクト: rodrigofigueiredo9/SIMLAM
        public bool Salvar(PTV ptv)
        {
            try
            {
                if (ptv.Id <= 0)
                {
                    ptv.Situacao = (int)eSolicitarPTVSituacao.Cadastrado;
                }

                if (_validar.Salvar(ptv))
                {
                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado);

                    if (ptv.Anexos != null && ptv.Anexos.Count > 0)
                    {
                        foreach (Anexo anexo in ptv.Anexos)
                        {
                            if (!String.IsNullOrWhiteSpace(anexo.Arquivo.TemporarioNome) && anexo.Arquivo.Id == 0)
                            {
                                anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                            }
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco
                        ArquivoDa arquivoDa = new ArquivoDa();

                        if (ptv.Anexos != null && ptv.Anexos.Count > 0)
                        {
                            foreach (Anexo anexo in ptv.Anexos)
                            {
                                if (!String.IsNullOrWhiteSpace(anexo.Arquivo.TemporarioNome) && anexo.Arquivo.Id == 0)
                                {
                                    arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                        }
                        #endregion

                        ptv.PossuiLaudoLaboratorial = 0;

                        _da.Salvar(ptv, bancoDeDados);

                        bancoDeDados.Commit();

                        Validacao.Add(Mensagem.PTV.Salvar);
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
コード例 #16
0
        public void CopiarDadosInstitucional(int empreendimentoID, int empreendimentoInternoID, eCaracterizacao caracterizacaoTipo, BancoDeDados banco)
        {
            if (banco == null)
            {
                return;
            }

            #region Configurar Projeto

            ProjetoGeograficoInternoBus projetoGeograficoInternoBus = new ProjetoGeograficoInternoBus();
            ProjetoGeografico           projetoGeo = new ProjetoGeografico();

            //Obter do Institucional
            projetoGeo.InternoID = projetoGeograficoInternoBus.ExisteProjetoGeografico(empreendimentoInternoID, (int)caracterizacaoTipo);
            if (projetoGeo.InternoID > 0)
            {
                projetoGeo = projetoGeograficoInternoBus.ObterProjeto(projetoGeo.InternoID);
            }

            projetoGeo.EmpreendimentoId = empreendimentoID;
            projetoGeo.InternoID        = projetoGeo.Id;
            projetoGeo.InternoTID       = projetoGeo.Tid;

            #endregion

            if (_validar.CopiarDadosInstitucional(projetoGeo))
            {
                projetoGeo.Id = 0;                //Só é apagado aqui por causa da validação de soprepor ponto do empreendimento

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBancoCredenciado))
                {
                    bancoDeDados.IniciarTransacao();

                    _da.CopiarDadosInstitucional(projetoGeo);

                    #region Arquivo

                    ArquivoBus _busArquivoInterno     = new ArquivoBus(eExecutorTipo.Interno);
                    ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado);

                    foreach (var item in projetoGeo.Arquivos)
                    {
                        Arquivo aux = _busArquivoInterno.Obter(item.Id.Value); //Obtém o arquivo completo do diretorio do interno(nome, buffer, etc)

                        aux.Id = 0;                                            //Zera o ID
                        aux    = _busArquivoCredenciado.SalvarTemp(aux);       //salva no diretório temporário
                        aux    = _busArquivoCredenciado.Copiar(aux);           //Copia para o diretório oficial

                        //Salvar na Oficial
                        ArquivoDa arquivoDa = new ArquivoDa(EsquemaBancoCredenciado);
                        arquivoDa.Salvar(aux, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);

                        item.Id = aux.Id;
                    }

                    _da.SalvarArquivosInstitucional(projetoGeo, bancoDeDados);

                    #endregion

                    #region Histórico

                    Historico historico = new Historico();
                    historico.Gerar(projetoGeo.Id, eHistoricoArtefatoCaracterizacao.projetogeografico, eHistoricoAcao.copiar, bancoDeDados, null);
                    historico.GerarGeo(projetoGeo.Id, eHistoricoArtefatoCaracterizacao.projetogeografico, eHistoricoAcao.copiar, bancoDeDados, null);

                    #endregion

                    #region Dependencias

                    //Gerencia as dependências
                    projetoGeo.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(empreendimentoID, caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);
                    _caracterizacaoBus.Dependencias(new Caracterizacao()
                    {
                        Id             = projetoGeo.Id,
                        Tipo           = caracterizacaoTipo,
                        DependenteTipo = eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                        Dependencias   = projetoGeo.Dependencias
                    }, bancoDeDados);

                    #endregion

                    bancoDeDados.Commit();
                }
            }
        }
コード例 #17
0
        public bool Salvar(Processo processo)
        {
            try
            {
                processo.Emposse.Id   = User.FuncionarioId;
                processo.Requerimento = _busRequerimento.ObterSimplificado(processo.Requerimento.Id);

                if (processo.Arquivo == null)
                {
                    processo.Arquivo = new Arquivo();
                }

                bool isEdicao = (processo.Id > 0);

                if (processo.Fiscalizacao.Id > 0)
                {
                    processo.Requerimento    = new Requerimento();
                    processo.Atividades      = new List <Atividade>();
                    processo.ChecagemRoteiro = new ChecagemRoteiro();
                }

                if (_validar.Salvar(processo))
                {
                    #region Arquivos/Diretorio

                    if (processo.Arquivo.Id != null && processo.Arquivo.Id == 0)
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                        processo.Arquivo = _busArquivo.Copiar(processo.Arquivo);
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        if (processo.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(processo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        #region Atividade

                        List <Atividade> lstAtividadesAtual = null;
                        if (processo.Id.GetValueOrDefault() > 0)
                        {
                            lstAtividadesAtual = _da.ObterAtividadesSolicitadas(processo.Id.Value, bancoDeDados);
                        }

                        if (processo.Atividades != null && processo.Atividades.Count > 0)
                        {
                            processo.Atividades.ForEach(x =>
                            {
                                x.Protocolo.Id         = processo.Id.GetValueOrDefault();
                                x.Protocolo.IsProcesso = true;
                            });

                            AtividadeBus atividadeBus = new AtividadeBus();
                            atividadeBus.AlterarSituacaoProcDoc(processo.Atividades, lstAtividadesAtual, bancoDeDados);
                            atividadeBus.TituloAnteriores(processo.Atividades, lstAtividadesAtual, bancoDeDados);
                        }

                        #endregion

                        Processo processoOriginal = new Processo();
                        if (processo.Id != null && processo.Id.HasValue && processo.Id.Value > 0)
                        {
                            processoOriginal = ObterSimplificado(processo.Id.Value);
                        }

                        //Salvar
                        _da.Salvar(processo, bancoDeDados);

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            // editando processo
                            if (processoOriginal.Id > 0)
                            {
                                // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada
                                if (processo.ChecagemRoteiro.Id != processoOriginal.ChecagemRoteiro.Id)
                                {
                                    _busCheckList.AlterarSituacao(processoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados);
                                }

                                if (processoOriginal.Requerimento.Id != processo.Requerimento.Id)
                                {
                                    processoOriginal.Requerimento = _busRequerimento.ObterSimplificado(processoOriginal.Requerimento.Id);

                                    if (processoOriginal.Requerimento.IsRequerimentoDigital)
                                    {
                                        CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                        carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao()
                                        {
                                            Requerimento = processoOriginal.Requerimento
                                        }, bancoDeDadosCredenciado);

                                        if (!_busProjetoDigital.AlterarSituacao(processoOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado))
                                        {
                                            bancoDeDados.Rollback();
                                            return(false);
                                        }
                                    }

                                    AlterarRequerimentoSituacao(processoOriginal, banco: bancoDeDados);
                                }

                                if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id && processoOriginal.Fiscalizacao.Id > 0)
                                {
                                    processoOriginal.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                                    processoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                    processoOriginal.Fiscalizacao.SituacaoAtualTipo     = processo.Fiscalizacao.SituacaoId;

                                    _busFiscalizacao.AlterarSituacaoProcDoc(processoOriginal.Fiscalizacao, bancoDeDados);
                                }
                            }

                            if (processo.ChecagemRoteiro.Id > 0)
                            {
                                _busCheckList.AlterarSituacao(processo.ChecagemRoteiro.Id, 2, bancoDeDados);           //Checagem Protocolada
                                AlterarRequerimentoSituacao(processo, 3, bancoDeDados);                                // Requerimento Protocolado
                            }

                            if (processo.Requerimento.IsRequerimentoDigital)
                            {
                                CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao()
                                {
                                    Requerimento = processo.Requerimento
                                }, bancoDeDadosCredenciado);

                                if (processoOriginal.Requerimento.Id != processo.Requerimento.Id)
                                {
                                    if (!_busProjetoDigital.AlterarSituacao(processo.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado))
                                    {
                                        bancoDeDados.Rollback();
                                        return(false);
                                    }
                                }
                            }

                            #region Fiscalizacao

                            if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id)
                            {
                                processo.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.Protocolado;
                                processo.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                processo.Fiscalizacao.SituacaoAtualTipo     = processo.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(processo.Fiscalizacao, bancoDeDados);
                            }

                            #endregion Fiscalizacao

                            //sempre no final esse if
                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                    }

                    Mensagem msgSucesso = Mensagem.Processo.Salvar(processo.Numero);
                    if (isEdicao)
                    {
                        msgSucesso = Mensagem.Processo.Editar;
                    }
                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #18
0
        public void Salvar(Roteiro roteiro)
        {
            try
            {
                if (_validar.Salvar(roteiro))
                {
                    Mensagem msgSucesso;
                    bool     isEditar = false;

                    if (roteiro.Id > 0)
                    {
                        isEditar = true;
                    }

                    #region Arquivos/Diretorio
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (roteiro.Anexos != null && roteiro.Anexos.Count > 0)
                    {
                        foreach (Anexo anexo in roteiro.Anexos)
                        {
                            if (anexo.Arquivo.Id == 0)
                            {
                                anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                            }
                        }
                    }
                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco
                        ArquivoDa arquivoDa = new ArquivoDa();

                        if (roteiro.Anexos != null && roteiro.Anexos.Count > 0)
                        {
                            foreach (Anexo anexo in roteiro.Anexos)
                            {
                                if (anexo.Arquivo.Id == 0)
                                {
                                    arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                        }
                        #endregion

                        int roteiroIdOriginal = roteiro.Id;
                        _da.Salvar(roteiro, bancoDeDados);
                        if (roteiroIdOriginal > 0)
                        {
                            AlterarSituacaoChecagensComRoteiros(roteiro.Id, 3, bancoDeDados);
                        }

                        bancoDeDados.Commit();
                    }

                    if (isEditar)
                    {
                        msgSucesso = Mensagem.Roteiro.Editar(roteiro.Numero, roteiro.Versao, _da.ObterVersaoAtual(roteiro.Id));
                    }
                    else
                    {
                        msgSucesso = Mensagem.Roteiro.Salvar(roteiro.Numero, _da.ObterVersaoAtual(roteiro.Id));
                    }

                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
コード例 #19
0
ファイル: PTVBus.cs プロジェクト: rodrigofigueiredo9/SIMLAM
        public bool SalvarConversa(PTVComunicador comunicador)
        {
            try
            {
                #region Configuração

                Blocos.Arquivo.Arquivo arq;

                //if (comunicador.ArquivoCredenciado == null)
                //{
                //    comunicador.ArquivoCredenciado = new Blocos.Arquivo.Arquivo();
                //}

                arq = comunicador.ArquivoCredenciado;



                PTVConversa conversa;
                conversa = comunicador.Conversas[0];

                conversa.DataConversa.Data = DateTime.Now;
                conversa.CredenciadoId     = Executor.Current.Id;
                conversa.NomeComunicador   = Executor.Current.Nome;
                conversa.TipoComunicador   = (int)eExecutorTipo.Credenciado;

                #endregion Configuração

                if (_validar.ValidarConversa(comunicador))
                {
                    comunicador.liberadoCredenciado = false;

                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado);

                    if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                    {
                        if (arq.Id == 0)
                        {
                            arq = _busArquivo.Copiar(arq);
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo
                        if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                        {
                            ArquivoDa arquivoDa = new ArquivoDa();
                            if (arq.Id == 0)
                            {
                                arquivoDa.Salvar(arq, Executor.Current.Id, Executor.Current.Nome, Executor.Current.Login, (int)eExecutorTipo.Credenciado, Executor.Current.Tid, bancoDeDados);
                                conversa.ArquivoId               = arq.Id.GetValueOrDefault();
                                conversa.ArquivoNome             = arq.Nome;
                                comunicador.ArquivoCredenciadoId = arq.Id.GetValueOrDefault();
                            }
                        }

                        #endregion

                        _da.EnviarConversa(comunicador, bancoDeDados);

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.PTV.SalvarConversa);
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
コード例 #20
0
        public void CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoID, BancoDeDados banco, BancoDeDados bancoCredenciado)
        {
            if (banco == null)
            {
                return;
            }

            #region Configurar Projeto

            //Obter do Credenciado
            Cred.ModuloProjetoGeografico.Bussiness.ProjetoGeograficoBus projetoGeoCredBus = new Cred.ModuloProjetoGeografico.Bussiness.ProjetoGeograficoBus();
            ProjetoGeografico projetoGeo         = projetoGeoCredBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid);
            eCaracterizacao   caracterizacaoTipo = (eCaracterizacao)dependencia.DependenciaCaracterizacao;

            int projetoGeoCredenciadoId     = projetoGeo.Id;
            int empreendimentoCredenciadoId = projetoGeo.EmpreendimentoId;

            bool atualizarDependencias = (!Desatualizado(projetoGeo.InternoID, projetoGeo.InternoTID) && !projetoGeo.AlteradoCopiar);

            #endregion

            if (_validar.CopiarDadosCredenciado(projetoGeo))
            {
                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                {
                    bancoDeDados.IniciarTransacao();

                    _da.CopiarDadosCredenciado(projetoGeo, empreendimentoInternoID, bancoDeDados);

                    projetoGeoCredBus.AtualizarInternoIdTid(
                        empreendimentoCredenciadoId,
                        projetoGeoCredenciadoId,
                        (eCaracterizacao)projetoGeo.CaracterizacaoId,
                        projetoGeo.Id,
                        GerenciadorTransacao.ObterIDAtual(),
                        bancoCredenciado);

                    #region Arquivo

                    ArquivoBus _busArquivoInterno     = new ArquivoBus(eExecutorTipo.Interno);
                    ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado);

                    foreach (var item in projetoGeo.Arquivos)
                    {
                        Arquivo aux = _busArquivoCredenciado.Obter(item.Id.Value); //Obtém o arquivo completo do diretorio do credenciado(nome, buffer, etc)

                        aux.Id = 0;                                                //Zera o ID
                        aux    = _busArquivoInterno.SalvarTemp(aux);               //salva no diretório temporário
                        aux    = _busArquivoInterno.Copiar(aux);                   //Copia para o diretório oficial

                        //Salvar na Oficial
                        ArquivoDa arquivoDa = new ArquivoDa();
                        arquivoDa.Salvar(aux, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);

                        item.Id = aux.Id;
                    }

                    _da.SalvarArquivosCredenciado(projetoGeo, bancoDeDados);

                    #endregion

                    #region Histórico

                    HistCaract.Historico historico = new HistCaract.Historico();
                    historico.Gerar(projetoGeo.Id, eHistoricoArtefatoCaracterizacao.projetogeografico, eHistoricoAcao.importar, bancoDeDados);
                    historico.GerarGeo(projetoGeo.Id, eHistoricoArtefatoCaracterizacao.projetogeografico, eHistoricoAcao.importar, bancoDeDados);

                    #endregion

                    #region Dependencias

                    //Gerencia as dependências
                    projetoGeo.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(empreendimentoInternoID, caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);
                    _caracterizacaoBus.Dependencias(new Caracterizacao()
                    {
                        Id             = projetoGeo.Id,
                        Tipo           = caracterizacaoTipo,
                        DependenteTipo = eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                        Dependencias   = projetoGeo.Dependencias
                    }, bancoDeDados);

                    if (projetoGeo.InternoID > 0)
                    {
                        if (atualizarDependencias)
                        {
                            CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus();
                            caracterizacaoBus.AtualizarDependentes(projetoGeo.InternoID, caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico, projetoGeo.Tid, bancoDeDados);
                        }
                    }

                    #endregion

                    bancoDeDados.Commit();
                }
            }
        }
コード例 #21
0
        public bool Salvar(PTVOutro ptv, BancoDeDados banco = null)
        {
            try
            {
                ptv.DestinatarioID = ptv.Destinatario.ID;

                if (_validar.Salvar(ptv))
                {
                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);


                    if (ptv.Anexos != null && ptv.Anexos.Count > 0)
                    {
                        foreach (Anexo anexo in ptv.Anexos)
                        {
                            if (!String.IsNullOrWhiteSpace(anexo.Arquivo.TemporarioNome) && anexo.Arquivo.Id == 0)
                            {
                                anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                            }
                        }

                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                        {
                            bancoDeDados.IniciarTransacao();


                            ArquivoDa arquivoDa = new ArquivoDa();

                            if (ptv.Anexos != null && ptv.Anexos.Count > 0)
                            {
                                foreach (Anexo anexo in ptv.Anexos)
                                {
                                    if (!String.IsNullOrWhiteSpace(anexo.Arquivo.TemporarioNome) && anexo.Arquivo.Id == 0)
                                    {
                                        arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);
                                    }
                                }
                            }

                            bancoDeDados.Commit();
                        }
                    }

                    #endregion

                    ptv.Situacao      = (int)ePTVOutroSituacao.Valido;
                    ptv.CredenciadoId = User.FuncionarioId;

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                    {
                        bancoDeDados.IniciarTransacao();


                        _da.Salvar(ptv, bancoDeDados);

                        bancoDeDados.Commit();

                        Validacao.Add(Mensagem.PTVOutro.Salvar);
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
コード例 #22
0
        public bool Salvar(ConsideracaoFinal entidade)
        {
            try
            {
                if (_validar.Salvar(entidade))
                {
                    if (entidade.Id < 1)
                    {
                        entidade.Id = _da.ObterID(entidade.FiscalizacaoId);
                    }

                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (entidade.Arquivo != null && !string.IsNullOrWhiteSpace(entidade.Arquivo.Nome) && entidade.Arquivo.Id.GetValueOrDefault() == 0)
                    {
                        entidade.Arquivo = _busArquivo.Copiar(entidade.Arquivo);
                    }

                    foreach (var anexo in entidade.Anexos)
                    {
                        if (anexo.Arquivo.Id == 0)
                        {
                            anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                        }
                    }

                    foreach (var anexo in entidade.AnexosIUF)
                    {
                        if (anexo.Arquivo.Id == 0)
                        {
                            anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo);
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        ArquivoDa _arquivoDa = new ArquivoDa();

                        if (entidade.Arquivo != null && entidade.Arquivo.Id.GetValueOrDefault() == 0)
                        {
                            _arquivoDa.Salvar(entidade.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        foreach (var anexo in entidade.Anexos)
                        {
                            if (anexo.Arquivo.Id == 0)
                            {
                                _arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                            }
                        }

                        foreach (var anexo in entidade.AnexosIUF)
                        {
                            if (anexo.Arquivo.Id == 0)
                            {
                                _arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                            }
                        }

                        #endregion

                        entidade.Testemunhas.ForEach(x =>
                        {
                            x.TestemunhaEndereco = x.TestemunhaIDAF.GetValueOrDefault() ? string.Empty : x.TestemunhaEndereco;
                        });

                        _da.Salvar(entidade, bancoDeDados);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }

            return(Validacao.EhValido);
        }
コード例 #23
0
        public void Salvar(BarragemDispensaLicenca caracterizacao, int projetoDigitalId)
        {
            try
            {
                #region Configurar

                if (caracterizacao.PossuiMonge.HasValue && !Convert.ToBoolean(caracterizacao.PossuiMonge))
                {
                    caracterizacao.MongeTipo          = null;
                    caracterizacao.EspecificacaoMonge = string.Empty;
                }

                if (caracterizacao.PossuiVertedouro.HasValue && !Convert.ToBoolean(caracterizacao.PossuiVertedouro))
                {
                    caracterizacao.VertedouroTipo          = null;
                    caracterizacao.EspecificacaoVertedouro = string.Empty;
                }

                #endregion

                if (_validar.Salvar(caracterizacao, projetoDigitalId))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaCredenciadoBanco))
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo

                        if (caracterizacao.Autorizacao != null)
                        {
                            if (!string.IsNullOrWhiteSpace(caracterizacao.Autorizacao.Nome))
                            {
                                if (caracterizacao.Autorizacao.Id != null && caracterizacao.Autorizacao.Id == 0)
                                {
                                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado);
                                    caracterizacao.Autorizacao = _busArquivo.Copiar(caracterizacao.Autorizacao);
                                }

                                if (caracterizacao.Autorizacao.Id == 0)
                                {
                                    ArquivoDa _arquivoDa = new ArquivoDa();
                                    _arquivoDa.Salvar(caracterizacao.Autorizacao, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                            else
                            {
                                caracterizacao.Autorizacao.Id = null;
                            }
                        }
                        else
                        {
                            caracterizacao.Autorizacao = new Blocos.Arquivo.Arquivo();
                        }

                        #endregion

                        _da.Salvar(caracterizacao, bancoDeDados);

                        Validacao.Add(Mensagem.BarragemDispensaLicenca.Salvar);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }
        }
コード例 #24
0
        public bool SalvarConversa(PTVComunicador comunicador, BancoDeDados bancoInterno = null, BancoDeDados bancoCredenciado = null)
        {
            try
            {
                #region Configuração

                Blocos.Arquivo.Arquivo arq;

                if (comunicador.ArquivoInterno == null)
                {
                    comunicador.ArquivoInterno = new Blocos.Arquivo.Arquivo();
                }

                comunicador.liberadoCredenciado = true;
                arq = comunicador.ArquivoInterno;

                PTVConversa conversa;
                conversa = comunicador.Conversas[0];

                conversa.DataConversa.Data = DateTime.Now;
                conversa.FuncionarioId     = Executor.Current.Id;
                conversa.NomeComunicador   = Executor.Current.Nome;
                conversa.TipoComunicador   = (int)eExecutorTipo.Interno;

                #endregion Configuração

                if (_validar.ValidarConversa(comunicador))
                {
                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                    {
                        if (arq.Id == 0)
                        {
                            arq = _busArquivo.Copiar(arq);
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(bancoCredenciado, SchemaUsuarioCredenciado))
                    {
                        bancoDeDadosCredenciado.IniciarTransacao();

                        using (BancoDeDados bancoDeDadosInterno = BancoDeDados.ObterInstancia(bancoInterno))
                        {
                            bancoDeDadosInterno.IniciarTransacao();

                            try
                            {
                                #region Arquivo

                                if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                                {
                                    ArquivoDa arquivoDa = new ArquivoDa();
                                    if (arq.Id == 0)
                                    {
                                        arquivoDa.Salvar(arq, Executor.Current.Id, Executor.Current.Nome, Executor.Current.Login, (int)eExecutorTipo.Interno, Executor.Current.Tid, bancoDeDadosInterno);
                                        conversa.ArquivoId           = arq.Id.GetValueOrDefault();
                                        conversa.ArquivoNome         = arq.Nome;
                                        comunicador.ArquivoInternoId = arq.Id.GetValueOrDefault();
                                    }
                                }

                                #endregion

                                if (comunicador.Id <= 0)
                                {
                                    _da.CriarComunicador(comunicador, bancoDeDadosCredenciado);
                                }
                                else
                                {
                                    _da.EnviarConversa(comunicador, bancoDeDadosCredenciado);
                                }

                                bancoDeDadosCredenciado.Commit();
                                bancoDeDadosInterno.Commit();
                                EnviarEmailConversa(comunicador, bancoDeDadosCredenciado);
                            }
                            catch
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDadosInterno.Rollback();
                                throw;
                            }

                            Validacao.Add(Mensagem.PTV.SalvarConversa);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }