예제 #1
0
        private void calcularParametros()
        {
            if (nometbx.Text == "" || litragemtbx.Text == "0" ||
                volumePreFervuratbx.Text == "0" || volumePosFervuratbx.Text == "0" || realOGtbx.Text == "0")
            {
                ms.camposNaoPreenchidos();
            }
            else
            {
                ConversaoFuncoes converteUnidades = new ConversaoFuncoes();
                Double           totalMalte       = 0.0; //Total Mate(base seca)
                                                         //Double quantidadeMalte = 0.0; //Quantidade de malte utilizado
                Double potencialMedio    = 0.0;          //Potencial Médio
                Double teorSolidoSoluvel = 0.0;          //Teor de sólidos solúveis
                                                         //Double agua = 0.0;
                Double concentracaoFinalIdealKgSS = 0.0; //Concentração Final Ideal
                Double concentracaoFinalIdeal     = 0.0; //Concentração Final Ideal
                Double ogEsperado = 0.0;                 //OG esperado
                Double ogReal     = 0.0;                 //OG real
                                                         //Double volumeFinal = 0.0; //Volume final
                Double rendimentoMalte  = 0.0;           //Rendimento Malte
                Double rendimentoLitros = 0.0;           //Rendimento Litros
                Double rendimentoTotal  = 0.0;           //Rendimento total
                string tipoMalte        = "";
                string nomeMalte        = "";

                NunConvFuncao nunFuncao = new NunConvFuncao();


                //***********************************************************************************************************
                // Inicio percorrer listagem de ingredientes e realizar calculos de insumos
                //***********************************************************************************************************

                if (gvIngredientes.Rows != null)
                {
                    ingrediente = new Ingredientes();

                    foreach (DataGridViewRow row in gvIngredientes.Rows)
                    {
                        if (row.Cells["Descricao"].Value != null)
                        {
                            string insumo     = Convert.ToString(row.Cells["TipoDoIngrediente"].Value);
                            String nomeInsumo = Convert.ToString(nunFuncao.Converter(row.Cells["Descricao"].Value));
                            //***********************************************************************************************************
                            // Calculo rendimentos Malte
                            //***********************************************************************************************************
                            if (insumo == "Malte")
                            {
                                totalMalte += Convert.ToDouble(row.Cells["Quantidade"].Value);
                                MalteDAO     dao    = new MalteDAO();
                                MalteFuncoes funcao = new MalteFuncoes();

                                malteCollection = null;
                                malteCollection = dao.GetMaltesPorNome(nomeInsumo);

                                foreach (var _malte in malteCollection)
                                {
                                    potencialMedio += (_malte.Aproveitamento * 0.01) * totalMalte;
                                }
                                potencialMedio             = potencialMedio / totalMalte;
                                totalMalte                 = totalMalte * 0.96; // Retira 4% do valor total
                                teorSolidoSoluvel          = potencialMedio * totalMalte;
                                concentracaoFinalIdealKgSS = (potencialMedio * totalMalte) / Convert.ToDouble(litragemtbx.Text);
                                concentracaoFinalIdeal     = concentracaoFinalIdealKgSS * 100;
                                ogEsperado                 = (1000 + concentracaoFinalIdeal * 4) / 1000;

                                estimativaOGtbx.Text = Convert.ToString(converteUnidades.GravityParaBrix(ogEsperado));

                                rendimentoMalte         = (1 - converteUnidades.BrixParaGravity(Convert.ToDouble(realOGtbx.Text))) / (1 - ogEsperado);
                                eficienciaMalteTxt.Text = Convert.ToString(rendimentoMalte * 100);

                                rendimentoLitros         = Convert.ToDouble(volumePosFervuratbx.Text) / Convert.ToDouble(litragemtbx.Text);
                                eficienciaVolumeTxt.Text = Convert.ToString(rendimentoLitros * 100);

                                rendimentoTotal         = rendimentoLitros * rendimentoMalte;
                                eficienciaTotalTxt.Text = Convert.ToString(rendimentoTotal * 100);
                            }
                            //***********************************************************************************************************
                            // Calculo IBU
                            //***********************************************************************************************************
                            else if (insumo == "Lupulo")
                            {
                                LupuloDAO lupuloDao = new LupuloDAO();
                                lupuloCollection = null;
                                lupuloCollection = lupuloDao.GetLupulosPorNome(nomeInsumo);
                                CalculoIBU calcIBU = new CalculoIBU();
                                foreach (var _lupulo in lupuloCollection)
                                {
                                    estimativaIBUtbx.Text = Convert.ToString(
                                        calcIBU.CalculaIBU(
                                            Convert.ToDouble(row.Cells["Quantidade"].Value),
                                            calcIBU.Utilizacao(Convert.ToString(row.Cells["TempoAdicao"].Value), _lupulo.Forma),
                                            (_lupulo.AcidoAlfa / 100),
                                            Convert.ToDouble(volumePreFervuratbx.Text),
                                            calcIBU.DencidadeCorrigida(Convert.ToDouble(realOGtbx.Text)))).Substring(0, 5);
                                }
                            }
                            //***********************************************************************************************************
                            // Calculo Adjunto
                            //***********************************************************************************************************
                            else if (insumo == "Adjunto")
                            {
                            }
                            //***********************************************************************************************************
                            // Calculo Ação e viabilização na recomendação de leveduras e atenuação de dencidade final
                            //***********************************************************************************************************
                            else if (insumo == "Levedura")
                            {
                                LeveduraDAO leveduraoDao = new LeveduraDAO();
                                leveduraCollection = null;
                                leveduraCollection = leveduraoDao.GetLevedurasPorNome(nomeInsumo);
                                //CalculoIBU calcIBU = new CalculoIBU();
                                foreach (var _levedurao in leveduraCollection)
                                {
                                    Double celulasNecessarias =
                                        ((Convert.ToDouble(pitchRateLb.Text) * 1000000)
                                         *
                                         ((Convert.ToDouble(volumePosFervuratbx.Text) * 1000) * Convert.ToDouble(realOGtbx.Text))
                                         / 1000000000);

                                    celulasNecessariastbx.Text = Convert.ToString(celulasNecessarias).Substring(0, 4);

                                    Double recomendacao = celulasNecessarias / (_levedurao.CelulasPacote / (_levedurao.Viabilidade / 100));

                                    recomendacaotbx.Text = Convert.ToString(recomendacao).Substring(0, 3);

                                    leveduraPacotesNecessariosTxt.Text = Convert.ToString(recomendacao / _levedurao.GramasPacote).Substring(0, 2);

                                    volumeAtivacaotbx.Text = Convert.ToString(recomendacao * 0.4).Substring(0, 3);
                                }
                            }
                        }
                    }
                }

                //***********************************************************************************************************
                //***************Final percorrer listagem de ingredientes e realizar calculos de insumos*********************
                //***********************************************************************************************************

                //***********************************************************************************************************
                // Calculo teor de alcool
                //***********************************************************************************************************
                CalculoSimples calculoSimples = new CalculoSimples();
                realABVtbx.Text       = Convert.ToString(calculoSimples.abv(Convert.ToDouble(realOGtbx.Text), Convert.ToDouble(realFGtbx.Text)));
                estimativaABVtbx.Text = Convert.ToString(calculoSimples.abv(Convert.ToDouble(estimativaOGtbx.Text), Convert.ToDouble(estimativaFGtbx.Text)));
            }
        }
예제 #2
0
        private ReceitaModel setReceita()
        {
            NunConvFuncao nunFuncao = new NunConvFuncao();

            if (receita.id == null)
            {
                receita = new ReceitaModel();
            }

            if (gvIngredientes.Rows != null)
            {
                List <Ingredientes> ingredientesList = new List <Ingredientes>();
                foreach (DataGridViewRow row in gvIngredientes.Rows)
                {
                    if (row.Cells["Descricao"].Value != null)
                    {
                        ingrediente             = new Ingredientes();
                        ingrediente.Ordem       = Convert.ToInt32(nunFuncao.Converter(row.Cells["Ordem"].Value));
                        ingrediente.Quantidade  = Convert.ToInt32(nunFuncao.Converter(row.Cells["Quantidade"].Value));
                        ingrediente.Descricao   = Convert.ToString(nunFuncao.Converter(row.Cells["Descricao"].Value));
                        ingrediente.TempoAdicao = Convert.ToString(row.Cells["TempoAdicao"].Value);
                        ingrediente.Tipo        = Convert.ToString(row.Cells["Tipo"].Value);
                        //ingrediente.PercentualIBU = Convert.ToDouble(row.Cells["IBU"].Value);
                        ingrediente.PercentualIBU     = Convert.ToDouble(nunFuncao.Converter(row.Cells["IBU"].Value));
                        ingrediente.Volume            = Convert.ToDouble(nunFuncao.Converter(row.Cells["Volume"].Value));
                        ingrediente.Custo             = Convert.ToDouble(nunFuncao.Converter(row.Cells["Custo"].Value));
                        ingrediente.TipoDoIngrediente = Convert.ToString(row.Cells["TipoDoIngrediente"].Value);
                        ingredientesList.Add(ingrediente);
                    }
                }
                if (ingredientesList != null)
                {
                    receita.Ingredientes = ingredientesList;
                }
            }

            if (gvRampa.Rows != null)
            {
                List <RampaModel> rampaList = new List <RampaModel>();
                foreach (DataGridViewRow row in gvRampa.Rows)
                {
                    if (row.Cells["RDescricao"].Value != null)
                    {
                        rampa             = new RampaModel();
                        rampa.Descricao   = Convert.ToString(row.Cells["RDescricao"].Value);
                        rampa.Temperatura = Convert.ToDouble(nunFuncao.Converter(row.Cells["RTemperatura"].Value));
                        rampa.Duracao     = Convert.ToString(row.Cells["RDuracao"].Value);
                        rampaList.Add(rampa);
                    }
                }
                if (rampaList != null)
                {
                    receita.Rampas = rampaList;
                }
            }

            if (gvFermentacao.Rows != null)
            {
                List <RampaModel> fermentacaoList = new List <RampaModel>();
                foreach (DataGridViewRow row in gvFermentacao.Rows)
                {
                    if (row.Cells["FDescricao"].Value != null)
                    {
                        etapaFermentacao             = new RampaModel();
                        etapaFermentacao.Descricao   = Convert.ToString(row.Cells["FDescricao"].Value);
                        etapaFermentacao.Temperatura = Convert.ToDouble(nunFuncao.Converter(row.Cells["FTemperatura"].Value));
                        etapaFermentacao.Duracao     = Convert.ToString(row.Cells["FDuracao"].Value);
                        fermentacaoList.Add(etapaFermentacao);
                    }
                }
                if (fermentacaoList != null)
                {
                    receita.Fermentacao = fermentacaoList;
                }
            }

            receita.Nome = nometbx.Text;
            //receita.Cervejeiro = cervejeirotbx.SelectedIndex
            receita.Tipo = tipotbx.Text;
            //receita.Estilo = estilotbx.Text;
            receita.Litragem      = Convert.ToDouble(nunFuncao.Converter(litragemtbx.Text));
            receita.Versao        = Convert.ToDouble(nunFuncao.Converter(versaotbx.Text));
            receita.Data          = Convert.ToDateTime(databx.Text);
            receita.VolPreFervura = Convert.ToDouble(nunFuncao.Converter(volumePosFervuratbx.Text));
            receita.VolPosFervura = Convert.ToDouble(nunFuncao.Converter(volumePosFervuratbx.Text));
            //receita.Cor = Convert.ToDouble(estimativaCORtbx.Text);
            receita.ABV   = Convert.ToDouble(nunFuncao.Converter(realABVtbx.Text));
            receita.Notas = notastbx.Text;
            //receita.Eficiencia
            receita.DuracaoFervura     = tempoFervuratbx.Text;
            receita.OGBrix             = Convert.ToDouble(nunFuncao.Converter(realOGtbx.Text));
            receita.FGBrix             = Convert.ToDouble(nunFuncao.Converter(realFGtbx.Text));
            receita.CelulasNecessarias = Convert.ToDouble(nunFuncao.Converter(celulasNecessariastbx.Text));
            receita.VolumeAtivacao     = Convert.ToDouble(nunFuncao.Converter(volumeAtivacaotbx.Text));
            //receita.VolumeRecomendado = Convert.ToDouble(nunFuncao.Converter(volumeRecomendadotbx.Text));
            receita.RecomendacaoGramas = Convert.ToDouble(nunFuncao.Converter(recomendacaotbx.Text));

            return(receita);
        }