private void BtnConfirmaRegistro_Click(object sender, EventArgs e) { try { if ((!txtNomeReceita.Text.Equals("")) && //nenhum valor pode ficar em branco. (!cmbDificuldadeRegistroReceita.SelectedItem.Equals("")) && (!txtTempoPreparo.Text.Equals("")) && (!txtRendimentoReceita.Text.Equals("")) && (!richTxtModoPreparo.Text.Equals("")) && (!cmbCategoriaReceita.SelectedItem.ToString().Equals("")) ) { //Criando o objeto Receita receita = new Receita(); //receita.Ingrediente = new Ingrediente(); //Atribuindo novos valores. receita.Nome = Convert.ToString(txtNomeReceita.Text); receita.Porcoes = double.Parse(txtRendimentoReceita.Text.ToString()); receita.TempoPreparacao = int.Parse(txtTempoPreparo.Text.ToString()); receita.Categoria = Convert.ToString(cmbCategoriaReceita.SelectedItem); receita.Dificuldade = int.Parse(cmbDificuldadeRegistroReceita.SelectedItem.ToString()); receita.Preparo = Convert.ToString(richTxtModoPreparo.Text); double valorTotal = 0; if (receita.Cadastrar()) { foreach (DataGridViewRow row in dataGridSelecaoIngrediente.Rows) { if (Convert.ToBoolean(row.Cells["columnSelecaoIngrediente"].Value) == true && receita.ObterReceita() ) { //Atribuindo os valores para o objeto receita.ingrediente receita.Ingrediente.Id = int.Parse(row.Cells["columnIdIngrediente"].Value.ToString()); receita.Ingrediente.Quantidade = double.Parse(row.Cells["columnQuantidadeIngrediente"].Value.ToString()); receita.Ingrediente.UnidadeMedidaPreco = row.Cells["columnUnidadeIngrediente"].Value.ToString(); receita.Ingrediente.Preco = double.Parse(row.Cells["columnValorIngrediente"].Value.ToString()); receita.CadastrarIngrediente(); valorTotal += receita.Ingrediente.Preco; } } //Cadastrando o custo total da receita. //MessageBox.Show("ID do item cadastrado: "+receita.Id.ToString());//Tentando rastrear onde o codigo está falhando. receita.Custo = valorTotal; receita.AlterarCusto(); MessageBox.Show("Cadastro de receita bem sucedido."); TelaReceita telaReceita = new TelaReceita() { telaInicio = telaInicioRegistro }; telaReceita.Show(); telaInicioRegistro.Hide(); this.Hide(); } else { MessageBox.Show("Não foi possível cadastrar a nova receita", "Erro no registro", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); } } else { MessageBox.Show("Todos os campos devem ser preenchidos", "Erro no registro", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2); } } catch (Exception ex) { MessageBox.Show("Não foi possível cadastrar a nova receita\n" + ex.Message, "Erro no registro", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); } }
private void TelaDetalheReceita_Load(object sender, EventArgs e) { try { //Preenchendo os comboboxes cmbCategoriaReceita.DataSource = new string[] { "Bebida", "Carne", "Confeitaria", "Marisco", "Padaria", "Pastelaria", "Peixe", "Salada", "Sobremesa" }; cmbDificuldadeReceita.DataSource = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }; //Criando o objeto que guardará as incormações no banco de dados. Receita receita = new Receita(); receita.Id = idReceitaDetalhe; if (receita.ObterReceita()) { //Atribuindo novos valores. txtNomeReceita.Text = receita.Nome.ToString(); txtRendimentoReceita.Text = receita.Porcoes.ToString(); txtTempoPreparo.Text = receita.TempoPreparacao.ToString(); cmbCategoriaReceita.SelectedItem = receita.Categoria; cmbDificuldadeReceita.SelectedItem = receita.Dificuldade.ToString(); richTxtModoPreparo.Text = receita.Preparo; //Carregando dataGrid com a lista de ingredientes relacionados a receita. MySqlDataReader reader = receita.ListarTodosIngredientes(); if (reader != null && (reader.HasRows)) { while (reader.Read()) { int n = dataGridSelecaoIngrediente.Rows.Add(); dataGridSelecaoIngrediente.Rows[n].Cells["columnIdIngrediente"].Value = reader["id"]; dataGridSelecaoIngrediente.Rows[n].Cells["columnNomeIngrediente"].Value = reader["nome"]; dataGridSelecaoIngrediente.Rows[n].Cells["columnValorIngrediente"].Value = reader["preco"]; dataGridSelecaoIngrediente.Rows[n].Cells["columnQuantidadeIngrediente"].Value = reader["quantidade"]; dataGridSelecaoIngrediente.Rows[n].Cells["columnUnidadeIngrediente"].Value = reader["unidade"]; dataGridSelecaoIngrediente.Rows[n].Cells["columnSelecaoIngrediente"].Value = false; //Endereçando o id do ingrediente para trabalhar com selecionados receita.Ingrediente.Id = int.Parse(dataGridSelecaoIngrediente.Rows[n].Cells["columnIdIngrediente"].Value.ToString()); if (receita.ConfirmarIngredientesSelecionados()) { //Marcando a coluna do checkbox dataGridSelecaoIngrediente.Rows[n].Cells["columnSelecaoIngrediente"].Value = true; } } //Ordenando lista pelo nome dos ingredientes. DataGridViewColumn columnToSort = dataGridSelecaoIngrediente.Columns["columnNomeIngrediente"]; dataGridSelecaoIngrediente.Sort(columnToSort, ListSortDirection.Ascending); } //Encerrando o primeiro reader. reader.Close(); //Abrindo o segundo reader. //Carregando dataGrid com a lista de ingredientes relacionados a receita. MySqlDataReader readerSelecionados = receita.ListarIngredientesSelecionados(); //Somando os valores de ingredientes para o custo double valorTotal = 0; if (readerSelecionados != null && (readerSelecionados.HasRows)) { while (readerSelecionados.Read()) { int n = dataGridSelecionados.Rows.Add(); dataGridSelecionados.Rows[n].Cells["columnIdIngredienteSelecionado"].Value = readerSelecionados["id"]; dataGridSelecionados.Rows[n].Cells["columnNomeIngredienteSelecionado"].Value = readerSelecionados["nome"]; dataGridSelecionados.Rows[n].Cells["columnValorIngredienteSelecionado"].Value = readerSelecionados["custo"]; dataGridSelecionados.Rows[n].Cells["columnQuantidadeIngredienteSelecionado"].Value = readerSelecionados["quantidade"]; dataGridSelecionados.Rows[n].Cells["columnUnidadeIngredienteSelecionado"].Value = readerSelecionados["unidade"]; //Endereçando o id do ingrediente para trabalhar com selecionados //receita.Ingrediente.Id = int.Parse(dataGridSelecionados.Rows[n].Cells["columnIdIngredienteSelecionado"].Value.ToString()); //Somando o custo da receita. valorTotal += Convert.ToDouble(dataGridSelecionados.Rows[n].Cells["columnValorIngredienteSelecionado"].Value); } //Ordenando lista pelo nome dos ingredientes. DataGridViewColumn columnToSort = dataGridSelecionados.Columns["columnNomeIngredienteSelecionado"]; dataGridSelecionados.Sort(columnToSort, ListSortDirection.Ascending); } receita.Id = idReceitaDetalhe; //Definindo o custo total da receita. receita.Custo = valorTotal; receita.AlterarCusto(); txtValorReceita.Text = receita.Custo.ToString(); } else { MessageBox.Show("Não foi possível carregar todos os dados da receita", "Erro no carregamento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2); } } catch (Exception ex) { MessageBox.Show("Não foi possível carregar todos os dados da receita\n" + ex.Message, "Erro no carregamento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2); } }