Beispiel #1
0
        /// <summary>
        /// Seleciona os dados pelo ano, curso, currículo e período
        /// </summary>
        /// <param name="cur_id">ID do curso</param>
        /// <param name="crr_id">ID do currículo</param>
        /// <param name="crp_id">ID do período</param>
        /// <param name="anoLetivo">Ano letivo da configuração</param>
        /// <returns></returns>
        public static List <ConfiguracaoAtividade> GetSelectBy_CurriculoPeriodo(
            int cur_id
            , int crr_id
            , int crp_id
            , int anoLetivo
            )
        {
            CLS_ConfiguracaoAtividadeDAO dao = new CLS_ConfiguracaoAtividadeDAO();
            DataTable dt = dao.GetSelectBy_CurriculoPeriodo(cur_id, crr_id, crp_id, anoLetivo);

            List <ConfiguracaoAtividade> listConfgAtiv = new List <ConfiguracaoAtividade>();
            ConfiguracaoAtividade        configuracaoAtividade;

            foreach (DataRow row in dt.Rows)
            {
                configuracaoAtividade = new ConfiguracaoAtividade
                {
                    crp_id                        = Convert.ToInt32(row["crp_id"]),
                    dis_id                        = Convert.ToInt32(row["dis_id"]),
                    dis_nome                      = row["dis_nome"].ToString(),
                    caa_id                        = Convert.ToInt32(row["caa_id"]),
                    ativDiversQtd                 = Convert.ToInt32(row["ativDiversQtd"]),
                    ativDiversRecuperacao         = Convert.ToBoolean(row["ativDiversRecuperacao"]),
                    instruAvalQtd                 = Convert.ToInt32(row["instruAvalQtd"]),
                    instruAvalRecuperacao         = Convert.ToBoolean(row["instruAvalRecuperacao"]),
                    caa_possuiAtividadeAutomatica = Convert.ToBoolean(row["caa_possuiAtividadeAutomatica"])
                };

                listConfgAtiv.Add(configuracaoAtividade);
            }

            return(listConfgAtiv);
        }
        public DespolpamentoCafeVM(DespolpamentoCafe caracterizacao, List <ProcessoAtividadeItem> atividades, List <Lista> coordenadaslst, List <Lista> tipoGeometrico, bool isVisualizar = false, bool isEditar = false)
        {
            IsVisualizar   = isVisualizar;
            Caracterizacao = caracterizacao;
            IsEditar       = isEditar;

            int ativDespCafeId = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.DespolpamentoDescascamentoCafeViaUmida);

            Atividade           = ViewModelHelper.CriarSelectList(atividades.Where(x => x.Id == ativDespCafeId).ToList(), true, true, selecionado: ativDespCafeId.ToString());
            CoodernadaAtividade = new CoordenadaAtividadeVM(Caracterizacao.CoordenadaAtividade, coordenadaslst, tipoGeometrico, IsVisualizar);
        }
        public TerraplanagemVM(Terraplanagem caracterizacao, List <ProcessoAtividadeItem> atividades, List <Lista> coordenadaslst, List <Lista> tipoGeometrico, List <Lista> unidadeMedida, bool isVisualizar = false, bool isEditar = false)
        {
            IsVisualizar   = isVisualizar;
            Caracterizacao = caracterizacao;
            IsEditar       = isEditar;
            int idAtividade = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.TerraplanagemCorteAterro);

            Atividade = ViewModelHelper.CriarSelectList(atividades.Where(x => x.Id == idAtividade).ToList(), true, true, selecionado: idAtividade.ToString());

            CoodernadaAtividade = new CoordenadaAtividadeVM(Caracterizacao.CoordenadaAtividade, coordenadaslst, tipoGeometrico, IsVisualizar);
        }
Beispiel #4
0
        public SilviculturaPPFFVM(SilviculturaPPFF caracterizacao, List <ProcessoAtividadeItem> atividades, List <Municipio> municipios, bool isVisualizar = false, bool isEditar = false)
        {
            IsVisualizar   = isVisualizar;
            Caracterizacao = caracterizacao;
            IsEditar       = isEditar;
            Municipios     = ViewModelHelper.CriarSelectList(municipios, true, true);

            int silviculturaProgramaProdutorFlorestalFomento = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SilviculturaProgramaProdutorFlorestalFomento);

            Atividade = ViewModelHelper.CriarSelectList(atividades.Where(x => x.Id == silviculturaProgramaProdutorFlorestalFomento).ToList(), true, true, selecionado: (silviculturaProgramaProdutorFlorestalFomento).ToString());
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            #region Variáveis

            OutrosInformacaoCorteDa _da = new OutrosInformacaoCorteDa();
            CaracterizacaoBus       caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar   caracterizacaoValidar = new CaracterizacaoValidar();
            List <Dependencia>      dependencias          = new List <Dependencia>();
            OutrosInformacaoCorte   esp             = especificidade as OutrosInformacaoCorte;
            List <Caracterizacao>   caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            int idCaracterizacao;

            #endregion

            RequerimentoAtividade(esp);
            Destinatario(esp.ProtocoloReq.Id, esp.Destinatario, "Outros_Destinatarios");

            // Atividade Informação de corte
            if (esp.Atividades[0].Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.InformacaoDeCorte))
            {
                Validacao.Add(Mensagem.OutrosInformacaoCorte.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.InformacaoCorte);
            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.InformacaoCorte, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.InformacaoCorte, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.OutrosInformacaoCorte.CaracterizacaoValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.InformacaoCorte).Nome));
                }
            }
            else
            {
                Validacao.Add(Mensagem.OutrosInformacaoCorte.CaracterizacaoCadastrada);
            }

            if (esp.InformacaoCorte == 0)
            {
                Validacao.Add(Mensagem.OutrosInformacaoCorte.InformacaoCorteObrigatorio);
            }
            else if (!_da.IsInformacaoCorteCadastrado(esp.InformacaoCorte))
            {
                Validacao.Add(Mensagem.OutrosInformacaoCorte.InformacaoCorteInexistente);
            }
            else if (_da.IsInformacaoCorteAssociado(esp.InformacaoCorte, esp.Id))
            {
                Validacao.Add(Mensagem.OutrosInformacaoCorte.InformacaoCorteAssociado);
            }


            return(Validacao.EhValido);
        }
Beispiel #6
0
        public ProducaoCarvaoVegetalVM(ProducaoCarvaoVegetal caracterizacao, List <ProcessoAtividadeItem> atividades, List <Lista> materiaPrimaConsumida, List <Lista> coordenadaslst, List <Lista> tipoGeometrico, List <Lista> unidadeMedida, bool isVisualizar = false, bool isEditar = false)
        {
            int AtividadeId = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ProducaoCarvaoVegetalExclusivoParaFornosNaoIndustriaisLicenciamento);

            IsVisualizar   = isVisualizar;
            IsEditar       = isEditar;
            Caracterizacao = caracterizacao;
            Atividade      = ViewModelHelper.CriarSelectList(atividades.Where(x => x.Id == AtividadeId).ToList(), true, true, selecionado: AtividadeId.ToString());

            CoodernadaAtividade            = new CoordenadaAtividadeVM(caracterizacao.CoordenadaAtividade, coordenadaslst, tipoGeometrico, isVisualizar);
            MateriaPrimaFlorestalConsumida = new MateriaPrimaFlorestalConsumidaVM(caracterizacao.MateriasPrimasFlorestais, materiaPrimaConsumida, unidadeMedida, isVisualizar);
        }
Beispiel #7
0
        public List <int> ObterAtividadesCaracterizacao(int empreendimento, BancoDeDados banco = null)
        {
            /* Caso em que a caracterizacao só pode ser emitir titulos de uma atividade */
            if (_da.ExisteCaracterizacao(empreendimento))
            {
                return(new List <int>()
                {
                    ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.Silvicultura)
                });
            }

            return(new List <int>());
        }
Beispiel #8
0
        public bool Salvar(IEspecificidade especificidade)
        {
            CertidaoDebito esp = especificidade as CertidaoDebito;

            RequerimentoAtividade(esp);

            Destinatario(especificidade.ProtocoloReq.Id, esp.Destinatario, "CertidaoDebito_Destinatario");

            if (esp.Atividades[0].Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ConsultaDebitoAmbientalFlorestal))
            {
                Validacao.Add(Mensagem.CertidaoDebito.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            return(Validacao.EhValido);
        }
        public SuinoculturaVM(Suinocultura caracterizacao, List <ProcessoAtividadeItem> atividades, List <Lista> coordenadaslst, List <Lista> tipoGeometrico, List <Lista> fases, bool isVisualizar = false, bool isEditar = false)
        {
            IsVisualizar   = isVisualizar;
            Caracterizacao = caracterizacao;
            IsEditar       = isEditar;

            atividades = atividades.Where(x => x.Id == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SuinoculturaCicloCompleto) ||
                                          x.Id == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SuinoculturaExclusivoProducaoLeitoes) ||
                                          x.Id == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SuinoculturaExclusivoTerminacao) ||
                                          x.Id == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SuinoculturaComLançamentoEfluenteLiquidos)).ToList();

            Atividade = ViewModelHelper.CriarSelectList(atividades, true, true, selecionado: caracterizacao.Atividade.ToString());
            Fases     = ViewModelHelper.CriarSelectList(fases, true, true, selecionado: caracterizacao.Fase.ToString());

            CoodernadaAtividade = new CoordenadaAtividadeVM(Caracterizacao.CoordenadaAtividade, coordenadaslst, tipoGeometrico, IsVisualizar);
        }
Beispiel #10
0
        public void Consumo(List <Consumo> consumoLista)
        {
            var count = 0;

            consumoLista.ForEach(r =>
            {
                if (r.Atividade != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.FabricanteMotosserra) &&
                    r.Atividade != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ComercianteMotosserra))
                {
                    if (r.Atividade == 0 || r.FontesEnergia.Count == 0)
                    {
                        Validacao.Add(Mensagem.RegistroAtividadeFlorestal.CamposObrigatorio(count));
                    }
                }

                count++;
            });
        }
Beispiel #11
0
        public ActionResult AtividadeCaracterizacao(EspecificidadeAtividadeCaracterizacaoVME especificidadeDados)
        {
            object retorno = new { };

            int atividadeCodigo = ConfiguracaoAtividade.ObterCodigo(especificidadeDados.AtividadeId);

            switch (atividadeCodigo)
            {
            case (int)eAtividadeCodigo.Barragem:
                #region Barragem

                BarragemBus   _barragemBus = new BarragemBus();
                EspBarragemVM vm           = new EspBarragemVM();
                vm              = new EspBarragemVM();
                vm.BarragemId   = especificidadeDados.DadoAuxiliarJSONDictionary.GetValue <int>("BarragemId");
                vm.IsVisualizar = especificidadeDados.DadoAuxiliarJSONDictionary.GetValue <bool>("IsVisualizar");

                if (string.IsNullOrEmpty(especificidadeDados.DadoAuxiliarJSONDictionary.GetValue <string>("CaracterizacaoTid")) || !vm.IsVisualizar)
                {
                    vm.Barragens = ViewModelHelper.CriarSelectList(_barragemBus.ObterBarragens(especificidadeDados.EmpreendimentoId), true, true, selecionado: vm.BarragemId.ToString());
                }
                else
                {
                    vm.Barragens = ViewModelHelper.CriarSelectList(_barragemBus.ObterBarragens(especificidadeDados.EmpreendimentoId, especificidadeDados.DadoAuxiliarJSONDictionary.GetValue <string>("CaracterizacaoTid"), vm.BarragemId.GetValueOrDefault()), true, true, selecionado: vm.BarragemId.ToString());
                }

                retorno = new
                {
                    @Msg      = Validacao.Erros,
                    @EhValido = Validacao.EhValido,
                    @Html     = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/AtividadeEspecificidade/EspBarragem.ascx", vm)
                };

                #endregion
                break;
            }

            return(Json(retorno, JsonRequestBehavior.AllowGet));
        }
Beispiel #12
0
        public ConsumoVM(Consumo consumo, List <ListaValor> atividades, List <ListaValor> fonteTipos, List <ListaValor> unidades, List <TituloModeloLst> modelosLicenca, string indice, bool isVisualizar = false)
        {
            Indice       = indice;
            IsVisualizar = isVisualizar;
            Consumo      = consumo;

            LicencaVM = new TituloAdicionarVM(modelosLicenca, consumo.Licenca, indice, isVisualizar);

            PossuiFonte =
                !(consumo.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ComercianteMotosserra) ||
                  consumo.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.FabricanteMotosserra));

            Atividade  = ViewModelHelper.CriarSelectList(atividades, true, true, consumo.Atividade.ToString());
            FonteTipos = ViewModelHelper.CriarSelectList(fonteTipos, true, true);
            Unidades   = ViewModelHelper.CriarSelectList(unidades, true, true);

            if (consumo.Atividade > 0 && !atividades.Exists(x => x.Id == consumo.Atividade))
            {
                Atividade.Insert(1, new SelectListItem()
                {
                    Value = consumo.Atividade.ToString(), Text = (consumo.AtividadeCategoria + " - " + consumo.AtividadeNome), Selected = true
                });
            }
        }
Beispiel #13
0
        internal bool Salvar(Aquicultura caracterizacao)
        {
            if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new Aquicultura()).Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            if (!Acessar(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            List <String> atividadesDuplicadas = new List <String>();

            List <int> atividadesIdGrupo1 = ConfiguracaoAtividade.ObterId(
                new[] { (int)eAtividadeCodigo.PisciculturaCarciniculturaEspeciesAguaDoceViveirosEscavadosInclusivePolicultivo01,
                        (int)eAtividadeCodigo.PisciculturaEspeciesAguaDoceViveirosEscavadosUnidadePescaEsportivatipo02,
                        (int)eAtividadeCodigo.CarciniculturaEspeciesAguaDoceViveirosEscavados03 }).ToList();
            int atividadeIdGrupo3 = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CriacaoAnimaisConfinadosPequenoPorteAmbienteAquatico10);

            foreach (var item in caracterizacao.AquiculturasAquicult)
            {
                #region Atividade

                if (item.Atividade <= 0)
                {
                    Validacao.Add(Mensagem.Aquicultura.AtividadeObrigatoria(item.Identificador));
                }
                else
                {
                    if (caracterizacao.AquiculturasAquicult.Where(x => x.Atividade == item.Atividade).ToList().Count >= 2)
                    {
                        atividadesDuplicadas.Add(item.Identificador);
                    }

                    Boolean atividadeGrupo01 = atividadesIdGrupo1.Any(x => x == item.Atividade);
                    Boolean atividadeGrupo03 = atividadeIdGrupo3 == item.Atividade;
                    Boolean atividadeGrupo02 = (!atividadeGrupo01 && !atividadeGrupo03);

                    #region Grupo de Atividade 01

                    if (atividadeGrupo01)
                    {
                        #region Area Total Inundada

                        if (!String.IsNullOrWhiteSpace(item.AreaInundadaTotal))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.AreaInundadaTotal, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalMaiorZero(item.Identificador));
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalInvalido(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalObrigatorio(item.Identificador));
                        }

                        #endregion

                        #region Nº de viveiros escavados

                        if (!String.IsNullOrWhiteSpace(item.NumViveiros))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.NumViveiros, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.Aquicultura.NumViveiroMaiorZero(item.Identificador));
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.Aquicultura.NumViveiroInvalido(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.NumViveiroObrigatorio(item.Identificador));
                        }

                        #endregion

                        item.NumUnidadeCultivos = string.Empty;
                        item.Cultivos.Clear();
                        item.AreaCultivo = string.Empty;
                    }

                    #endregion

                    #region Grupo de Atividade 02

                    if (atividadeGrupo02)
                    {
                        #region Cultivos

                        if (item.Cultivos.Count <= 0)
                        {
                            Validacao.Add(Mensagem.Aquicultura.CultivosObrigatorio);
                        }

                        if (!String.IsNullOrWhiteSpace(item.NumUnidadeCultivos))
                        {
                            int aux = 0;
                            Int32.TryParse(item.NumUnidadeCultivos, out aux);

                            if (aux <= 0)
                            {
                                Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosMaiorZero(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosObrigatorio(item.Identificador));
                        }

                        int numeroUnidadeCultivos = 0;
                        Int32.TryParse(item.NumUnidadeCultivos, out numeroUnidadeCultivos);

                        if (numeroUnidadeCultivos < item.Cultivos.Count)
                        {
                            Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosMenorQueCultivosAdicionados(item.Identificador));
                        }

                        #endregion

                        item.AreaInundadaTotal = string.Empty;
                        item.NumViveiros       = string.Empty;
                        item.AreaCultivo       = string.Empty;
                    }

                    #endregion

                    #region Grupo de Atividade 03

                    if (atividadeGrupo03)
                    {
                        #region Área do Cultivo

                        if (!String.IsNullOrWhiteSpace(item.AreaCultivo))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.AreaCultivo, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.Aquicultura.AreaCultivoMaiorZero(item.Identificador));
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.Aquicultura.AreaCultivoInvalido(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.AreaCultivoObrigatorio(item.Identificador));
                        }

                        #endregion

                        item.AreaInundadaTotal  = string.Empty;
                        item.NumViveiros        = string.Empty;
                        item.NumUnidadeCultivos = string.Empty;
                        item.Cultivos.Clear();
                    }

                    #endregion
                }

                #endregion

                #region Coordenadas

                if (item.CoordenadaAtividade.Id <= 0)
                {
                    Validacao.Add(Mensagem.Aquicultura.CoordenadaAtividadeObrigatoria(item.Identificador));
                }

                if (item.CoordenadaAtividade.Tipo <= 0)
                {
                    Validacao.Add(Mensagem.Aquicultura.GeometriaTipoObrigatorio(item.Identificador));
                }

                #endregion
            }

            if (atividadesDuplicadas.Count > 0)
            {
                Validacao.Add(Mensagem.Aquicultura.AtividadeDuplicada(atividadesDuplicadas));
            }

            return(Validacao.EhValido);
        }
        public bool Salvar(CARSolicitacao entidade)
        {
            if (!_protocoloDa.EmPosse(entidade.Protocolo.Id.GetValueOrDefault()))
            {
                Validacao.Add(Mensagem.CARSolicitacao.ProtocoloPosse);
                return(false);
            }

            if (entidade.SituacaoId <= 0)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoSituacaoObrigatoria);
            }

            if (entidade.Protocolo == null || entidade.Protocolo.Id.GetValueOrDefault(0) <= 0)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoProtocoloObrigatorio);
            }

            if (entidade.Requerimento.Id <= 0)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoRequerimentoObrigatorio);
            }

            _requerimentoValidar.Existe(entidade.Requerimento.Id);

            if (entidade.SituacaoId == (int)eCARSolicitacaoSituacao.EmCadastro)
            {
                if (entidade.Protocolo.Id.GetValueOrDefault() != entidade.ProtocoloSelecionado.Id.GetValueOrDefault())
                {
                    if (!_da.ExisteProtocoloAssociado(entidade.Protocolo.Id.GetValueOrDefault(), entidade.ProtocoloSelecionado.Id.GetValueOrDefault()))
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoRequerimentoDesassociadoProtocolo(entidade.Requerimento.Numero.ToString()));
                    }
                }

                String numeroProtocoloPai = _da.ObterNumeroProtocoloPai(entidade.Protocolo.Id.GetValueOrDefault(0));
                if (!String.IsNullOrWhiteSpace(numeroProtocoloPai))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoProtocoloApensadoEmOutroProcesso(numeroProtocoloPai));
                }
            }

            #region Atividade

            if (entidade.Atividade.Id <= 0)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAtividadeObrigatoria);
            }
            else
            {
                if (entidade.Atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CadastroAmbientalRural))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAtividadeInvalida);
                }
            }

            #endregion Atividade

            #region Validar Dados do Titulo

            String tituloSituacao = _da.ObterSituacaoTituloCARExistente(entidade.Empreendimento.Id);

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

            #endregion Validar Dados do Titulo

            #region Empreendimento

            if (!entidade.Empreendimento.Codigo.HasValue)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoCodigoObrigatorio);
            }

            if (entidade.Empreendimento.Id <= 0)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoEmpreendimentoObrigatorio);
            }
            else
            {
                String situacao = _da.EmpreendimentoPossuiSolicitacao(entidade.Id, entidade.Empreendimento.Id);
                if (!String.IsNullOrEmpty(situacao))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                    return(Validacao.EhValido);
                }

                situacao = _carSolicitacaoCredenciadoBus.EmpreendimentoPossuiSolicitacao(entidade.Empreendimento.Id);
                if (!String.IsNullOrEmpty(situacao))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                    return(Validacao.EhValido);
                }

                entidade.Empreendimento.CNPJ = _da.ObterCNPJEmpreendimento(entidade.Empreendimento.Id);
                if (!String.IsNullOrWhiteSpace(entidade.Empreendimento.CNPJ))
                {
                    situacao = _carSolicitacaoCredenciadoBus.EmpreendimentoPossuiSolicitacao(entidade.Empreendimento.CNPJ);
                    if (!String.IsNullOrEmpty(situacao))
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoJaPossuiSolicitacao(situacao));
                        return(Validacao.EhValido);
                    }
                }
            }

            #endregion Empreendimento

            #region Validar Dados da Caracterizacao

            if (_da.EmpreendimentoProjetoGeograficoDominialidadeNaoFinalizado(entidade.Empreendimento.Id))
            {
                Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoProjetoGeograficoDominialidadeNaoFinalizado);
            }
            else
            {
                int idCaracterizacao = 0;
                List <Dependencia> dependencias;

                idCaracterizacao = _caracterizacaoBus.Existe(entidade.Empreendimento.Id, eCaracterizacao.Dominialidade);

                if (idCaracterizacao > 0)
                {
                    dependencias = _caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);
                    if (_caracterizacaoValidar.DependenciasAlteradas(entidade.Empreendimento.Id, (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                    {
                        Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoDominialidadeInvalida);
                    }
                }
                else
                {
                    Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoDominialidadeInexistente);
                }
            }

            #endregion Validar Dados da Caracterizacao

            if (entidade.Declarante.Id <= 0)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoDeclaranteObrigatorio);
            }

            return(Validacao.EhValido);
        }
        public bool ValidarTituloGenericoAtividadeCaracterizacao(IEspecificidade especificidade, eEspecificidade tipo = eEspecificidade.Nulo)
        {
            CaracterizacaoBus              busCaracterizacao     = new CaracterizacaoBus();
            GerenciadorConfiguracao        configAtividade       = new GerenciadorConfiguracao(new ConfiguracaoAtividade());
            GerenciadorConfiguracao        configCaracterizacao  = new GerenciadorConfiguracao(new ConfiguracaoCaracterizacao());
            List <AtividadeCaracterizacao> lstAtivCaract         = configAtividade.Obter <List <AtividadeCaracterizacao> >(ConfiguracaoAtividade.KeyAtividadesCaracterizacoes);
            List <Caracterizacao>          lstCaracterizacoes    = busCaracterizacao.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            List <CaracterizacaoLst>       lstCnfCaracterizacoes = configCaracterizacao.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            //List<DependenciaLst> lstCnfDependencias = configCaracterizacao.Obter<List<DependenciaLst>>(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);
            EspecificidadeBusBase _busEspBase = new EspecificidadeBusBase();

            foreach (var item in especificidade.Atividades)
            {
                if (item.Id == 0)
                {
                    continue;
                }

                var ativCaract = lstAtivCaract.FirstOrDefault(x => x.AtividadeId == item.Id);

                if (ativCaract == null || ativCaract.AtividadeId != item.Id || !ativCaract.IsTituloGenerico)
                {
                    EspecificidadeDa _daEsp = new EspecificidadeDa();
                    item.NomeAtividade = _daEsp.ObterAtividadeNome(item.Id);
                    Validacao.Add(Mensagem.Especificidade.AtividadeNaoConfiguradaNaAtividadeCaracte(item.NomeAtividade, especificidade.Titulo.ModeloSigla));
                    continue;
                }

                Caracterizacao     caracterizacao     = lstCaracterizacoes.Find(x => x.Tipo == (eCaracterizacao)ativCaract.CaracterizacaoTipoId);
                CaracterizacaoLst  caracterizacaoTipo = lstCnfCaracterizacoes.Find(x => x.Id == ativCaract.CaracterizacaoTipoId);
                ICaracterizacaoBus busCaract          = CaracterizacaoBusFactory.Criar(caracterizacao.Tipo);

                if (busCaract == null)
                {
                    throw new Exception("CaracterizacaoBusFactory não implementada para o tipo " + caracterizacaoTipo.Texto);
                }

                List <int> atividadesCaract = busCaract.ObterAtividadesCaracterizacao(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());

                if (atividadesCaract == null || atividadesCaract.Count == 0)
                {
                    Validacao.Add(Mensagem.Especificidade.CaracterizacaoNaoPreenchida(caracterizacaoTipo.Texto));
                    continue;
                }

                if (!atividadesCaract.Exists(x => x == item.Id))
                {
                    Validacao.Add(Mensagem.Especificidade.AtividadeDiferenteCaracterizacao(caracterizacaoTipo.Texto));
                    continue;
                }

                List <Dependencia> lstDependenciaAteradas = busCaracterizacao.ObterDependenciasAlteradas(
                    especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(),
                    caracterizacao.Id,
                    (eCaracterizacao)caracterizacaoTipo.Id,
                    eCaracterizacaoDependenciaTipo.Caracterizacao);

                if (lstDependenciaAteradas != null && lstDependenciaAteradas.Count > 0)
                {
                    Validacao.Add(Mensagem.Especificidade.CaracterizacaoDependencias(caracterizacaoTipo.Texto));

                    /*Validacao.Add(Mensagem.Especificidade.CaracterizacaoDependencias(String.Join(", ", lstDependenciaAteradas.Select(x =>
                     *      String.Format("{0} - {1}",
                     *      lstCnfDependencias.Single(y => y.Id == x.DependenciaTipo).TipoTexto,
                     *      lstCnfCaracterizacoes.Single(y => y.Id == x.DependenciaCaracterizacao).Texto)
                     * ).ToArray())));*/
                }
            }

            switch (tipo)
            {
            case eEspecificidade.LicencaAmbientalRegularizacao:
            case eEspecificidade.LicencaAmbientalUnica:
            case eEspecificidade.LicencaSimplificada:
            case eEspecificidade.LicencaInstalacao:
            case eEspecificidade.LicencaOperacao:
            case eEspecificidade.LicencaPrevia:
                if (especificidade.Atividades.Count > 0)
                {
                    especificidade.AtividadeCaractTipo =
                        (eAtividadeCodigo)ConfiguracaoAtividade.ObterCodigo(especificidade.Atividades[0].Id);
                }

                switch (especificidade.AtividadeCaractTipo)
                {
                case eAtividadeCodigo.Barragem:
                    var configEspAtivCaract = _busEspBase.GetConfigAtivEspCaracterizacao((int)tipo);
                    var list = configEspAtivCaract.GetListValue <int>("Atividades");

                    if (especificidade is ILicenca && list.Where(x => x == (int)eAtividadeCodigo.Barragem).ToList().Count > 0)
                    {
                        _validarLicenca.Validar(especificidade as ILicenca);
                    }

                    break;
                }
                break;
            }
            return(Validacao.EhValido);
        }
        public AviculturaVM(Avicultura caracterizacao, List <ProcessoAtividadeItem> atividades, List <Lista> confinamentofinalidadeslst, List <Lista> coordenadaslst, List <Lista> tipoGeometrico, bool isVisualizar = false, bool isEditar = false)
        {
            IsVisualizar   = isVisualizar;
            Caracterizacao = caracterizacao;
            IsEditar       = isEditar;
            Finalidades    = ViewModelHelper.CriarSelectList(confinamentofinalidadeslst, true, true);

            Atividade           = ViewModelHelper.CriarSelectList(atividades.Where(x => x.Codigo == (int)eAtividadeCodigo.Avicultura).ToList(), true, true, selecionado: (ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.Avicultura)).ToString());
            CoodernadaAtividade = new CoordenadaAtividadeVM(Caracterizacao.CoordenadaAtividade, coordenadaslst, tipoGeometrico, IsVisualizar);
        }
Beispiel #17
0
        internal bool Salvar(Suinocultura caracterizacao)
        {
            if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new Suinocultura()).Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            if (!Acessar(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            #region Atividade

            if (caracterizacao.Atividade <= 0)
            {
                Validacao.Add(Mensagem.Suinocultura.AtividadeObrigatoria);
            }
            else
            {
                if (ConfiguracaoAtividade.ObterId(new[] {
                    (int)eAtividadeCodigo.SuinoculturaCicloCompleto,
                    (int)eAtividadeCodigo.SuinoculturaComLançamentoEfluenteLiquidos,
                    (int)eAtividadeCodigo.SuinoculturaExclusivoTerminacao
                }).Any(x => x == caracterizacao.Atividade))
                {
                    if (!String.IsNullOrWhiteSpace(caracterizacao.NumeroCabecas))
                    {
                        decimal aux = 0;
                        if (Decimal.TryParse(caracterizacao.NumeroCabecas, out aux))
                        {
                            if (aux <= 0)
                            {
                                Validacao.Add(Mensagem.Suinocultura.NumeroCabecaMaiorZero);
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Suinocultura.NumeroCabecaInvalido);
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.Suinocultura.NumeroCabecaObrigatorio);
                    }
                }

                if (caracterizacao.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SuinoculturaExclusivoProducaoLeitoes))
                {
                    if (!String.IsNullOrWhiteSpace(caracterizacao.NumeroMatrizes))
                    {
                        decimal aux = 0;
                        if (Decimal.TryParse(caracterizacao.NumeroMatrizes, out aux))
                        {
                            if (aux <= 0)
                            {
                                Validacao.Add(Mensagem.Suinocultura.NumeroMatrizesMaiorZero);
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Suinocultura.NumeroMatrizesInvalido);
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.Suinocultura.NumeroMatrizesObrigatorio);
                    }
                }
            }

            #endregion

            if (caracterizacao.Fase <= 0)
            {
                Validacao.Add(Mensagem.Suinocultura.FaseObrigatoria);
            }


            if (caracterizacao.ExisteBiodigestor == null)
            {
                Validacao.Add(Mensagem.Suinocultura.ExisteBiodigestorObrigatorio);
            }

            if (caracterizacao.PossuiFabricaRacao == null)
            {
                Validacao.Add(Mensagem.Suinocultura.PossuiFabricaRacaoObrigatorio);
            }

            _coordenadaValidar.Salvar(caracterizacao.CoordenadaAtividade);

            return(Validacao.EhValido);
        }
Beispiel #18
0
        internal bool Salvar(BeneficiamentoMadeira caracterizacao)
        {
            if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new BeneficiamentoMadeira()).Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            if (!Acessar(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            List <String> atividadesDuplicadas = new List <String>();

            foreach (var item in caracterizacao.Beneficiamentos)
            {
                #region Atividade

                if (item.Atividade <= 0)
                {
                    Validacao.Add(Mensagem.BeneficiamentoMadeira.AtividadeObrigatoria(item.Identificador));
                }
                else
                {
                    if (caracterizacao.Beneficiamentos.Where(x => x.Atividade == item.Atividade).ToList().Count >= 2)
                    {
                        atividadesDuplicadas.Add(item.Identificador);
                    }

                    if (item.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.SerrariasQuandoNaoAssociadasAFabricacaoDeEstruturas))
                    {
                        if (!String.IsNullOrWhiteSpace(item.VolumeMadeiraSerrar))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.VolumeMadeiraSerrar, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraSerrarMaiorZero);
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraSerrarInvalido);
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraSerrarObrigatorio);
                        }
                    }


                    if (item.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.FabricacaoDeEstruturasDeMadeiraComAplicacaoRural))
                    {
                        if (!String.IsNullOrWhiteSpace(item.VolumeMadeiraProcessar))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.VolumeMadeiraProcessar, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraProcessarMaiorZero);
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraProcessarInvalido);
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.BeneficiamentoMadeira.VolumeMadeiraProcessarObrigatorio);
                        }
                    }
                }



                #endregion

                #region Coordenadas

                if (item.CoordenadaAtividade.Id <= 0)
                {
                    Validacao.Add(Mensagem.BeneficiamentoMadeira.CoordenadaAtividadeObrigatoria(item.Identificador));
                }

                if (item.CoordenadaAtividade.Tipo <= 0)
                {
                    Validacao.Add(Mensagem.BeneficiamentoMadeira.GeometriaTipoObrigatorio(item.Identificador));
                }

                #endregion

                #region Materias

                if (item.MateriasPrimasFlorestais.Count <= 0)
                {
                    Validacao.Add(Mensagem.MateriaPrimaFlorestalConsumida.MateriaObrigatoria);
                }

                #endregion

                if (String.IsNullOrWhiteSpace(item.EquipControlePoluicaoSonora))
                {
                    Validacao.Add(Mensagem.BeneficiamentoMadeira.EquipControlePoluicaoSonoraObrigatorio(item.Identificador));
                }
            }

            if (atividadesDuplicadas.Count > 0)
            {
                Validacao.Add(Mensagem.BeneficiamentoMadeira.AtividadeDuplicada(atividadesDuplicadas));
            }


            return(Validacao.EhValido);
        }
Beispiel #19
0
        public bool Salvar(IEspecificidade especificidade)
        {
            TermoCPFARLCR         esp                   = especificidade as TermoCPFARLCR;
            TermoCPFARLCRDa       termoCPFARLCRDa       = new TermoCPFARLCRDa();
            CaracterizacaoBus     caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar();
            DominialidadeDa       dominialidadeDa       = new DominialidadeDa();
            EspecificidadeDa      especificidadeDa      = new EspecificidadeDa();
            GerenciadorConfiguracao <ConfiguracaoCaracterizacao> caracterizacaoConfig = new GerenciadorConfiguracao <ConfiguracaoCaracterizacao>(new ConfiguracaoCaracterizacao());
            string           caracterizacaoTipo = caracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes).Single(x => x.Id == (int)eCaracterizacao.Dominialidade).Texto;
            List <PessoaLst> responsaveis       = new List <PessoaLst>();

            RequerimentoAtividade(esp, jaAssociado: false);

            #region Básicas

            if (esp.CedenteDominioID <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.CedenteDominioObrigatorio);
            }

            if (esp.CedenteARLCompensacao == null || esp.CedenteARLCompensacao.Count <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.CedenteARLCompensacaoObrigatoria);
            }
            else
            {
                if (esp.CedenteARLCompensacao.Any(x => esp.CedenteARLCompensacao.Count(y => y.Id == x.Id && y.Id > 0) > 1))
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.CedenteARLCompensacaoDuplicada);
                }
            }

            if (esp.CedenteResponsaveisEmpreendimento == null || esp.CedenteResponsaveisEmpreendimento.Count <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoObrigatorio("Cedente", "cedente"));
            }
            else
            {
                if (esp.CedenteResponsaveisEmpreendimento.Any(x => esp.CedenteResponsaveisEmpreendimento.Count(y => y.Id == x.Id && y.Id > 0) > 1))
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoDuplicado("Cedente", "cedente"));
                }
            }

            if (esp.ReceptorEmpreendimentoID <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.ReceptorEmpreendimentoObrigatorio);
            }

            if (esp.ReceptorDominioID <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.ReceptorDominioObrigatorio);
            }

            if (esp.ReceptorResponsaveisEmpreendimento == null || esp.ReceptorResponsaveisEmpreendimento.Count <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoObrigatorio("Receptor", "receptor"));
            }
            else
            {
                if (esp.ReceptorResponsaveisEmpreendimento.Any(x => esp.ReceptorResponsaveisEmpreendimento.Count(y => y.Id == x.Id && y.Id > 0) > 1))
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoDuplicado("Receptor", "receptor"));
                }
            }

            if (string.IsNullOrWhiteSpace(esp.NumeroAverbacao))
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.NumeroAverbacaoObrigatorio);
            }

            ValidacoesGenericasBus.DataMensagem(esp.DataEmissao, "DataEmissao", "emissão");

            #endregion Básicas

            if (esp.Atividades.First().Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ReservaLegal))
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

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

            #region Cedente

            Dominialidade dominialidadeCedente = dominialidadeDa.ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0));
            dominialidadeCedente.Dependencias = caracterizacaoBus.ObterDependencias(dominialidadeCedente.Id, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);

            if (dominialidadeCedente == null || dominialidadeCedente.Id <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.DominialidadeInexistente("cedente", caracterizacaoTipo));
            }
            else
            {
                string retorno = caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.Dominialidade,
                                                                             eCaracterizacaoDependenciaTipo.Caracterizacao, dominialidadeCedente.Dependencias);

                if (!string.IsNullOrEmpty(retorno))
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.CaracterizacaoDeveEstarValida("cedente", caracterizacaoTipo));
                }
                else
                {
                    List <ReservaLegal> reservas = dominialidadeCedente.Dominios.SelectMany(x => x.ReservasLegais).Where(x => esp.CedenteARLCompensacao.Select(y => y.Id).Any(y => y == x.Id)).ToList();

                    if (reservas.Any(x => !x.Compensada))
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.ARLCedenteTipoInvalida);
                    }

                    if (reservas.Any(x => x.SituacaoId != (int)eReservaLegalSituacao.Proposta))
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.ARLCedenteSituacaoInvalida);
                    }

                    if (reservas.Any(x => x.SituacaoVegetalId != (int)eReservaLegalSituacaoVegetal.Preservada && x.SituacaoVegetalId != (int)eReservaLegalSituacaoVegetal.EmRecuperacao))
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.ARLCedenteSituacaoVegetalInvalida);
                    }

                    if (!dominialidadeCedente.Dominios.Any(x => x.Id.GetValueOrDefault() == esp.CedenteDominioID))
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.DominioDessassociado("cedente"));
                    }

                    esp.CedenteARLCompensacao.ForEach(reserva =>
                    {
                        ReservaLegal aux = reservas.SingleOrDefault(x => x.Id == reserva.Id);

                        if (aux == null || aux.Id <= 0)
                        {
                            Validacao.Add(Mensagem.TermoCPFARLCR.ReservaLegalDessassociadoCedente(reserva.Identificacao));
                        }
                        else
                        {
                            if (aux.MatriculaId != esp.ReceptorDominioID)
                            {
                                Validacao.Add(Mensagem.TermoCPFARLCR.ReservaLegalDessassociadoReceptorDominio(reserva.Identificacao));
                            }
                        }
                    });
                }
            }

            responsaveis = especificidadeDa.ObterEmpreendimentoResponsaveis(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0));
            esp.CedenteResponsaveisEmpreendimento.ForEach(resp =>
            {
                PessoaLst aux = responsaveis.SingleOrDefault(x => x.Id == resp.Id);

                if (aux == null || aux.Id <= 0)
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelDessassociado("cedente", resp.NomeRazao));
                }
            });

            #endregion Cedente

            #region Receptor

            Dominialidade dominialidadeReceptor = dominialidadeDa.ObterPorEmpreendimento(esp.ReceptorEmpreendimentoID);
            dominialidadeReceptor.Dependencias = caracterizacaoBus.ObterDependencias(dominialidadeReceptor.Id, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);

            if (dominialidadeReceptor == null || dominialidadeReceptor.Id <= 0)
            {
                Validacao.Add(Mensagem.TermoCPFARLCR.DominialidadeInexistente("receptor", caracterizacaoTipo));
            }
            else
            {
                string retorno = caracterizacaoValidar.DependenciasAlteradas(esp.ReceptorEmpreendimentoID, (int)eCaracterizacao.Dominialidade,
                                                                             eCaracterizacaoDependenciaTipo.Caracterizacao, dominialidadeReceptor.Dependencias);

                if (!string.IsNullOrEmpty(retorno))
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.CaracterizacaoDeveEstarValida("receptor", caracterizacaoTipo));
                }
                else
                {
                    if (!dominialidadeReceptor.Dominios.Any(x => x.Id.GetValueOrDefault() == esp.ReceptorDominioID))
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.DominioDessassociado("receptor"));
                    }

                    List <ReservaLegal> reservas = dominialidadeReceptor.Dominios.SelectMany(x => x.ReservasLegais).Where(x => esp.CedenteARLCompensacao.Select(y => y.Id).Any(y => y == x.IdentificacaoARLCedente)).ToList();

                    esp.CedenteARLCompensacao.ForEach(reserva =>
                    {
                        if (!reservas.Any(x => x.IdentificacaoARLCedente == reserva.Id))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLCR.ReservaLegalDessassociadoReceptor(reserva.Identificacao));
                        }
                    });
                }
            }

            responsaveis = especificidadeDa.ObterEmpreendimentoResponsaveis(esp.ReceptorEmpreendimentoID);
            esp.ReceptorResponsaveisEmpreendimento.ForEach(resp =>
            {
                PessoaLst aux = responsaveis.SingleOrDefault(x => x.Id == resp.Id);

                if (aux == null || aux.Id <= 0)
                {
                    Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelDessassociado("receptor", resp.NomeRazao));
                }
            });

            #endregion Receptor

            List <TituloModeloLst> lista = termoCPFARLCRDa.ObterTitulosCedenteReceptor(esp.CedenteDominioID, esp.ReceptorDominioID);
            lista.ForEach(titulo =>
            {
                if (titulo.Id != esp.Titulo.Id)
                {
                    if (string.IsNullOrEmpty(titulo.Texto))
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.DominioPossuiTituloCadastrado(titulo.Situacao));
                    }
                    else
                    {
                        Validacao.Add(Mensagem.TermoCPFARLCR.DominioPossuiTituloConcluido(titulo.Sigla, titulo.Texto, titulo.Situacao));
                    }
                }
            });

            return(Validacao.EhValido);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            LaudoVistoriaFomentoFlorestal esp = especificidade as LaudoVistoriaFomentoFlorestal;

            RequerimentoAtividade(esp, false, true);

            Destinatario(especificidade.ProtocoloReq.Id, esp.Destinatario, "Laudo_Destinatario");

            ValidacoesGenericasBus.DataMensagem(esp.DataVistoria, "Laudo_DataVistoria_DataTexto", "vistoria");

            if (String.IsNullOrWhiteSpace(esp.Objetivo))
            {
                Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.ObjetivoObrigatorio);
            }

            if (String.IsNullOrWhiteSpace(esp.Consideracoes))
            {
                Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.ConsideracoesObrigatorio);
            }

            if (String.IsNullOrWhiteSpace(esp.DescricaoParecer))
            {
                Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.ParecerTecnicoObrigatorio);
            }

            if (esp.ConclusaoTipo <= 0)
            {
                Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.ConclusaoObrigatoria);
            }

            #region Caracterizacao

            CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus();
            int caracterizacao = caracterizacaoBus.Existe(esp.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.SilviculturaATV);

            if (caracterizacao <= 0)
            {
                Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.CaracterizacaoCadastrada);
            }
            else
            {
                CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar();
                List <Dependencia>    dependencias          = caracterizacaoBus.ObterDependencias(caracterizacao, eCaracterizacao.SilviculturaATV, eCaracterizacaoDependenciaTipo.Caracterizacao);

                string retorno = caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(),
                                                                             (int)eCaracterizacao.SilviculturaATV,
                                                                             eCaracterizacaoDependenciaTipo.Caracterizacao,
                                                                             dependencias);

                if (!string.IsNullOrEmpty(retorno))
                {
                    List <CaracterizacaoLst> caracterizacoes = _caracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
                    Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.CaracterizacaoInvalida(caracterizacoes.SingleOrDefault(x => x.Id == (int)eCaracterizacao.SilviculturaATV).Texto));
                }
            }

            #endregion

            #region Atividade

            foreach (var atividade in esp.Atividades)
            {
                if (atividade.Id != 0 && atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ImplantacaoAtividadeSilviculturaReferenteAoFomentoFlorestal))
                {
                    List <ProcessoAtividadeItem> atividades = _atividadeConfig.Obter <List <ProcessoAtividadeItem> >(ConfiguracaoProcesso.KeyAtividadesProcesso);
                    Validacao.Add(Mensagem.LaudoVistoriaFomentoFlorestal.AtividadeInvalida(atividades.SingleOrDefault(x => x.Id == atividade.Id).Texto));
                }
            }

            #endregion

            return(Validacao.EhValido);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            TermoCPFARLDa         _da = new TermoCPFARLDa();
            EspecificidadeDa      _daEspecificidade     = new EspecificidadeDa();
            DominialidadeDa       _daDominialidade      = new DominialidadeDa();
            CaracterizacaoBus     caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar();
            List <Dependencia>    dependencias          = new List <Dependencia>();
            TermoCPFARL           esp             = especificidade as TermoCPFARL;
            List <Caracterizacao> caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            List <PessoaLst>      destinatarios   = _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id);
            List <ReservaLegal>   reservas;
            int idCaracterizacao;
            int tipo;

            RequerimentoAtividade(esp);

            if (esp.Atividades[0].Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ReservaLegal))
            {
                Validacao.Add(Mensagem.TermoCPFARLMsg.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            if (esp.Destinatarios.Count == 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("Termo_Destinatario"));
            }
            else
            {
                esp.Destinatarios.ForEach(x =>
                {
                    if (destinatarios.SingleOrDefault(y => y.Id == x.Id) == null)
                    {
                        Validacao.Add(Mensagem.Especificidade.DestinatarioDesassociado("Termo_Destinatario", x.Nome));
                    }
                    else
                    {
                        tipo = _daEspecificidade.ObterDadosPessoa(x.Id).Tipo;
                        if (tipo == 3 || tipo == 4)
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.DestinatarioNaoPermitido);
                        }
                    }
                });
            }

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.Dominialidade);
            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.TermoCPFARLMsg.CaracterizacaoDeveEstarValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.Dominialidade).Nome));
                }
                else
                {
                    reservas = new List <ReservaLegal>();

                    Dominialidade dominialidade = _daDominialidade.ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0));
                    dominialidade.Dominios.ForEach(x => { x.ReservasLegais.ForEach(reserva => { reservas.Add(reserva); }); });

                    if (reservas == null || reservas.Count == 0)
                    {
                        Validacao.Add(Mensagem.TermoCPFARLMsg.ArlInexistente);
                    }
                    else
                    {
                        if (reservas.Exists(x => x.SituacaoVegetalId == (int)eReservaLegalSituacaoVegetal.NaoCaracterizada || x.SituacaoVegetalId == (int)eReservaLegalSituacaoVegetal.EmUso))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.ARLSituacaoVegetalInvalida);
                        }

                        if (reservas.Exists(x => x.SituacaoId != (int)eReservaLegalSituacao.Proposta))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.DominioSituacaoInvalida);
                        }

                        if (reservas.Exists(x => x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoMatriculaCedente ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoMatriculaReceptora ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoEmpreendimentoCedente ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoEmpreendimentoReceptora))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.LocalizacaoInvalida);
                        }
                    }
                }
            }
            else
            {
                Validacao.Add(Mensagem.TermoCPFARLMsg.DominialidadeInexistente);
            }

            return(Validacao.EhValido);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            OficioUsucapiao esp = especificidade as OficioUsucapiao;

            if (!RequerimentoAtividade(esp, false, false))
            {
                return(false);
            }

            if (!String.IsNullOrWhiteSpace(esp.Dimensao))
            {
                Decimal aux = 0;
                if (Decimal.TryParse(esp.Dimensao, out aux))
                {
                    if (aux <= 0)
                    {
                        Validacao.Add(Mensagem.OficioUsucapiao.DimensaoMaiorZero);
                    }
                }
                else
                {
                    Validacao.Add(Mensagem.OficioUsucapiao.DimensaoInvalida);
                }
            }
            else
            {
                Validacao.Add(Mensagem.OficioUsucapiao.DimensaoObrigatoria);
            }

            if (String.IsNullOrWhiteSpace(esp.Destinatario))
            {
                Validacao.Add(Mensagem.OficioUsucapiao.DestinatarioPGEObrigatorio);
            }

            if (String.IsNullOrWhiteSpace(esp.Descricao))
            {
                Validacao.Add(Mensagem.OficioUsucapiao.DescricaoOficioObrigatorio);
            }

            if (!esp.EmpreendimentoTipo.HasValue)
            {
                Validacao.Add(Mensagem.OficioUsucapiao.EmpreedimentoTipoObrigatorio);
            }


            #region Atividade

            foreach (var atividade in esp.Atividades)
            {
                if (atividade.Id != 0)
                {
                    if (atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.UsucapiaoRural) && atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.UsucapiaoUrbano))
                    {
                        List <ProcessoAtividadeItem> atividades = _atividadeConfig.Obter <List <ProcessoAtividadeItem> >(ConfiguracaoProcesso.KeyAtividadesProcesso);
                        Validacao.Add(Mensagem.OficioUsucapiao.AtividadeInvalida(atividades.SingleOrDefault(x => x.Id == atividade.Id).Texto));
                    }
                }
            }

            #endregion

            return(Validacao.EhValido);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            CadastroAmbientalRuralTitulo esp = especificidade as CadastroAmbientalRuralTitulo;

            List <Dependencia>    dependencias    = new List <Dependencia>();
            List <Caracterizacao> caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            int idCaracterizacao;

            RequerimentoAtividade(esp);

            if (Destinatario(especificidade.ProtocoloReq.Id, esp.Destinatario, "CadastroAmbientalRuralTitulo_Destinatario"))
            {
                if (!ValidarDestinatarioIsRepresentanteEmpreendimento(esp.ProtocoloReq.Id, esp.Destinatario))
                {
                    Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.DestinatarioNaoEstaAssociadoEmpreendimento);
                }
            }

            if (esp.Atividades[0].Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CadastroAmbientalRural))
            {
                Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.AtividadeInvalida);
            }
            else
            {
                String tituloNumero = _da.ObterNumeroTituloCARExistente(esp.Titulo.EmpreendimentoId.GetValueOrDefault(0));

                if (!String.IsNullOrWhiteSpace(tituloNumero))
                {
                    Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.AtividadeJaAssociadaOutroTitulo(tituloNumero));
                }
            }

            #region Caracterizacao

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.CadastroAmbientalRural);
            if (idCaracterizacao > 0)
            {
                if (especificidade.Titulo.EmpreendimentoId.GetValueOrDefault() > 0)
                {
                    if (_da.EmpreendimentoCaracterizacaoCARNaoFinalizada(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()))
                    {
                        Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.EmpreendimentoCaracterizacaoCARNaoFinalizada);
                        return(Validacao.EhValido);
                    }
                }

                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.CadastroAmbientalRural, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.CadastroAmbientalRural, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.CaracterizacaoValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.CadastroAmbientalRural).Nome));
                }
            }
            else
            {
                Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.CaracterizacaoNaoCadastrada);
            }

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.Dominialidade);
            if (idCaracterizacao > 0)
            {
                if (_da.EmpreendimentoCaracterizacaoCARNaoFinalizada(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()))
                {
                    Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.EmpreendimentoCaracterizacaoCARNaoFinalizada);
                    return(Validacao.EhValido);
                }

                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.CaracterizacaoValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.Dominialidade).Nome));
                }
            }
            else
            {
                Validacao.Add(Mensagem.CadastroAmbientalRuralTitulo.DominialidadeInexistente);
            }

            #endregion

            return(Validacao.EhValido);
        }
Beispiel #24
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);
        }
Beispiel #25
0
        internal bool Salvar(RegistroAtividadeFlorestal caracterizacao)
        {
            if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new RegistroAtividadeFlorestal()).Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            #region Numero

            if (!caracterizacao.PossuiNumero.HasValue)
            {
                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.PossuiNumeroObrigatorio);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.NumeroRegistro) && caracterizacao.PossuiNumero.GetValueOrDefault())
            {
                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroRegistroObrigatorio);
            }
            else if (!ValidacoesGenericasBus.ValidarNumero(caracterizacao.NumeroRegistro, 9) && caracterizacao.PossuiNumero.GetValueOrDefault())
            {
                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroRegistroInvalido);
            }
            else if (_da.IsNumeroUtilizado(caracterizacao.NumeroRegistro, caracterizacao.EmpreendimentoId))
            {
                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroUtilizado);
            }
            else if (caracterizacao.PossuiNumero.GetValueOrDefault())
            {
                int numeroMaximo = _config.RegAtvFlorestalNumeroMaximo;
                if (Convert.ToInt32(caracterizacao.NumeroRegistro) > numeroMaximo)
                {
                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroRegistroSuperiorMax(numeroMaximo.ToString()));
                }
            }

            #endregion

            if (caracterizacao.Consumos.Count <= 0)
            {
                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.ConsumoObrigatorio);
            }

            #region Consumos

            var count = 0;
            caracterizacao.Consumos.ForEach(r =>
            {
                if (caracterizacao.Consumos.Any(x => caracterizacao.Consumos.Count(y => y.Atividade == x.Atividade) > 1))
                {
                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.CategoriaDuplicada);
                    return;
                }

                AtividadeSolicitada atividadeSolicitada = _da.ObterAtividadeSolicitada(r.Atividade);
                if (atividadeSolicitada != null && !atividadeSolicitada.Situacao)
                {
                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.AtividadeDesabilitada(atividadeSolicitada.Texto, count));
                }
                else
                {
                    if (r.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.FabricanteMotosserra) ||
                        r.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ComercianteMotosserra))
                    {
                        r.FontesEnergia.Clear();
                    }
                    else
                    {
                        if (r.Atividade == 0)
                        {
                            Validacao.Add(Mensagem.RegistroAtividadeFlorestal.CategoriaObrigatoria(count));
                            return;
                        }

                        if (r.FontesEnergia.Count == 0)
                        {
                            Validacao.Add(Mensagem.RegistroAtividadeFlorestal.FonteEnergiaObrigatoria(count));
                            return;
                        }
                    }

                    if (!r.PossuiLicencaAmbiental.HasValue)
                    {
                        Validacao.Add(Mensagem.RegistroAtividadeFlorestal.PossuiLicencaAmbiental(count));
                    }
                    else
                    {
                        switch (r.PossuiLicencaAmbiental.GetValueOrDefault())
                        {
                        case ConfiguracaoSistema.NAO:
                            if (_caracterizacaoValidar.AtividadeLicencaObrigatoria(r.Atividade))
                            {
                                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.LicencaAmbientalObrigatoria(count, atividadeSolicitada.Categoria + " - " + atividadeSolicitada.Texto));
                            }
                            break;

                        case ConfiguracaoSistema.SIM:
                            if (!r.Licenca.EmitidoPorInterno.HasValue)
                            {
                                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.EmitidoIDAFOuExterno(count));
                            }
                            else
                            {
                                if (r.Licenca.TituloModelo == 0)
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.ModeloLicencaObrigatorio(count));
                                }

                                if (string.IsNullOrWhiteSpace(r.Licenca.TituloModeloTexto))
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.ModeloLicencaObrigatorio(count));
                                }

                                if (string.IsNullOrWhiteSpace(r.Licenca.TituloNumero))
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroLicencaObrigatorio(count));
                                }
                                else
                                {
                                    if (r.Licenca.EmitidoPorInterno.Value && !ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(r.Licenca.TituloNumero))
                                    {
                                        Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroLicencaInvalido(count));
                                    }
                                }

                                ValidacoesGenericasBus.DataMensagem(r.Licenca.TituloValidadeData, "TituloValidadeData_DataTexto" + count, "validade", false);

                                if (string.IsNullOrWhiteSpace(r.Licenca.ProtocoloNumero))
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroProtocoloLicencaObrigatorio(count));
                                }

                                if (r.Licenca.TituloValidadeData.Data.GetValueOrDefault() < DateTime.Today || !r.Licenca.ProtocoloRenovacaoData.IsEmpty)
                                {
                                    ValidacoesGenericasBus.DataMensagem(r.Licenca.ProtocoloRenovacaoData, "ProtocoloRenovacaoData_DataTexto" + count, "renovação");
                                }

                                if (!r.Licenca.ProtocoloRenovacaoData.IsEmpty && (r.Licenca.TituloValidadeData.Data.GetValueOrDefault().AddDays(-120)) < r.Licenca.ProtocoloRenovacaoData.Data)
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.RenovacaoDataMaiorValidade(count));
                                }

                                if (r.Licenca.TituloValidadeData.Data.GetValueOrDefault() < DateTime.Today && string.IsNullOrWhiteSpace(r.Licenca.ProtocoloRenovacaoNumero))
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroProtocoloRenovacaoObrigatorio(count));
                                }

                                if (!r.Licenca.EmitidoPorInterno.Value && string.IsNullOrWhiteSpace(r.Licenca.OrgaoExpedidor))
                                {
                                    Validacao.Add(Mensagem.RegistroAtividadeFlorestal.OrgaoExpedidoObrigatorio(count));
                                }
                            }
                            break;

                        case ConfiguracaoSistema.Dispensado:
                            if (!r.Licenca.EmitidoPorInterno.HasValue)
                            {
                                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.GrupoDispensadoEmitidoIDAFOuExterno(count));
                            }

                            if (string.IsNullOrWhiteSpace(r.Licenca.TituloModeloTexto))
                            {
                                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.DocumentoObrigatorio(count));
                            }

                            if (string.IsNullOrWhiteSpace(r.Licenca.ProtocoloNumero))
                            {
                                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroProtocoloLicencaObrigatorio(count));
                            }

                            if (string.IsNullOrWhiteSpace(r.Licenca.OrgaoExpedidor))
                            {
                                Validacao.Add(Mensagem.RegistroAtividadeFlorestal.OrgaoEmissorObrigatorio(count));
                            }
                            break;

                        default:
                            break;
                        }
                    }

                    if (string.IsNullOrWhiteSpace(r.DUANumero))
                    {
                        Validacao.Add(Mensagem.RegistroAtividadeFlorestal.DUANumeroObrigatorio(count));
                    }

                    if (Convert.ToDecimal(r.DUAValor) <= 0)
                    {
                        Validacao.Add(Mensagem.RegistroAtividadeFlorestal.DUAValorObrigatorio(count));
                    }

                    ValidacoesGenericasBus.DataMensagem(r.DUADataPagamento, "DUADataPagamento" + count, "pagamento do DUA");
                }

                count++;
            });

            #endregion

            return(Validacao.EhValido);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            #region Validacoes Genericas

            LaudoAuditoriaFomentoFlorestal esp = especificidade as LaudoAuditoriaFomentoFlorestal;
            RequerimentoAtividade(esp, false, true);

            Destinatario(especificidade.ProtocoloReq.Id, esp.Destinatario, "Laudo_Destinatario");

            ValidacoesGenericasBus.DataMensagem(esp.DataVistoria, "Laudo_DataVistoria_DataTexto", "vistoria");

            #endregion

            #region Objetivo

            if (String.IsNullOrWhiteSpace(esp.Objetivo))
            {
                Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.ObjetivoObrigatorio);
            }

            #endregion

            #region PlantioAPP

            if (!esp.PlantioAPP.HasValue)
            {
                Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioAPPObrigatorio);
            }
            else
            {
                if (esp.PlantioAPP.Value == 1)
                {
                    if (!String.IsNullOrWhiteSpace(esp.PlantioAPPArea))
                    {
                        Decimal aux = 0;
                        if (!Decimal.TryParse(esp.PlantioAPPArea, out aux))
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioAPPAreaInvalida);
                        }

                        if (aux <= 0)
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioAPPAreaMaiorZero);
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioAPPAreaObrigatoria);
                    }
                }
            }

            #endregion

            #region PlantioMudasEspeciesFlorestNativas

            if (!esp.PlantioMudasEspeciesFlorestNativas.HasValue)
            {
                Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasObrigatorio);
            }
            else
            {
                if (esp.PlantioMudasEspeciesFlorestNativas.Value == 1)
                {
                    if (!String.IsNullOrWhiteSpace(esp.PlantioMudasEspeciesFlorestNativasArea))
                    {
                        Decimal aux = 0;
                        if (!Decimal.TryParse(esp.PlantioMudasEspeciesFlorestNativasArea, out aux))
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasAreaInvalida);
                        }

                        if (aux <= 0)
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasAreaMaiorZero);
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasAreaObrigatoria);
                    }

                    if (!String.IsNullOrWhiteSpace(esp.PlantioMudasEspeciesFlorestNativasQtd))
                    {
                        Decimal aux = 0;
                        if (!Decimal.TryParse(esp.PlantioMudasEspeciesFlorestNativasQtd, out aux))
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasQtdInvalida);
                        }

                        if (aux <= 0)
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasQtdMaiorZero);
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PlantioMudasEspeciesFlorestNativasQtdObrigatoria);
                    }
                }
            }

            #endregion

            #region PreparoSolo

            if (!esp.PreparoSolo.HasValue)
            {
                Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PreparoSoloObrigatorio);
            }
            else
            {
                if (esp.PreparoSolo.Value == 1)
                {
                    if (!String.IsNullOrWhiteSpace(esp.PreparoSoloArea))
                    {
                        Decimal aux = 0;
                        if (!Decimal.TryParse(esp.PreparoSoloArea, out aux))
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PreparoSoloAreaInvalida);
                        }

                        if (aux <= 0)
                        {
                            Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PreparoSoloAreaMaiorZero);
                        }
                    }
                    else
                    {
                        Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.PreparoSoloAreaObrigatoria);
                    }
                }
            }

            #endregion

            #region Resultado

            if (esp.ResultadoTipo <= 0)
            {
                Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.ResultadoObrigatorio);
            }
            else
            {
                if (esp.ResultadoTipo == (int)eEspecificidadeResultado.NaoConforme)
                {
                    if (String.IsNullOrWhiteSpace(esp.ResultadoQuais))
                    {
                        Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.ResultadoQuaisObrigatorio);
                    }
                }
            }

            #endregion

            #region Caracterizacao

            CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus();
            int caracterizacao = caracterizacaoBus.Existe(esp.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.SilviculturaATV);

            if (caracterizacao <= 0)
            {
                Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.CaracterizacaoCadastrada);
            }
            else
            {
                CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar();
                List <Dependencia>    dependencias          = caracterizacaoBus.ObterDependencias(caracterizacao, eCaracterizacao.SilviculturaATV, eCaracterizacaoDependenciaTipo.Caracterizacao);

                string retorno = caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(),
                                                                             (int)eCaracterizacao.SilviculturaATV,
                                                                             eCaracterizacaoDependenciaTipo.Caracterizacao,
                                                                             dependencias);

                if (!string.IsNullOrEmpty(retorno))
                {
                    List <CaracterizacaoLst> caracterizacoes = _caracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
                    Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.CaracterizacaoInvalida(caracterizacoes.SingleOrDefault(x => x.Id == (int)eCaracterizacao.SilviculturaATV).Texto));
                }
            }

            #endregion

            #region Atividade

            foreach (var atividade in esp.Atividades)
            {
                if (atividade.Id != 0 && atividade.Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ImplantacaoAtividadeSilviculturaReferenteAoFomentoFlorestal))
                {
                    List <ProcessoAtividadeItem> atividades = _atividadeConfig.Obter <List <ProcessoAtividadeItem> >(ConfiguracaoProcesso.KeyAtividadesProcesso);
                    Validacao.Add(Mensagem.LaudoAuditoriaFomentoFlorestal.AtividadeInvalida(atividades.SingleOrDefault(x => x.Id == atividade.Id).Texto));
                }
            }

            #endregion

            return(Validacao.EhValido);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            #region Variáveis

            OutrosLegitimacaoTerraDevolutaDa _da                 = new OutrosLegitimacaoTerraDevolutaDa();
            CaracterizacaoBus              caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar          caracterizacaoValidar = new CaracterizacaoValidar();
            List <Dependencia>             dependencias          = new List <Dependencia>();
            OutrosLegitimacaoTerraDevoluta esp             = especificidade as OutrosLegitimacaoTerraDevoluta;
            List <Caracterizacao>          caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            int    idCaracterizacao;
            string titulo = string.Empty;

            #endregion

            #region Requerimento

            //O requerimento <nº> não está mais associado ao processo <nº>.
            //A atividade <nome> não está mais associada ao processo.
            //A atividade <nome> deve estar na situação ‘em andamento’.
            //Este modelo de título não foi solicitado para a atividade <nome>’.

            RequerimentoAtividade(esp, apenasObrigatoriedade: true);

            #endregion

            #region Atividade

            //O modelo de título <nome do modelo> não pode ser utilizado para atividade <nome da atividade selecionada na especificidade do título>.
            if (!ConfiguracaoAtividade.ObterId(new[] {
                (int)eAtividadeCodigo.RegularizacaoFundiariaRural,
                (int)eAtividadeCodigo.RegularizacaoFundiariaUrbana,
                (int)eAtividadeCodigo.RegularizacaoFundiariaRuralOriundaDeProcessoDiscriminatorio,
                (int)eAtividadeCodigo.RegularizacaoFundiariaUrbanaOriundaDeProcessoDiscriminatorio
            }).Any(x => x == esp.Atividades[0].Id))
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            #endregion

            #region Destinatários

            if (esp.Destinatarios.Count == 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("Outros_Destinatarios"));
            }
            else
            {
                esp.Destinatarios.ForEach(x =>
                {
                    Destinatario(esp.ProtocoloReq.Id, x.Id, "Outros_Destinatarios");
                });
            }

            #endregion

            #region Caracterização

            //A caracterização de <nome da caracterização> deve estar cadastrada.
            //Para cadastrar este modelo de título é necessário ter os dados da caracterização <nome da caracterização dependente> válidos.

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.RegularizacaoFundiaria);
            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.CaracterizacaoValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.RegularizacaoFundiaria).Nome));
                }
            }
            else
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.CaracterizacaoCadastrada);
            }

            #endregion

            #region Posse

            if (esp.Dominio == 0)
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.DominioObrigatorio);
            }
            else
            {
                if (!_da.IsDominioCadastrado(esp.Dominio))
                {
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.DominioInexistente);
                }

                TituloEsp tituloAux = _da.IsDominioAssociado(esp.Dominio, esp.Titulo.Id);
                switch ((eTituloSituacao)tituloAux.SituacaoId)
                {
                case eTituloSituacao.Cadastrado:
                case eTituloSituacao.Emitido:
                case eTituloSituacao.Assinado:
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.PosseAssociadaSituacao(tituloAux.SituacaoTexto));
                    break;

                case eTituloSituacao.Concluido:
                case eTituloSituacao.Prorrogado:
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.PosseAssociadaNumero(tituloAux.Numero.Texto));
                    break;
                }
            }

            #endregion

            if (string.IsNullOrWhiteSpace(esp.ValorTerreno))
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.ValorTerrenoObrigatorio);
            }

            if (!esp.IsInalienabilidade.HasValue)
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.IsInalienabilidadeObrigatorio);
            }

            if (esp.MunicipioGlebaId <= 0)
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.MunicipioGlebaObrigatorio);
            }

            return(Validacao.EhValido);
        }