private void reloadData()
        {
            gridPedidos.Rows.Clear();
            ControladorManterPedido conPedido = new ControladorManterPedido();
            List <Pedido>           lista     = conPedido.retornarPedidos();

            try
            {
                foreach (Pedido pedido in lista)
                {
                    ControladorManterCliente conCliente = new ControladorManterCliente();
                    Cliente cliente = null;
                    if (pedido.Cliente.CPF != null)
                    {
                        var listaClientes = conCliente.retornarClientes(pedido.Cliente.CPF);
                        cliente = listaClientes.ElementAt(0);
                    }
                    gridPedidos.Rows.Add(
                        pedido.Codigo.ToString(),                                                // codigo
                        pedido.Mesa.Numero == -1 ? "" :pedido.Mesa.Numero.ToString(),            // numero_mesa
                        cliente == null ? "" : (cliente.CPF + ": " + cliente.Nome),              // cliente
                        pedido.Data,                                                             // data
                        pedido.PagamentoConfirmado == true? "Sim" : "Não",                       // pagamento confirmado
                        pedido.PrecoTotal == -1 ? "Não Calculado" : pedido.PrecoTotal.ToString() // preço total
                        );
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
        private void btnInserir_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbCliente.Text == "")
                {
                    MessageBox.Show("Selecione um cliente para inserir um novo pedido!");
                }
                else if (cmbMesa.Text == "")
                {
                    MessageBox.Show("Selecione uma mesa para inserir um novo pedido!");
                }
                else
                {
                    int    codigo_mesa = Int32.Parse(cmbMesa.Text);
                    string cpf_cliente = cmbCliente.Text.Substring(0, cmbCliente.Text.IndexOf(":"));

                    ControladorManterPedido conPedido = new ControladorManterPedido();
                    conPedido.inserirPedido(
                        codigo_mesa,
                        cpf_cliente
                        );

                    LimparCampos();
                    reloadData();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btnFechar_Click(object sender, EventArgs e)
        {
            if (cmbPedNFe.Text.Trim() == "")
            {
                MessageBox.Show("Escolha um pedido para finalizá-lo!");
            }
            else
            {
                ControladorManterPedido_Item c     = new ControladorManterPedido_Item();
                List <ItemPedido>            lista = c.retornarItemPedido(int.Parse(cmbPedNFe.Text));
                decimal       preco_total          = 0;
                var           msg      = "Lista de Itens do pedido: ";
                List <Pedido> listaped = new ControladorManterPedido().retornarPedidosFechados(int.Parse(cmbPedNFe.Text));
                msg += $"{listaped[0].Codigo.ToString()}\n";
                for (int i = 0; i < lista.Count(); i++)
                {
                    msg         += $"ITEM: {lista[i].Item.Nome} QTD: {lista[i].Quantidade} PREÇO: R${lista[i].Item.Preco}\n";
                    preco_total += (lista[i].Item.Preco * lista[i].Quantidade);
                }
                List <Mesa> mesa = new ControladorManterMesa().retornarMesas(listaped[0].Mesa.Numero);
                MessageBox.Show(msg + "\n" + "Preço total: R$" + preco_total.ToString() + "\nCodigo do garçom " + mesa[0].Garcom.Identificacao + "\nFechado pedido...");

                new ControladorManterPedido().atualizarPedido(int.Parse(cmbPedNFe.Text), listaped[0].Mesa.Numero, preco_total, true, listaped[0].Cliente.CPF);

                MessageBox.Show("Pedido Fechado");

                Clear();
                loadPedFec();
                loadPedNFec();
            }
        }
 private void loadPedFec()
 {
     try
     {
         ControladorManterPedido conPedidos = new ControladorManterPedido();
         var lista = conPedidos.retornarPedidosFechados();
         foreach (Pedido ped in lista)
         {
             cmbPedFec.Items.Add(ped.Codigo);
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtCodigo.Text.Trim() == "")
                {
                    MessageBox.Show("Escolha um pedido já inserido para poder excluir!");
                }
                else
                {
                    int numero = Int32.Parse(txtCodigo.Text);

                    ControladorManterPedido conPedido = new ControladorManterPedido();
                    conPedido.excluirPedido(numero);
                    LimparCampos();
                    reloadData();
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
        private void btnAtualizar_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbCliente.Text == "")
                {
                    MessageBox.Show("Selecione um cliente para atualizar o pedido!");
                }
                else if (cmbMesa.Text == "")
                {
                    MessageBox.Show("Selecione uma mesa para atualizar o pedido!");
                }
                else
                {
                    int    codigo      = int.Parse(txtCodigo.Text);
                    int    codigo_mesa = int.Parse(cmbMesa.Text);
                    string cpf_cliente = cmbCliente.Text.Substring(0, cmbCliente.Text.IndexOf(":"));

                    ControladorManterPedido conPedido = new ControladorManterPedido();
                    conPedido.atualizarPedido(
                        codigo,
                        codigo_mesa,
                        -1,
                        false,
                        cpf_cliente
                        );

                    LimparCampos();
                    reloadData();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }