/// <summary> /// Metodo gera codigo de Fator, quando este possui "Pai", chamar este metodo no momento da escolha do Fator Pai /// </summary> /// <param name="entidade"></param> /// <param name="idPai"></param> /// <returns></returns> public Fator GeraCodigo(List <Fator> entidade, string idPai) { Fator dadosFator = new Fator(); //variavel usada para retornar o Codigo string codigo = string.Empty; //variaval geradora de Codigo novo int codigoNovo = 0; //busca todos os filhos do fator pai List <Fator> dadosFatorPai = new List <Fator>(); FatorBLL oFator = new FatorBLL(); //busca o codigo existente na arvore do fator for (int i = 0; i < entidade.Count; i++) { if (entidade[i].IDFator.ToString() == idPai) { dadosFatorPai = oFator.ListarRelacao(entidade[i]); dadosFator.IdPai = Convert.ToInt16(idPai); codigoNovo = Convert.ToInt32(entidade[i].FatorFilho.Count) + dadosFatorPai.Count + 1; dadosFator.Codigo = entidade[i].Codigo + "." + codigoNovo.ToString(); //} //else //{ // dadosFator.IdPai = Convert.ToInt16(idPai); // codigoNovo = +dadosFatorPai.Count + 1; // dadosFator.Codigo = entidade[i].Codigo + "." + codigoNovo.ToString(); //} } } return(dadosFator); }
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); }