public static FrmObservarMesas GetInstancia()
 {
     if (_Instancia == null || _Instancia.IsDisposed)
     {
         _Instancia = new FrmObservarMesas();
     }
     return(_Instancia);
 }
        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);
            }
        }
Beispiel #3
0
        private void BtnTerminar_Click(object sender, EventArgs e)
        {
            MensajeEspera.ShowWait("Facturando y terminando");
            try
            {
                string rpta = "OK";
                int    id_venta;
                if (this.panelSubTotal.Visible)
                {
                    DataTable     detalle_pago;
                    List <string> variables = this.Variables(out detalle_pago);

                    if (detalle_pago.Rows.Count > 0)
                    {
                        if (this.IsPrecuenta)
                        {
                            frmFacturaFinal.Id_pedido = this.Id_pedido;
                            frmFacturaFinal.AsignarTablasPedido(variables);

                            string metodo = this.ObtenerValorPanel(this.panelTipoPedido);
                            if (metodo.Equals("IMPRIMIR"))
                            {
                                frmFacturaFinal.ImprimirFactura(1);
                            }
                            else if (metodo.Equals("CORREO"))
                            {
                                string rpta_email =
                                    EmailFactura.SendEmailFactura(this.Id_pedido, this.Correo_electronico);
                                if (!rpta_email.Equals("OK"))
                                {
                                    Mensajes.MensajeErrorForm("Hubo un error al enviar el correo electrónico");
                                }
                            }
                            else if (metodo.Equals("AMBAS"))
                            {
                                frmFacturaFinal.ImprimirFactura(1);
                                string rpta_email =
                                    EmailFactura.SendEmailFactura(this.Id_pedido, this.Correo_electronico);
                                if (!rpta_email.Equals("OK"))
                                {
                                    Mensajes.MensajeErrorForm("Hubo un error al enviar el correo electrónico");
                                }
                            }

                            FrmObservarMesas frm = FrmObservarMesas.GetInstancia();
                            frm.MesaSaliendo(this.Id_mesa, this.Id_pedido);

                            MensajeEspera.CloseForm();
                            Mensajes.MensajeOkForm("Se realizó la precuenta correctamente");
                            this.Close();
                        }
                        else
                        {
                            MensajeEspera.ShowWait("Facturando y terminando");
                            rpta =
                                NVentas.InsertarVenta(variables, out id_venta, detalle_pago);
                            if (rpta.Equals("OK"))
                            {
                                FrmObservarMesas frm = FrmObservarMesas.GetInstancia();
                                frm.LiberarMesa(this.Id_mesa);

                                frmFacturaFinal.Id_pedido = this.Id_pedido;
                                frmFacturaFinal.AsignarTablas();

                                string metodo = this.ObtenerValorPanel(this.panelTipoPedido);
                                if (metodo.Equals("IMPRIMIR"))
                                {
                                    frmFacturaFinal.ImprimirFactura(1);
                                }
                                else if (metodo.Equals("CORREO"))
                                {
                                    string rpta_email =
                                        EmailFactura.SendEmailFactura(this.Id_pedido, this.Correo_electronico);
                                    if (!rpta_email.Equals("OK"))
                                    {
                                        Mensajes.MensajeErrorForm("Hubo un error al enviar el correo electrónico");
                                    }
                                }
                                else if (metodo.Equals("AMBAS"))
                                {
                                    frmFacturaFinal.ImprimirFactura(1);
                                    string rpta_email =
                                        EmailFactura.SendEmailFactura(this.Id_pedido, this.Correo_electronico);
                                    if (!rpta_email.Equals("OK"))
                                    {
                                        Mensajes.MensajeErrorForm("Hubo un error al enviar el correo electrónico");
                                    }
                                }

                                MensajeEspera.CloseForm();
                                Mensajes.MensajeOkForm("Se realizó la facturación correctamente");
                                this.Close();
                            }
                            else
                            {
                                throw new Exception(rpta);
                            }
                        }
                    }
                    else
                    {
                        Mensajes.MensajeErrorForm("Debe de seleccionar un método de pago");
                    }
                }
                MensajeEspera.CloseForm();
            }
            catch (Exception ex)
            {
                MensajeEspera.CloseForm();
                Mensajes.MensajeErrorCompleto(this.Name, "BtnTerminar_Click",
                                              "Hubo un error al terminar una venta", 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);
            }
        }