private List <LOCAL_INSTALACAO> BuscaLocaisEFilhos(DB_APRPTEntities entities, LOCAL_INSTALACAO localEnviado)
        {
            List <LOCAL_INSTALACAO> locaisFiltrados = new List <LOCAL_INSTALACAO>();

            if (String.IsNullOrEmpty(localEnviado.N2))
            {
                locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1).ToList();
            }
            else if (String.IsNullOrEmpty(localEnviado.N3))
            {
                locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2).ToList();
            }
            else if (String.IsNullOrEmpty(localEnviado.N4))
            {
                locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 &&
                                                                  x.N3 == localEnviado.N3).ToList();
            }
            else if (String.IsNullOrEmpty(localEnviado.N5))
            {
                locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 &&
                                                                  x.N3 == localEnviado.N3 && x.N4 == localEnviado.N4).ToList();
            }
            else if (String.IsNullOrEmpty(localEnviado.N6))
            {
                locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 &&
                                                                  x.N3 == localEnviado.N3 && x.N4 == localEnviado.N4 && x.N5 == localEnviado.N5).ToList();
            }
            else
            {
                locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 &&
                                                                  x.N3 == localEnviado.N3 && x.N4 == localEnviado.N4 && x.N5 == localEnviado.N5 && x.N6 == localEnviado.N6).ToList();
            }

            return(locaisFiltrados);
        }
示例#2
0
        private int CalculaRiscoGeral(DadosOperacao dadosOperacao, DB_APRPTEntities entities)
        {
            FiltroUnicoInventarioAtividadeModelo filtroVRG = new FiltroUnicoInventarioAtividadeModelo();

            filtroVRG.AprAtiva      = true;
            filtroVRG.CodAtividade  = dadosOperacao.CodAtividadePadrao;
            filtroVRG.CodDisciplina = dadosOperacao.CodDisciplina;
            filtroVRG.CodLi         = dadosOperacao.CodLI;

            int riscoGeral = aprNegocio.CalcularRiscoAprPorAtividadeDisciplinaLI(filtroVRG);

            return(riscoGeral);
        }
示例#3
0
        public PerfilModelo ListarPerfilPorId(long id)
        {
            PerfilModelo perfil = new PerfilModelo();

            // Mapeia de TiposPerfis para o objeto de destino listaPerfisRetorno
            AutoMapper.Mapper.Map(this.perfisPersistencia.ListarTipoPerfil(id), perfil);

            // Busca o nome do servidor
            perfil.ServerName = Environment.MachineName;

            //Busca o nome do banco
            using (var entities = new DB_APRPTEntities())
            {
                perfil.DatabaseName = entities.Database.Connection.DataSource;
            }

            return(perfil);
        }
示例#4
0
        private DadosOperacao VerificaValoresNaBase(APRItemSAPModelo item, DB_APRPTEntities entities)
        {
            DadosOperacao result = new DadosOperacao();

            //Verifica se o local de instalação existe na base
            var localExistente = this.localInstalacaoPersistencia.ListarLocalInstalacaoPorNome(item.Local_Instalacao_Operacao, entities);

            if (localExistente == null)
            {
                throw new Exception($"O local informado para a ordem-operação {item.Numero_Ordem}-{item.Operacao} não existe na base de dados");
            }
            else
            {
                result.CodLI = localExistente.CodLocalInstalacao;
            }

            //Verifica se a disciplina(Caracteristica da classe) existe na base
            var disciplinaExistente = this.disciplinaPersistencia.ListarDisciplinaPorNome(item.Valor_Centro_Trabalho, entities);

            if (disciplinaExistente == null)
            {
                throw new Exception($"A característica da classe informada para a ordem-operação {item.Numero_Ordem}-{item.Operacao} não existe na base de dados");
            }
            else
            {
                result.CodDisciplina = disciplinaExistente.CodDisciplina;
            }

            //Verifica se a atividade padrão (Chave modelo) existe na base
            var atvPadraoExistente = this.atividadePadraoPersistencia.ListarAtividadePorNome(item.Chave_Modelo_Operacao, entities);

            if (atvPadraoExistente == null)
            {
                throw new Exception($"A atividade informada para a ordem-operação {item.Numero_Ordem}-{item.Operacao} não existe na base de dados");
            }
            else
            {
                result.CodAtividadePadrao = atvPadraoExistente.CodAtividadePadrao;
            }

            return(result);
        }
        public void InserirRascunhoInventarioAtividade(RascunhoInventarioAtividadeModelo rascunhoInventarioAtividadeModelo)
        {
            validadorRascunhoInventarioAtividade.ValidaInsercao(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.Inserir(rascunhoInventarioAtividadeModelo, entities, locaisInstalacao);

                        entities.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
示例#6
0
        public APRSAPResponse ProcessaOrdem(APRSAPModelo modelo)
        {
            APRSAPResponse response = new APRSAPResponse();

            response.Itens = new List <APRItemSAPResponse>();

            this.ValidaModelo(modelo);
            var statusApr = modelo.Itens.First().Status_Ordem;

            using (var entities = new DB_APRPTEntities())
            {
                using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    APRItemSAPResponse itemResponse = new APRItemSAPResponse();
                    itemResponse.Endereco_Rede = "";
                    APR apr = new APR();
                    try
                    {
                        if (statusApr == Enum.GetName(typeof(Constantes.StatusOrdem), Constantes.StatusOrdem.IMPR))
                        {
                            AtualizaStatusApr(modelo.Itens.First().Numero_Ordem, (long)Constantes.StatusOrdem.IMPR, entities);
                        }
                        else
                        {
                            if (statusApr == Enum.GetName(typeof(Constantes.StatusOrdem), Constantes.StatusOrdem.ASAP))
                            {
                                var aprBase = aprPersistencia.PesquisarPorOrdemManutencao(modelo.Itens.First().Numero_Ordem, entities);
                                apr = aprBase;
                                var aprBase64 = GerarAprSerializada(aprBase.NumeroSerie);
                                itemResponse.Endereco_Rede = aprBase64;
                                //EnviarDadosSAP(aprBase64, apr.OrdemManutencao);
                            }
                            else
                            {
                                //Verifica se já existe APR para ordem
                                var aprExistente = aprPersistencia.PesquisarPorOrdemManutencaoExistentesEInexistentes(modelo.Itens.First().Numero_Ordem, entities);
                                if (aprExistente == null)
                                {
                                    apr = aprPersistencia.InserirSomenteComNumeroSeriaViaSAP(entities);
                                    apr.OrdemManutencao = modelo.Itens.First().Numero_Ordem;
                                    apr.Descricao       = modelo.Itens.First().Descricao_Ordem;
                                    apr.LocalInstalacao = modelo.Itens.First().Local_Instalacao;
                                }
                                else
                                {
                                    apr = aprExistente;
                                    apr.CodStatusAPR    = (long)Constantes.StatusAPR.Criado;
                                    apr.LocalInstalacao = modelo.Itens.First().Local_Instalacao;
                                    apr.Descricao       = modelo.Itens.First().Descricao_Ordem;
                                    this.DesativarOperacoesApr(apr, entities);
                                }
                                var maiorRiscoGeral = int.MinValue;
                                foreach (var item in modelo.Itens)
                                {
                                    OPERACAO_APR operacao = new OPERACAO_APR();
                                    //Realiza as validações dos valores dos itens
                                    DadosOperacao dadosOperacao = this.VerificaValoresNaBase(item, entities);
                                    //Adiciona a operação na APR
                                    this.AdicionaOperacaoAPR(apr, item, dadosOperacao, entities);
                                    //Calcula o valor do risco geral da APR

                                    // Lógica para obtenção do maior risco das operações calculadas
                                    var riscoCalculado = this.CalculaRiscoGeral(dadosOperacao, entities);
                                    if (maiorRiscoGeral < riscoCalculado)
                                    {
                                        maiorRiscoGeral = riscoCalculado;
                                    }
                                }
                                itemResponse.VRG = maiorRiscoGeral.ToString();
                                apr.RiscoGeral   = maiorRiscoGeral;
                                apr.DataInicio   = DateTime.Now;
                            }
                        }
                        entities.SaveChanges();
                        transaction.Commit();

                        //if (statusApr == Enum.GetName(typeof(Constantes.StatusOrdem), Constantes.StatusOrdem.ASAP_CALC))
                        if (statusApr.ToUpper() == Constantes.StatusAPRIntegracaoOrdem.EnviarRecalcular.ToUpper())
                        {
                            var aprBase64 = GerarAprSerializada(apr.NumeroSerie);
                            itemResponse.Endereco_Rede = aprBase64;
                            //EnviarDadosSAP(aprBase64, apr.OrdemManutencao);
                        }
                        itemResponse.Status = Constantes.StatusResponseIntegracao.S.ToString();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        itemResponse.Status    = Constantes.StatusResponseIntegracao.E.ToString();
                        itemResponse.Descricao = ex.Message;

                        throw ex;
                    }
                    finally
                    {
                        itemResponse.Numero_Serie = $"{apr.NumeroSerie}";
                        response.Itens.Add(itemResponse);
                    }
                }
            }

            return(response);
        }
示例#7
0
        private void AdicionaOperacaoAPR(APR apr, APRItemSAPModelo item, DadosOperacao dadosOperacao, DB_APRPTEntities entities)
        {
            //TODO: É NECESSÁRIO APAGAR TODAS AS OPERACOES E INSERIR DE NOVO

            OPERACAO_APR operacao = new OPERACAO_APR();

            operacao.CodAPR        = apr.CodAPR;
            operacao.CodStatusAPR  = (long)Constantes.StatusAPR.Criado;
            operacao.Codigo        = item.Operacao;
            operacao.CodLI         = dadosOperacao.CodLI;
            operacao.CodDisciplina = dadosOperacao.CodDisciplina;
            operacao.CodAtvPadrao  = dadosOperacao.CodAtividadePadrao;
            operacao.Ativo         = true;

            apr.OPERACAO_APR.Add(operacao);

            //Salva a operação no APR
            operacaoAprPersistencia.InsereOuEditaOperacaoAPR(apr.CodAPR, operacao, entities);

            //Salva os riscos

            //Riscos de Ambiente
            aprPersistencia.InserirRiscosAmbienteAPR(apr.CodAPR, dadosOperacao.CodLI, entities);
            aprPersistencia.InserirRiscosAtividadeAPR(apr.CodAPR, dadosOperacao.CodLI, dadosOperacao.CodDisciplina, dadosOperacao.CodAtividadePadrao, entities);
        }
示例#8
0
 private void DesativarOperacoesApr(APR apr, DB_APRPTEntities entities)
 {
     operacaoAprPersistencia.DesativarOperacoesDeApr(apr.CodAPR, entities);
 }
示例#9
0
 private void AtualizaStatusApr(string Numero_Ordem, long codStatusApr, DB_APRPTEntities entities)
 {
     aprPersistencia.EditarStatusApr(Numero_Ordem, codStatusApr, entities);
 }
        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 Retorno EditarRascunhoInventarioAmbiente(RascunhoInventarioAmbienteModelo rascunhoInventarioAmbienteModelo)
        {
            Retorno retornoInsercao = new Retorno();

            retornoInsercao.localModelo = new List <string>();

            validadorRascunhoInventarioAmbiente.ValidaEdicao(rascunhoInventarioAmbienteModelo);

            List <LocalInstalacaoModelo> locaisInstalacaoOrigem = new List <LocalInstalacaoModelo>();

            locaisInstalacaoOrigem.AddRange(rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO);

            List <LocalInstalacaoModelo> locaisInstalacaoAAssociar = new List <LocalInstalacaoModelo>();

            long codInventarioAmbiente = (long)rascunhoInventarioAmbienteModelo.CodRascunhoInventarioAmbiente;

            using (var entities = new DB_APRPTEntities())
            {
                using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                {
                    try
                    {
                        if (!rascunhoInventarioAmbienteModelo.novoInventario)
                        {
                            List <string> locaisAInserir = new List <string>();
                            foreach (var itemLi in rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO)
                            {
                                locaisAInserir.Add(itemLi.CodLocalInstalacao.ToString());
                            }
                            rascunhoInventarioAmbienteModelo.CodLocalInstalacao = string.Join(",", locaisAInserir);
                        }

                        rascunhoInventarioAmbientePersistencia.EditarRascunhoInventarioAmbiente(rascunhoInventarioAmbienteModelo, entities, transaction);

                        if (rascunhoInventarioAmbienteModelo.novoInventario)
                        {
                            InventarioAmbienteModelo inventarioAmbienteModelo = new InventarioAmbienteModelo();

                            inventarioAmbienteModelo.CodInventarioAmbiente = (long)rascunhoInventarioAmbienteModelo.CodRascunhoInventarioAmbiente;
                            inventarioAmbienteModelo.Codigo          = rascunhoInventarioAmbienteModelo.Codigo;
                            inventarioAmbienteModelo.CodAmbiente     = (long)rascunhoInventarioAmbienteModelo.CodAmbiente;
                            inventarioAmbienteModelo.Descricao       = rascunhoInventarioAmbienteModelo.Descricao;
                            inventarioAmbienteModelo.ObservacaoGeral = rascunhoInventarioAmbienteModelo.ObservacaoGeral;
                            inventarioAmbienteModelo.RiscoGeral      = (int)rascunhoInventarioAmbienteModelo.RiscoGeral;
                            inventarioAmbienteModelo.DataAtualizacao = DateTime.Now;
                            inventarioAmbienteModelo.Ativo           = true;

                            List <RiscoInventarioAmbienteModelo> listaRisco = new List <RiscoInventarioAmbienteModelo>();
                            foreach (var itemRiscoRascunho in rascunhoInventarioAmbienteModelo.RISCO_RASCUNHO_INVENTARIO_AMBIENTE)
                            {
                                RiscoInventarioAmbienteModelo risco = new RiscoInventarioAmbienteModelo();

                                risco.Ativo = true;
                                risco.CodInventarioAmbiente      = itemRiscoRascunho.CodRascunhoInventarioAmbiente;
                                risco.CodRiscoInventarioAmbiente = itemRiscoRascunho.CodRascunhoRiscoInventarioAmbiente;
                                risco.CodRiscoAmbiente           = itemRiscoRascunho.CodRiscoAmbiente;
                                risco.CodSeveridade           = itemRiscoRascunho.CodSeveridade;
                                risco.CodProbabilidade        = itemRiscoRascunho.CodProbabilidade;
                                risco.FonteGeradora           = itemRiscoRascunho.FonteGeradora;
                                risco.ProcedimentosAplicaveis = itemRiscoRascunho.ProcedimentosAplicaveis;
                                risco.ContraMedidas           = itemRiscoRascunho.ContraMedidas;

                                risco.EPIRiscoInventarioAmbienteModelo = new List <EPIRiscoInventarioAmbienteModelo>();

                                var listaEPI = itemRiscoRascunho.EPIRiscoRascunhoInventarioAmbiente
                                               .Where(a => a.CodRiscoRascunhoInventarioAmbiente == itemRiscoRascunho.CodRiscoAmbiente).ToList();

                                foreach (var itemListaEpi in listaEPI)
                                {
                                    EPIRiscoInventarioAmbienteModelo epi = new EPIRiscoInventarioAmbienteModelo();

                                    epi.CodEPI = itemListaEpi.CodEPI;
                                    epi.CodEpiRiscoInventarioAmbiente = itemListaEpi.CodEpiRiscoRascunhoInventarioAmbiente;
                                    epi.CodRiscoInventarioAmbiente    = itemListaEpi.CodRiscoRascunhoInventarioAmbiente;
                                    risco.EPIRiscoInventarioAmbienteModelo.Add(epi);
                                }

                                listaRisco.Add(risco);
                            }
                            inventarioAmbienteModelo.RISCO_INVENTARIO_AMBIENTE = listaRisco;


                            List <NrInventarioAmbienteModelo> listaNR = new List <NrInventarioAmbienteModelo>();
                            foreach (var itemNrRascunho in rascunhoInventarioAmbienteModelo.NR_RASCUNHO_INVENTARIO_AMBIENTE)
                            {
                                NrInventarioAmbienteModelo nr = new NrInventarioAmbienteModelo();

                                nr.CodNRInventarioAmbiente = itemNrRascunho.CodNrRascunhoInventarioAmbiente;
                                nr.CodNR = itemNrRascunho.CodNR;
                                nr.CodInventarioAmbiente = itemNrRascunho.CodRascunhoInventarioAmbiente;
                                nr.Ativo = true;

                                listaNR.Add(nr);
                            }
                            inventarioAmbienteModelo.NR_INVENTARIO_AMBIENTE = listaNR;

                            //Limpa os locais que vieram
                            rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO.Clear();

                            //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities);

                            foreach (var local in locaisInstalacaoOrigem)
                            {
                                var codLocal = local.CodLocalInstalacao;

                                var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codLocal, entities);

                                //Filtra somente os locais do pai
                                List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado);

                                //Busca todos os filhos que possuam o codInventarioAmbiente
                                //List<LOCAL_INSTALACAO> locaisFilhos = rascunhoInventarioAmbientePersistencia.BuscaFilhosPorNivelDoInventario
                                //    (local.CodLocalInstalacao, codInventarioAmbiente, entities);

                                foreach (var localAAssociar in locaisEFilhos)
                                {
                                    LocalInstalacaoModelo localModelo = new LocalInstalacaoModelo();
                                    localModelo.CodInventarioAmbiente = localAAssociar.CodInventarioAmbiente;
                                    localModelo.CodLocalInstalacao    = localAAssociar.CodLocalInstalacao;
                                    localModelo.CodPerfilCatalogo     = localAAssociar.CodPerfilCatalogo;
                                    localModelo.CodPeso   = localAAssociar.CodPeso;
                                    localModelo.Descricao = localAAssociar.Descricao;
                                    localModelo.N1        = localAAssociar.N1;
                                    localModelo.N2        = localAAssociar.N2;
                                    localModelo.N3        = localAAssociar.N3;
                                    localModelo.N4        = localAAssociar.N4;
                                    localModelo.N5        = localAAssociar.N5;
                                    localModelo.N6        = localAAssociar.N6;
                                    localModelo.Nome      = localAAssociar.Nome;

                                    locaisInstalacaoAAssociar.Add(localModelo);
                                }
                            }
                            inventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO = new List <LocalInstalacaoModelo>();
                            inventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO.AddRange(locaisInstalacaoAAssociar);

                            foreach (var item in inventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO)
                            {
                                var li = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(item.CodLocalInstalacao);

                                if (li.CodInventarioAmbiente != (long)Constantes.InventarioAmbiente.SEM_INVENTARIO)
                                {
                                    retornoInsercao.status = false;

                                    retornoInsercao.localModelo.Add(li.Nome);

                                    throw new Exception($"O local de instalação {li.Nome} já possui um inventário de ambiente associado.");
                                }
                            }

                            var resultadoInsercao = inventariosAmbiente.Inserir(inventarioAmbienteModelo, entities);
                            inventarioAmbienteModelo.EightIDUsuarioModificador = rascunhoInventarioAmbienteModelo.EightIDUsuarioModificador;
                            logInventarioAmbientePersistencia.Inserir(inventarioAmbienteModelo, resultadoInsercao.CodInventarioAmbiente, entities);
                        }

                        entities.SaveChanges();
                        transaction.Commit();
                        retornoInsercao.status = true;
                        return(retornoInsercao);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
        public RetornoInsercao InserirRascunhoInventarioAmbiente(RascunhoInventarioAmbienteModelo rascunhoInventarioAmbienteModelo)
        {
            RetornoInsercao retornoInsercao = new RetornoInsercao();

            retornoInsercao.localModelo = new List <string>();

            validadorRascunhoInventarioAmbiente.ValidaInsercao(rascunhoInventarioAmbienteModelo);

            List <LocalInstalacaoModelo> locaisInstalacao = rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO;

            using (var entities = new DB_APRPTEntities())
            {
                using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                {
                    try
                    {
                        //Limpa os locais do inventário de modelo
                        rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO = null;

                        List <LOCAL_INSTALACAO> locaisComInventarios = new List <LOCAL_INSTALACAO>();

                        //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities);

                        List <string> locaisAInserir = new List <string>();
                        for (int i = 0; i < locaisInstalacao.Count; i++)
                        {
                            var codLocal = locaisInstalacao[i].CodLocalInstalacao;

                            var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codLocal, entities);

                            //Filtra somente os locais do pai
                            List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado);

                            //List<LOCAL_INSTALACAO> locaisFilhos =
                            //    rascunhoInventarioAmbientePersistencia.BuscaFilhosPorNivelExcetoInventario(codLocal, entities);

                            foreach (var local in locaisEFilhos)
                            {
                                locaisAInserir.Add(local.CodLocalInstalacao.ToString());
                            }
                        }

                        var locaisAInserirDistinct = locaisAInserir.Distinct();

                        rascunhoInventarioAmbienteModelo.CodLocalInstalacao = string.Join(",", locaisAInserirDistinct);

                        RASCUNHO_INVENTARIO_AMBIENTE inventario = rascunhoInventarioAmbientePersistencia.Inserir(rascunhoInventarioAmbienteModelo, entities);

                        entities.SaveChanges();
                        transaction.Commit();

                        retornoInsercao.status = true;
                        return(retornoInsercao);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
示例#13
0
        public PerfilCatalogoSAPResponse ProcessaPerfilCatalogo(PerfilCatalogoSAPModelo modelo)
        {
            PerfilCatalogoSAPResponse response = new PerfilCatalogoSAPResponse();

            response.Itens = new List <PerfilCatalogoItemSAPResponse>();

            this.ValidaPerfilCatalogo(modelo);

            using (var entities = new DB_APRPTEntities())
            {
                entities.Database.CommandTimeout = 9999;

                using (var transaction = entities.Database.BeginTransaction())
                {
                    PerfilCatalogoItemSAPResponse itemResponse   = new PerfilCatalogoItemSAPResponse();
                    PerfilCatalogoModelo          perfilCatalogo = new PerfilCatalogoModelo();

                    try
                    {
                        List <PerfilCatalogoModelo> listaPerfilCatalogo = new List <PerfilCatalogoModelo>();
                        foreach (var item in modelo.Itens)
                        {
                            listaPerfilCatalogo.Add(new PerfilCatalogoModelo()
                            {
                                Codigo = item.PerfilCatalogo,
                                Nome   = item.Descricao,
                            });
                        }

                        foreach (var perfil in listaPerfilCatalogo)
                        {
                            perfilCatalogo = perfil;

                            var perfilExistente = perfilCatalogoPersistencia.ListarPerfilCatalogoPorCodigo(perfilCatalogo.Codigo);

                            if (perfilExistente == null)
                            {
                                perfilCatalogoPersistencia.Inserir(perfilCatalogo);
                            }
                            else
                            {
                                perfilCatalogoPersistencia.Editar(perfilCatalogo, entities);
                            }

                            itemResponse.Perfil_Do_Catalogo = perfilCatalogo.Codigo;
                            itemResponse.Descricao          = "";
                            itemResponse.Status             = Constantes.StatusResponseIntegracao.S.ToString();

                            response.Itens.Add(itemResponse);
                        }

                        entities.SaveChanges();
                        transaction.Commit();

                        return(response);
                    }
                    catch (Exception ex)
                    {
                        itemResponse.Perfil_Do_Catalogo = perfilCatalogo.Codigo;
                        itemResponse.Status             = Constantes.StatusResponseIntegracao.E.ToString();
                        itemResponse.Descricao          = ex.Message;

                        throw ex;
                    }
                }
            }
        }