示例#1
0
 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);
     }
 }
示例#2
0
        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;
                    }
                }
            }
        }
示例#4
0
        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);
        }