public IHttpActionResult Inserir([FromBody] InventarioAtividadeModelo inventarioAtividadeModelo) { try { this.inventariosAtividadeNegocio.InserirInventarioAtividade(inventarioAtividadeModelo); return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK, $"Inserção do inventário de atividade ocorrida com sucesso"))); } catch (InvalidOperationException exception) { throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest, "Inventário de Atividade não encontrado.", exception), exception); } catch (Exception exception) { throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest, "Erro ao inserir Inventário de Atividade", exception), exception); } }
public LOG_INVENTARIO_ATIVIDADE Inserir(InventarioAtividadeModelo novoInventario, long codInventarioInserido, DB_LaborSafetyEntities entities = null) { if (entities == null) { entities = new DB_LaborSafetyEntities(); } #region Insere os dados do log de inventário LOG_INVENTARIO_ATIVIDADE logInventario = new LOG_INVENTARIO_ATIVIDADE(); logInventario.CodLogTipoOperacao = (long)Constantes.TipoOperacaoLog.INSERCAO; logInventario.CodInventarioAtividade = codInventarioInserido; logInventario.CodUsuarioModificador = novoInventario.EightIDUsuarioModificador; logInventario.DataAlteracao = DateTime.Now; entities.LOG_INVENTARIO_ATIVIDADE.Add(logInventario); entities.SaveChanges(); #endregion return(logInventario); }
public void EditarInventarioAtividade(RascunhoInventarioAtividadeModelo rascunhoInventarioAtividadeModelo) { validadorRascunhoInventarioAtividade.ValidaEdicao(rascunhoInventarioAtividadeModelo); List <LOCAL_INSTALACAO> locaisInstalacao = new List <LOCAL_INSTALACAO>(); using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities); for (int i = 0; i < rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE.Count; i++) { var codigoLocal = rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE[i].LocalInstalacao.CodLocalInstalacao; var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codigoLocal, entities); //Filtra somente os locais do pai List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado); //List<LOCAL_INSTALACAO> locaisFilhos = // rascunhoInventarioAtividadePersistencia.BuscaFilhosPorNivel(codigoLocal, entities); locaisInstalacao.AddRange(locaisEFilhos); } this.rascunhoInventarioAtividadePersistencia.EditarRascunhoInventarioAtividade(rascunhoInventarioAtividadeModelo, entities, locaisInstalacao, transaction); if (rascunhoInventarioAtividadeModelo.novoInventario) { // inserir inventario de verdade InventarioAtividadeModelo inventarioAtividadeModelo = new InventarioAtividadeModelo(); inventarioAtividadeModelo.CodInventarioAtividade = rascunhoInventarioAtividadeModelo.CodRascunhoInventarioAtividade; inventarioAtividadeModelo.Codigo = rascunhoInventarioAtividadeModelo.Codigo; inventarioAtividadeModelo.CodPeso = (long)rascunhoInventarioAtividadeModelo.CodPeso; inventarioAtividadeModelo.CodPerfilCatalogo = (long)rascunhoInventarioAtividadeModelo.CodPerfilCatalogo; inventarioAtividadeModelo.CodDuracao = (long)rascunhoInventarioAtividadeModelo.CodDuracao; inventarioAtividadeModelo.CodAtividade = (long)rascunhoInventarioAtividadeModelo.CodAtividade; inventarioAtividadeModelo.CodDisciplina = (long)rascunhoInventarioAtividadeModelo.CodDisciplina; inventarioAtividadeModelo.Descricao = rascunhoInventarioAtividadeModelo.Descricao; inventarioAtividadeModelo.RiscoGeral = (int)rascunhoInventarioAtividadeModelo.RiscoGeral; inventarioAtividadeModelo.ObservacaoGeral = rascunhoInventarioAtividadeModelo.ObservacaoGeral; inventarioAtividadeModelo.DataAtualizacao = DateTime.Now; inventarioAtividadeModelo.Ativo = true; List <RiscoInventarioAtividadeModelo> listaRisco = new List <RiscoInventarioAtividadeModelo>(); foreach (var itemRiscoRascunho in rascunhoInventarioAtividadeModelo.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE) { RiscoInventarioAtividadeModelo risco = new RiscoInventarioAtividadeModelo(); risco.CodInventarioAtividade = itemRiscoRascunho.CodRascunhoInventarioAtividade; risco.Ativo = true; risco.CodRiscoInventarioAtividade = itemRiscoRascunho.CodRiscoRascunhoInventarioAtividade; risco.CodRisco = itemRiscoRascunho.CodRisco; risco.CodSeveridade = itemRiscoRascunho.CodSeveridade; risco.FonteGeradora = itemRiscoRascunho.FonteGeradora; risco.ProcedimentoAplicavel = itemRiscoRascunho.ProcedimentoAplicavel; risco.ContraMedidas = itemRiscoRascunho.ContraMedidas; risco.EPIRiscoInventarioAtividadeModelo = new List <EPIRiscoInventarioAtividadeModelo>(); var listaEPI = itemRiscoRascunho.EPIRiscoRascunhoInventarioAtividadeModelo .Where(a => a.CodRiscoRascunhoInventarioAtividade == itemRiscoRascunho.CodRisco).ToList(); foreach (var itemListaEpi in listaEPI) { EPIRiscoInventarioAtividadeModelo epi = new EPIRiscoInventarioAtividadeModelo(); epi.CodEPI = itemListaEpi.CodEPI; epi.CodEpiRiscoInventarioAtividade = itemListaEpi.CodEpiRiscoRascunhoInventarioAtividade; epi.CodRiscoInventarioAtividade = itemListaEpi.CodRiscoRascunhoInventarioAtividade; risco.EPIRiscoInventarioAtividadeModelo.Add(epi); } listaRisco.Add(risco); } inventarioAtividadeModelo.RISCO_INVENTARIO_ATIVIDADE = listaRisco; List <LOCAL_INSTALACAO> novosLocais = new List <LOCAL_INSTALACAO>(); foreach (var itemNovosLocais in rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE) { var localInst = entities.LOCAL_INSTALACAO.Where(local => local.CodLocalInstalacao == itemNovosLocais.LocalInstalacao.CodLocalInstalacao).FirstOrDefault(); novosLocais.Add(localInst); } foreach (var itemLi in novosLocais) { var unicoInventario = inventarioAtividadePersistencia.ListarInventarioAtividadePorAtividadeDisciplinaLI(inventarioAtividadeModelo.CodAtividade, inventarioAtividadeModelo.CodDisciplina, itemLi.CodLocalInstalacao, entities); if (unicoInventario != null) { var atvPadrao = atividadePersistencia.ListarAtividadePorId(inventarioAtividadeModelo.CodAtividade); var disciplina = disciplinaPersistencia.ListarDisciplinaPorId(inventarioAtividadeModelo.CodDisciplina); throw new Exception($"Já existe um inventário de atividade com atividade padrão {atvPadrao.Nome}, disciplina {disciplina.Nome} e local de instalação {itemLi.Nome}"); } } var resultadoInsercao = inventarioAtividadePersistencia.Inserir(inventarioAtividadeModelo, entities, novosLocais); inventarioAtividadeModelo.EightIDUsuarioModificador = rascunhoInventarioAtividadeModelo.EightIDUsuarioModificador; logInventarioAtividadePersistencia.Inserir(inventarioAtividadeModelo, resultadoInsercao.CodInventarioAtividade, entities); } entities.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }
public LOG_INVENTARIO_ATIVIDADE Editar(InventarioAtividadeModelo novoInventario, List <LOCAL_INSTALACAO> locaisInstalacao, DB_LaborSafetyEntities entities = null) { if (entities == null) { entities = new DB_LaborSafetyEntities(); } //Busca os dados do inventario antigo (anterior à edição) var inventarioAtividadeExistente = entities.INVENTARIO_ATIVIDADE .Include(x => x.RISCO_INVENTARIO_ATIVIDADE) .Include(x => x.LOCAL_INSTALACAO_INVENTARIO_ATIVIDADE) .Include(x => x.RISCO_INVENTARIO_ATIVIDADE.Select(sev => sev.SEVERIDADE)) .Include(x => x.RISCO_INVENTARIO_ATIVIDADE.Select(risco => risco.RISCO)) .Include(x => x.RISCO_INVENTARIO_ATIVIDADE.Select(risco => risco.RISCO).Select(tpr => tpr.TIPO_RISCO)) .Include(x => x.RISCO_INVENTARIO_ATIVIDADE.Select(risco => risco.EPI_RISCO_INVENTARIO_ATIVIDADE)) .Where(invAmb => invAmb.CodInventarioAtividade == novoInventario.CodInventarioAtividade && invAmb.Ativo).FirstOrDefault(); if (inventarioAtividadeExistente == null) { throw new Exception("Inventário não encontrado na base de dados"); } //Verifica se já existe LOG var logExistente = entities.LOG_INVENTARIO_ATIVIDADE.Where(x => x.CodInventarioAtividade == novoInventario.CodInventarioAtividade).FirstOrDefault(); #region Insere os dados do log de inventário LOG_INVENTARIO_ATIVIDADE logInventario = new LOG_INVENTARIO_ATIVIDADE(); logInventario.CodLogTipoOperacao = (long)Constantes.TipoOperacaoLog.EDICAO; //Armazena os LI's antigos string codigoLIsAntigos = string.Empty; foreach (var li in inventarioAtividadeExistente.LOCAL_INSTALACAO_INVENTARIO_ATIVIDADE) { codigoLIsAntigos += codigoLIsAntigos.Length == 0 ? li.CodLocalInstalacao.ToString() : "," + li.CodLocalInstalacao; } logInventario.CodLIsAntigos = codigoLIsAntigos; //Armazena os LI's novos string codigoLIsNovos = string.Empty; foreach (var li in locaisInstalacao) { codigoLIsNovos += codigoLIsNovos.Length == 0 ? li.CodLocalInstalacao.ToString() : "," + li.CodLocalInstalacao; } logInventario.CodLIsNovos = codigoLIsNovos; var ultimoLog = entities.LOG_INVENTARIO_ATIVIDADE.Where(x => x.CodInventarioAtividade == novoInventario.CodInventarioAtividade).OrderByDescending(u => u.CodInventariosAntigos).FirstOrDefault(); if (ultimoLog == null) { logInventario.CodInventariosAntigos = $"{inventarioAtividadeExistente.CodInventarioAtividade}"; } else { if (string.IsNullOrEmpty(ultimoLog.CodInventariosAntigos)) { logInventario.CodInventariosAntigos = $"{inventarioAtividadeExistente.CodInventarioAtividade}"; } else { logInventario.CodInventariosAntigos = $"{ultimoLog.CodInventariosAntigos},{inventarioAtividadeExistente.CodInventarioAtividade}"; } } logInventario.CodInventarioAtividade = novoInventario.CodInventarioAtividade; logInventario.CodUsuarioModificador = novoInventario.EightIDUsuarioModificador; logInventario.CodPesoAntigo = inventarioAtividadeExistente.CodPeso; logInventario.CodPesoNovo = novoInventario.CodPeso; logInventario.CodPerfilCatalogoAntigo = inventarioAtividadeExistente.CodPerfilCatalogo; logInventario.CodPerfilCatalogoNovo = novoInventario.CodPerfilCatalogo; logInventario.CodDuracaoAntiga = inventarioAtividadeExistente.CodDuracao; logInventario.CodDuracaoNovo = novoInventario.CodDuracao; logInventario.CodAtividadeAntiga = inventarioAtividadeExistente.CodAtividade; logInventario.CodAtividadeNova = novoInventario.CodAtividade; logInventario.CodDisciplinaAntiga = inventarioAtividadeExistente.CodDisciplina; logInventario.CodDisciplinaNova = novoInventario.CodDisciplina; logInventario.DescricaoAntiga = inventarioAtividadeExistente.Descricao; logInventario.DescricaoNova = novoInventario.Descricao; logInventario.ObsGeralAntiga = inventarioAtividadeExistente.ObservacaoGeral; logInventario.ObsGeralNova = novoInventario.ObservacaoGeral; logInventario.RiscoGeralAntigo = inventarioAtividadeExistente.RiscoGeral; logInventario.RiscoGeralNovo = novoInventario.RiscoGeral; logInventario.DataAlteracao = DateTime.Now; entities.LOG_INVENTARIO_ATIVIDADE.Add(logInventario); entities.SaveChanges(); #endregion #region Insere os dados do log de risco do inventário //Armazena os riscos List <LOG_RISCO_INVENTARIO_ATIVIDADE> logRiscos = new List <LOG_RISCO_INVENTARIO_ATIVIDADE>(); foreach (var risco in inventarioAtividadeExistente.RISCO_INVENTARIO_ATIVIDADE) { LOG_RISCO_INVENTARIO_ATIVIDADE logRisco = new LOG_RISCO_INVENTARIO_ATIVIDADE(); string codigosEPIs = string.Empty; //Busca todos os EPI's if (risco.EPI_RISCO_INVENTARIO_ATIVIDADE.Count > 0) { foreach (var epi in risco.EPI_RISCO_INVENTARIO_ATIVIDADE) { codigosEPIs += codigosEPIs.Length == 0 ? epi.CodEPI.ToString() : "," + epi.CodEPI; } logRisco.CodigosEPIs = codigosEPIs; } logRisco.ProcedimentoAplicavel = risco.ProcedimentoAplicavel; logRisco.ContraMedidas = risco.ContraMedidas; logRisco.FonteGeradora = risco.FonteGeradora; logRisco.CodRiscoAtividade = risco.CodRisco; logRisco.CodSeveridade = risco.CodSeveridade; logRisco.CodLogInventarioAtividade = logInventario.CodLogInventarioAtividade; entities.LOG_RISCO_INVENTARIO_ATIVIDADE.Add(logRisco); entities.SaveChanges(); logRiscos.Add(logRisco); } logInventario.LOG_RISCO_INVENTARIO_ATIVIDADE = logRiscos; entities.SaveChanges(); #endregion return(logInventario); }