public IProtocolo Obter(int id) { IProtocolo protocolo = null; try { protocolo = _da.Obter(id); if ((protocolo.Id ?? 0) <= 0) { Validacao.Add(Mensagem.Processo.Inexistente); } else { if (protocolo.Arquivo != null && protocolo.Arquivo.Id > 0) { ArquivoDa _arquivoDa = new ArquivoDa(); protocolo.Arquivo = _arquivoDa.Obter(protocolo.Arquivo.Id.Value); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(protocolo); }
public ArquivoBus(eExecutorTipo modulo) { string schema = null; switch (modulo) { case eExecutorTipo.Interno: schema = "default"; _diretorio = _config.DiretoriosArquivo; _diretorioTemp = _config.DiretoriosArquivoTemp; break; case eExecutorTipo.Credenciado: ConfiguracaoSistema configSys = new ConfiguracaoSistema(); schema = configSys.UsuarioCredenciado; _diretorio = _config.CredenciadoDiretoriosArquivo; _diretorioTemp = _config.CredenciadoDiretoriosArquivoTemp; break; default: break; } _arquivoDa = new ArquivoDa(schema); _gerenciador = new GerenciadorArquivo(_diretorio, schema); _gerenciadorTemp = new GerenciadorArquivo(_diretorioTemp, schema); }
public ArquivoBus(eExecutorTipo modulo, Dictionary <int, string> diretorio = null, Dictionary <int, string> diretorioTemp = null, string usuarioCredenciado = null) { string schema = null; switch (modulo) { case eExecutorTipo.Interno: schema = "default"; _diretorio = _config.DiretoriosArquivo; _diretorioTemp = _config.DiretoriosArquivoTemp; break; case eExecutorTipo.Credenciado: schema = usuarioCredenciado; _diretorio = diretorio; _diretorioTemp = diretorioTemp; break; default: break; } _arquivoDa = new ArquivoDa(schema); _gerenciador = new GerenciadorArquivo(_diretorio, schema); _gerenciadorTemp = new GerenciadorArquivo(_diretorioTemp, schema); }
public List <FiscalizacaoDocumento> ObterHistoricoDocumentosCancelados(int fiscalizacaoId, BancoDeDados banco = null) { List <FiscalizacaoDocumento> lst = null; ArquivoDa arquivoDa = new ArquivoDa(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { lst = _da.ObterHistoricoDocumentosCancelados(fiscalizacaoId, banco); lst.ForEach(x => { x.PdfAutoInfracao = arquivoDa.Obter(x.PdfAutoInfracao.Id ?? 0, bancoDeDados); x.PdfGeradoAutoTermo = arquivoDa.Obter(x.PdfGeradoAutoTermo.Id ?? 0, bancoDeDados); x.PdfGeradoLaudo = arquivoDa.Obter(x.PdfGeradoLaudo.Id ?? 0, bancoDeDados); x.PdfTermoApreensaoDep = arquivoDa.Obter(x.PdfTermoApreensaoDep.Id ?? 0, bancoDeDados); x.PdfTermoCompromisso = arquivoDa.Obter(x.PdfTermoCompromisso.Id ?? 0, bancoDeDados); x.PdfTermoEmbargoInter = arquivoDa.Obter(x.PdfTermoEmbargoInter.Id ?? 0, bancoDeDados); if (x.PdfGeradoLaudo != null && x.PdfGeradoLaudo.Id.GetValueOrDefault() > 0) { x.PdfGeradoLaudo.Nome = "Laudo de fiscalização"; } if (x.PdfGeradoAutoTermo != null && x.PdfGeradoAutoTermo.Id.GetValueOrDefault() > 0) { x.PdfGeradoAutoTermo.Nome = "AutoTermoFiscalizacao"; } }); } return(lst); }
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); }
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); } }
public SimuladorGeoArquivoBus() { _config = new ConfiguracaoSimuladorGeo(); _configSistema = new ConfiguracaoSistema(); _arquivoDa = new ArquivoDa(_configSistema.Obter <string>(ConfiguracaoSistema.KeyUsuarioPublicoGeo)); _gerenciador = new GerenciadorArquivo(_config.DiretoriosArquivo, _configSistema.Obter <string>(ConfiguracaoSistema.KeyUsuarioPublicoGeo)); _gerenciadorTemp = new GerenciadorArquivo(_config.DiretoriosArquivoTemp, _configSistema.Obter <string>(ConfiguracaoSistema.KeyUsuarioPublicoGeo)); }
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); }
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); } }
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); }
private void SalvarArquivos(Cobranca entidade, BancoDeDados bancoDeDados) { if (entidade?.Anexos == null) { return; } var _arquivoDa = new ArquivoDa(); 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); } } }
public bool AlterarSituacao(Acompanhamento entidade) { try { if (_validar.AlterarSituacao(entidade)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.AlterarSituacao(entidade, bancoDeDados); if (entidade.PdfLaudo.Id.GetValueOrDefault() <= 0) { ArquivoBus arquivoBus = new ArquivoBus(eExecutorTipo.Interno); ArquivoDa arquivoDa = new ArquivoDa(); entidade.PdfLaudo.Nome = "LaudoAcompanhamentoFiscalizacao"; entidade.PdfLaudo.Extensao = ".pdf"; entidade.PdfLaudo.ContentType = "application/pdf"; entidade.PdfLaudo.Buffer = new PdfFiscalizacao().GerarLaudoAcompanhamentoFiscalizacao(entidade.Id, false, banco: bancoDeDados); arquivoBus.Salvar(entidade.PdfLaudo); arquivoDa.Salvar(entidade.PdfLaudo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); _da.SalvarArquivo(entidade, bancoDeDados); } _historico.Gerar(entidade.Id, eHistoricoArtefato.acompanhamento, eHistoricoAcao.alterarsituacao, bancoDeDados); bancoDeDados.Commit(); Validacao.Add(Mensagem.Acompanhamento.SituacaoSalvar); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public Documento Obter(int id) { Documento documento = null; try { documento = _da.Obter(id) as Documento; if (documento != null && documento.Arquivo != null && documento.Arquivo.Id > 0) { ArquivoDa _arquivoDa = new ArquivoDa(); documento.Arquivo = _arquivoDa.Obter(documento.Arquivo.Id.Value); } } catch (Exception exc) { Validacao.AddErro(exc); } return(documento); }
public Arquivo Obter(Arquivo arquivo) { ArquivoDa _da = null; string strNovoCaminho = string.Empty; if (!File.Exists(arquivo.Caminho)) { strNovoCaminho = arquivo.DiretorioConfiguracao.TrimEnd('\\') + "\\" + arquivo.Diretorio.TrimEnd('\\') + "\\" + arquivo.TemporarioNome; if (!File.Exists(strNovoCaminho)) { throw new Exception("Arquivo não encontrado. Caminho: " + strNovoCaminho); } else { arquivo.Caminho = strNovoCaminho; _da = new ArquivoDa(_esquema); _da.AtualizarCaminho(arquivo); } } arquivo.Buffer = File.Open(arquivo.Caminho, FileMode.Open, FileAccess.Read, FileShare.Read); return(arquivo); }
public void AlterarSituacao(Titulo titulo, int acao, BancoDeDados banco, bool gerouPdf = true) { Titulo atualTitulo = _da.ObterSimplificado(titulo.Id); if (titulo.Modelo.Regras == null || titulo.Modelo.Regras.Count == 0) { titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id); } titulo.Situacao = ObterNovaSituacao(titulo, acao); bool isLimparPdfENumero = false; bool isGerarNumero = false; bool isGerarPdf = false; int novaSituacaoCondicionante = 0; if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.CertificadoRegistroAtividadeFlorestal) { if (titulo.Atividades.Any(x => x.Codigo == (int)eAtividadeCodigo.FabricanteMotosserra) || titulo.Atividades.Any(x => x.Codigo == (int)eAtividadeCodigo.ComercianteMotosserra)) { titulo.Prazo = 365; } else { titulo.Prazo = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear - titulo.DataEmissao.Data.Value.DayOfYear; } } if (!_validar.AlterarSituacao(titulo, acao, gerouPdf)) { return; } #region Configurar Nova Situacao //Situação Nova switch ((eTituloSituacao)titulo.Situacao.Id) { #region 1 - Cadastrado case eTituloSituacao.Cadastrado: if (atualTitulo.Situacao.Id == (int)eTituloSituacao.Emitido) { if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Inteiro = null; titulo.Numero.Ano = null; } } titulo.DataEmissao.Data = null; titulo.DataInicioPrazo.Data = null; titulo.DataAssinatura.Data = null; titulo.DataVencimento.Data = null; titulo.DataEncerramento.Data = null; titulo.Prazo = null; isLimparPdfENumero = true; break; #endregion #region 2 - Emitido case eTituloSituacao.Emitido: isGerarNumero = true; isGerarPdf = true; //titulo.DataEmissao info na tela if (titulo.Modelo.Regra(eRegra.Prazo)) { int prazoId = Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.TipoPrazo).Valor); titulo.PrazoUnidade = _busLista.TituloModeloTiposPrazos.Single(x => x.Id == prazoId).Texto; } break; #endregion #region 3 - Concluído case eTituloSituacao.Concluido: if (titulo.Modelo.Regra(eRegra.Condicionantes)) { novaSituacaoCondicionante = 2; } if (atualTitulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { isGerarNumero = true; isGerarPdf = true; } //titulo.DataAssinatura info na tela if (titulo.Modelo.Regra(eRegra.Prazo)) { int prazoId = Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.TipoPrazo).Valor); titulo.PrazoUnidade = _busLista.TituloModeloTiposPrazos.Single(x => x.Id == prazoId).Texto; switch ((eAlterarSituacaoAcao)acao) { case eAlterarSituacaoAcao.EmitirParaAssinatura: titulo.DataInicioPrazo.Data = titulo.DataEmissao.Data.GetValueOrDefault(); break; case eAlterarSituacaoAcao.Assinar: titulo.DataInicioPrazo.Data = titulo.DataAssinatura.Data.GetValueOrDefault(); break; case eAlterarSituacaoAcao.Entregar: case eAlterarSituacaoAcao.Concluir: if (titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor.ToString() == "2") //data da assinatura { titulo.DataInicioPrazo.Data = titulo.DataAssinatura.Data.GetValueOrDefault(); } else { titulo.DataInicioPrazo.Data = titulo.DataEmissao.Data.GetValueOrDefault(); } break; default: titulo.DataInicioPrazo.Data = DateTime.Now; break; } if (prazoId == 1) //Dias { titulo.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddDays(titulo.Prazo.GetValueOrDefault()); } else { titulo.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddYears(titulo.Prazo.GetValueOrDefault()); } } break; #endregion #region 4 - Assinado case eTituloSituacao.Assinado: //titulo.DataAssinatura info na tela break; #endregion #region 5 - Encerrado case eTituloSituacao.Encerrado: if (titulo.Modelo.Regra(eRegra.Condicionantes)) { novaSituacaoCondicionante = 5; } break; #endregion #region 6 - Prorrogado case eTituloSituacao.Prorrogado: if (titulo.Modelo.Regra(eRegra.Prazo)) { titulo.DataVencimento.Data = titulo.DataVencimento.Data.Value.AddDays(titulo.DiasProrrogados.GetValueOrDefault()); } break; #endregion } #endregion #region Numero de Titulo if (isGerarNumero) { titulo.Numero.ReiniciaPorAno = titulo.Modelo.Regra(eRegra.NumeracaoReiniciada); if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Automatico = true; TituloModeloResposta iniciarEm = titulo.Modelo.Resposta(eRegra.NumeracaoAutomatica, eResposta.InicioNumeracao); titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; if (iniciarEm != null) { if (iniciarEm.Valor == null || !ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(iniciarEm.Valor.ToString())) { Validacao.Add(Mensagem.Titulo.IniciarEmInvalido); return; } string[] iniciar = iniciarEm.Valor.ToString().Split('/'); titulo.Numero.IniciaEm = Convert.ToInt32(iniciar[0]); titulo.Numero.IniciaEmAno = Convert.ToInt32(iniciar[1]); if (titulo.Numero.IniciaEmAno.GetValueOrDefault() != DateTime.Now.Year) { titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; } } } if (titulo.DataEmissao.IsValido) { titulo.Numero.Ano = titulo.DataEmissao.Data.Value.Year; } } //Limpar numero if (isLimparPdfENumero) { if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero = null; } } #endregion if (isLimparPdfENumero) { titulo.ArquivoPdf.Id = null; } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Condicionante if (novaSituacaoCondicionante > 0) { foreach (var item in titulo.Condicionantes) { TituloCondicionante condicionanteAtual = _daCondicionante.Obter(item.Id, bancoDeDados); //Filtro para não alterar as 4 - atendida if (novaSituacaoCondicionante == 5 && condicionanteAtual.Situacao.Id == 4) //5 - encerrada | 4 - atendida { continue; } //Ativa a condicionante if (novaSituacaoCondicionante == 2 && condicionanteAtual.Situacao.Id != 2) { if (condicionanteAtual.PossuiPrazo) { //Regras do Modelo Sem Prazo em Condicionantes com Prazo if (!titulo.Modelo.Regra(eRegra.Prazo)) { condicionanteAtual.DataInicioPrazo.Data = titulo.DataEmissao.Data; condicionanteAtual.DataVencimento.Data = titulo.DataEmissao.Data.Value.AddDays(condicionanteAtual.Prazo.GetValueOrDefault()); } else { condicionanteAtual.DataInicioPrazo = titulo.DataInicioPrazo; condicionanteAtual.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddDays(condicionanteAtual.Prazo.GetValueOrDefault()); } } //Periodicidade if (!item.PossuiPeriodicidade && item.Periodicidades != null) { item.Periodicidades.Clear(); } TituloCondicionantePeriodicidade periodicidade = null; if (item.PossuiPeriodicidade) { int diasTotais = item.PeriodicidadeValor.GetValueOrDefault(); switch (item.PeriodicidadeTipo.Id) { case 1: //dia break; case 2: //Mes diasTotais *= 30; break; case 3: //Ano diasTotais *= 365; break; default: break; } if (item.Prazo.GetValueOrDefault() > 0 && item.Prazo.GetValueOrDefault() <= diasTotais) { int qtdPeriodo = Math.Abs((diasTotais / (item.Prazo.GetValueOrDefault()))); for (int i = 0; i < qtdPeriodo; i++) { periodicidade = new TituloCondicionantePeriodicidade(); periodicidade.Situacao.Id = 2; //Ativa //Regras do Modelo Sem Prazo em Condicionantes com Prazo if (!titulo.Modelo.Regra(eRegra.Prazo)) { periodicidade.DataInicioPrazo.Data = titulo.DataEmissao.Data.Value.AddDays(i * item.Prazo.GetValueOrDefault()); periodicidade.DataVencimento.Data = titulo.DataEmissao.Data.Value.AddDays((i + 1) * item.Prazo.GetValueOrDefault()); } else { periodicidade.DataInicioPrazo.Data = titulo.DataInicioPrazo.Data.Value.AddDays(i * item.Prazo.GetValueOrDefault()); periodicidade.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddDays((i + 1) * item.Prazo.GetValueOrDefault()); } item.Periodicidades.Add(periodicidade); } } } condicionanteAtual.Periodicidades = item.Periodicidades; condicionanteAtual.Situacao.Id = novaSituacaoCondicionante; _daCondicionante.Ativar(condicionanteAtual, bancoDeDados); } else { condicionanteAtual.Situacao.Id = novaSituacaoCondicionante; _daCondicionante.AlterarSituacao(condicionanteAtual, banco: bancoDeDados); } } } #endregion _da.AlterarSituacao(titulo, bancoDeDados); #region Atividades TituloBus tituloBus = new TituloBus(); AtividadeBus atividadeBus = new AtividadeBus(); List <Atividade> lstTituloAtividades = null; #region Título Concluido if (titulo.Situacao.Id == (int)eTituloSituacao.Concluido) //3 - Concluido { lstTituloAtividades = tituloBus.ObterAtividades(titulo.Id); if (lstTituloAtividades != null && lstTituloAtividades.Count > 0) { int?situacao = null; if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.GetValueOrDefault())) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); situacao = busEsp.ObterSituacaoAtividade(titulo.Id); } if (situacao != null || LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault()) || LstModeloCodigoIndeferido.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault())) { eAtividadeSituacao atividadeSituacao = (LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault())) ? eAtividadeSituacao.ComPendencia : eAtividadeSituacao.Indeferida; if (situacao != null) { atividadeSituacao = (eAtividadeSituacao)situacao; } atividadeBus.AlterarSituacao(lstTituloAtividades, atividadeSituacao, bancoDeDados); } else { foreach (Atividade atividade in lstTituloAtividades) { if (atividadeBus.VerificarDeferir(atividade, bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Deferida; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } } #endregion #region Título Encerrado if (titulo.Situacao.Id == (int)eTituloSituacao.Encerrado) //Encerrado { lstTituloAtividades = tituloBus.ObterAtividades(titulo.Id); eAtividadeSituacao situacaoAtual = eAtividadeSituacao.EmAndamento; if (lstTituloAtividades != null && lstTituloAtividades.Count > 0) { foreach (Atividade atividade in lstTituloAtividades) { situacaoAtual = (eAtividadeSituacao)atividadeBus.ObterAtividadeSituacao(atividade, bancoDeDados).SituacaoId; if (situacaoAtual == eAtividadeSituacao.Indeferida || situacaoAtual == eAtividadeSituacao.ComPendencia) { atividade.SituacaoId = (int)eAtividadeSituacao.EmAndamento; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } else { if (titulo.MotivoEncerramentoId == 1 || titulo.MotivoEncerramentoId == 4) { atividade.SituacaoId = (int)eAtividadeSituacao.EmAndamento; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } else if (atividadeBus.VerificarEncerrar(atividade, bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Encerrada; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } } #endregion #region Título Prorrogado if (titulo.Situacao.Id == (int)eTituloSituacao.Prorrogado) //6 - Prorrogar { lstTituloAtividades = tituloBus.ObterAtividades(titulo.Id); if (lstTituloAtividades != null && lstTituloAtividades.Count > 0) { if (LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo) || LstModeloCodigoIndeferido.Any(x => x == titulo.Modelo.Codigo)) { eAtividadeSituacao atividadeSituacao = (LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo)) ? eAtividadeSituacao.ComPendencia : eAtividadeSituacao.Indeferida; atividadeBus.AlterarSituacao(lstTituloAtividades, atividadeSituacao, bancoDeDados); } else { int finalidade = _da.VerificarEhTituloAnterior(titulo); if (finalidade > 0) { eAtividadeSituacao atividadeSituacao = (finalidade == 1) ? eAtividadeSituacao.NovaFase : eAtividadeSituacao.EmRenovacao; atividadeBus.AlterarSituacao(lstTituloAtividades, atividadeSituacao, bancoDeDados); } else { foreach (Atividade atividade in lstTituloAtividades) { if (atividadeBus.VerificarDeferir(atividade, bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Deferida; atividadeBus.AlterarSituacao(atividade, bancoDeDados); continue; } //Voltar a situação default de andamento atividade.SituacaoId = (int)eAtividadeSituacao.EmAndamento; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } } #endregion #endregion #region Gerar Pdf de Titulo ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno); if (isGerarPdf && titulo.Modelo.Regra(eRegra.PdfGeradoSistema)) { TituloBus bus = new TituloBus(); titulo.ArquivoPdf.Nome = "Titulo.pdf"; titulo.ArquivoPdf.Extensao = ".pdf"; titulo.ArquivoPdf.ContentType = "application/pdf"; titulo.ArquivoPdf.Buffer = bus.GerarPdf(titulo, bancoDeDados); if (titulo.ArquivoPdf.Buffer != null) { arqBus.Salvar(titulo.ArquivoPdf); ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(titulo.ArquivoPdf, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name, User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados); _da.SalvarPdfTitulo(titulo, bancoDeDados); } } #endregion #region Análise de Item //Trava a Análise de item de processo/documento caso o titulo que está sendo alterado seja um de pendência if (titulo.Atividades != null && titulo.Atividades.Count > 0) { Protocolo protocolo = titulo.Atividades.First().Protocolo; AnaliseItem analise = _busAnalise.Obter(protocolo); if (analise != null && analise.Id > 0) { if (_busTitulo.ExisteTituloPendencia(protocolo, bancoDeDados)) { if (analise.Situacao == 1) // 1 - Em andamento { analise.Situacao = 2; // 2 - Com Pendência _busAnalise.AlterarSituacao(analise, bancoDeDados); } } else if (analise.Situacao == 2) { analise.Situacao = 1; _busAnalise.AlterarSituacao(analise, bancoDeDados); } } } #endregion #region Gerar/Enviar Email #region Gerar Email Email email = null; if (titulo.Situacao.Id == (int)eTituloSituacao.Concluido && titulo.Modelo.Regra(eRegra.EnviarEmail)) //3 - Concluido { if (titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor != null) { string textoEmail = titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor.ToString(); if (!String.IsNullOrWhiteSpace(textoEmail)) { Dictionary <String, String> emailKeys = new Dictionary <string, string>(); emailKeys.Add("[orgão sigla]", _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla)); emailKeys.Add("[data da conclusão]", titulo.Modelo.Regra(eRegra.Prazo) ? titulo.DataInicioPrazo.DataTexto : titulo.DataEmissao.DataTexto); emailKeys.Add("[nome do modelo]", titulo.Modelo.Nome); emailKeys.Add("[nome do subtipo]", titulo.Modelo.SubTipo); emailKeys.Add("[nº do título]", titulo.Numero.Texto); emailKeys.Add("[nº processo/documento do título]", titulo.Protocolo.Numero); emailKeys.Add("[nome do empreendimento]", titulo.EmpreendimentoTexto); foreach (string key in emailKeys.Keys) { textoEmail = textoEmail.Replace(key, emailKeys[key]); } email = new Email(); email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla); email.Texto = textoEmail; email.Tipo = eEmailTipo.TituloConcluir; email.Codigo = titulo.Id; } } } #endregion if (email != null) { List <String> lstEmail = _da.ObterEmails(titulo.Id, bancoDeDados); if (lstEmail != null && lstEmail.Count > 0) { email.Destinatario = String.Join(", ", lstEmail.ToArray()); if (titulo.Modelo.Regra(eRegra.AnexarPDFTitulo)) { email.Anexos.Add(titulo.ArquivoPdf); } EmailBus emailBus = new EmailBus(); emailBus.Enviar(email, bancoDeDados); } } #endregion #region [ Solicitação CAR ] if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo)) { if (titulo.Situacao.Id == (int)eTituloSituacao.Concluido) { //Interno List <int> situacoes = new List <int>() { (int)eCARSolicitacaoSituacao.EmCadastro, (int)eCARSolicitacaoSituacao.Pendente, (int)eCARSolicitacaoSituacao.Valido, (int)eCARSolicitacaoSituacao.Suspenso }; CARSolicitacao solicitacao = _busCARSolicitacao.ObterPorEmpreendimento(titulo.EmpreendimentoId.GetValueOrDefault(0), situacoes, false, bancoDeDados) ?? new CARSolicitacao(); if (solicitacao != null && solicitacao.Id > 0) { solicitacao.SituacaoId = (int)eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR; solicitacao.DataSituacao.Data = DateTime.Now; _busCARSolicitacao.AlterarSituacao(solicitacao, bancoDeDados, mostrarMsg: false); } else { //Credenciado _busCARSolicitacao.SubstituirPorTituloCARCredenciado(titulo.EmpreendimentoId.GetValueOrDefault(0), bancoDeDados); } } if (titulo.Situacao.Id == (int)eTituloSituacao.Encerrado) { List <int> situacoes = new List <int>() { (int)eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR }; CARSolicitacao solicitacao = _busCARSolicitacao.ObterPorEmpreendimento(titulo.EmpreendimentoId.GetValueOrDefault(0), situacoes, false, bancoDeDados) ?? new CARSolicitacao(); if (solicitacao != null && solicitacao.Id > 0) { solicitacao.SituacaoAnteriorId = solicitacao.SituacaoId; solicitacao.DataSituacaoAnterior = solicitacao.DataSituacao; solicitacao.SituacaoId = (int)eCARSolicitacaoSituacao.Valido; solicitacao.DataSituacao.Data = DateTime.Now; _busCARSolicitacao.AlterarSituacao(solicitacao, bancoDeDados, mostrarMsg: false); } else { //Credenciado Empreendimento empreendimento = new EmpreendimentoBus().ObterSimplificado(titulo.EmpreendimentoId.GetValueOrDefault(0)); CARSolicitacaoCredenciadoBus carSolicitacaoCredBus = new CARSolicitacaoCredenciadoBus(); CARSolicitacao carSolicitacaoCred = new CARSolicitacao(); carSolicitacaoCred.Empreendimento.Codigo = empreendimento.Codigo; carSolicitacaoCredBus.AlterarSituacao(carSolicitacaoCred, new CARSolicitacao() { SituacaoId = (int)eCARSolicitacaoSituacao.Valido }); } } //SE situacao == Encerrado //TODO:Mudar Situação para Válido } #endregion if (!Validacao.EhValido) { bancoDeDados.Rollback(); return; } #region Salvar A especificidade if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.GetValueOrDefault())) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Salvar(titulo.Especificidade, bancoDeDados); List <DependenciaLst> lstDependencias = busEsp.ObterDependencias(titulo.Especificidade); if (isGerarPdf && lstDependencias != null && lstDependencias.Count > 0) { if (!lstDependencias.Exists(x => x.TipoId == (int)eTituloDependenciaTipo.Caracterizacao && x.DependenciaTipo == (int)eCaracterizacao.Dominialidade)) { lstDependencias.Add(new DependenciaLst() { TipoId = (int)eTituloDependenciaTipo.Caracterizacao, DependenciaTipo = (int)eCaracterizacao.Dominialidade }); } _da.Dependencias(titulo.Id, titulo.Modelo.Id, titulo.EmpreendimentoId.GetValueOrDefault(), lstDependencias); } } #endregion #region Histórico eHistoricoAcao eAcao; switch ((eAlterarSituacaoAcao)acao) { case eAlterarSituacaoAcao.EmitirParaAssinatura: eAcao = eHistoricoAcao.emitir; break; case eAlterarSituacaoAcao.CancelarEmissao: eAcao = eHistoricoAcao.cancelaremissao; break; case eAlterarSituacaoAcao.Assinar: eAcao = eHistoricoAcao.assinar; break; case eAlterarSituacaoAcao.Prorrogar: eAcao = eHistoricoAcao.prorrogar; break; case eAlterarSituacaoAcao.Encerrar: eAcao = eHistoricoAcao.encerrar; break; case eAlterarSituacaoAcao.Entregar: eAcao = eHistoricoAcao.entregar; break; default: eAcao = eHistoricoAcao.emitir; break; } _da.Historico.Gerar(titulo.Id, eHistoricoArtefato.titulo, eAcao, bancoDeDados); _da.Consulta.Gerar(titulo.Id, eHistoricoArtefato.titulo, bancoDeDados); #region Solicitacao CAR if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault())) { if (titulo.Situacao.Id != (int)eTituloSituacao.Concluido) { _da.Consulta.Deletar(titulo.Id, eHistoricoArtefato.carsolicitacaotitulo, bancoDeDados); } else { _da.Consulta.Gerar(titulo.Id, eHistoricoArtefato.carsolicitacaotitulo, bancoDeDados); } } #endregion #endregion bancoDeDados.Commit(); Validacao.Add(Mensagem.TituloAlterarSituacao.TituloAltSituacaoSucesso); } }
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); }
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); } }
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); }
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(); } } }
public void AlterarSituacao(Titulo titulo, BancoDeDados banco = null, bool validar = true) { Titulo atualTitulo = _da.ObterSimplificado(titulo.Id); bool isGerarNumero = false; bool isGerarPdf = false; if (validar) { if (!_validar.AlterarSituacao(titulo, atualTitulo.Situacao.Id == (int)eTituloSituacao.EmCadastro) || atualTitulo.Situacao.Id == (int)eTituloSituacao.Valido) { return; } } #region Configurar Nova Situacao //Situação Nova switch ((eTituloSituacao)titulo.Situacao.Id) { #region 3 - Valido case eTituloSituacao.Valido: if (atualTitulo.Situacao.Id == (int)eTituloSituacao.EmCadastro) { isGerarNumero = true; isGerarPdf = true; } break; #endregion } #endregion #region Numero de Titulo if (isGerarNumero) { titulo.Numero.ReiniciaPorAno = titulo.Modelo.Regra(eRegra.NumeracaoReiniciada); if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Automatico = true; TituloModeloResposta iniciarEm = titulo.Modelo.Resposta(eRegra.NumeracaoAutomatica, eResposta.InicioNumeracao); titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; if (iniciarEm != null) { if (iniciarEm.Valor == null || !ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(iniciarEm.Valor.ToString())) { Validacao.Add(Mensagem.Titulo.IniciarEmInvalido); return; } string[] iniciar = iniciarEm.Valor.ToString().Split('/'); titulo.Numero.IniciaEm = Convert.ToInt32(iniciar[0]); titulo.Numero.IniciaEmAno = Convert.ToInt32(iniciar[1]); if (titulo.Numero.IniciaEmAno.GetValueOrDefault() != DateTime.Now.Year) { titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; } } } titulo.Numero.Ano = DateTime.Today.Year; } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _da.DeclaratorioAlterarSituacao(titulo, bancoDeDados); #region Atividades AtividadeInternoBus atividadeBus = new AtividadeInternoBus(); #region Título Valido if (titulo.Situacao.Id == (int)eTituloSituacao.Valido) { if (titulo.Atividades != null && titulo.Atividades.Count > 0) { foreach (Atividade atividade in titulo.Atividades) { if (VerificarDeclaratorioSituacao(atividade, eTituloSituacao.Valido, titulo.EmpreendimentoId.GetValueOrDefault(), bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Regular; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } #endregion #region Título Suspenso if (titulo.Situacao.Id == (int)eTituloSituacao.SuspensoDeclaratorio) { if (titulo.Atividades != null && titulo.Atividades.Count > 0) { foreach (Atividade atividade in titulo.Atividades) { if (VerificarDeclaratorioSituacao(atividade, eTituloSituacao.SuspensoDeclaratorio, titulo.EmpreendimentoId.GetValueOrDefault(), bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Suspensa; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } #endregion #region Título Encerrado if (titulo.Situacao.Id == (int)eTituloSituacao.EncerradoDeclaratorio) { if (titulo.Atividades != null && titulo.Atividades.Count > 0) { foreach (Atividade atividade in titulo.Atividades) { if (VerificarDeclaratorioSituacao(atividade, eTituloSituacao.EncerradoDeclaratorio, titulo.EmpreendimentoId.GetValueOrDefault(), bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Irregular; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } #endregion #endregion #region Gerar Pdf de Titulo ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno); if (isGerarPdf && titulo.Modelo.Regra(eRegra.PdfGeradoSistema)) { TituloInternoBus bus = new TituloInternoBus(); titulo.ArquivoPdf.Nome = "Titulo.pdf"; titulo.ArquivoPdf.Extensao = ".pdf"; titulo.ArquivoPdf.ContentType = "application/pdf"; titulo.ArquivoPdf.Buffer = bus.GerarPdf(titulo, bancoDeDados); if (titulo.ArquivoPdf.Buffer != null) { arqBus.Salvar(titulo.ArquivoPdf); ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(titulo.ArquivoPdf, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); _da.SalvarPdfTitulo(titulo, bancoDeDados); } } #endregion #region Gerar/Enviar Email #region Gerar Email Email email = null; if (titulo.Situacao.Id == (int)eTituloSituacao.Valido && titulo.Modelo.Regra(eRegra.EnviarEmail)) { if (titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor != null) { string textoEmail = titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor.ToString(); if (!String.IsNullOrWhiteSpace(textoEmail)) { Dictionary <String, String> emailKeys = new Dictionary <string, string>(); emailKeys.Add("[orgão sigla]", _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla)); emailKeys.Add("[data da conclusão]", titulo.Modelo.Regra(eRegra.Prazo) ? titulo.DataInicioPrazo.DataTexto : titulo.DataEmissao.DataTexto); emailKeys.Add("[nome do modelo]", titulo.Modelo.Nome); emailKeys.Add("[nome do subtipo]", titulo.Modelo.SubTipo); emailKeys.Add("[nº do título]", titulo.Numero.Texto); emailKeys.Add("[nº processo/documento do título]", titulo.Protocolo.Numero); emailKeys.Add("[nome do empreendimento]", titulo.EmpreendimentoTexto); foreach (string key in emailKeys.Keys) { textoEmail = textoEmail.Replace(key, emailKeys[key]); } email = new Email(); email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla); email.Texto = textoEmail; email.Tipo = eEmailTipo.TituloConcluir; email.Codigo = titulo.Id; } } } #endregion if (email != null) { List <String> lstEmail = _da.ObterEmails(titulo.Id, bancoDeDados); if (lstEmail != null && lstEmail.Count > 0) { email.Destinatario = String.Join(", ", lstEmail.ToArray()); if (titulo.Modelo.Regra(eRegra.AnexarPDFTitulo)) { email.Anexos.Add(titulo.ArquivoPdf); } EmailBus emailBus = new EmailBus(); emailBus.Enviar(email, bancoDeDados); } } #endregion if (!Validacao.EhValido) { bancoDeDados.Rollback(); return; } #region Salvar A especificidade if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.GetValueOrDefault())) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Salvar(titulo.Especificidade, bancoDeDados); List <DependenciaLst> lstDependencias = busEsp.ObterDependencias(titulo.Especificidade); if (isGerarPdf && lstDependencias != null && lstDependencias.Count > 0) { if (!lstDependencias.Exists(x => x.TipoId == (int)eTituloDependenciaTipo.Caracterizacao && x.DependenciaTipo == (int)eCaracterizacao.Dominialidade)) { lstDependencias.Add(new DependenciaLst() { TipoId = (int)eTituloDependenciaTipo.Caracterizacao, DependenciaTipo = (int)eCaracterizacao.Dominialidade }); } _da.Dependencias(titulo.Id, titulo.Modelo.Id, titulo.EmpreendimentoId.GetValueOrDefault(), lstDependencias); } } #endregion #region Histórico _da.Historico.Gerar(titulo.Id, eHistoricoArtefato.titulo, eHistoricoAcao.alterarsituacao, bancoDeDados); _da.Consulta.Gerar(titulo.Id, eHistoricoArtefato.titulo, bancoDeDados); #endregion bancoDeDados.Commit(); Validacao.Add(Mensagem.TituloAlterarSituacao.TituloAltSituacaoSucesso); } }
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); }
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); }
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); }
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); }
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); }
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); }
public string GerarPassivo() { List <FiscalizacaoRelatorio> lstFiscalizacao = _da.ObterHistoricoConcluidos(); string appPath = string.Empty; /*string appPath = System.IO.Path.GetTempPath() + "IDAF_PDF_FISC\\"; * if (!Directory.Exists(appPath)) * { * System.IO.Directory.CreateDirectory(appPath); * }*/ ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno); ArquivoDa arquivoDa = new ArquivoDa(); Arquivo arqAuto = null; Arquivo arqLaudo = null; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { GerenciadorTransacao.ObterIDAtual(); bancoDeDados.IniciarTransacao(); foreach (var item in lstFiscalizacao) { PdfFiscalizacao pdf = new PdfFiscalizacao(); arqAuto = new Arquivo(); arqLaudo = new Arquivo(); MemoryStream ms = pdf.GerarAutoTermoFiscalizacaoHistorico(item.HistoricoId, false); if (ms != null) { arqAuto.Buffer = ms; arqAuto.Nome = String.Format("{0}{1}_{2}_{3}_auto", appPath, item.Id, item.HistoricoId, item.DataConclusao); arqAuto.Extensao = ".pdf"; arqAuto.ContentType = "application/pdf"; arqBus.Salvar(arqAuto); arquivoDa.Salvar(arqAuto, null, "Path de atualização fiscalização", "Path", null, GerenciadorTransacao.ObterIDAtual(), bancoDeDados); //System.IO.File.WriteAllBytes(String.Format("{0}{1}_{2}_{3}_auto.pdf", appPath, item.Id, item.HistoricoId, item.DataConclusao), ms.ToArray()); ms.Close(); ms.Dispose(); } arqLaudo.Buffer = pdf.GerarLaudoFiscalizacaoHistorico(item.HistoricoId, false); arqLaudo.Nome = String.Format("{0}{1}_{2}_{3}_laudo", appPath, item.Id, item.HistoricoId, item.DataConclusao); arqLaudo.Extensao = ".pdf"; arqLaudo.ContentType = "application/pdf"; //System.IO.File.WriteAllBytes(String.Format("{0}{1}_{2}_{3}_laudo.pdf", appPath, item.Id, item.HistoricoId, item.DataConclusao), ms.ToArray()); arqBus.Salvar(arqLaudo); arquivoDa.Salvar(arqLaudo, null, "Path de atualização fiscalização", "Path", null, GerenciadorTransacao.ObterIDAtual(), bancoDeDados); arqLaudo.Buffer.Close(); arqLaudo.Buffer.Dispose(); _da.AtualizarHistorico(item.HistoricoId, arqLaudo.Id, arqAuto.Id, bancoDeDados); } _da.CorrigirHistoricoSubSequente(bancoDeDados); bancoDeDados.Commit(); } return(appPath); }
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); }
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); } }
public SimuladorGeoArquivo EnviarArquivo(SimuladorGeo projeto) { SimuladorGeoArquivo arquivoEnviado = new SimuladorGeoArquivo(); try { if (!_validar.EnviarArquivo(projeto)) { return(new SimuladorGeoArquivo()); } arquivoEnviado = projeto.ArquivoEnviado; arquivoEnviado.Tipo = (int)eSimuladorGeoFilaTipo.Dominialidade; arquivoEnviado.Etapa = (int)eSimuladorGeoFilaEtapa.Validacao; arquivoEnviado.Situacao = (int)eSimuladorGeoFilaSituacao.Aguardando; arquivoEnviado.Mecanismo = (int)eSimuladorGeoMecanismo.Simulador; GerenciadorTransacao.ObterIDAtual(); SimuladorGeoArquivoBus busArquivo = new SimuladorGeoArquivoBus(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioPublicoGeo)) { bancoDeDados.IniciarTransacao(); busArquivo.Copiar(arquivoEnviado); busArquivo.ObterTemporario(arquivoEnviado); arquivoEnviado.IdRelacionamento = _da.ExisteArquivoFila(arquivoEnviado, bancoDeDados); List <SimuladorGeoArquivo> arquivosSalvos = _da.ObterArquivos(arquivoEnviado.ProjetoId, bancoDeDados) .Where(x => x.Tipo == (int)eSimuladorGeoArquivoTipo.ArquivoEnviado).ToList(); Arquivo arqAnterior = null; if (arquivosSalvos.Count > 0) { SimuladorGeoArquivo arq = arquivosSalvos.FirstOrDefault(x => x.Tipo == (int)eSimuladorGeoArquivoTipo.ArquivoEnviado); try { arqAnterior = busArquivo.Obter((arq ?? new SimuladorGeoArquivo()).Id.GetValueOrDefault()); if (arqAnterior != null) { arquivoEnviado.Id = arqAnterior.Id.Value; busArquivo.Deletar(arqAnterior.Caminho); } } catch { ArquivoDa arqDa = new ArquivoDa(); if (arqAnterior == null && (arq ?? new SimuladorGeoArquivo()).Id.GetValueOrDefault() > 0) { arqAnterior = busArquivo.ObterDados((arq ?? new SimuladorGeoArquivo()).Id.GetValueOrDefault()); } arqDa.MarcarDeletado(arqAnterior.Id.Value, arqAnterior.Caminho, bancoDeDados); } } ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(arquivoEnviado, null, "PublicoGeo", "PublicoGeo", (int)eExecutorTipo.Publico, null, bancoDeDados); arquivoEnviado.Buffer.Close(); arquivoEnviado.Buffer.Dispose(); arquivoEnviado.Buffer = null; projeto.MenorX = (projeto.EastingDecimal > 0) ? projeto.EastingDecimal - 5000 : Decimal.Zero; projeto.MenorY = (projeto.NorthingDecimal > 0) ? projeto.NorthingDecimal - 5000 : Decimal.Zero; projeto.MaiorX = (projeto.EastingDecimal > 0) ? projeto.EastingDecimal + 5000 : Decimal.Zero; projeto.MaiorY = (projeto.NorthingDecimal > 0) ? projeto.NorthingDecimal + 5000 : Decimal.Zero; _da.Salvar(projeto, bancoDeDados); //Atualiza a lista de arquivos do projeto _da.AtualizarArquivosImportar(arquivoEnviado, bancoDeDados); if (arquivoEnviado.IdRelacionamento <= 0) { _da.InserirFila(arquivoEnviado, bancoDeDados); } else { _da.AlterarSituacaoFila(arquivoEnviado, bancoDeDados); } _da.AtualizarGeoEmp(projeto, bancoDeDados); bancoDeDados.Commit(); } ObterSituacao(arquivoEnviado); } catch (Exception exc) { if (arquivoEnviado != null && arquivoEnviado.Buffer != null) { arquivoEnviado.Buffer.Close(); arquivoEnviado.Buffer.Dispose(); arquivoEnviado.Buffer = null; } Validacao.AddErro(exc); } return(arquivoEnviado); }