internal bool CopiarDadosCredenciado(UnidadeProducao caracterizacao)
        {
            if (caracterizacao.CredenciadoID <= 0)
            {
                Validacao.Add(Mensagem.UnidadeProducao.CopiarCaractizacaoCadastrada);
            }

            string auxiliar = _da.CodigoPropriedadeExistenteImportar(caracterizacao);

            if (!string.IsNullOrEmpty(auxiliar))
            {
                Validacao.Add(Mensagem.UnidadeProducao.CodigoPropriedadeExistenteImportar(auxiliar));
            }

            caracterizacao.UnidadesProducao.ForEach(unidade => {
                EmpreendimentoCaracterizacao emp = _da.VerificarCodigoUPJaCadastrado(unidade.CodigoUP, caracterizacao.Empreendimento.Id);

                if (emp != null && emp.Id > 0)
                {
                    Validacao.Add(Mensagem.UnidadeProducao.CodigoUPJaAssociado(emp.Codigo.GetValueOrDefault(), emp.Denominador));
                }
            });

            return(Validacao.EhValido);
        }
示例#2
0
        internal EmpreendimentoCaracterizacao VerificarRLAssociadaEmOutroEmpreendimentoCedente(int reservaLegalId, int empreendimentCedenteId, int identificacaoARLCedente)
        {
            EmpreendimentoCaracterizacao retorno = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@"select e.codigo, e.denominador from crt_dominialidade_reserva c, tab_empreendimento e 
                where c.emp_compensacao = e.id  and c.emp_compensacao = :emp_comp_id and c.arl_cedente = :ident_arl_cedente ", EsquemaBanco);

                comando.AdicionarParametroEntrada("emp_comp_id", empreendimentCedenteId, DbType.Int32);
                comando.AdicionarParametroEntrada("ident_arl_cedente", identificacaoARLCedente, DbType.Int32);

                if (reservaLegalId > 0)
                {
                    comando.DbCommand.CommandText += "and c.id <> :id";
                    comando.AdicionarParametroEntrada("id", reservaLegalId, DbType.Int32);
                }

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        retorno             = new EmpreendimentoCaracterizacao();
                        retorno.Codigo      = reader.GetValue <int?>("codigo");
                        retorno.Denominador = reader.GetValue <string>("denominador");
                    }
                }
            }

            return(retorno);
        }
示例#3
0
 public ReservaLegal()
 {
     EmpreendimentoCompensacao = new EmpreendimentoCaracterizacao();
     if (Coordenada == null)
     {
         Coordenada = new Coordenada();
     }
 }
示例#4
0
        internal bool EmpreendimentoSolicitacaoCAR(EmpreendimentoCaracterizacao empreendimento)
        {
            if (object.Equals(empreendimento, null))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
                return(false);
            }

            string situacao = string.Empty;

            if (!String.IsNullOrWhiteSpace(empreendimento.CNPJ))
            {
                situacao = _daCarSolicitacao.EmpreendimentoPossuiSolicitacao(empreendimento.CNPJ);
                if (!String.IsNullOrWhiteSpace(situacao))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                    return(false);
                }

                situacao = _carSolicitacaoInternoDa.EmpreendimentoPossuiSolicitacao(empreendimento.CNPJ);
                if (!String.IsNullOrWhiteSpace(situacao))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                    return(false);
                }
            }
            else
            {
                if (empreendimento.InternoID > 0)
                {
                    situacao = _daCarSolicitacao.EmpreendimentoPossuiSolicitacao(empreendimento.InternoID);
                    if (!string.IsNullOrEmpty(situacao))
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                        return(false);
                    }

                    situacao = _carSolicitacaoInternoDa.EmpreendimentoPossuiSolicitacao(empreendimento.InternoID);
                    if (!string.IsNullOrEmpty(situacao))
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                        return(false);
                    }
                }
                else
                {
                    situacao = _daCarSolicitacao.EmpreendimentoCredenciadoPossuiSolicitacao(empreendimento.Id);
                    if (!string.IsNullOrEmpty(situacao))
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                        return(false);
                    }
                }
            }

            return(true);
        }
        public ActionResult ValidarAdicionarARL(int reservaLegal, int empreendimento)
        {
            DominialidadeBus             dominialidadeBus = new DominialidadeBus();
            EmpreendimentoCaracterizacao empReservaLegal  = dominialidadeBus.ObterEmpreendimentoReceptor(reservaLegal);

            TermoCPFARLCRValidar validar = new TermoCPFARLCRValidar();

            validar.AdicionarARL(empreendimento, empReservaLegal.Id);

            return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido }));
        }
示例#6
0
        public ActionResult Criar(int id)
        {
            if (!_caracterizacaoBus.Validar.Basicas(id))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            if (!_bus.Validar.Acessar(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            CadastroAmbientalRural caracterizacao = _bus.ObterTela(id);

            caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.CadastroAmbientalRural, eCaracterizacaoDependenciaTipo.Caracterizacao);

            if (caracterizacao.Id <= 0)
            {
                EmpreendimentoCaracterizacao empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(id);
                caracterizacao.ModuloFiscalId           = empreendimento.ModuloFiscalId;
                caracterizacao.ModuloFiscalHA           = empreendimento.ModuloFiscalHA;
                caracterizacao.MunicipioId              = empreendimento.MunicipioId;
                caracterizacao.EmpreendimentoId         = id;
                caracterizacao.OcorreuAlteracaoApos2008 = -1;
                caracterizacao.VistoriaAprovacaoCAR     = -1;
            }

            if (!_bus.Validar.VerificarMunicipioForaES(caracterizacao.MunicipioId, _busLista.Municipios(ViewModelHelper.EstadoDefaultId())))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            CadastroAmbientalRuralVM vm = new CadastroAmbientalRuralVM(caracterizacao, _busLista.Municipios(ViewModelHelper.EstadoDefaultId()), _busLista.BooleanLista);

            vm.Abrangencia = _bus.ObterAgrangencia(id);

            if (caracterizacao.SituacaoProcessamento.Id == (int)eProjetoGeograficoSituacaoProcessamento.ProcessadoPDF)
            {
                _bus.ObterArquivosProjeto(caracterizacao.ProjetoGeoId).ForEach(arquivo =>
                {
                    vm.ArquivosProcessamentoVM.Add(new ArquivoProcessamentoVM(arquivo, arquivo.Tipo, (int)eFilaTipoGeo.CAR));
                });
            }


            vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto;
            _bus.Validar.AbrirAcessar(caracterizacao);

            vm.UrlsArquivo = ViewModelHelper.Json(ObterUrlsArquivo());

            return(View(vm));
        }
示例#7
0
        private ActionResult CarregarListarVM(int id, bool isVisualizar = false)
        {
            ListarVM vm = new ListarVM(_listaBus.QuantPaginacao);

            vm.Filtros.IsVisualizar     = isVisualizar;
            vm.Filtros.EmpreendimentoId = id;
            vm.Paginacao.QuantPaginacao = Convert.ToInt32(ViewModelHelper.CookieQuantidadePorPagina);
            vm.SetListItens(_listaBus.TipoExploracaoFlorestal, _listaBus.QuantPaginacao, vm.Paginacao.QuantPaginacao);

            EmpreendimentoCaracterizacao empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(id);

            vm.Caracterizacao = new CaracterizacaoVM(empreendimento);
            return(PartialView(vm));
        }
        private void VerificarRLAssociadaEmOutroEmpreendimentoCedente(int reservaLegalId, int empreendimentoCedenteId, int IdentificacaoARL)
        {
            if (reservaLegalId <= 0 || empreendimentoCedenteId <= 0 || IdentificacaoARL <= 0)
            {
                return;
            }

            EmpreendimentoCaracterizacao empreendimentoExistente = _daInterno.VerificarRLAssociadaEmOutroEmpreendimentoCedente(reservaLegalId, empreendimentoCedenteId, IdentificacaoARL);

            if (empreendimentoExistente != null)
            {
                Validacao.Add(Mensagem.Dominialidade.RLAssociadaEmOutroEmpreendimentoCedente(empreendimentoExistente.Codigo.GetValueOrDefault(), empreendimentoExistente.Denominador));
            }
        }
示例#9
0
        public void AssociarProjetoDigital(ProjetoDigital projetoDigital, List <Lista> atividades)
        {
            if (projetoDigital.Situacao != (int)eProjetoDigitalSituacao.AguardandoImportacao)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SituacaoDeveSerAguardandoImportacao);
            }

            if (projetoDigital.EmpreendimentoId < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
            }

            if (atividades.Count < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.RequerimentoNaoPossuiAtividadeCAR);
            }

            #region  Solitação de CAR

            EmpreendimentoCaracterizacao empreendimento = _busCaracterizacao.ObterEmpreendimentoSimplificado(projetoDigital.EmpreendimentoId.GetValueOrDefault());
            if (!EmpreendimentoSolicitacaoCAR(empreendimento))
            {
                return;
            }

            #endregion  Solitação de CAR

            if (projetoDigital.Dependencias.Count(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico) < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalDominialidadeAssociada);
                return;
            }

            if (projetoDigital.Dependencias.Count(x => x.DependenciaCaracterizacao == (int)eCaracterizacao.Dominialidade) < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalNaoPossuiCaracterizacaoDominialidade);
                return;
            }

            projetoDigital.Dependencias.ForEach(x =>
            {
                if (x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico && x.DependenciaCaracterizacao == (int)eCaracterizacao.Dominialidade)
                {
                    if (_busProjetoGeografico.ObterSitacaoProjetoGeografico(x.DependenciaId) != (int)eProjetoGeograficoSituacao.Finalizado)
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.ProjetoGeograficoNaoEstaFinalizado);
                    }
                }
            });
        }
示例#10
0
        public bool Salvar(UnidadeConsolidacao unidade)
        {
            try
            {
                if (!_validar.Salvar(unidade))
                {
                    return(Validacao.EhValido);
                }

                if (!unidade.PossuiCodigoUC)
                {
                    if (unidade.Id < 1)
                    {
                        int codigo = _da.ObterSequenciaCodigoUC();
                        EmpreendimentoCaracterizacao empreendimento = _busCaracterizacao.ObterEmpreendimentoSimplificado(unidade.Empreendimento.Id);

                        unidade.CodigoUC = Convert.ToInt64(empreendimento.MunicipioIBGE.ToString() + codigo.ToString("D4"));
                    }
                    else
                    {
                        unidade.CodigoUC = ObterPorEmpreendimento(unidade.Empreendimento.Id, true).CodigoUC;
                    }
                }

                foreach (var aux in unidade.ResponsaveisTecnicos)
                {
                    aux.CFONumero = aux.CFONumero.Split('-').GetValue(0).ToString();
                }

                GerenciadorTransacao.ObterIDAtual();

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

                    _da.Salvar(unidade, bancoDeDados);

                    Validacao.Add(Mensagem.UnidadeConsolidacao.UnidadeConsolidacaoSalvaSucesso);

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

            return(Validacao.EhValido);
        }
        public EmpreendimentoCaracterizacao ObterEmpreendimentoReceptor(int reservaLegal, BancoDeDados banco = null)
        {
            EmpreendimentoCaracterizacao empreendimento = null;

            try
            {
                empreendimento = _da.ObterEmpreendimentoReceptor(reservaLegal, banco);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(empreendimento);
        }
        internal EmpreendimentoCaracterizacao ObterEmpreendimentoSimplificado(int empreendimentoInternoId, BancoDeDados banco = null)
        {
            EmpreendimentoCaracterizacao empreendimento = new EmpreendimentoCaracterizacao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Empreendimento

                Comando comando = bancoDeDados.CriarComando(@"select 
				e.id, e.codigo, ls.texto segmento_texto, ls.denominador, e.cnpj, e.denominador denominador_nome, e.tid, ee.zona, ee.municipio municipio_id,
				(select m.texto from {0}lov_municipio m where m.id = ee.municipio) municipio, (select m.ibge from {0}lov_municipio m where m.id = ee.municipio) municipio_ibge, 
				cm.id modulo_id, cm.modulo_ha, (select es.sigla from {0}lov_estado es where es.id = ee.estado) estado,
				case when ee.zona = 1 then 'Urbana' else 'Rural' end zona_texto
				from {0}tab_empreendimento e, {0}tab_empreendimento_atividade a, {0}lov_empreendimento_segmento ls, {0}tab_empreendimento_endereco ee, {0}cnf_municipio_mod_fiscal cm
				where e.atividade = a.id(+) and e.segmento = ls.id and ee.correspondencia = 0 and ee.empreendimento = e.id and ee.municipio = cm.municipio(+) and e.id = :id"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        empreendimento.Id                   = empreendimentoInternoId;
                        empreendimento.Tid                  = reader.GetValue <string>("tid");
                        empreendimento.DenominadorTipo      = reader.GetValue <string>("denominador");
                        empreendimento.Denominador          = reader.GetValue <string>("denominador_nome");
                        empreendimento.MunicipioId          = reader.GetValue <int>("municipio_id");
                        empreendimento.MunicipioIBGE        = reader.GetValue <int>("municipio_ibge");
                        empreendimento.Municipio            = reader.GetValue <string>("municipio");
                        empreendimento.ModuloFiscalId       = reader.GetValue <int>("modulo_id");
                        empreendimento.ModuloFiscalHA       = reader.GetValue <decimal>("modulo_ha");
                        empreendimento.Uf                   = reader.GetValue <string>("estado");
                        empreendimento.ZonaLocalizacao      = (eZonaLocalizacao)reader.GetValue <int>("zona");
                        empreendimento.ZonaLocalizacaoTexto = reader.GetValue <string>("zona_texto");
                        empreendimento.CNPJ                 = reader.GetValue <string>("cnpj");
                        empreendimento.Codigo               = reader.GetValue <int>("codigo");
                    }

                    reader.Close();
                }

                #endregion
            }

            return(empreendimento);
        }
        public string AbrirModalAcessar(int empreendimentoId)
        {
            EmpreendimentoCaracterizacao empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(empreendimentoId);

            if (empreendimento.ZonaLocalizacao == eZonaLocalizacao.Rural)
            {
                DominialidadeDa dominialidadeDa = new DominialidadeDa();
                Dominialidade   dominialidade   = dominialidadeDa.ObterPorEmpreendimento(empreendimentoId);

                foreach (Dominio dominio in dominialidade.Dominios)
                {
                    if (dominio.ReservasLegais.Exists(x => x.SituacaoId == (int)eReservaLegalSituacao.NaoInformada))
                    {
                        return(Mensagem.ExploracaoFlorestal.EmpreendimentoRuralReservaIndefinida.Texto);
                    }
                }
            }

            return(string.Empty);
        }
        public string AbrirModalAcessar(SilviculturaATV caracterizacao)
        {
            EmpreendimentoCaracterizacao empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(caracterizacao.EmpreendimentoId);

            /*if (empreendimento.ZonaLocalizacao == eZonaLocalizacao.Rural)
             * {
             *      DominialidadeDa dominialidadeDa = new DominialidadeDa();
             *      Dominialidade dominialidade = dominialidadeDa.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId);
             *
             *      foreach (Dominio dominio in dominialidade.Dominios)
             *      {
             *              if (dominio.ReservasLegais.Exists(x => x.SituacaoId == (int)eReservaLegalSituacao.NaoInformada))
             *              {
             *                      return Mensagem.Silvicultura.EmpreendimentoRuralReservaIndefinida.Texto;
             *              }
             *      }
             * }*/

            return(string.Empty);
        }
示例#15
0
        public bool EnviarBasicas(ProjetoDigital projeto, bool validardesatualizadas = false)
        {
            if (projeto.Situacao == (int)eProjetoDigitalSituacao.AguardandoCorrecao)
            {
                Validacao.Add(Mensagem.ProjetoDigital.PossuiPendenciasCorrecao);
                return(false);
            }

            if (projeto.Situacao != (int)eProjetoDigitalSituacao.EmElaboracao)
            {
                Validacao.Add(Mensagem.ProjetoDigital.EnviarSituacaoInvalida);
                return(false);
            }

            if (validardesatualizadas)
            {
                EmpreendimentoCaracterizacao empreendimento  = _busCaracterizacao.ObterEmpreendimentoSimplificado(projeto.EmpreendimentoId.GetValueOrDefault(0));
                List <CaracterizacaoLst>     caracterizacoes = _busCaracterizacao.ObterCaracterizacoesPorProjetoDigital(projeto.Id);

                List <Caracterizacao> cadastradas        = _busCaracterizacao.ObterCaracterizacoesEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(0), projeto.Id) ?? new List <Caracterizacao>();
                List <Caracterizacao> cadastradasInterno = _internoBus.ObterCaracterizacoesAtuais(empreendimento.InternoID, caracterizacoes);

                if (cadastradas != null && cadastradas.Count > 0)
                {
                    List <int> desatualizadas = new List <int>();
                    if (!string.IsNullOrEmpty(_validarCaracterizacao.CaracterizacoesCadastradasDesatualizadas(projeto.EmpreendimentoId.GetValueOrDefault(), cadastradas, cadastradasInterno, out desatualizadas)))
                    {
                        GerenciadorConfiguracao <ConfiguracaoCaracterizacao> configCaracterizacao = new GerenciadorConfiguracao <ConfiguracaoCaracterizacao>(new ConfiguracaoCaracterizacao());
                        Validacao.Add(Mensagem.Caracterizacao.CaracterizacaoDesatualizadaEnviar(
                                          configCaracterizacao.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes)
                                          .Where(x => desatualizadas.Exists(y => y == x.Id))
                                          .Select(x => x.Texto).ToList()
                                          ));
                    }
                }
            }

            return(Validacao.EhValido);
        }
        public ActionResult ObterDadosEmpreendimentoReceptor(int reservaLegal)
        {
            DominialidadeBus             dominialidadeBus       = new DominialidadeBus();
            EmpreendimentoCaracterizacao empreendimentoReceptor = dominialidadeBus.ObterEmpreendimentoReceptor(reservaLegal);
            List <Lista> receptorEmpreendimento = new List <Lista>();

            if (empreendimentoReceptor.Id > 0)
            {
                receptorEmpreendimento.Add(new Lista()
                {
                    Id = empreendimentoReceptor.Id.ToString(), Texto = empreendimentoReceptor.Denominador
                });
            }

            return(Json(new
            {
                Msg = Validacao.Erros,
                EhValido = Validacao.EhValido,
                ReceptorEmpreendimento = receptorEmpreendimento,
                ReceptorDominios = dominialidadeBus.ObterDominiosLista(empreendimentoReceptor.Id),
                ReceptorResponsaveisEmpreendimento = new EmpreendimentoBus().ObterResponsaveisComTipo(empreendimentoReceptor.Id)
            }));
        }
        public CaracterizacaoVM(EmpreendimentoCaracterizacao emp)
        {
            if (emp != null)
            {
                EmpreendimentoId = emp.Id.ToString();
                Codigo           = emp.Codigo;
                CNPJ             = emp.CNPJ;
                DenominadorValor = emp.Denominador;
                DenominadorTexto = emp.DenominadorTipo;
                ListaValor municipio = new ListaValor()
                {
                    Id = 1, Texto = emp.Municipio, IsAtivo = true
                };
                ListaValor uf = new ListaValor()
                {
                    Id = 1, Texto = emp.Uf, IsAtivo = true
                };
                ListaValor zonalocalizacao = new ListaValor()
                {
                    Id = 1, Texto = emp.ZonaLocalizacaoTexto, IsAtivo = true
                };

                Municipio = ViewModelHelper.CriarSelectList(new List <ListaValor>()
                {
                    municipio
                }, true);
                Uf = ViewModelHelper.CriarSelectList(new List <ListaValor>()
                {
                    uf
                }, true);
                ZonaLocalizacao = ViewModelHelper.CriarSelectList(new List <ListaValor>()
                {
                    zonalocalizacao
                }, true);
            }
            MensagensNotificacoes = new List <string>();
        }
示例#18
0
        public bool CopiarDadosCredenciado(int projetoDigitalID, BancoDeDados banco, BancoDeDados bancoCredenciado)
        {
            try
            {
                CaractCredBus.CaracterizacaoBus caracCredBus = new CaractCredBus.CaracterizacaoBus();
                ProjetoDigitalCredenciadoBus    projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();
                int empreendimentoID = projetoDigitalCredenciadoBus.Obter(projetoDigitalID, 0, null, null).EmpreendimentoId ?? 0;

                if (empreendimentoID < 1)
                {
                    return(false);
                }

                EmpreendimentoCaracterizacao empreendimento       = caracCredBus.ObterEmpreendimentoSimplificado(empreendimentoID);
                ProjetoGeograficoBus         projetoGeograficoBus = new ProjetoGeograficoBus();

                List <Dependencia> dependencias = projetoDigitalCredenciadoBus.ObterDependencias(projetoDigitalID);
                ICaracterizacaoBus caracterizacaoBus;
                GerenciadorTransacao.ObterIDAtual();

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

                    foreach (Dependencia item in dependencias.Where(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico).ToList())
                    {
                        projetoGeograficoBus.CopiarDadosCredenciado(item, empreendimento.InternoID, bancoDeDados, bancoCredenciado);

                        if (!Validacao.EhValido)
                        {
                            break;
                        }
                    }

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return(false);
                    }

                    foreach (Dependencia item in dependencias.Where(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.Caracterizacao).ToList())
                    {
                        caracterizacaoBus = CaracterizacaoBusFactory.Criar((eCaracterizacao)item.DependenciaCaracterizacao);

                        if (caracterizacaoBus == null)
                        {
                            Validacao.Add(eTipoMensagem.Erro, item.DependenciaCaracterizacaoTexto + " Bus não criada");
                        }

                        if (!caracterizacaoBus.CopiarDadosCredenciado(item, empreendimento.InternoID, bancoDeDados, bancoCredenciado))
                        {
                            break;
                        }
                    }

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return(false);
                    }

                    Validacao.Add(Mensagem.ProjetoDigital.CopiarCaracterizacao);
                    bancoDeDados.Commit();
                }

                return(true);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
                return(false);
            }
        }
        public void CopiarDadosInstitucional(int empreendimentoID, eCaracterizacao caracterizacaoTipo, int projetoDigitalID, DesassociarDependencias desassociarDependencias)
        {
            try
            {
                EmpreendimentoCaracterizacao empreendimento       = ObterEmpreendimentoSimplificado(empreendimentoID);
                ProjetoGeograficoBus         projetoGeograficoBus = new ProjetoGeograficoBus();

                GerenciadorTransacao.ObterIDAtual();

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

                    if (caracterizacaoTipo != eCaracterizacao.UnidadeProducao && caracterizacaoTipo != eCaracterizacao.UnidadeConsolidacao && caracterizacaoTipo != eCaracterizacao.BarragemDispensaLicenca)
                    {
                        projetoGeograficoBus.CopiarDadosInstitucional(empreendimentoID, empreendimento.InternoID, (eCaracterizacao)caracterizacaoTipo, bancoDeDados);
                    }

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return;
                    }

                    ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(caracterizacaoTipo);
                    if (caracterizacaoBus == null)
                    {
                        Validacao.Add(eTipoMensagem.Erro, "Caracterizacao Bus não criada");
                    }

                    caracterizacaoBus.CopiarDadosInstitucional(empreendimentoID, empreendimento.InternoID, bancoDeDados);

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                        return;
                    }

                    #region Alterar Projeto Digital

                    ProjetoDigital projetoDigital = new ProjetoDigital();
                    projetoDigital.Id = projetoDigitalID;
                    projetoDigital.EmpreendimentoId = empreendimentoID;
                    projetoDigital.Dependencias.Add(new Dependencia()
                    {
                        DependenciaCaracterizacao = (int)caracterizacaoTipo
                    });
                    desassociarDependencias(projetoDigital, bancoDeDados);

                    #endregion

                    if (!Validacao.EhValido)
                    {
                        bancoDeDados.Rollback();
                    }

                    Validacao.Erros.Clear();
                    Validacao.Add(Mensagem.ProjetoDigital.CopiarCaracterizacao);
                    bancoDeDados.Commit();
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
示例#20
0
        public ActionResult Index(int id)
        {
            EmpreendimentoCaracterizacao empreendimento = _bus.ObterEmpreendimentoSimplificado(id);

            if (empreendimento.Id == 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoNaoEncontrado);
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            CaracterizacaoVM vm = new CaracterizacaoVM(empreendimento);

            List <CaracterizacaoLst> caracterizacoes = _bus.CaracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            List <ProjetoGeografico> projetos        = _bus.ObterProjetosEmpreendimento(id);

            if (!_bus.ValidarAcessarTela(caracterizacoes))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            List <Caracterizacao> cadastradas = _bus.ObterCaracterizacoesEmpreendimento(id) ?? new List <Caracterizacao>();

            vm.CaracterizacoesNaoCadastradas = caracterizacoes
                                               .Where(x => !cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                               .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

            vm.CaracterizacoesCadastradas = caracterizacoes
                                            .Where(x => cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                            .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

            List <DependenciaLst> dependencias = _bus.CaracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            vm.CaracterizacoesNaoCadastradas.ForEach(x =>
            {
                x.PodeCadastrar         = User.IsInRole(String.Format("{0}Criar", x.Tipo.ToString()));
                x.ProjetoGeografico     = User.IsInRole("ProjetoGeograficoCriar");
                x.DscLicAtividade       = User.IsInRole("DescricaoLicenciamentoAtividadeCriar");
                x.ProjetoGeoObrigatorio = dependencias.Exists(y =>
                                                              y.DependenteTipo == (int)x.Tipo &&
                                                              y.DependenciaTipo == (int)x.Tipo &&
                                                              y.TipoId == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico);

                x.DscLicAtividadeObrigatorio = dependencias.Exists(y =>
                                                                   y.DependenteTipo == (int)x.Tipo &&
                                                                   y.DependenciaTipo == (int)x.Tipo &&
                                                                   y.TipoId == (int)eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade);

                Caracterizacao cadastrada = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao();
                x.ProjetoGeograficoId     = cadastrada.ProjetoRascunhoId;
                x.DscLicAtividadeId       = cadastrada.DscLicAtividadeId;

                if (x.ProjetoGeograficoId <= 0)
                {
                    x.ProjetoGeograficoId = cadastrada.ProjetoId;
                }

                x.UrlCriar = Url.Action("Criar", x.Tipo.ToString());
            });

            vm.CaracterizacoesCadastradas.ForEach(x =>
            {
                if (User.IsInRole("ProjetoGeograficoEditar") || User.IsInRole("ProjetoGeograficoVisualizar"))
                {
                    x.ProjetoGeografico = true;
                }

                x.ProjetoGeograficoVisualizar =
                    User.IsInRole(ePermissao.ProjetoGeograficoVisualizar.ToString()) &&
                    !User.IsInRole(ePermissao.ProjetoGeograficoCriar.ToString()) &&
                    !User.IsInRole(ePermissao.ProjetoGeograficoEditar.ToString());

                if (User.IsInRole("DescricaoLicenciamentoAtividadeEditar") || User.IsInRole("DescricaoLicenciamentoAtividadeVisualizar"))
                {
                    x.DscLicAtividade = true;
                }

                x.DscLicAtividadeVisualizar =
                    User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeVisualizar.ToString()) &&
                    !User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeCriar.ToString()) &&
                    !User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeEditar.ToString());

                x.PodeEditar     = User.IsInRole(String.Format("{0}Editar", x.Tipo.ToString()));
                x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString()));
                x.PodeExcluir    = User.IsInRole(String.Format("{0}Excluir", x.Tipo.ToString()));

                Caracterizacao cadastrada = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao();
                x.ProjetoGeograficoId     = cadastrada.ProjetoId;
                x.DscLicAtividadeId       = cadastrada.DscLicAtividadeId;

                x.UrlEditar         = Url.Action("Editar", x.Tipo.ToString());
                x.UrlVisualizar     = Url.Action("Visualizar", x.Tipo.ToString());
                x.UrlExcluirConfirm = Url.Action("ExcluirConfirm", x.Tipo.ToString());
                x.UrlExcluir        = Url.Action("Excluir", x.Tipo.ToString());
            });

            #region CAR

            vm.CaracterizacoesCadastradas.Where(x => x.Tipo == eCaracterizacao.CadastroAmbientalRural).ToList().ForEach(x =>
            {
                x.ProjetoGeografico           = false;
                x.ProjetoGeograficoVisualizar = false;
                x.ProjetoGeograficoId         = 0;

                x.DscLicAtividade           = false;
                x.DscLicAtividadeVisualizar = false;
                x.DscLicAtividadeId         = 0;
            });

            #endregion

            return(View("Caracterizacao", vm));
        }
        public ActionResult Index(int id, int projetoDigitalId, bool visualizar = false)
        {
            ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();

            if (id == 0)
            {
                if (!visualizar)
                {
                    ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio);
                }
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            EmpreendimentoCaracterizacao empreendimento = _bus.ObterEmpreendimentoSimplificado(id);
            CaracterizacaoVM             vm             = new CaracterizacaoVM(empreendimento);

            if (empreendimento.InternoID > 0)
            {
                Empreendimento empreendimentoInterno = new EmpreendimentoInternoBus().ObterSimplificado(empreendimento.InternoID);

                if (empreendimento.InternoTID != empreendimentoInterno.Tid)
                {
                    vm.MensagensNotificacoes.Add(Mensagem.Caracterizacao.EmpreendimentoDesatualizado(empreendimentoInterno.Denominador).Texto);
                }
            }

            if (empreendimento.Id == 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoNaoEncontrado);
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            vm.ProjetoDigitalId = projetoDigitalId;
            vm.IsVisualizar     = visualizar;

            List <CaracterizacaoLst> caracterizacoes = _bus.ObterCaracterizacoesPorProjetoDigital(projetoDigitalId);

            if (caracterizacoes.All(carac => carac.Permissao == ePermissaoTipo.NaoPermitido))
            {
                Validacao.Add(Mensagem.Caracterizacao.UsuarioNaoPermitidoParaCaracterizacao);
            }

            caracterizacoes.RemoveAll(caract => caract.Permissao == ePermissaoTipo.NaoPermitido);

            #region Projeto Digital

            if (caracterizacoes == null || caracterizacoes.Count <= 0)
            {
                ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio);

                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            ProjetoDigitalCredenciadoValidar projetoDigitalCredenciadoValidar = new ProjetoDigitalCredenciadoValidar();
            if (!projetoDigitalCredenciadoValidar.PossuiCaracterizacaoAtividade(caracterizacoes, projetoDigitalId))
            {
                if (!visualizar)
                {
                    ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio);
                }
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }
            else
            {
                vm.MostrarFinalizar = (projetoDigitalCredenciadoBus.Obter(projetoDigitalId).Etapa == (int)eProjetoDigitalEtapa.Caracterizacao) && !visualizar;
            }

            #endregion

            List <Caracterizacao> caracterizacoesAssociadas = _bus.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId);
            List <Caracterizacao> cadastradas        = _bus.ObterCaracterizacoesEmpreendimento(id, projetoDigitalId) ?? new List <Caracterizacao>();
            List <Caracterizacao> cadastradasInterno = _internoBus.ObterCaracterizacoesAtuais(empreendimento.InternoID, caracterizacoes);

            if (cadastradas != null && cadastradas.Count > 0)
            {
                List <int> desatualizadas    = new List <int>();
                string     msgDesatualizadas = _validar.CaracterizacoesCadastradasDesatualizadas(empreendimento.Id, cadastradas, cadastradasInterno, out desatualizadas);
                if (!string.IsNullOrEmpty(msgDesatualizadas))
                {
                    vm.MensagensNotificacoes.Add(msgDesatualizadas);
                }
                vm.CaracterizacoesPossivelCopiar = _bus.ObterPossivelCopiar(cadastradas);
                vm.CaracterizacoesPossivelCopiar.AddRange(desatualizadas.Where(x => !vm.CaracterizacoesPossivelCopiar.Exists(y => y == x)));
            }

            vm.CaracterizacoesNaoCadastradas = caracterizacoes
                                               .Where(x => !cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                               .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

            vm.CaracterizacoesCadastradas = caracterizacoes
                                            .Where(x => cadastradas.Where(y => !caracterizacoesAssociadas.Exists(z => z.Tipo == y.Tipo)).Any(y => y.Id > 0 && (int)y.Tipo == x.Id))
                                            .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Id, Nome = z.Texto
            }).ToList();

            vm.CaracterizacoesAssociadas = caracterizacoesAssociadas
                                           .Select(z => new CaracterizacaoVME()
            {
                Tipo = (eCaracterizacao)z.Tipo, Nome = z.Nome
            }).ToList();

            List <DependenciaLst> dependencias = _bus.CaracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            #region Não Cadastradas

            vm.CaracterizacoesNaoCadastradas.ForEach(x =>
            {
                ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(x.Tipo);
                if (caracterizacaoBus != null)
                {
                    x.PodeCopiar = cadastradasInterno.Exists(y => y.Tipo == x.Tipo) && caracterizacaoBus.PodeCopiar(empreendimento.InternoID);
                }

                x.PodeCadastrar         = User.IsInRole(String.Format("{0}Criar", x.Tipo.ToString()));
                x.ProjetoGeografico     = User.IsInRole("ProjetoGeograficoCriar");
                x.ProjetoGeoObrigatorio = dependencias.Exists(y =>
                                                              y.DependenteTipo == (int)x.Tipo &&
                                                              y.DependenciaTipo == (int)x.Tipo &&
                                                              y.TipoId == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico);

                x.ProjetoGeograficoId = (cadastradas.FirstOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao()).ProjetoRascunhoId;

                if (x.ProjetoGeograficoId <= 0)
                {
                    x.ProjetoGeograficoId = (cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao()).ProjetoId;
                }

                x.UrlCriar = Url.Action("Criar", x.Tipo.ToString());
            });

            #endregion

            #region Cadastradas

            vm.CaracterizacoesCadastradas.ForEach(x =>
            {
                if (User.IsInRole("ProjetoGeograficoEditar") || User.IsInRole("ProjetoGeograficoVisualizar"))
                {
                    x.ProjetoGeografico = true;
                }

                x.ProjetoGeograficoVisualizar = visualizar;
                x.PodeEditar     = User.IsInRole(String.Format("{0}Editar", x.Tipo.ToString()));
                x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString()));
                x.PodeExcluir    = (User.IsInRole(String.Format("{0}Excluir", x.Tipo.ToString())) && (x.Tipo == eCaracterizacao.UnidadeConsolidacao || x.Tipo == eCaracterizacao.UnidadeProducao));

                x.PodeCopiar   = cadastradasInterno.Exists(y => y.Tipo == x.Tipo);
                x.PodeAssociar = !caracterizacoesAssociadas.Exists(y => y.Tipo == x.Tipo);

                x.ProjetoGeograficoId = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo).ProjetoId;

                x.UrlEditar         = Url.Action("Editar", x.Tipo.ToString());
                x.UrlVisualizar     = Url.Action("Visualizar", x.Tipo.ToString());
                x.UrlExcluirConfirm = Url.Action("ExcluirConfirm", x.Tipo.ToString());
                x.UrlExcluir        = Url.Action("Excluir", x.Tipo.ToString());
            });

            #endregion

            #region Associadas

            vm.CaracterizacoesAssociadas.ForEach(x =>
            {
                if (User.IsInRole("ProjetoGeograficoVisualizar"))
                {
                    x.ProjetoGeografico           = true;
                    x.ProjetoGeograficoVisualizar = true;
                    x.ProjetoGeograficoId         = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo).ProjetoId;
                }

                x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString()));
                x.UrlVisualizar  = Url.Action("Visualizar", x.Tipo.ToString());
            });

            #endregion

            return(View("Caracterizacao", vm));
        }
 public UnidadeProducao()
 {
     Empreendimento   = new EmpreendimentoCaracterizacao();
     UnidadesProducao = new List <UnidadeProducaoItem>();
 }
示例#23
0
        public bool Salvar(UnidadeProducao caracterizacao, int projetoDigitalId)
        {
            try
            {
                CaracterizacaoBus            caracterizacaoBus = new CaracterizacaoBus();
                EmpreendimentoCaracterizacao empreendimento    = caracterizacaoBus.ObterEmpreendimentoSimplificado(caracterizacao.Empreendimento.Id);

                UnidadeProducaoInternoBus unidadeConsolidacaoInternoBus = new UnidadeProducaoInternoBus();
                UnidadeProducao           caracterizacaoInterno         = unidadeConsolidacaoInternoBus.ObterPorEmpreendimento(empreendimento.InternoID, true);

                caracterizacao.InternoID  = caracterizacaoInterno.Id;
                caracterizacao.InternoTID = caracterizacaoInterno.Tid;

                if (!_validar.Salvar(caracterizacao, projetoDigitalId))
                {
                    return(Validacao.EhValido);
                }

                #region Configurar Salvar

                UnidadeProducao caracterizacaoBanco = ObterPorEmpreendimento(caracterizacao.Empreendimento.Id);

                if (caracterizacaoInterno.Id > 0)
                {
                    caracterizacao.PossuiCodigoPropriedade = caracterizacaoInterno.PossuiCodigoPropriedade;
                    caracterizacao.CodigoPropriedade       = caracterizacaoInterno.CodigoPropriedade;
                }
                else
                {
                    if (!caracterizacao.PossuiCodigoPropriedade)
                    {
                        if (caracterizacao.Id < 1)
                        {
                            caracterizacao.CodigoPropriedade = _da.ObterSequenciaCodigoPropriedade();
                        }
                        else
                        {
                            caracterizacao.CodigoPropriedade = caracterizacaoBanco.CodigoPropriedade;
                        }
                    }
                }

                RequestJson requestJson             = new RequestJson();
                ResponseJsonData <dynamic> resposta = new ResponseJsonData <dynamic>();

                int ultimoCodigoUP = _da.ObterUltimoCodigoUP(caracterizacao.Empreendimento.Id);
                foreach (long item in caracterizacao.UnidadesProducao.Where(x => x.PossuiCodigoUP).Select(x => x.CodigoUP))
                {
                    int aux = Convert.ToInt32(item.ToString().Substring(14));
                    if (aux > ultimoCodigoUP)
                    {
                        ultimoCodigoUP = aux;
                    }
                }

                foreach (UnidadeProducaoItem item in caracterizacao.UnidadesProducao)
                {
                    int codigoIbge = 0;
                    resposta = requestJson.Executar <dynamic>(_configCoordenada.Obter <String>(ConfiguracaoCoordenada.KeyUrlObterMunicipioCoordenada) + "?easting=" + item.Coordenada.EastingUtm + "&northing=" + item.Coordenada.NorthingUtm);

                    if (resposta.Erros != null && resposta.Erros.Count > 0)
                    {
                        Validacao.Erros.AddRange(resposta.Erros);
                        return(Validacao.EhValido);
                    }

                    var objJson = resposta.Data;
                    if (objJson["EstaNoEstado"] && (objJson["Municipio"] == null || Convert.ToInt32(objJson["Municipio"]["IBGE"] ?? 0) == 0))
                    {
                        Validacao.Add(Mensagem.Mapas.MunicipioSemRetorno);
                    }

                    if (!Validacao.EhValido)
                    {
                        return(Validacao.EhValido);
                    }

                    if (objJson["Municipio"] != null)
                    {
                        codigoIbge = Convert.ToInt32(objJson["Municipio"]["IBGE"] ?? 0);
                    }

                    ListaValoresDa listaValoresDa = new ListaValoresDa();
                    item.Municipio = listaValoresDa.ObterMunicipio(codigoIbge);

                    if (!item.PossuiCodigoUP)
                    {
                        item.AnoAbertura = DateTime.Today.Year.ToString().Substring(2);

                        if (item.Id < 1)
                        {
                            ultimoCodigoUP++;

                            item.CodigoUP = Convert.ToInt64(
                                item.Municipio.Ibge.ToString() +
                                caracterizacao.CodigoPropriedade.ToString("D4") +
                                item.AnoAbertura +
                                ultimoCodigoUP.ToString("D2"));
                        }
                        else
                        {
                            item.CodigoUP = caracterizacaoBanco.UnidadesProducao.Single(x => x.Id == item.Id).CodigoUP;
                        }
                    }
                    else
                    {
                        item.AnoAbertura = item.CodigoUP.ToString().Substring(11, 2);
                    }

                    foreach (var aux in item.ResponsaveisTecnicos)
                    {
                        aux.CFONumero = aux.CFONumero.Split('-').GetValue(0).ToString();
                    }
                }

                #endregion

                if (caracterizacao.UnidadesProducao.Any(x => caracterizacao.UnidadesProducao.Count(y => y.CodigoUP == x.CodigoUP) > 1))
                {
                    Validacao.Add(Mensagem.UnidadeProducao.UnidadeProducaoItemIncorreto);
                    return(false);
                }

                foreach (var item in caracterizacao.UnidadesProducao)
                {
                    if (item.CodigoUP.ToString().Substring(7, 4) != caracterizacao.CodigoPropriedade.ToString("D4"))
                    {
                        Validacao.Add(Mensagem.UnidadeProducao.CodigoUPNaoContemCodPropriedade(item.CodigoUP));
                        return(false);
                    }
                }

                GerenciadorTransacao.ObterIDAtual();

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

                    _da.Salvar(caracterizacao, bancoDeDados);

                    Validacao.Add(Mensagem.UnidadeProducao.SalvoSucesso);

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

            return(Validacao.EhValido);
        }
示例#24
0
        internal bool EmpreendimentoSolicitacaoCAR(EmpreendimentoCaracterizacao empreendimento)
        {
            if (object.Equals(empreendimento, null))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
                return(false);
            }

            string situacao = string.Empty;

            if (!String.IsNullOrWhiteSpace(empreendimento.CNPJ))
            {
                situacao = _daCarSolicitacao.EmpreendimentoPossuiSolicitacao(empreendimento.CNPJ);
                if (!String.IsNullOrWhiteSpace(situacao))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                    return(false);
                }

                situacao = _carSolicitacaoInternoDa.EmpreendimentoPossuiSolicitacao(empreendimento.CNPJ);
                if (!String.IsNullOrWhiteSpace(situacao))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                    return(false);
                }
            }
            else
            {
                CARSolicitacao solicitacao = new CARSolicitacao();
                if (empreendimento.InternoID > 0)
                {
                    solicitacao = _daCarSolicitacao.EmpreendimentoPossuiSolicitacaoProjetoDigital(empreendimento.InternoID);
                    if (solicitacao.SituacaoId > 0)
                    {
                        if (solicitacao.SituacaoId == 2)
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred5());
                        }
                        else if (solicitacao.SituacaoId == 5)
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred6());
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred2(solicitacao.ProjetoId, solicitacao.Id));
                        }
                        return(false);
                    }

                    solicitacao = _carSolicitacaoInternoDa.EmpreendimentoPossuiSolicitacaoProjetoDigital(empreendimento.InternoID);
                    if (solicitacao.SituacaoId > 0)
                    {
                        if (solicitacao.SituacaoId == 2)
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred5());
                        }
                        else if (solicitacao.SituacaoId == 5)
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred6());
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred2(solicitacao.ProjetoId, solicitacao.Id));
                        }
                        return(false);
                    }
                }
                else
                {
                    solicitacao = _daCarSolicitacao.EmpreendimentoCredenciadoPossuiSolicitacaoProjetoDigital(empreendimento.Id);
                    if (solicitacao.SituacaoId > 0)
                    {
                        if (solicitacao.SituacaoId == 2)
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred5());
                        }
                        else if (solicitacao.SituacaoId == 5)
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred6());
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Retificacao.msgCred2(solicitacao.ProjetoId, solicitacao.Id));
                        }
                        return(false);
                    }
                }
            }

            return(true);
        }
 public UnidadeConsolidacao()
 {
     ResponsaveisTecnicos = new List <ResponsavelTecnico>();
     Cultivares           = new List <Cultivar>();
     Empreendimento       = new EmpreendimentoCaracterizacao();
 }
示例#26
0
        internal bool Salvar(CARSolicitacao carSolicitacao)
        {
            if (carSolicitacao.ProjetoId < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoObrigatorio);
                return(false);
            }

            if (carSolicitacao.Requerimento.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoRequerimentoObrigatorio);
            }

            if (carSolicitacao.Atividade.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAtividadeObrigatoria);
            }

            if (carSolicitacao.Atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CadastroAmbientalRural))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAtividadeInvalida);
            }

            if (carSolicitacao.Empreendimento.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
            }

            if (carSolicitacao.Empreendimento.Codigo < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoCodigoObrigatorio);
            }

            if (string.IsNullOrEmpty(carSolicitacao.Empreendimento.NomeRazao))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoNomeRazaoObrigatorio);
            }

            if (carSolicitacao.Declarante.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoDeclaranteObrigatorio);
            }

            #region Projeto Digital

            ProjetoDigital projetoDigital = _busProjetoDigital.Obter(carSolicitacao.ProjetoId);

            if (projetoDigital.Situacao == (int)eProjetoDigitalSituacao.AguardandoCorrecao ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.ComPendencia ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.EmCorrecao ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.Finalizado ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.Indeferido ||
                projetoDigital.Situacao == (int)eProjetoDigitalSituacao.EmElaboracao)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SituacaoDeveSerAguardandoImportacao);
            }

            #endregion

            #region Requerimento

            Requerimento requerimento = _busRequerimento.ObterSimplificado(carSolicitacao.Requerimento.Id);

            if (requerimento == null || requerimento.Id < 1)
            {
                Validacao.Add(Mensagem.Requerimento.Inexistente);
            }

            if (requerimento.CredenciadoId != User.FuncionarioId)
            {
                Validacao.Add(Mensagem.Requerimento.PosseCredenciado);
            }

            if (requerimento.Empreendimento.Id < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalSemEmpreendimento);
            }

            #endregion

            #region  Solitação de CAR

            EmpreendimentoCaracterizacao empreendimento = _busCaracterizacao.ObterEmpreendimentoSimplificado(carSolicitacao.Empreendimento.Id);

            /*if (!EmpreendimentoSolicitacaoCAR(empreendimento))
             * {
             *      return false;
             * }*/

            #endregion  Solitação de CAR

            #region Validar Dados da Caracterizacao

            if (projetoDigital.Dependencias.Count(x => x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico) < 1)
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProjetoDigitalDominialidadeAssociada);
            }

            projetoDigital.Dependencias.ForEach(x =>
            {
                if (x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico && x.DependenciaCaracterizacao == (int)eCaracterizacao.Dominialidade)
                {
                    if (_busProjetoGeografico.ObterSitacaoProjetoGeografico(x.DependenciaId) != (int)eProjetoGeograficoSituacao.Finalizado)
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.ProjetoGeograficoNaoEstaFinalizado);
                    }
                }
            });

            #endregion

            #region Validar Dados do Titulo

            String tituloSituacao = _carSolicitacaoInternoDa.ObterSituacaoTituloCARExistente(empreendimento.InternoID);

            if (!String.IsNullOrWhiteSpace(tituloSituacao))
            {
                Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoPossuiTitulo(tituloSituacao));
            }

            #endregion

            return(Validacao.EhValido);
        }