private void BtnTerminarPedido_Click(object sender, EventArgs e)
        {
            MensajeEspera.ShowWait("Facturando y terminando");
            try
            {
                this.containerDatosPedido.Close();
                string rpta = "";
                int    id_pedido;
                if (this.Comprobaciones())
                {
                    DataTable TablaDetallePedido = this.tablasPedido.dtDetallePedido();

                    if (TablaDetallePedido.Rows.Count > 0)
                    {
                        rpta =
                            NPedido.InsertarPedido(this.Variables(), out id_pedido,
                                                   TablaDetallePedido);
                        if (rpta.Equals("OK"))
                        {
                            FrmObservarMesas FrmObservarMesas = FrmObservarMesas.GetInstancia();
                            FrmObservarMesas.ObtenerPedido(id_pedido, this.Numero_mesa, "PENDIENTE");

                            this.comandas.Id_pedido = id_pedido;
                            this.comandas.AsignarTablas();

                            if (this.contextMenuDatosPedido.chkImprimirPedido.Checked)
                            {
                                bool plato    = false;
                                bool bebida   = false;
                                int  imprimir = 0;
                                foreach (DataRow row in TablaDetallePedido.Rows)
                                {
                                    if (row["Tipo"].Equals("PLATO"))
                                    {
                                        plato = true;
                                    }
                                    else
                                    {
                                        bebida = true;
                                    }
                                    if (plato && bebida)
                                    {
                                        break;
                                    }
                                }

                                if (plato && bebida)
                                {
                                    imprimir = 2;
                                }
                                else
                                {
                                    imprimir = 1;
                                }

                                comandas.ImprimirFactura(imprimir);
                            }
                            this.Close();
                        }
                        else
                        {
                            throw new Exception(rpta);
                        }
                    }
                }
                MensajeEspera.CloseForm();
            }
            catch (Exception ex)
            {
                MensajeEspera.CloseForm();
                Mensajes.MensajeErrorCompleto(this.Name, "BtnTerminarPedido_Click",
                                              "Hubo un error al terminar un pedido", ex.Message);
            }
        }
        private void BtnTerminarPedido_Click(object sender, EventArgs e)
        {
            Thread hilo = new Thread(() => Mensajes.MensajeEspera("Facturando y terminando"));

            try
            {
                hilo.Start();
                this.Focus();
                string rpta = "";
                int    id_pedido;
                if (this.Editar)
                {
                    if (this.Comprobaciones())
                    {
                        DataTable TablaDetallePedido = this.tablaspedido.ReturnTablaDetalle();
                        if (TablaDetallePedido.Rows.Count > 0)
                        {
                            this.Close();
                        }
                        else
                        {
                            Mensajes.MensajeErrorForm("Debe seleccionar como mínimo un plato o bebida");
                        }
                    }
                }
                else
                {
                    if (this.Comprobaciones())
                    {
                        DataTable TablaDetallePedido = this.tablaspedido.ReturnTablaDetalle();
                        if (TablaDetallePedido.Rows.Count > 0)
                        {
                            rpta =
                                NPedido.InsertarPedido(this.Variables(), out id_pedido,
                                                       TablaDetallePedido);
                            if (rpta.Equals("OK"))
                            {
                                FrmObservarMesas FrmObservarMesas = FrmObservarMesas.GetInstancia();
                                FrmObservarMesas.ObtenerPedido(id_pedido, this.Numero_mesa, "OCUPADA");

                                FrmComandas comandas = new FrmComandas();
                                comandas.Id_pedido = id_pedido;
                                comandas.AsignarTablas();

                                bool plato    = false;
                                bool bebida   = false;
                                int  imprimir = 0;
                                foreach (DataRow row in TablaDetallePedido.Rows)
                                {
                                    if (row["Tipo"].Equals("PLATO"))
                                    {
                                        plato = true;
                                    }
                                    else
                                    {
                                        bebida = true;
                                    }
                                    if (plato && bebida)
                                    {
                                        break;
                                    }
                                }

                                if (plato && bebida)
                                {
                                    imprimir = 2;
                                }
                                else
                                {
                                    imprimir = 1;
                                }

                                comandas.ImprimirFactura(imprimir);
                                this.Close();
                            }
                            else
                            {
                                throw new Exception(rpta);
                            }
                        }
                        else
                        {
                            Mensajes.MensajeErrorForm("Debe seleccionar como mínimo un plato o bebida");
                        }
                    }
                }
                hilo.Abort();
            }
            catch (Exception ex)
            {
                hilo.Abort();
                Mensajes.MensajeErrorCompleto(this.Name, "BtnTerminarPedido_Click",
                                              "Hubo un error al terminar un pedido", ex.Message);
            }
        }