Ejemplo n.º 1
0
        public void HerdarCriterioAderencia(ProdutoNivel entidadeProdutoNivel, Segmento entidadeSegmento, CriterioAderencia entidadeCriterioAderencia)
        {
            ProdutoNivel dadosProdutoNivel = new ProdutoNivel();
            Produto      dadosProduto      = new Produto();
            ProdutoBLL   oProduto          = new ProdutoBLL();

            //Invoca método ListarRelacaoProdutoNivel passando como parâmetro o IDProdutoNivel
            dadosProdutoNivel.IDProdutoNivel = entidadeProdutoNivel.IDProdutoNivel;
            dadosProdutoNivel = ListarRelacaoProdutoNivel(dadosProdutoNivel);

            //Se o método ListarRelacaoProdutoNivel retornar algum conteúdo
            if (dadosProdutoNivel.RelacaoProdutoNivelLista.Count > 0)
            {
                //Foreach para pegar cada IDFIlho dentro da lista RelacaoProdutoNivelLista
                foreach (RelacaoProdutoNivel listRelacaoProdutoNivel in dadosProdutoNivel.RelacaoProdutoNivelLista)
                {
                    if (listRelacaoProdutoNivel.IdFilho != null)
                    {
                        //Invoca método ListarCriterioAderenciaSegmento para verificar se existe algum registro baseado nos parametros passados
                        dadosProdutoNivel.CriterioAderencia.IDCriterioAderencia = entidadeCriterioAderencia.IDCriterioAderencia;
                        dadosProdutoNivel.Segmento.IDSegmento = entidadeSegmento.IDSegmento;
                        dadosProdutoNivel.IDProdutoNivel      = listRelacaoProdutoNivel.IdFilho;
                        dadosProdutoNivel = ListarCriterioAderenciaSegmento(dadosProdutoNivel);

                        //Caso tenha algum registro, excluir
                        if (dadosProdutoNivel.IDProdutoNivel != null)
                        {
                            dadosProdutoNivel.CriterioAderencia.IDCriterioAderencia = entidadeCriterioAderencia.IDCriterioAderencia;
                            dadosProdutoNivel.Segmento.IDSegmento = entidadeSegmento.IDSegmento;
                            dadosProdutoNivel.IDProdutoNivel      = listRelacaoProdutoNivel.IdFilho;
                            RemoverCriterioAderenciaSegmento(dadosProdutoNivel);
                        }
                        //Invoca método NovoCriterioAderenciaSegmento e insere um novo registro com os parametros passados
                        dadosProdutoNivel.CriterioAderencia.IDCriterioAderencia = entidadeCriterioAderencia.IDCriterioAderencia;
                        dadosProdutoNivel.Segmento.IDSegmento = entidadeSegmento.IDSegmento;
                        dadosProdutoNivel.IDProdutoNivel      = listRelacaoProdutoNivel.IdFilho;
                        dadosProdutoNivel.VersaoProdutoFator  = new VersaoProdutoFator()
                        {
                            IdVersaoProdutoFator = entidadeProdutoNivel.VersaoProdutoFator.IdVersaoProdutoFator
                        };
                        NovoCriterioAderenciaSegmento(dadosProdutoNivel);
                    }
                    else
                    {
                        //Invoca método ListarRelacaoProdutoNivelProduto para retornar uma lista com IdProduto
                        dadosProdutoNivel.RelacaoProdutoNivelProduto = new RelacaoProdutoNivelProduto()
                        {
                            IDProduto = listRelacaoProdutoNivel.IdRelacaoProdutoNivel
                        };
                        dadosProdutoNivel = ListarRelacaoProdutoNivelProduto(dadosProdutoNivel);
                        //Foreach para ler cada IdProduto da lista
                        foreach (RelacaoProdutoNivelProduto listRelacaoProdutoNivelProduto in dadosProdutoNivel.RelacaoProdutoNivelProdutoLista)
                        {
                            //Invoca método NovocriterioAderenciaSegmento
                            dadosProduto.IdProduto         = listRelacaoProdutoNivelProduto.IDProduto;
                            dadosProduto.CriterioAderencia = new CriterioAderencia()
                            {
                                IDCriterioAderencia = entidadeCriterioAderencia.IDCriterioAderencia
                            };
                            dadosProduto.Segmento = new Segmento()
                            {
                                IDSegmento = entidadeSegmento.IDSegmento
                            };
                            dadosProduto.VersaoProdutoFator = new VersaoProdutoFator()
                            {
                                IdVersaoProdutoFator = entidadeProdutoNivel.VersaoProdutoFator.IdVersaoProdutoFator
                            };
                            oProduto.NovoCriterioAderenciaSegmento(dadosProduto);
                        }
                    }
                }
            }
        }