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