示例#1
0
        public UnidadeConsolidacao ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = new UnidadeConsolidacao();

            try
            {
                caracterizacao = _da.ObterPorEmpreendimento(empreendimentoId, simplificado: simplificado);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
示例#2
0
        public UnidadeConsolidacao ObterPorEmpreendimento(int empreendimentoId, int projetoDigitalId = 0, bool simplificado = false, BancoDeDados banco = null)
        {
            UnidadeConsolidacao caracterizacao = null;

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

                if (caracterizacoesAssociadas != null && caracterizacoesAssociadas.Count > 0)
                {
                    caracterizacao = ObterHistorico(caracterizacoesAssociadas.FirstOrDefault().Id, caracterizacoesAssociadas.FirstOrDefault().Tid);
                }
                else
                {
                    caracterizacao = _da.ObterPorEmpreendimento(empreendimentoId, simplificado);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
        internal bool Salvar(UnidadeConsolidacao unidade)
        {
            if (!_caracterizacaoValidar.Basicas(unidade.Empreendimento.Id))
            {
                return(false);
            }

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

            if (unidade.PossuiCodigoUC)
            {
                if (unidade.CodigoUC < 1)
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCObrigatorio);
                }
                else
                {
                    if (unidade.CodigoUC.ToString().Length < 11)
                    {
                        Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCInvalido);
                    }
                    else
                    {
                        if (Convert.ToInt32(unidade.CodigoUC.ToString().Substring(7)) > Convert.ToInt32(_configSys.Obter <String>(ConfiguracaoSistema.KeyUnidadeConsolidacaoMaxCodigoUC)))
                        {
                            Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCSuperiorMaximo);
                        }
                        else if (_da.CodigoUCExiste(unidade))
                        {
                            Validacao.Add(Mensagem.UnidadeConsolidacao.CodigoUCJaExistente);
                        }
                    }
                }
            }

            if (string.IsNullOrWhiteSpace(unidade.LocalLivroDisponivel))
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.LocalLivroDisponivelObrigatorio);
            }

            #region Cultivar

            if (unidade.Cultivares.Count < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.CapacidadeProcessamentoObrigatorioAdicionar);
            }
            else
            {
                if (unidade.Cultivares.Exists(x => x.CulturaId < 1) ||
                    unidade.Cultivares.Exists(x => x.CapacidadeMes <= 0) ||
                    unidade.Cultivares.Exists(x => x.UnidadeMedida < 1))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.PossuiCultivarInvalido);
                }

                if (unidade.Cultivares.Any(x => unidade.Cultivares.Count(y => y.Id == x.Id && y.Id > 0) > 1))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.CultivarJaAdicionado);
                }
            }

            #endregion

            #region Responsável Técnico

            if (unidade.ResponsaveisTecnicos.Count < 1)
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoObrigatorioAdicionar);
            }
            else
            {
                if (unidade.ResponsaveisTecnicos.Exists(x => x.Id < 1) ||
                    unidade.ResponsaveisTecnicos.Exists(x => string.IsNullOrEmpty(x.CFONumero)) ||
                    unidade.ResponsaveisTecnicos.Exists(x => string.IsNullOrEmpty(x.NumeroArt)) ||
                    unidade.ResponsaveisTecnicos.Exists(x => !x.ArtCargoFuncao && !ValidacoesGenericasBus.ValidarData(x.DataValidadeART)))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.PossuiResponsavelTecnicoInvalido);
                }
                else
                {
                    unidade.ResponsaveisTecnicos.ForEach(responsavel =>
                    {
                        ValidarAssociarResponsavelTecnicoHabilitado(new HabilitarEmissaoCFOCFOC {
                            Responsavel = new CredenciadoIntEnt()
                            {
                                Id = responsavel.Id
                            }
                        }, unidade.Cultivares);
                    });
                }

                if (unidade.ResponsaveisTecnicos.Any(x => unidade.ResponsaveisTecnicos.Count(y => y.Id == x.Id) > 1))
                {
                    Validacao.Add(Mensagem.UnidadeConsolidacao.ResponsavelTecnicoJaAdicionado);
                }
            }

            #endregion

            if (string.IsNullOrWhiteSpace(unidade.TipoApresentacaoProducaoFormaIdentificacao))
            {
                Validacao.Add(Mensagem.UnidadeConsolidacao.TipoApresentacaoProducaoFormaIdentificacaoObrigatorio);
            }

            return(Validacao.EhValido);
        }