public BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoId, int projetoDigitalId = 0, bool simplificado = false, BancoDeDados banco = null)
        {
            BarragemDispensaLicenca barragem = null;

            try
            {
                List <Caracterizacao> caracterizacoesAssociadas = _busCaracterizacao.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId).Where(x => x.Tipo == eCaracterizacao.BarragemDispensaLicenca).ToList();

                if (caracterizacoesAssociadas != null && caracterizacoesAssociadas.Count > 0)
                {
                    barragem = ObterHistorico(caracterizacoesAssociadas.FirstOrDefault().Id, caracterizacoesAssociadas.FirstOrDefault().Tid);
                }
                else
                {
                    barragem = _da.ObterPorEmpreendimento(empreendimentoId, simplificado: simplificado);

                    if (barragem.Autorizacao.Id > 0)
                    {
                        barragem.Autorizacao = _busArquivo.Obter(barragem.Autorizacao.Id.GetValueOrDefault());
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(barragem);
        }
Пример #2
0
        public Arquivo ObterAgrotoxicoArquivo(int id)
        {
            Arquivo retorno;

            try
            {
                ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                if (_busArquivo.Existe(id))
                {
                    retorno = _busArquivo.Obter(id);
                    return(retorno);
                }
                else
                {
                    Validacao.Add(Mensagem.Padrao.NaoEncontrouRegistros);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
Пример #3
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);
        }
Пример #4
0
        private void Enviar(Email email)
        {
            if (email.Anexos != null && email.Anexos.Count > 0)
            {
                ArquivoBus arquivoBus = new ArquivoBus(eExecutorTipo.Interno);

                for (int i = 0; i < email.Anexos.Count; i++)
                {
                    if (email.Anexos[i].Id.GetValueOrDefault() <= 0)
                    {
                        continue;
                    }
                    email.Anexos[i] = arquivoBus.Obter(email.Anexos[i].Id.GetValueOrDefault());
                }
            }

            if (_config.Porta == 465)
            {
                //COM
                EnviarCDO(email);
            }
            else
            {
                EnviarDotNet(email);
            }

            email.Situacao = 2;
            _da.AlterarSituacao(email.Id, email.Situacao);
        }
Пример #5
0
        public ActionResult GerarPdfPecaTecnica(int id, int empreendimentoId)
        {
            try
            {
                Arquivo               arquivo    = null;
                ArquivoBus            arquivoBus = new ArquivoBus(eExecutorTipo.Interno);
                PdfPecaTecnica        analisePdf = new PdfPecaTecnica();
                List <ArquivoProjeto> arquivos   = new List <ArquivoProjeto>();
                ProjetoGeograficoBus  projetoBus = new ProjetoGeograficoBus();

                arquivos = projetoBus.ObterArquivos(empreendimentoId, eCaracterizacao.Dominialidade, true);

                ArquivoProjeto ArquivoAux = arquivos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.CroquiFinal);
                int            idArquivo  = (ArquivoAux != null) ? ArquivoAux.Id.GetValueOrDefault() : 0;

                arquivo = arquivoBus.Obter(idArquivo);
                MemoryStream resultado = analisePdf.GerarPdf(arquivo, id);

                return(ViewModelHelper.GerarArquivo("Pdf Peca Tecnica.pdf", resultado, "application/pdf", dataHoraControleAcesso: true));
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
                return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
            }
        }
Пример #6
0
        public MemoryStream GerarPdf(Titulo titulo, BancoDeDados banco = null)
        {
            if ((titulo.Modelo.Arquivo.Id ?? 0) <= 0)
            {
                return(null);
            }

            ArquivoBus busArquivo  = new ArquivoBus(eExecutorTipo.Interno);
            Arquivo    templatePdf = busArquivo.Obter(titulo.Modelo.Arquivo.Id.Value);

            //Carrega as atividades para o ObterDadosPdf;
            if (titulo.Atividades == null || titulo.Atividades.Count == 0)
            {
                titulo.Atividades = _da.ObterAtividades(titulo.Id);
            }

            IEspecificidadeBus busEspecificiade = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value);

            titulo.Especificidade = busEspecificiade.Obter(titulo.Id) as Especificidade;
            titulo.ToEspecificidade();
            IConfiguradorPdf configurador = busEspecificiade.ObterConfiguradorPdf(titulo.Especificidade) ?? new ConfiguracaoDefault();

            configurador.ExibirSimplesConferencia = (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) || (titulo.Situacao.Id == (int)eTituloSituacao.EmCadastro);

            Object dataSource = busEspecificiade.ObterDadosPdf(titulo.Especificidade, banco);

            GeradorAspose gerador = new GeradorAspose(configurador);

            #region Assinantes

            List <TituloAssinante> assinantes = _da.ObterAssinantes(titulo.Id);

            if (busEspecificiade.CargosOrdenar != null && busEspecificiade.CargosOrdenar.Count > 0)
            {
                assinantes = assinantes.OrderByDescending(assinante => busEspecificiade.CargosOrdenar.IndexOf((eCargo)assinante.FuncionarioCargoCodigo)).ToList();
            }

            configurador.Assinantes = assinantes.Select(x =>
                                                        (IAssinante) new AssinanteDefault()
            {
                Nome = x.FuncionarioNome, Cargo = x.FuncionarioCargoNome
            }
                                                        ).ToList();

            //Adiciona os assinantes da Especificidade
            configurador.Assinantes.AddRange((((dynamic)dataSource).Titulo as IAssinanteDataSource).AssinanteSource);

            #endregion

            MemoryStream msPdf = gerador.Pdf(templatePdf, dataSource);

            if (dataSource is Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf)
            {
                Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf dataAnexos = dataSource as Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf;
                msPdf = GeradorAspose.AnexarPdf(msPdf, dataAnexos.AnexosPdfs);
            }

            return(msPdf);
        }
Пример #7
0
        public Arquivo GerarPdf(int id)
        {
            Titulo titulo = _da.ObterSimplificado(id);

            titulo.Modelo = ObterModelo(titulo.Modelo.Id);
            titulo.Anexos = _da.ObterAnexos(id);

            if (titulo.Modelo.Regra(eRegra.PdfGeradoSistema) && (titulo.Modelo.Arquivo.Id ?? 0) <= 0)
            {
                Validacao.Add(Mensagem.Titulo.ModeloNaoPossuiPdf);
                return(null);
            }

            if (titulo.ArquivoPdf.Id > 0)
            {
                ArquivoBus busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                titulo.ArquivoPdf = busArquivo.Obter(titulo.ArquivoPdf.Id.Value);
                string auxiliar = string.Empty;

                switch (titulo.Situacao.Id)
                {
                case (int)eTituloSituacao.Encerrado:
                    auxiliar = ListaCredenciadoBus.MotivosEncerramento.Single(x => x.Id == titulo.MotivoEncerramentoId).Texto;
                    titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaVermelha(titulo.ArquivoPdf.Buffer, auxiliar);
                    break;

                case (int)eTituloSituacao.Prorrogado:
                    auxiliar = String.Format("{0} até {1}", titulo.Situacao.Nome, titulo.DataVencimento.DataTexto);
                    titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaVerde(titulo.ArquivoPdf.Buffer, auxiliar);
                    break;

                case (int)eTituloSituacao.Suspenso:
                    titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaLaranjaEscuro(titulo.ArquivoPdf.Buffer, "Consultado em " + DateTime.Now.ToShortDateString() + " às " + DateTime.Now.ToString(@"HH\hmm\min"), "Suspenso");
                    break;

                case (int)eTituloSituacao.SuspensoDeclaratorio:
                    titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaLaranjaEscuro(titulo.ArquivoPdf.Buffer, "Consultado em " + DateTime.Now.ToShortDateString() + " às " + DateTime.Now.ToString(@"HH\hmm\min"), "Suspenso");
                    break;

                case (int)eTituloSituacao.EncerradoDeclaratorio:
                    titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaVermelha(titulo.ArquivoPdf.Buffer, "Consultado em " + DateTime.Now.ToShortDateString() + " às " + DateTime.Now.ToString(@"HH\hmm\min"), "Encerrado");
                    break;

                default:
                    break;
                }

                titulo.ArquivoPdf.Nome = titulo.Modelo.Nome.RemoverAcentos();
                return(titulo.ArquivoPdf);
            }

            titulo.ArquivoPdf.Nome        = titulo.Modelo.Nome.RemoverAcentos();
            titulo.ArquivoPdf.Extensao    = ".pdf";
            titulo.ArquivoPdf.ContentType = "application/pdf";
            titulo.ArquivoPdf.Buffer      = GerarPdf(titulo);

            return(titulo.ArquivoPdf);
        }
Пример #8
0
        public static FileResult BaixarArquivo(int id)
        {
            try
            {
                ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Publico);

                return(GerarArquivo(_busArquivo.Obter(id)));
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(null);
        }
Пример #9
0
        public static nameFile.FileResult BaixarArquivo(int id, eExecutorTipo tipoExecutor = eExecutorTipo.Interno, bool dataHoraControleAcesso = false)
        {
            try
            {
                ArquivoBus _busArquivo = new ArquivoBus(tipoExecutor);

                Arquivo arquivo = _busArquivo.Obter(id);

                return(GerarArquivo(arquivo, dataHoraControleAcesso));
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(null);
        }
        public BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            BarragemDispensaLicenca barragem = null;

            try
            {
                barragem = _da.ObterPorEmpreendimento(empreendimentoId, simplificado: simplificado);

                if (barragem.Autorizacao.Id > 0)
                {
                    barragem.Autorizacao = _busArquivo.Obter(barragem.Autorizacao.Id.GetValueOrDefault());
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(barragem);
        }
        public BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoInternoId, bool simplificado = false)
        {
            BarragemDispensaLicenca caracterizacao = null;

            try
            {
                caracterizacao = _da.ObterPorEmpreendimento(empreendimentoInternoId, simplificado: simplificado);

                if (caracterizacao.Autorizacao.Id > 0)
                {
                    caracterizacao.Autorizacao = _busArquivo.Obter(caracterizacao.Autorizacao.Id.GetValueOrDefault());
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
Пример #12
0
        public Stream LaudoFiscalizacaoPdf(int id, int arquivo = 0, int historico = 0, BancoDeDados banco = null)
        {
            try
            {
                PdfFiscalizacao _pdf         = new PdfFiscalizacao();
                Fiscalizacao    fiscalizacao = Obter(id, true);

                if (historico == 0 && fiscalizacao.SituacaoId == (int)eFiscalizacaoSituacao.EmAndamento)
                {
                    return(_pdf.GerarLaudoFiscalizacao(id, banco: banco));
                }

                if (historico > 0)
                {
                    fiscalizacao = ObterHistorico(historico);
                }

                if (fiscalizacao.PdfLaudo.Id.GetValueOrDefault() == 0 || (historico > 0 && fiscalizacao.PdfLaudo.Id != arquivo))
                {
                    Validacao.Add(Mensagem.Fiscalizacao.ArquivoNaoEncontrado);
                    return(null);
                }

                ArquivoBus arquivoBus = new ArquivoBus(eExecutorTipo.Interno);
                Arquivo    pdf        = arquivoBus.Obter(fiscalizacao.PdfLaudo.Id.GetValueOrDefault());

                if (historico > 0)
                {
                    pdf.Buffer = PdfMetodosAuxiliares.TarjaVermelha(pdf.Buffer, "CANCELADO " + fiscalizacao.SituacaoAtualData.DataTexto);
                }

                return(pdf.Buffer);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
Пример #13
0
        public Arquivo BaixarArquivo(int id, int historico = 0)
        {
            try
            {
                ArquivoBus arquivoBus = new ArquivoBus(eExecutorTipo.Interno);
                Arquivo    pdf        = arquivoBus.Obter(id);

                if (historico > 0)
                {
                    Fiscalizacao fiscalizacao = ObterHistorico(historico);
                    pdf.Buffer = PdfMetodosAuxiliares.TarjaVermelha(pdf.Buffer, "CANCELADO " + fiscalizacao.SituacaoAtualData.DataTexto);
                }

                return(pdf);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
Пример #14
0
        public Stream LaudoAcompanhamentoFiscalizacaoPdf(int id, BancoDeDados banco = null)
        {
            try
            {
                PdfFiscalizacao _pdf           = new PdfFiscalizacao();
                Acompanhamento  acompanhamento = Obter(id, simplificado: true);

                if (acompanhamento.SituacaoId == (int)eAcompanhamentoSituacao.EmCadastro)
                {
                    return(_pdf.GerarLaudoAcompanhamentoFiscalizacao(id, banco: banco));
                }


                if (acompanhamento.SituacaoId > (int)eAcompanhamentoSituacao.EmCadastro)
                {
                    if (acompanhamento.PdfLaudo.Id.GetValueOrDefault() == 0)
                    {
                        Validacao.Add(Mensagem.Acompanhamento.ArquivoNaoEncontrado);
                        return(null);
                    }

                    ArquivoBus arquivoBus = new ArquivoBus(eExecutorTipo.Interno);
                    Arquivo    pdf        = arquivoBus.Obter(acompanhamento.PdfLaudo.Id.GetValueOrDefault());

                    if (acompanhamento.SituacaoId == (int)eAcompanhamentoSituacao.Cancelado)
                    {
                        pdf.Buffer = PdfMetodosAuxiliares.TarjaVermelha(pdf.Buffer, "CANCELADO " + acompanhamento.DataSituacao.DataTexto);
                    }

                    return(pdf.Buffer);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        public HabilitacaoEmissaoPTV Obter(int id)
        {
            HabilitacaoEmissaoPTV habilitacao = null;

            try
            {
                habilitacao = _da.Obter(id);

                habilitacao.Funcionario.Setores = _busFuncionario.ObterSetoresFuncionario(habilitacao.Funcionario.Id);

                if (habilitacao.Arquivo.Id > 0)
                {
                    habilitacao.Arquivo = _busArquivo.Obter(habilitacao.Arquivo.Id.GetValueOrDefault());
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(habilitacao);
        }
Пример #16
0
        internal EmissaoPTVRelatorio Obter(int id, bool simplificado = false)
        {
            EmissaoPTVRelatorio emissaoPTV = new EmissaoPTVRelatorio();
            List <String>       listDeclaracoesAdicionais = new List <String>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = null;

                #region SQL PTV

                comando = bancoDeDados.CriarComando(@"
				select distinct t.id,
					t.tid,
					t.numero,
					t.situacao,
					e.denominador,
					e.cnpj,
					le.sigla as uf,
					lm.texto as municipio,
					ee.logradouro,
					ee.bairro,
					ee.distrito,
					nvl(pr.nome, pr.razao_social) as resp_razao_social,
					pr.cpf as empreend_resp_cpf,
					t.partida_lacrada_origem,
					t.numero_lacre,
					t.numero_porao,
					t.numero_container,
					t.apresentacao_nota_fiscal,
					t.numero_nota_fiscal,
					t.tipo_transporte,
					t.rota_transito_definida,
					t.veiculo_identificacao_numero,
					t.itinerario,
					t.data_ativacao,
					t.valido_ate,
					t.responsavel_tecnico,
					d.nome as destinatario_nome,
					d.endereco as destinatario_endereco,
					led.sigla destinatario_uf,
					lmd.texto destinatario_mun,
					lme.texto as municipio_emissao,
					d.cpf_cnpj destinatario_cpfcnpj
				from tab_ptv                     t,
					tab_empreendimento           e,
					tab_empreendimento_endereco  ee,
					lov_estado                   le,
					lov_municipio                lm,
					lov_municipio                lme,
					tab_pessoa                   pr,
					tab_destinatario_ptv         d,
					lov_estado                   led,
					lov_municipio                lmd
				where e.id = t.empreendimento
				and (ee.empreendimento = e.id and ee.correspondencia = 0)
				and le.id = ee.estado
				and lm.id = ee.municipio
				and lme.id(+) = t.municipio_emissao
				and pr.id(+) = t.responsavel_emp
				and d.id = t.destinatario
				and led.id = d.uf
				and lmd.id = d.municipio
				and t.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        emissaoPTV.Id                     = id;
                        emissaoPTV.Tid                    = reader.GetValue <string>("tid");
                        emissaoPTV.Situacao               = reader.GetValue <int>("situacao");
                        emissaoPTV.FuncId                 = reader.GetValue <int>("responsavel_tecnico");
                        emissaoPTV.NumeroPTV              = reader.GetValue <string>("numero");
                        emissaoPTV.PartidaLacrada         = reader.GetValue <int>("partida_lacrada_origem");
                        emissaoPTV.NumeroLacre            = reader.GetValue <string>("numero_lacre");
                        emissaoPTV.NumeroPorao            = reader.GetValue <string>("numero_porao");
                        emissaoPTV.NumeroConteiner        = reader.GetValue <string>("numero_container");
                        emissaoPTV.TipoTransporte         = reader.GetValue <int>("tipo_transporte");
                        emissaoPTV.Rota_transito_definida = reader.GetValue <int>("rota_transito_definida");
                        emissaoPTV.ApresentacaoNotaFiscal = reader.GetValue <int>("apresentacao_nota_fiscal");
                        emissaoPTV.NumeroNotaFiscal       = reader.GetValue <string>("numero_nota_fiscal");
                        emissaoPTV.VeiculoNumero          = reader.GetValue <string>("veiculo_identificacao_numero");
                        emissaoPTV.Itinerario             = reader.GetValue <string>("itinerario");
                        emissaoPTV.DataAtivacao           = reader.GetValue <DateTime>("data_ativacao").ToString("dd/MM/yyyy");
                        emissaoPTV.DataValidade           = reader.GetValue <DateTime>("valido_ate").ToShortDateString();

                        emissaoPTV.Destinatario.Nome      = reader.GetValue <string>("destinatario_nome");
                        emissaoPTV.Destinatario.Endereco  = reader.GetValue <string>("destinatario_endereco");
                        emissaoPTV.Destinatario.UF        = reader.GetValue <string>("destinatario_uf");
                        emissaoPTV.Destinatario.Municipio = reader.GetValue <string>("destinatario_mun");
                        emissaoPTV.Destinatario.CPFCNPJ   = reader.GetValue <string>("destinatario_cpfcnpj");
                        emissaoPTV.MunicipioEmissao       = reader.GetValue <string>("municipio_emissao");
                        emissaoPTV.Empreendimento.ResponsavelRazaoSocial = reader.GetValue <string>("resp_razao_social");
                        emissaoPTV.Empreendimento.NomeRazao      = reader.GetValue <string>("denominador");
                        emissaoPTV.Empreendimento.EndLogradouro  = reader.GetValue <string>("logradouro");
                        emissaoPTV.Empreendimento.EndBairro      = reader.GetValue <string>("bairro");
                        emissaoPTV.Empreendimento.EndDistrito    = reader.GetValue <string>("distrito");
                        emissaoPTV.Empreendimento.EndMunicipio   = reader.GetValue <string>("municipio");
                        emissaoPTV.Empreendimento.EndUF          = reader.GetValue <string>("uf");
                        emissaoPTV.Empreendimento.CNPJ           = reader.GetValue <string>("cnpj");
                        emissaoPTV.Empreendimento.ResponsavelCPF = reader.GetValue <string>("empreend_resp_cpf");
                    }

                    reader.Close();
                }

                #endregion

                if (simplificado)
                {
                    return(emissaoPTV);
                }

                #region SQL Funcionário
                comando = bancoDeDados.CriarComando(@"
			    select f.nome, h.numero_habilitacao, h.numero_crea, f.arquivo arquivo_id from {0}tab_hab_emi_ptv h, {0}tab_funcionario f
			    where f.id = h.funcionario and f.id = :idfun"            , EsquemaBanco);

                comando.AdicionarParametroEntrada("idfun", emissaoPTV.FuncId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        emissaoPTV.FuncionarioHabilitado.Nome      = reader.GetValue <string>("nome");
                        emissaoPTV.FuncionarioHabilitado.Numero    = reader.GetValue <string>("numero_habilitacao");
                        emissaoPTV.FuncionarioHabilitado.Registro  = reader.GetValue <string>("numero_crea");
                        emissaoPTV.FuncionarioHabilitado.ArquivoId = reader.GetValue <int>("arquivo_id");
                    }
                    reader.Close();
                }

                #endregion

                #region SQL PTVProduto

                comando = bancoDeDados.CriarComando(@"select c.texto cultura,
															cc.cultivar,
															t.quantidade,
															decode(t.origem_tipo, 1, (select cfo.numero from cre_cfo cfo where cfo.id = t.origem), '') as numero_cfo,
															decode(t.origem_tipo, 2, (select cfoc.numero from cre_cfoc cfoc where cfoc.id = t.origem), '') as numero_cfoc,
															decode(t.origem_tipo, 3, (select ptv.numero from tab_ptv ptv where ptv.id = t.origem), 4, (select ptv.numero from tab_ptv_outrouf ptv where ptv.id = t.origem), '') as numero_ptv,
															decode(t.origem_tipo, 5, t.numero_origem, '') as numero_cf_cfr,
															decode(t.origem_tipo, 6, t.numero_origem, '') as numero_tf,
															u.texto as unidade_medida,
                                                            nvl(t.origem, 0) origem,
                                                            t.origem_tipo, 
                                                            t.cultura cultura_id,
                                                            t.cultivar cultivar_id
														from {0}tab_ptv_produto             t,
															 {0}tab_ptv                     p,
															 {0}tab_cultura                 c,
															 {0}tab_cultura_cultivar        cc,
															 lov_crt_uni_prod_uni_medida u
														where c.id = t.cultura
														and cc.id = t.cultivar
														and p.id = t.ptv
														and u.id = t.unidade_medida
														and t.ptv = :ptv"                                                        , EsquemaBanco);
                comando.AdicionarParametroEntrada("ptv", emissaoPTV.Id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        emissaoPTV.Produtos.Add(new PTVProdutoRelatorio()
                        {
                            CulturaTexto  = reader.GetValue <string>("cultura"),
                            CulturaId     = reader.GetValue <int>("cultura_id"),
                            CultivarTexto = reader.GetValue <string>("cultivar"),
                            CultivarId    = reader.GetValue <int>("cultivar_id"),
                            Quantidade    = reader.GetValue <decimal>("quantidade"),
                            NumeroCFO     = reader.GetValue <string>("numero_cfo"),
                            NumeroCFOC    = reader.GetValue <string>("numero_cfoc"),
                            NumeroPTV     = reader.GetValue <string>("numero_ptv"),
                            NumeroCFCFR   = reader.GetValue <string>("numero_cf_cfr"),
                            NumeroTF      = reader.GetValue <string>("numero_tf"),
                            UnidadeMedida = reader.GetValue <string>("unidade_medida"),
                            Origem        = reader.GetValue <int>("origem"),
                            OrigemTipo    = reader.GetValue <int>("origem_tipo")
                        });
                    }
                    reader.Close();
                }

                List <LaudoLaboratorial> laudoLaboratoriais = ObterLaudoLaboratorial(emissaoPTV.Produtos);
                emissaoPTV.LaboratorioNome      = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.Nome).ToList());
                emissaoPTV.NumeroLaudo          = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.LaudoResultadoAnalise).ToList());
                emissaoPTV.LaboratorioMunicipio = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.MunicipioTexto).ToList());
                emissaoPTV.LaboratorioUF        = Mensagem.Concatenar(laudoLaboratoriais.Select(x => x.EstadoTexto).ToList());

                foreach (var item in emissaoPTV.Produtos.Where(xx => (xx.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFO || xx.OrigemTipo == (int)eDocumentoFitossanitarioTipo.CFOC || xx.OrigemTipo == (int)eDocumentoFitossanitarioTipo.PTV)).ToList())
                {
                    List <String> listDeclaracoesAdicionaisAux = ObterDeclaracaoAdicional(item.Origem, item.OrigemTipo, (int)ValidacoesGenericasBus.ObterTipoProducao(item.UnidadeMedida), item.CultivarId);
                    item.DeclaracaoAdicional = String.Join(" ", listDeclaracoesAdicionaisAux.Distinct().ToList());
                    listDeclaracoesAdicionais.AddRange(listDeclaracoesAdicionaisAux);
                }

                emissaoPTV.DeclaracaoAdicionalHtml = String.Join(" ", listDeclaracoesAdicionais.Distinct().ToList());

                #endregion

                #region Tratamento Fitossanitário

                emissaoPTV.Tratamentos = TratamentoFitossanitario(emissaoPTV.Produtos);

                if (emissaoPTV.Tratamentos == null || emissaoPTV.Tratamentos.Count <= 0)
                {
                    emissaoPTV.Tratamentos = new List <TratamentosRelatorio>()
                    {
                        new TratamentosRelatorio()
                        {
                        }
                    };
                }
                #endregion

                #region Arquivo

                if (emissaoPTV.FuncionarioHabilitado.ArquivoId.HasValue && emissaoPTV.FuncionarioHabilitado.ArquivoId > 0)
                {
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    emissaoPTV.AssinaturaDigital = _busArquivo.Obter(emissaoPTV.FuncionarioHabilitado.ArquivoId.Value);
                }

                #endregion
            }

            return(emissaoPTV);
        }
        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);
        }
Пример #18
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);
        }
Пример #19
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();
                }
            }
        }
        internal HabilitacaoEmissaoPTVRelatorio Obter(int id)
        {
            HabilitacaoEmissaoPTVRelatorio habilitacao = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                #region SQL
                Comando comando = bancoDeDados.CriarComando(@"select 
																t.arquivo, 
																t.id, 
																t.numero_habilitacao, 
																t.numero_matricula, 
																f.nome, 
																p.texto profissao, 
																o.orgao_sigla orgao_classe, 
																f.cpf, 
																t.rg, 
																t.registro_orgao_classe, 
																m.texto municipio, 
																e.sigla estado, 
																t.cep, 
																t.telefone_residencial, 
																t.telefone_celular, 
																t.telefone_comercial, 
																(t.logradouro || ' ' || t.numero || ' ' || t.bairro_gleba || ' ' || t.distrito_localidade) endereco, 
																f.email, 
																t.numero_visto_crea 
															from tab_hab_emi_ptv t, tab_funcionario f, tab_profissao p, tab_orgao_classe o, lov_municipio m, lov_estado e 
															where f.id(+) = t.funcionario 
															  and p.id(+) = t.profissao 
															  and o.id(+) = t.orgao_classe 
															  and m.id(+) = t.municipio 
															  and e.id(+) = t.estado 
															  and t.id    =:id"                                                            );
                #endregion

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        habilitacao                   = new HabilitacaoEmissaoPTVRelatorio();
                        habilitacao.CEP               = reader.GetValue <string>("cep");
                        habilitacao.CPF               = reader.GetValue <string>("cpf");
                        habilitacao.CreaNumero        = reader.GetValue <string>("numero_visto_crea");
                        habilitacao.CreaRegistro      = reader.GetValue <string>("registro_orgao_classe");
                        habilitacao.Email             = reader.GetValue <string>("email");
                        habilitacao.Endereco          = reader.GetValue <string>("endereco");
                        habilitacao.HabilitacaoNumero = reader.GetValue <string>("numero_habilitacao");
                        habilitacao.Id                = reader.GetValue <int>("id");
                        habilitacao.MatriculaNumero   = reader.GetValue <string>("numero_matricula");
                        habilitacao.Municipio         = reader.GetValue <string>("municipio");
                        habilitacao.Nome              = reader.GetValue <string>("nome");
                        habilitacao.Profissao         = reader.GetValue <string>("profissao");
                        habilitacao.RG                = reader.GetValue <string>("rg");
                        habilitacao.OrgaoClasse       = reader.GetValue <string>("orgao_classe");
                        habilitacao.TelCelular        = reader.GetValue <string>("telefone_celular");
                        habilitacao.TelComercial      = reader.GetValue <string>("telefone_comercial");
                        habilitacao.TelResidencial    = reader.GetValue <string>("telefone_residencial");
                        habilitacao.UF                = reader.GetValue <string>("estado");
                        habilitacao.Foto.Id           = reader.GetValue <int>("arquivo");

                        habilitacao.TermoNumero = habilitacao.HabilitacaoNumero.Substring(habilitacao.HabilitacaoNumero.Length - 4) + "/" + habilitacao.HabilitacaoNumero.Substring(habilitacao.HabilitacaoNumero.Length - 6, 2);
                    }
                    reader.Close();
                }

                #region Arquivo

                if (habilitacao.Foto.Id.HasValue && habilitacao.Foto.Id > 0)
                {
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    habilitacao.Foto = _busArquivo.Obter(habilitacao.Foto.Id.Value);
                }

                #endregion
            }

            return(habilitacao);
        }
Пример #21
0
        public void ConcluirCadastro(int fiscalizacaoId)
        {
            Fiscalizacao fiscalizacao    = new Fiscalizacao();
            bool         gerarAutosTermo = false;
            bool         gerouVencimento = false;

            try
            {
                if (_validar.Finalizar(fiscalizacaoId))
                {
                    GerenciadorTransacao.ObterIDAtual();

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

                        fiscalizacao = Obter(fiscalizacaoId, banco: bancoDeDados);

                        //Fiscalizacao
                        gerarAutosTermo = fiscalizacao.Infracao.IsGeradaSistema.GetValueOrDefault() ||
                                          fiscalizacao.ObjetoInfracao.TeiGeradoPeloSistema.GetValueOrDefault() > 0 ||
                                          fiscalizacao.MaterialApreendido.IsTadGeradoSistema.GetValueOrDefault();

                        #region AI

                        if (fiscalizacao.Infracao.IsGeradaSistema.HasValue)
                        {
                            if (!fiscalizacao.Infracao.IsGeradaSistema.GetValueOrDefault() && !gerarAutosTermo)
                            {
                                fiscalizacao.Vencimento.Data = fiscalizacao.Infracao.DataLavraturaAuto.Data.Value.AddDays(_prazoVencimentoDias);
                                gerouVencimento = true;
                            }
                        }

                        #endregion

                        #region TEI

                        if (fiscalizacao.ObjetoInfracao.TeiGeradoPeloSistema.HasValue)
                        {
                            if (!gerouVencimento && fiscalizacao.ObjetoInfracao.TeiGeradoPeloSistema.GetValueOrDefault() == 0 && !gerarAutosTermo)
                            {
                                fiscalizacao.Vencimento.Data = fiscalizacao.ObjetoInfracao.DataLavraturaTermo.Data.Value.AddDays(_prazoVencimentoDias);
                                gerouVencimento = true;
                            }
                        }

                        #endregion

                        #region TAD

                        if (fiscalizacao.MaterialApreendido.IsTadGeradoSistema.HasValue)
                        {
                            if (!gerouVencimento && !fiscalizacao.MaterialApreendido.IsTadGeradoSistema.GetValueOrDefault() && !gerarAutosTermo)
                            {
                                fiscalizacao.Vencimento.Data = fiscalizacao.MaterialApreendido.DataLavratura.Data.Value.AddDays(_prazoVencimentoDias);
                                gerouVencimento = true;
                            }
                        }

                        #endregion

                        if (!gerouVencimento)
                        {
                            fiscalizacao.Vencimento.Data = DateTime.Now.AddDays(_prazoVencimentoDias);
                        }

                        _da.ConcluirCadastro(fiscalizacao, gerarAutosTermo, bancoDeDados);

                        _daPrjGeo.ConcluirCadastro(fiscalizacao.Id, bancoDeDados);

                        ArquivoDa       arquivoDa  = new ArquivoDa();
                        ArquivoBus      arquivoBus = new ArquivoBus(eExecutorTipo.Interno);
                        PdfFiscalizacao pdf        = new PdfFiscalizacao();

                        if (gerarAutosTermo)
                        {
                            //AutoTermo
                            fiscalizacao.PdfAutoTermo             = new Arquivo();
                            fiscalizacao.PdfAutoTermo.Nome        = "AutoTermoFiscalizacao";
                            fiscalizacao.PdfAutoTermo.Extensao    = ".pdf";
                            fiscalizacao.PdfAutoTermo.ContentType = "application/pdf";
                            fiscalizacao.PdfAutoTermo.Buffer      = pdf.GerarAutoTermoFiscalizacao(fiscalizacao.Id, false, bancoDeDados);
                            arquivoBus.Salvar(fiscalizacao.PdfAutoTermo);

                            arquivoDa.Salvar(fiscalizacao.PdfAutoTermo, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name,
                                             User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados);
                        }
                        else
                        {
                            fiscalizacao.PdfAutoTermo.Id = null;
                        }

                        //Laudo
                        fiscalizacao.PdfLaudo             = new Arquivo();
                        fiscalizacao.PdfLaudo.Nome        = "LaudoFiscalizacao";
                        fiscalizacao.PdfLaudo.Extensao    = ".pdf";
                        fiscalizacao.PdfLaudo.ContentType = "application/pdf";
                        fiscalizacao.PdfLaudo.Buffer      = pdf.GerarLaudoFiscalizacao(fiscalizacao.Id, false, bancoDeDados);
                        arquivoBus.Salvar(fiscalizacao.PdfLaudo);

                        arquivoDa.Salvar(fiscalizacao.PdfLaudo, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name,
                                         User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados);

                        Arquivo arqCroqui = fiscalizacao.ProjetoGeo.Arquivos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.Croqui);

                        if (arqCroqui != null && arqCroqui.Id > 0)
                        {
                            arqCroqui = arquivoBus.Obter(arqCroqui.Id.GetValueOrDefault());

                            try
                            {
                                //Croqui
                                fiscalizacao.PdfCroqui             = new Arquivo();
                                fiscalizacao.PdfCroqui.Nome        = "CroquiFiscalizacao";
                                fiscalizacao.PdfCroqui.Extensao    = ".pdf";
                                fiscalizacao.PdfCroqui.ContentType = "application/pdf";
                                fiscalizacao.PdfCroqui.Buffer      = arqCroqui.Buffer;
                                arquivoBus.Salvar(fiscalizacao.PdfCroqui);

                                arquivoDa.Salvar(fiscalizacao.PdfCroqui, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name,
                                                 User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados);
                            }
                            finally
                            {
                                if (arqCroqui != null && arqCroqui.Buffer != null)
                                {
                                    arqCroqui.Buffer.Close();
                                }
                            }
                        }


                        _da.SalvarDocumentosGerados(fiscalizacao, bancoDeDados);

                        _da.GerarHistorico(fiscalizacao.Id, eHistoricoAcao.finalizar, bancoDeDados);

                        _da.GerarConsulta(fiscalizacao.Id, bancoDeDados);

                        Validacao.Add(Mensagem.Fiscalizacao.Concluir);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }
        }
        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();
                }
            }
        }
Пример #23
0
        public MemoryStream GerarPdf(Titulo titulo, BancoDeDados banco = null)
        {
            if ((titulo.Modelo.Arquivo.Id ?? 0) <= 0)
            {
                return(null);
            }

            ArquivoBus busArquivo  = new ArquivoBus(eExecutorTipo.Interno);
            Arquivo    templatePdf = busArquivo.Obter(titulo.Modelo.Arquivo.Id.Value);

            //Carrega as atividades para o ObterDadosPdf;
            if (titulo.Atividades == null || titulo.Atividades.Count == 0)
            {
                titulo.Atividades = _da.ObterAtividades(titulo.Id);
            }

            IEspecificidadeBus busEspecificiade = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value);

            titulo.Especificidade = busEspecificiade.Obter(titulo.Id) as Especificidade;
            titulo.ToEspecificidade();
            IConfiguradorPdf configurador = busEspecificiade.ObterConfiguradorPdf(titulo.Especificidade) ?? new ConfiguracaoDefault();

            configurador.ExibirSimplesConferencia = (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) || (titulo.Situacao.Id == (int)eTituloSituacao.EmCadastro) || (titulo.Situacao.Id == (int)eTituloSituacao.AguardandoPagamento);

            Object dataSource = busEspecificiade.ObterDadosPdf(titulo.Especificidade, banco);

            #region Condicionantes

            var dataSourceTitulo = (((dynamic)dataSource).Titulo as DataSourceBase);

            if (titulo.Modelo.Regra(eRegra.Condicionantes))
            {
                if (dataSourceTitulo.Condicionantes == null || dataSourceTitulo.Condicionantes.Count == 0)
                {
                    EspecificidadeDa daEsp = new EspecificidadeDa();
                    dataSourceTitulo.Condicionantes = daEsp.ObterCondicionantes(titulo.Id);
                }
            }

            IConfiguracaoEvent cnfEvent = configurador as IConfiguracaoEvent;

            if (cnfEvent != null)
            {
                if (!titulo.Modelo.Regra(eRegra.Condicionantes) || dataSourceTitulo.Condicionantes == null || dataSourceTitulo.Condicionantes.Count == 0)
                {
                    cnfEvent.AddLoadAcao((doc, dataSourceCnf) =>
                    {
                        Table tabela = doc.FindTable("«TableStart:Titulo.Condicionantes»");
                        if (tabela != null)
                        {
                            if (configurador.CondicionanteRemovePageBreakAnterior)
                            {
                                tabela.RemovePageBreakAnterior();
                            }

                            AsposeExtensoes.RemoveTables(new List <Table>()
                            {
                                tabela
                            });
                        }
                    });
                }
                else
                {
                    cnfEvent.AddExecutedAcao((doc, dataSourceCnf) =>
                    {
                        Table tabela = doc.LastTable("«remover»");

                        while (tabela != null)
                        {
                            AsposeExtensoes.RemoveTables(new List <Table> {
                                tabela
                            });
                            tabela = doc.LastTable("«remover»");
                        }
                    });
                }
            }

            #endregion

            GeradorAspose gerador = new GeradorAspose(configurador);

            #region Assinantes

            List <TituloAssinante> assinantes = _da.ObterAssinantes(titulo.Id);

            if (busEspecificiade.CargosOrdenar != null && busEspecificiade.CargosOrdenar.Count > 0)
            {
                assinantes = assinantes.OrderByDescending(assinante => busEspecificiade.CargosOrdenar.IndexOf((eCargo)assinante.FuncionarioCargoCodigo)).ToList();
            }

            configurador.Assinantes = assinantes.Select(x =>
                                                        (IAssinante) new AssinanteDefault()
            {
                Nome = x.FuncionarioNome, Cargo = x.FuncionarioCargoNome
            }
                                                        ).ToList();

            //Adiciona os assinantes da Especificidade
            configurador.Assinantes.AddRange((((dynamic)dataSource).Titulo as IAssinanteDataSource).AssinanteSource);

            #endregion

            MemoryStream msPdf = gerador.Pdf(templatePdf, dataSource);

            if (dataSource is Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf)
            {
                Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf dataAnexos = dataSource as Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf;
                msPdf = GeradorAspose.AnexarPdf(msPdf, dataAnexos.AnexosPdfs);
            }

            return(msPdf);
        }
Пример #24
0
        internal HabilitarEmissaoCFOCFOCRelatorio Obter(int id)
        {
            HabilitarEmissaoCFOCFOCRelatorio habilitar = null;
            PragaHabilitarEmissaoRelatorio   praga     = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                #region Habilitar Emissão

                Comando comando = bancoDeDados.CriarComando(@"
				select t.id, t.tid, t.responsavel, t.responsavel_arquivo, aa.nome responsavel_arquivo_nome, p.nome responsavel_nome, p.cpf responsavel_cpf, p.rg responsavel_rg, 
				t.numero_habilitacao, trunc(t.validade_registro) validade_registro, trunc(t.situacao_data) situacao_data, t.situacao, ls.texto situacao_texto, t.motivo, 
				lm.texto motivo_texto, t.observacao, t.numero_dua, t.extensao_habilitacao, t.numero_habilitacao_ori, t.registro_crea, t.uf, t.numero_visto_crea, 
				(select h.data_execucao from hst_hab_emi_cfo_cfoc h where h.habilitar_emissao_id = t.id and h.acao_executada = 483) data_cadastro
				from tab_hab_emi_cfo_cfoc t, cre_pessoa p, tab_credenciado cc, lov_hab_emissao_cfo_situacao ls, lov_hab_emissao_cfo_motivo lm, tab_arquivo aa 
				where t.situacao = ls.id and t.motivo = lm.id(+) and t.responsavel_arquivo = aa.id(+) and t.responsavel = cc.id and cc.pessoa = p.id and t.id = :id"                , UsuarioCredenciado);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        habilitar                = new HabilitarEmissaoCFOCFOCRelatorio();
                        habilitar.Id             = reader.GetValue <Int32>("id");
                        habilitar.Tid            = reader.GetValue <String>("tid");
                        habilitar.Responsavel.Id = reader.GetValue <Int32>("responsavel");
                        habilitar.Foto.Id        = reader.GetValue <Int32>("responsavel_arquivo");
                        habilitar.Foto.Nome      = reader.GetValue <String>("responsavel_arquivo_nome");
                        habilitar.Responsavel.NomeRazaoSocial = reader.GetValue <String>("responsavel_nome");
                        habilitar.Responsavel.CPFCNPJ         = reader.GetValue <String>("responsavel_cpf");
                        habilitar.Responsavel.Fisica.RG       = reader.GetValue <String>("responsavel_rg");
                        habilitar.NumeroHabilitacao           = reader.GetValue <String>("numero_habilitacao");
                        habilitar.ValidadeRegistro            = reader.GetValue <DateTime>("validade_registro").ToShortDateString();
                        habilitar.SituacaoData            = reader.GetValue <DateTime>("situacao_data").ToShortDateString();
                        habilitar.SituacaoTexto           = reader.GetValue <String>("situacao_texto");
                        habilitar.MotivoTexto             = reader.GetValue <String>("motivo_texto");
                        habilitar.Observacao              = reader.GetValue <String>("observacao");
                        habilitar.NumeroDua               = reader.GetValue <String>("numero_dua");
                        habilitar.ExtensaoHabilitacaoBool = (reader.GetValue <Int32>("extensao_habilitacao") == 1);
                        habilitar.ExtensaoHabilitacao     = (habilitar.ExtensaoHabilitacaoBool ? "Sim" : "Não");
                        habilitar.NumeroHabilitacaoOrigem = reader.GetValue <String>("numero_habilitacao_ori");
                        habilitar.RegistroCrea            = reader.GetValue <String>("registro_crea");
                        habilitar.NumeroVistoCrea         = reader.GetValue <String>("numero_visto_crea");
                        habilitar.DataCadastro            = reader.GetValue <DateTime>("data_cadastro");
                    }

                    reader.Close();
                }

                #endregion

                #region Pragas

                comando = bancoDeDados.CriarComando(@"
				select hp.id, hp.praga, pa.nome_cientifico, pa.nome_comum, trunc(hp.data_habilitacao_inicial) data_habilitacao_inicial,
				trunc(hp.data_habilitacao_final) data_habilitacao_final, hp.tid, stragg(c.texto) cultura
				from tab_hab_emi_cfo_cfoc_praga hp, tab_praga pa, tab_praga_cultura pc, tab_cultura c 
				where hp.praga = pa.id and hp.praga = pc.praga(+) and pc.cultura = c.id(+) and hp.habilitar_emi_id = :id
				group by hp.id, hp.praga, pa.nome_cientifico, pa.nome_comum, hp.data_habilitacao_inicial, hp.data_habilitacao_final, hp.tid"                , UsuarioCredenciado);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        praga                        = new PragaHabilitarEmissaoRelatorio();
                        praga.Id                     = reader.GetValue <Int32>("id");
                        praga.Praga.Id               = reader.GetValue <Int32>("praga");
                        praga.Praga.NomeCientifico   = reader.GetValue <String>("nome_cientifico");
                        praga.Praga.NomeComum        = reader.GetValue <String>("nome_comum");
                        praga.DataInicialHabilitacao = reader.GetValue <DateTime>("data_habilitacao_inicial").ToShortDateString();;
                        praga.DataFinalHabilitacao   = reader.GetValue <DateTime>("data_habilitacao_final").ToShortDateString();;
                        praga.Tid                    = reader.GetValue <String>("tid");
                        praga.Cultura                = reader.GetValue <String>("cultura");
                        habilitar.Pragas.Add(praga);
                    }
                    reader.Close();
                }

                #endregion

                #region Arquivo

                if (habilitar.Foto.Id.HasValue && habilitar.Foto.Id > 0)
                {
                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    habilitar.Foto = _busArquivo.Obter(habilitar.Foto.Id.Value);
                }

                #endregion
            }

            if (habilitar != null)
            {
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                {
                    #region Profissão/Endereço

                    Comando comando = bancoDeDados.CriarComando(@"select pp.id, pp.registro, p.texto profissao, ee.logradouro, ee.numero, ee.cep, ee.bairro, ee.distrito, (select es.sigla from lov_estado es where es.id = ee.estado) estado,
					(select em.texto from lov_municipio em where em.id = ee.municipio) municipio, mm.valor email from tab_credenciado c,
					tab_pessoa_profissao pp, tab_profissao p, tab_pessoa_endereco ee, tab_pessoa_meio_contato mm
					where c.pessoa = pp.pessoa and p.id = pp.profissao and c.id = :id and c.pessoa = ee.pessoa(+) 
					and c.pessoa = mm.pessoa(+) and mm.meio_contato(+) = 5 and rownum = 1"                    );

                    comando.AdicionarParametroEntrada("id", habilitar.Responsavel.Id, DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        if (reader.Read())
                        {
                            habilitar.Profissao.ProfissaoId    = reader.GetValue <Int32>("id");
                            habilitar.Profissao.ProfissaoTexto = reader.GetValue <String>("profissao");
                            habilitar.Profissao.Registro       = reader.GetValue <String>("registro");

                            habilitar.Responsavel.Endereco.Logradouro     = reader.GetValue <String>("logradouro");
                            habilitar.Responsavel.Endereco.Cep            = reader.GetValue <String>("cep");
                            habilitar.Responsavel.Endereco.Numero         = reader.GetValue <String>("numero");
                            habilitar.Responsavel.Endereco.Bairro         = reader.GetValue <String>("bairro");
                            habilitar.Responsavel.Endereco.Distrito       = reader.GetValue <String>("distrito");
                            habilitar.Responsavel.Endereco.EstadoTexto    = reader.GetValue <String>("estado");
                            habilitar.Responsavel.Endereco.MunicipioTexto = reader.GetValue <String>("municipio");
                        }

                        reader.Close();
                    }

                    #endregion

                    #region Contato

                    comando = bancoDeDados.CriarComando(@"select mm.meio_contato, mm.valor from tab_credenciado c, tab_pessoa_meio_contato mm
					where c.id = :id and c.pessoa = mm.pessoa"                    );

                    comando.AdicionarParametroEntrada("id", habilitar.Responsavel.Id, DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        while (reader.Read())
                        {
                            ContatoRelatorio contato = new ContatoRelatorio();
                            contato.TipoContato = (Tecnomapas.Blocos.Entities.Interno.RelatorioIndividual.Entities.eTipoContato)reader.GetValue <Int32>("meio_contato");
                            contato.Valor       = reader.GetValue <String>("valor");
                            habilitar.Responsavel.MeiosContatos.Add(contato);
                        }

                        reader.Close();
                    }

                    #endregion
                }
            }

            return(habilitar);
        }
Пример #25
0
        public bool Analisar(PTV eptv)
        {
            try
            {
                Tecnomapas.EtramiteX.Credenciado.Model.ModuloPTV.Business.PTVBus ptvCredenciadoBus = new Tecnomapas.EtramiteX.Credenciado.Model.ModuloPTV.Business.PTVBus();
                PTV eptvBanco = ptvCredenciadoBus.Obter(eptv.Id);

                if (!_validar.Analisar(eptv, eptvBanco))
                {
                    return(false);
                }

                GerenciadorTransacao.ObterIDAtual();

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

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

                        _da.AnalizarEPTV(eptv, bancoDeDadosCredenciado);

                        if (eptv.Situacao == (int)eSolicitarPTVSituacao.Aprovado)
                        {
                            eptvBanco.ValidoAte              = eptv.ValidoAte;
                            eptvBanco.ResponsavelTecnicoId   = eptv.ResponsavelTecnicoId;
                            eptvBanco.ResponsavelTecnicoNome = eptv.ResponsavelTecnicoNome;
                            eptvBanco.LocalEmissaoId         = eptv.LocalEmissaoId;
                            eptvBanco.TemAssinatura          = _da.ExisteAssinaturaDigital(eptv.ResponsavelTecnicoId);

                            if (!_validar.Importar(eptvBanco))
                            {
                                return(Validacao.EhValido);
                            }

                            if (eptvBanco.Anexos.Any())
                            {
                                var arquivoBusCred = new ArquivoBus(eExecutorTipo.Credenciado);
                                var arquivoBusInst = new ArquivoBus(eExecutorTipo.Interno);
                                foreach (var anexo in  eptvBanco.Anexos)
                                {
                                    anexo.Arquivo = arquivoBusInst.Salvar(arquivoBusCred.Obter(anexo.Arquivo.Id.Value));
                                }
                            }

                            try
                            {
                                _da.Importar(eptvBanco, bancoDeDadosInterno);
                            }
                            catch (Exception exc)
                            {
                                if (exc.Message.Contains("UK_TAB_PTV_EPTV"))
                                {
                                    Validacao.Add(new Mensagem {
                                        Texto = "O EPTV já foi importado para o institucional.", Tipo = eTipoMensagem.Advertencia
                                    });
                                    return(Validacao.EhValido);
                                }

                                throw exc;
                            }
                        }

                        string textoEmail = string.Empty;
                        switch (eptv.Situacao)
                        {
                        case 3:
                            eptvBanco.SituacaoTexto = "Aprovado";
                            textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailAprovarSolicitacaoPTV);
                            break;

                        case 4:
                            eptvBanco.SituacaoTexto = "Rejeitado";
                            textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailRejeitarSolicitacaoPTV) + eptv.SituacaoMotivo;
                            break;

                        case 5:
                            eptvBanco.SituacaoTexto = "Fiscalização Agendada";
                            textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailAgendarFiscalizacaoSolicitacaoPTV);
                            break;
                        }

                        #region [ Enviar E-mail ]

                        if (eptv.Situacao == (int)eSolicitarPTVSituacao.Bloqueado)
                        {
                            PTVComunicador comunicador = new PTVComunicador();
                            comunicador.Id                  = _da.ObterIDComunicador(eptv.Id);
                            comunicador.PTVId               = eptv.Id;
                            comunicador.PTVNumero           = eptv.Numero;
                            comunicador.liberadoCredenciado = true;

                            var conversa = new PTVConversa();
                            conversa.Texto = eptv.SituacaoMotivo;
                            comunicador.Conversas.Add(conversa);

                            SalvarConversa(comunicador, bancoDeDadosInterno, bancoDeDadosCredenciado);
                        }
                        else
                        {
                            var emailKeys = new Dictionary <string, string>
                            {
                                { "[data situacao]", DateTime.Today.ToShortDateString() },
                                { "[hora situacao]", DateTime.Now.ToShortTimeString() },
                                { "[numero]", eptvBanco.Numero.ToString() },
                                { "[local vistoria]", eptvBanco.LocalVistoriaTexto },
                                { "[hora vistoria]", eptv.DataHoraVistoriaTexto }
                            };

                            foreach (var item in emailKeys)
                            {
                                textoEmail = textoEmail.Replace(item.Key, item.Value);
                            }

                            var email = new Email();
                            email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla);
                            email.Texto   = textoEmail;
                            email.Tipo    = eEmailTipo.AnaliseEPTV;
                            email.Codigo  = eptv.Id;

                            List <String> lstEmail = _da.ObterEmailsCredenciado(eptv.Id, bancoDeDadosCredenciado);

                            if (lstEmail != null && lstEmail.Count > 0)
                            {
                                email.Destinatario = String.Join(", ", lstEmail.ToArray());

                                EmailBus emailBus = new EmailBus();
                                emailBus.Enviar(email, bancoDeDadosInterno);
                            }
                        }

                        #endregion

                        bancoDeDadosInterno.Commit();
                        bancoDeDadosCredenciado.Commit();
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
        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);
        }