Ejemplo n.º 1
0
        public void CalculaFatorAtratividade(Modelo entidadeModelo)
        {
            double      resultado = 0;
            double      valor;
            double      peso;
            Segmento    dadosSegmento = new Segmento();
            Fator       dadosFator    = new Fator();
            FatorBLL    oFator        = new FatorBLL();
            Criterio    dadosCriterio = new Criterio();
            CriterioBLL oCriterio     = new CriterioBLL();

            //Invoca Método SegmentoListar
            dadosSegmento.Modelo = new Modelo()
            {
                IDModelo = entidadeModelo.IDModelo
            };
            dadosSegmento = Listar(dadosSegmento);

            //Encontrar os Fatores relacionados para cada indice da lista Segmento
            foreach (Segmento listSegmento in dadosSegmento.SegmentoLista)
            {
                //Invoca Método FatorSegmentoListar
                dadosFator.Segmento = new Segmento()
                {
                    IDSegmento = listSegmento.IDSegmento
                };
                dadosFator = oFator.ListarSegmento(dadosFator);

                //Encontrar o IdCriterio para cada indice da lista Fator
                foreach (Fator listFator in dadosFator.FatorFilho)
                {
                    //Invoca Método CriterioFatorListar
                    dadosCriterio.IDCriterio = listFator.Criterio.IDCriterio;
                    dadosCriterio.Fator      = new Fator()
                    {
                        IDFator = listFator.IDFator
                    };
                    dadosCriterio = oCriterio.ListarFator(dadosCriterio);
                    valor         = dadosFator.Valor;

                    //Invoca Método FatorListar
                    dadosFator.IDFator = listFator.IDFator;
                    dadosFator         = oFator.Listar(dadosFator);
                    peso = dadosFator.Peso;

                    resultado = (valor * peso) + resultado;
                }
                dadosSegmento.FatorAtratividade = Convert.ToInt32(Math.Round(resultado));
                dadosSegmento.IDSegmento        = listSegmento.IDSegmento;
                Editar(dadosSegmento);
            }
        }
Ejemplo n.º 2
0
        public void CalculaFatorPosicionamento(Modelo entidadeModelo, VersaoProdutoFator entidadeVersaoProdutoFator)
        {
            double                fatorPosicionamento = 0;
            Fator                 dadosFator          = new Fator();
            FatorBLL              oFator                  = new FatorBLL();
            Segmento              dadosSegmento           = new Segmento();
            Criterio              dadosCriterio           = new Criterio();
            CriterioBLL           oCriterio               = new CriterioBLL();
            VersaoProdutoFator    dadosVersaoProdutoFator = new VersaoProdutoFator();
            VersaoProdutoFatorBLL oVersaoProdutoFator     = new VersaoProdutoFatorBLL();

            //Invoca método Listar do Segmento passando os parametros recebidos
            dadosSegmento.Modelo = new Modelo()
            {
                IDModelo = entidadeModelo.IDModelo
            };
            dadosSegmento = Listar(dadosSegmento);
            //Foreach para cada IDsegmento dentro da lista SegmentoLista
            foreach (Segmento listSegmento in dadosSegmento.SegmentoLista)
            {
                //Invoca método ListarPosicionamentoSemProduto passando os parametros recebidos
                dadosFator.VersaoProdutoFator = new VersaoProdutoFator()
                {
                    IdVersaoProdutoFator = entidadeVersaoProdutoFator.IdVersaoProdutoFator
                };
                dadosFator.Modelo = new Modelo()
                {
                    IDModelo = entidadeModelo.IDModelo
                };
                dadosFator.TipoFator = new TipoFator()
                {
                    IDTipoFator = 2
                };
                dadosFator = oFator.ListarPosicionamentoSemProduto(dadosFator);
                //Foreach para cada IDFator dentro da lista FatorFilho
                foreach (Fator listFator in dadosFator.FatorFilho)
                {
                    //Invoca método ListarFator do Segmento
                    dadosSegmento.IDSegmento = listSegmento.IDSegmento;
                    dadosSegmento.Fator      = new Fator()
                    {
                        IDFator = listFator.IDFator
                    };
                    dadosSegmento = ListarFator(dadosSegmento);
                    //Foreach para lista SegmentoFator
                    foreach (SegmentoFator listSegmentoFator in dadosSegmento.SegmentoFator)
                    {
                        //Invoca Método CriterioFatorListar
                        dadosCriterio.IDCriterio = listFator.Criterio.IDCriterio;
                        dadosCriterio.Fator      = new Fator()
                        {
                            IDFator = listFator.IDFator
                        };
                        dadosCriterio = oCriterio.ListarFator(dadosCriterio);
                        //Invoca Método FatorListar
                        dadosFator.IDFator = listFator.IDFator;
                        dadosFator         = oFator.Listar(dadosFator);
                        //Variável que faz a somatória de Valor x Peso
                        fatorPosicionamento += Convert.ToInt32(dadosCriterio.Valor * dadosFator.Peso);
                        //Invoca método ListarSegmentoProdutoFatorProduto
                        dadosVersaoProdutoFator.IdVersaoProdutoFator = entidadeVersaoProdutoFator.IdVersaoProdutoFator;
                        dadosVersaoProdutoFator.Segmento             = new Segmento()
                        {
                            IDSegmento = listSegmento.IDSegmento
                        };
                        dadosVersaoProdutoFator = oVersaoProdutoFator.ListarSegmentoProdutoFatorProduto(dadosVersaoProdutoFator);
                        //Verifica se o retorno do método ListarSegmentoProdutoFatorProduto tem algum registro
                        if (dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Criterio.IDCriterio == 0)
                        {
                            //Invoca Método CriterioFatorListar
                            dadosCriterio.IDCriterio = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Criterio.IDCriterio;
                            dadosCriterio.Fator      = new Fator()
                            {
                                IDFator = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Fator.IDFator
                            };
                            dadosCriterio = oCriterio.ListarFator(dadosCriterio);
                            //Invoca Método FatorListar
                            dadosFator.IDFator = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Fator.IDFator;
                            dadosFator         = oFator.Listar(dadosFator);
                            //Invoca método ListarRazaoAderenciaProdutoNivel
                            dadosSegmento.IDSegmento = listSegmento.IDSegmento;
                            dadosSegmento.ProdutoNivel.IDProdutoNivel             = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Produto.IdProduto;
                            dadosSegmento.VersaoProdutoFator.IdVersaoProdutoFator = entidadeVersaoProdutoFator.IdVersaoProdutoFator;
                            dadosSegmento = ListarRazaoAderenciaProdutoNivel(dadosSegmento);
                            //Variável que faz a somatória de fatorPosicionamento x (Valor x Peso)
                            fatorPosicionamento += Convert.ToInt32(dadosSegmento.FatorPosicionamento * (dadosCriterio.Valor * dadosFator.Peso));
                        }
                        else
                        {
                            //Invoca Método CriterioFatorListar
                            dadosCriterio.IDCriterio = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Criterio.IDCriterio;
                            dadosCriterio.Fator      = new Fator()
                            {
                                IDFator = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Fator.IDFator
                            };
                            dadosCriterio = oCriterio.ListarFator(dadosCriterio);
                            //Invoca Método FatorListar
                            dadosFator.IDFator = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Fator.IDFator;
                            dadosFator         = oFator.Listar(dadosFator);
                            //Invoca método ListarRazaoAderenciaProduto
                            dadosSegmento.IDSegmento = listSegmento.IDSegmento;
                            dadosSegmento.ProdutoNivel.IDProdutoNivel             = dadosVersaoProdutoFator.VersaoSegmentoProdutoFatorProduto.Produto.IdProduto;
                            dadosSegmento.VersaoProdutoFator.IdVersaoProdutoFator = entidadeVersaoProdutoFator.IdVersaoProdutoFator;
                            dadosSegmento = ListarRazaoAderenciaProduto(dadosSegmento);
                            //Variável que faz a somatória de fatorPosicionamento x (Valor x Peso)
                            fatorPosicionamento += Convert.ToInt32(dadosSegmento.FatorPosicionamento * (dadosCriterio.Valor * dadosFator.Peso));
                        }
                    }
                }
            }
            //Invoca método Editar da VersaoProdutoFator passando o IdVersaoProdutoFator e o fatorPosicionamento
            dadosVersaoProdutoFator.IdVersaoProdutoFator = entidadeVersaoProdutoFator.IdVersaoProdutoFator;
            dadosVersaoProdutoFator.FatorPosicionamento  = Convert.ToInt32(fatorPosicionamento);
            oVersaoProdutoFator.Editar(dadosVersaoProdutoFator);
        }