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); } }
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); }