public ActionResult Salvar(ProjetoGeografico projeto, string url) { if (!_caracterizacaoValidar.Basicas(projeto.EmpreendimentoId)) { return(Json(new { @EhValido = Validacao.EhValido, Msg = Validacao.Erros, urlRedirect = Url.Action("Index", "../Empreendimento", Validacao.QueryParamSerializer()) })); } var urlCriar = CaracterizacaoVM.GerarUrl(projeto.EmpreendimentoId, true, eCaracterizacao.ExploracaoFlorestal); var urlEditar = CaracterizacaoVM.GerarUrl(projeto.EmpreendimentoId, false, eCaracterizacao.ExploracaoFlorestal); if (url.Contains(urlCriar) || url.Contains(urlEditar)) { if (!_validar.Finalizar(projeto)) { return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros, Url = url })); } if (_exploracaoFlorestalBus.ExisteExploracaoGeoNaoCadastrada(projeto.Id)) { url = urlCriar; } } _bus.Salvar(projeto); if (projeto.CaracterizacaoId == (int)eCaracterizacao.ExploracaoFlorestal) { _caracterizacaoBus.AtualizarDependentes(projeto.Id, eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao, projeto.Tid); } return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros, Url = url })); }
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 bool CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoId, BancoDeDados banco, BancoDeDados bancoCredenciado) { if (banco == null) { return(false); } if (_validar == null) { _validar = new DominialidadeValidar(); } #region Configurar Caracterização DominialidadeCred.Business.DominialidadeBus dominialidadeCredBus = new DominialidadeCred.Business.DominialidadeBus(); Dominialidade caracterizacao = dominialidadeCredBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid); int dominialidadeCredenciadoId = dependencia.DependenciaId; int empreendimentoCredenciadoId = caracterizacao.EmpreendimentoId; caracterizacao.EmpreendimentoId = empreendimentoInternoId; caracterizacao.CredenciadoID = caracterizacao.Id; caracterizacao.Id = 0; caracterizacao.Tid = string.Empty; caracterizacao.Areas.ForEach(r => { r.Id = 0; }); caracterizacao.Dominios.ForEach(r => { r.Id = 0; }); caracterizacao.Dominios.SelectMany(x => x.ReservasLegais).ToList().ForEach(r => { r.Id = 0; }); #endregion if (_validar.CopiarDadosCredenciado(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); //Setar ID caracterizacao.Id = ObterPorEmpreendimento(empreendimentoInternoId, simplificado: true, banco: bancoDeDados).Id; _da.CopiarDadosCredenciado(caracterizacao, bancoDeDados); dominialidadeCredBus.AtualizarInternoIdTid(empreendimentoCredenciadoId, dominialidadeCredenciadoId, caracterizacao.Id, GerenciadorTransacao.ObterIDAtual(), bancoCredenciado); #region Dependencias //Gerencia as dependências da caracterização caracterizacao.Dependencias = _busCaracterizacao.ObterDependenciasAtual(empreendimentoInternoId, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao); _busCaracterizacao.Dependencias(new Caracterizacao() { Id = caracterizacao.Id, Tipo = eCaracterizacao.Dominialidade, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); if (caracterizacao.InternoID > 0) { if (!Desatualizado(caracterizacao.InternoID, caracterizacao.InternoTID) && !caracterizacao.AlteradoCopiar) { CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus(); caracterizacaoBus.AtualizarDependentes(caracterizacao.InternoID, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Tid, bancoDeDados); } } #endregion bancoDeDados.Commit(); } } return(Validacao.EhValido); }
public void FinalizarExploracao(int empreendimento, int titulo, BancoDeDados banco = null) { try { var idProjetoGeo = _projetoGeoBus.ExisteProjetoGeografico(empreendimento, (int)eCaracterizacao.ExploracaoFlorestal); if (idProjetoGeo == 0) { throw new Exception("Projeto Geográfico não encontrado"); } var projeto = _projetoGeoBus.ObterProjeto(idProjetoGeo); _projetoGeoBus.FinalizarGeometrias(projeto, titulo, banco); if (!Validacao.EhValido) { return; } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); var exploracoes = this.ObterPorEmpreendimentoList(empreendimento, simplificado: true, banco: bancoDeDados); foreach (var exploracao in exploracoes) { exploracao.Dependencias = _busCaracterizacao.ObterDependenciasAtual(exploracao.EmpreendimentoId, eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao); _busCaracterizacao.Dependencias(new Caracterizacao() { Id = exploracao.Id, Tipo = eCaracterizacao.ExploracaoFlorestal, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = exploracao.Dependencias }, bancoDeDados); _busCaracterizacao.AtualizarDependentes(exploracao.EmpreendimentoId, eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao, exploracao.Tid, bancoDeDados); } _da.FinalizarExploracao(empreendimento, bancoDeDados); if (!this.ExisteExploracaoEmAndamento(empreendimento, bancoDeDados)) { if (projeto.SituacaoId != (int)eProjetoGeograficoSituacao.Finalizado) { projeto.Sobreposicoes = _projetoGeoBus.ObterGeoSobreposiacao(idProjetoGeo, eCaracterizacao.ExploracaoFlorestal); _projetoGeoBus.SalvarSobreposicoes(projeto); _projetoGeoBus.Finalizar(projeto, bancoDeDados); if (Validacao.EhValido) { _projetoGeoBus.ExcluirRascunho(projeto, bancoDeDados); } } } if (Validacao.EhValido) { Validacao.Erros.Clear(); } else { bancoDeDados.Rollback(); return; } bancoDeDados.Commit(); } } catch (Exception exc) { Validacao.AddErro(exc); } }