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); }
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); }