public static List <string[]> PreciosPorCategoria()
        {
            string consulta = @"select c.categoria, id_producto, nombre, precio_venta
                                from producto p
                                inner join categoria c
                                on p.categoria = c.id_categoria";

            List <string[]> lista = new List <string[]>();

            DataTable dt = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);

                foreach (DataRow row in dt.Rows)
                {
                    lista.Add(new string[] { row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString() });
                }

                return(lista);
            }
            catch (Exception e)
            {
                return(lista);
            }
        }
        public static bool actualizarReceta(int id_receta, string nombre)
        {
            string consulta = "UPDATE receta SET nombre = @nombre WHERE id_receta = @id_receta";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();

                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@id_receta", MySqlDbType.Int32);
                cx.Cmd.Parameters[0].Value = nombre;
                cx.Cmd.Parameters[1].Value = id_receta;

                cx.setSQL(consulta);



                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (MySqlException e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
コード例 #3
0
        public static bool Guardar(Int32 id_persona, string nombre_usuario, string password, Int16 baja)
        {
            string consulta = @"INSERT INTO acceso (id_persona, nombre_usuario, password, baja) 
                              VALUES 
                              (@id_persona, @nombre_usuario, @password, @baja)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@id_persona", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@nombre_usuario", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@password", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@baja", MySqlDbType.Int16);

                cx.Cmd.Parameters[0].Value = id_persona;
                cx.Cmd.Parameters[1].Value = nombre_usuario;
                cx.Cmd.Parameters[2].Value = password;
                cx.Cmd.Parameters[3].Value = baja;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
コード例 #4
0
        public static bool ActualizarPass(string usuario, string pass)
        {
            string consulta = @"UPDATE acceso
                                SET password = @password WHERE nombre_usuario = @nombre_usuario";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@nombre_usuario", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@password", MySqlDbType.VarChar);

                cx.Cmd.Parameters[0].Value = usuario;
                cx.Cmd.Parameters[1].Value = pass;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
        public static int Guardar(string nombre_proveedor, short baja)
        {
            string consulta = @"INSERT INTO proveedor (nombre, baja) 
                              VALUES 
                              (@nombre, @baja)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@baja", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = nombre_proveedor;
                cx.Cmd.Parameters[1].Value = baja;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(Convert.ToInt32(cx.Cmd.LastInsertedId));
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(0);
            }
        }
コード例 #6
0
        public static bool Actualizar(Int32 id, Int32 id_persona, string nombre_usuario, string password, Int16 baja)
        {
            string consulta = @"UPDATE acceso SET id_persona = @id_persona, nombre_usuario = @nombre_usuario,
                                password = @password, baja = @baja WHERE id = @id";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@id_persona", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@nombre_usuario", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@password", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@baja", MySqlDbType.Int16);
                cx.Cmd.Parameters.Add("@id", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = id_persona;
                cx.Cmd.Parameters[1].Value = nombre_usuario;
                cx.Cmd.Parameters[2].Value = password;
                cx.Cmd.Parameters[3].Value = baja;
                cx.Cmd.Parameters[4].Value = id;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
コード例 #7
0
        public static int Guardar(int numero_comprobante, DateTime fecha_comprobante, int id_proveedor)
        {
            string consulta = @"INSERT INTO comprobante_compra (numero_comp, fecha, id_proveedor) 
                              VALUES 
                              (@numero_comp, @fecha, @id_proveedor)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@numero_comp", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@fecha", MySqlDbType.DateTime);
                cx.Cmd.Parameters.Add("@id_proveedor", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = numero_comprobante;
                cx.Cmd.Parameters[1].Value = fecha_comprobante;
                cx.Cmd.Parameters[2].Value = id_proveedor;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(Convert.ToInt32(cx.Cmd.LastInsertedId));
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(0);
            }
        }
        public static bool actualizarCantidad(int id_comanda, int id_producto, int cantidad)
        {
            //string query = "Select cantidad from detalle_comanda where baja = 0 and id_producto = @id_producto and id_comanda = @id_comanda";

            string consulta = @"UPDATE detalle_comanda det 
                              SET `cantidad`= det.cantidad + @cantidad ,`total`=det.precio_venta * det.cantidad  
                              WHERE id_comanda = @id_comanda AND
                              id_producto = @id_producto and baja = 0";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();

                cx.Cmd.Parameters.Add("@cantidad", MySqlDbType.Int32);
                cx.Cmd.Parameters[0].Value = cantidad;
                cx.Cmd.Parameters.Add("@id_comanda", MySqlDbType.Int32);
                cx.Cmd.Parameters[1].Value = id_comanda;
                cx.Cmd.Parameters.Add("@id_producto", MySqlDbType.Int32);
                cx.Cmd.Parameters[2].Value = id_producto;



                cx.setSQL(consulta);
                cx.abrir();

                cx.Cmd.ExecuteNonQuery();
                return(true);
            }
            catch (MySqlException mse)
            {
                MessageBox.Show(mse.Message, "ERROR");
                return(false);
            }
        }
        public static bool bajaReceta(int id_receta, int id_producto)
        {
            string consulta = @"UPDATE receta SET baja = 1 
                                WHERE id_receta = @id_receta and id_producto = @id_producto;
                                UPDATE detalle_receta SET baja = 1
                                WHERE id_receta = @id_receta";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();

                cx.Cmd.Parameters.Add("@id_receta", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@id_producto", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = id_receta;
                cx.Cmd.Parameters[1].Value = id_producto;


                cx.setSQL(consulta);
                cx.abrir();
                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (MySqlException e)
            {
                MessageBox.Show("Receta_datos" + e.Message);
                return(false);
            }
        }
        public static bool bajaProducto(int id_producto)
        {
            string consulta = "UPDATE producto SET baja = 1 WHERE id_producto = @id_producto";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();

                cx.Cmd.Parameters.Add("@id_producto", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = id_producto;

                cx.setSQL(consulta);
                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (MySqlException e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
        //public static bool GetDetalle(int numero_comprobante, ref string[] detalle)
        //{
        //    //para setear un string de varias líneas se debe agregar un @antes de las primeras comillas dobles del string
        //    string sql = "SELECT * FROM mozo where id_mozo = " + id + " and activo = 1";
        //    try
        //    {
        //        Conexion cx = new Conexion();
        //        cx.setSQL(sql);
        //        cx.abrir();
        //        MySqlDataReader reader = cx.Cmd.ExecuteReader();

        //        if (reader.HasRows)
        //        {
        //            while (reader.Read())
        //            {
        //                for (int i = 0; i <= 7; i++)
        //                {
        //                    try
        //                    {
        //                        mozo[i] = reader.GetString(i);
        //                    }
        //                    catch (Exception)
        //                    {
        //                        mozo[i] = "";
        //                    }
        //                }
        //            }
        //        }
        //        else
        //        {
        //            return false;
        //        }
        //        reader.Close();
        //        cx.cerrar();
        //    }
        //    catch (Exception)
        //    {
        //        return false;
        //    }
        //    return true;
        //}

        public static bool Guardar(int id_producto, double precio, double cantidad, int id_comprobante)
        {
            string consulta = @"INSERT INTO detalle_comprobante (id_producto, precio, cantidad, id_comprobante_compra) 
                              VALUES 
                              (@id_producto, @precio, @cantidad, @id_comprobante_compra)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@id_producto", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@precio", MySqlDbType.Double);
                cx.Cmd.Parameters.Add("@cantidad", MySqlDbType.Double);
                cx.Cmd.Parameters.Add("@id_comprobante_compra", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = id_producto;
                cx.Cmd.Parameters[1].Value = precio;
                cx.Cmd.Parameters[2].Value = cantidad;
                cx.Cmd.Parameters[3].Value = id_comprobante;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
コード例 #12
0
        public static bool guardarDetalle(int id_receta, int id_producto, int id_unidad, float cantidad, int baja)
        {
            string consulta = @"INSERT INTO detalle_receta (id_detalle_receta, id_receta, id_producto,cantidad, unidad, baja) 
                              VALUES 
                              (0, @id_receta, @id_producto, @cantidad, @unidad, @baja)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);


                cx.Cmd.Parameters.Add("@id_receta", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@id_producto", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@cantidad", MySqlDbType.Float);
                cx.Cmd.Parameters.Add("@unidad", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@baja", MySqlDbType.Int16);


                cx.Cmd.Parameters[0].Value = id_receta;
                cx.Cmd.Parameters[1].Value = id_producto;
                cx.Cmd.Parameters[2].Value = cantidad;
                cx.Cmd.Parameters[3].Value = id_unidad;
                cx.Cmd.Parameters[4].Value = baja;


                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (MySqlException e)
            {
                if (e.Number == 1062)
                {
                    int id_detalle_receta = buscar_id_Detalles(id_receta, id_producto);

                    if (id_detalle_receta > 0)
                    {
                        actualizarDetalles(id_detalle_receta, id_producto, id_unidad, cantidad);
                        return(true);
                    }
                    else
                    {
                        MessageBox.Show("El ingrediente ya esta el la lista, seleccionelo en la tabla y presione en 'Modificar Ingrediente'", "Ingrediente Repetido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Detalle_receta_datos\n" + e.Message);
                }
                return(false);
            }
        }
        public static List <string[]> MPConsumidaPorCompuestos(DateTime desde, DateTime hasta)
        {
            string consulta = @"select dr.id_producto, p.nombre, sum(dc.cantidad*dr.cantidad) as total, u.unidad
                                from detalle_comanda dc
                                inner join receta r
                                on dc.id_producto = r.id_producto
                                left join detalle_receta dr
                                on r.id_receta = dr.id_receta
                                inner join producto p
                                on dr.id_producto = p.id_producto
                                inner join unidad u
                                on dr.unidad = u.id_unidad
                                inner join comanda c
                                on c.id_comanda = dc.id_comanda
                                where dc.id_producto in
                                (select id_producto from receta)
                                and r.baja = 0
                                and c.fecha between @desde and @hasta
                                group by dr.id_producto, p.nombre, u.unidad";

            List <string[]> lista = new List <string[]>();

            DataTable dt = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);


                cx.Cmd.Parameters.Add("@desde", MySqlDbType.DateTime);
                cx.Cmd.Parameters.Add("@hasta", MySqlDbType.DateTime);

                cx.Cmd.Parameters[0].Value = desde;
                cx.Cmd.Parameters[1].Value = hasta;

                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);

                foreach (DataRow row in dt.Rows)
                {
                    lista.Add(new string[] { row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString() });
                }

                return(lista);
            }
            catch (Exception e)
            {
                return(lista);
            }
        }
        public static bool guardarDetalle(int id_comanda, int id_producto, string nombre, float cantidad, float precio_venta, float precio_costo, float total, int baja)
        {
            string consulta = @"INSERT INTO detalle_comanda(`id_detalle_comanda`, `id_comanda`, `id_producto`, `nombre`, `cantidad`, `precio_venta`, `precio_costo`, `total`, `baja`) 
                                VALUES (null,@id_comanda,@id_producto,@nombre,@cantidad,@precio_venta,@precio_costo,@total,@baja)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);


                cx.Cmd.Parameters.Add("@id_comanda", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@id_producto", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.String);
                cx.Cmd.Parameters.Add("@cantidad", MySqlDbType.Float);
                cx.Cmd.Parameters.Add("@precio_venta", MySqlDbType.Float);
                cx.Cmd.Parameters.Add("@precio_costo", MySqlDbType.Float);
                cx.Cmd.Parameters.Add("@total", MySqlDbType.Int16);
                cx.Cmd.Parameters.Add("@baja", MySqlDbType.Int16);


                cx.Cmd.Parameters[0].Value = id_comanda;
                cx.Cmd.Parameters[1].Value = id_producto;
                cx.Cmd.Parameters[2].Value = nombre;
                cx.Cmd.Parameters[3].Value = cantidad;
                cx.Cmd.Parameters[4].Value = precio_venta;
                cx.Cmd.Parameters[5].Value = precio_costo;
                cx.Cmd.Parameters[6].Value = total;
                cx.Cmd.Parameters[7].Value = baja;


                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (MySqlException e)
            {
                if (e.Number == 1062)
                {
                    MessageBox.Show("El producto ya esta el la lista, seleccionelo en la tabla, presione en 'Modificar Ingrediente'", "Producto Repetido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Detalle_comanda_datos\n" + e.Message);
                }
                return(false);
            }
        }
        public static List <string[]> ProductosConsumidosComanda(DateTime desde, DateTime hasta)
        {
            string consulta = @"select det_com.tipo, det_com.id_producto, descripcion, sum(det_com.cantidad)
                                from
                                (select if(exists(select id_producto from receta where id_producto = dc.id_producto), 'Compuesto', 'Simple') as tipo, dc.*
                                from detalle_comanda dc
                                inner join comanda c
                                on c.id_comanda = dc.id_comanda
                                where c.fecha between @desde and @hasta
                                ) det_com
                                inner join producto p
                                on det_com.id_producto = p.id_producto
                                group by det_com.id_producto
                                order by tipo";

            List <string[]> lista = new List <string[]>();

            DataTable dt = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);


                cx.Cmd.Parameters.Add("@desde", MySqlDbType.DateTime);
                cx.Cmd.Parameters.Add("@hasta", MySqlDbType.DateTime);

                cx.Cmd.Parameters[0].Value = desde;
                cx.Cmd.Parameters[1].Value = hasta;

                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);

                foreach (DataRow row in dt.Rows)
                {
                    lista.Add(new string[] { row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString() });
                }

                return(lista);
            }
            catch (Exception e)
            {
                return(lista);
            }
        }
コード例 #16
0
        public static bool Eliminar(int id_compra)
        {
            string sql = "UPDATE comprobante_compra SET baja = 1 WHERE id_comprobante_compra = " + id_compra;

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(sql);
                cx.Cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
        public static int Guardar(string nombre, string apellido, int dni, int cargo, string calle, string altura, string telefono, DateTime fechaIngreso, short baja)
        {
            string consulta = @"INSERT INTO persona (nombre, apellido, dni, cargo, calle, altura, telefono, fecha_ingreso, baja) 
                              VALUES 
                              (@nombre, @apellido, @dni, @cargo, @calle, altura, @telefono, @fecha_ingreso, @baja)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@apellido", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@dni", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@cargo", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@calle", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@altura", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@telefono", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@fecha_ingreso", MySqlDbType.Date);
                cx.Cmd.Parameters.Add("@baja", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = nombre;
                cx.Cmd.Parameters[1].Value = apellido;
                cx.Cmd.Parameters[2].Value = dni;
                cx.Cmd.Parameters[3].Value = cargo;
                cx.Cmd.Parameters[4].Value = calle;
                cx.Cmd.Parameters[5].Value = altura;
                cx.Cmd.Parameters[6].Value = telefono;
                cx.Cmd.Parameters[7].Value = fechaIngreso;
                cx.Cmd.Parameters[8].Value = baja;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(Convert.ToInt32(cx.Cmd.LastInsertedId));
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(0);
            }
        }
        public static DataTable getAll()
        {
            string    sql = "SELECT nombre, apellido, dni, id_mozo FROM mozo WHERE activo = 1";
            DataTable dt  = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(sql);
                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);
            }
            catch (Exception)
            {
                dt = null;
            }
            return(dt);
        }
        public static bool Actualizar(int id, string nombre, string apellido, int dni, int cargo, string calle, string altura, string telefono, DateTime fechaIngreso, short baja)
        {
            string consulta = @"UPDATE persona SET nombre = @nombre, apellido = @apellido, dni = @dni, cargo = @cargo, calle = @calle,
                                altura = @altura, telefono = @telefono, fecha_ingreso = @fecha_ingreso WHERE id_persona = @id";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@apellido", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@dni", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@cargo", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@calle", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@altura", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@telefono", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@fecha_ingreso", MySqlDbType.Date);
                cx.Cmd.Parameters.Add("@id", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = nombre;
                cx.Cmd.Parameters[1].Value = apellido;
                cx.Cmd.Parameters[2].Value = dni;
                cx.Cmd.Parameters[3].Value = cargo;
                cx.Cmd.Parameters[4].Value = calle;
                cx.Cmd.Parameters[5].Value = altura;
                cx.Cmd.Parameters[6].Value = telefono;
                cx.Cmd.Parameters[7].Value = fechaIngreso;
                cx.Cmd.Parameters[8].Value = id;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
        public static List <string[]> VentasPorMozo(DateTime desde, DateTime hasta)
        {
            string consulta = @"SELECT c.id_persona, CONCAT(p.nombre, ' ', apellido) as Nombre, SUM(cantidad*precio_venta) as Ventas
                            FROM comanda c
                            INNER JOIN detalle_comanda dc
                            ON c.id_comanda = dc.id_comanda
                            INNER JOIN persona p
                            ON c.id_persona = p.id_persona
                            WHERE c.fecha BETWEEN @desde AND @hasta
                            GROUP BY id_persona";

            List <string[]> lista = new List <string[]>();

            DataTable dt = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);


                cx.Cmd.Parameters.Add("@desde", MySqlDbType.DateTime);
                cx.Cmd.Parameters.Add("@hasta", MySqlDbType.DateTime);

                cx.Cmd.Parameters[0].Value = desde;
                cx.Cmd.Parameters[1].Value = hasta;

                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);

                foreach (DataRow row in dt.Rows)
                {
                    lista.Add(new string[] { row[0].ToString(), row[1].ToString(), row[2].ToString() });
                }

                return(lista);
            }
            catch (Exception e)
            {
                return(lista);
            }
        }
        public static DataTable getAll()
        {
            string    sql = "SELECT nombre, apellido, cargo, id_persona FROM persona WHERE baja = 0";
            DataTable dt  = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(sql);
                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);
            }
            catch (Exception)
            {
                dt = null;
            }
            return(dt);
        }
        public static bool Eliminar(int id)
        {
            string sql = "UPDATE mozo SET activo = 0 WHERE id_mozo = " + id;

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(sql);

                cx.abrir();
                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
        public static List <string[]> VentasPorDia(DateTime desde, DateTime hasta)
        {
            string consulta = @"select DATE(fecha), sum(c.total)
                                from comanda c
                                inner join detalle_comanda dc
                                on c.id_comanda = dc.id_comanda
                                where fecha between @desde and @hasta
                                group by DATE(fecha)";

            List <string[]> lista = new List <string[]>();

            DataTable dt = new DataTable();

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@desde", MySqlDbType.DateTime);
                cx.Cmd.Parameters.Add("@hasta", MySqlDbType.DateTime);

                cx.Cmd.Parameters[0].Value = desde;
                cx.Cmd.Parameters[1].Value = hasta;

                MySqlDataAdapter sqlDate = new MySqlDataAdapter(cx.Cmd);
                sqlDate.Fill(dt);

                foreach (DataRow row in dt.Rows)
                {
                    lista.Add(new string[] { row[0].ToString(), row[1].ToString() });
                }

                return(lista);
            }
            catch (Exception e)
            {
                return(lista);
            }
        }
        public static bool Guardar(string dni, string nombre, string apellido, string calle, int numero, string telefono, int activo)
        {
            string consulta = @"INSERT INTO mozo (nombre, apellido, calle, nro, dni, telefono, activo) 
                              VALUES 
                              (@nombre, @apellido, @calle, @numero, @dni, @telefono, @activo)";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@apellido", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@calle", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@numero", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@dni", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@telefono", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@activo", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = nombre;
                cx.Cmd.Parameters[1].Value = apellido;
                cx.Cmd.Parameters[2].Value = calle;
                cx.Cmd.Parameters[3].Value = numero;
                cx.Cmd.Parameters[4].Value = dni;
                cx.Cmd.Parameters[5].Value = telefono;
                cx.Cmd.Parameters[6].Value = activo;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
        public static bool Actualizar(Int32 id, string dni, string nombre, string apellido, string calle, int nro, string telefono, short activo)
        {
            string consulta = @"UPDATE mozo SET nombre = @nombre, apellido = @apellido, calle = @calle,
                                nro = @numero, dni = @dni, telefono = @telefono WHERE id_mozo = @id";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(consulta);

                cx.Cmd.Parameters.Add("@nombre", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@apellido", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@calle", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@numero", MySqlDbType.Int32);
                cx.Cmd.Parameters.Add("@dni", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@telefono", MySqlDbType.VarChar);
                cx.Cmd.Parameters.Add("@id", MySqlDbType.Int32);

                cx.Cmd.Parameters[0].Value = nombre;
                cx.Cmd.Parameters[1].Value = apellido;
                cx.Cmd.Parameters[2].Value = calle;
                cx.Cmd.Parameters[3].Value = nro;
                cx.Cmd.Parameters[4].Value = dni;
                cx.Cmd.Parameters[5].Value = telefono;
                cx.Cmd.Parameters[6].Value = id;

                cx.abrir();

                cx.Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(false);
            }
        }
        public static bool eliminarDetalle(int id_detalle)
        {
            string sql = @"UPDATE detalle_comanda SET baja= 1 WHERE id_detalle_comanda = @id_detalle";

            try
            {
                Conexion cx = new Conexion();
                cx.tipoTexto();
                cx.setSQL(sql);

                cx.Cmd.Parameters.Add("@id_detalle", MySqlDbType.Int16);
                cx.Cmd.Parameters[0].Value = id_detalle;

                cx.abrir();
                cx.Cmd.ExecuteNonQuery();
                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(false);
            }
        }
        // true si comanda ya esta abierta, false si no esta abierta
        public static bool verificarComandaAbierta(int mesa, int estado, DateTime desde, DateTime hasta)
        {
            string consulta = @"SELECT count(*) FROM comanda 
                            WHERE mesa = @mesa
                            AND estado = 1 
                            AND fecha BETWEEN @desde AND @hasta";

            try
            {
                Conexion cx = new Conexion();
                cx.abrir();
                cx.tipoTexto();
                cx.setSQL(consulta);


                cx.Cmd.Parameters.Add("@mesa", MySqlDbType.Int32);

                cx.Cmd.Parameters.Add("@desde", MySqlDbType.String);
                cx.Cmd.Parameters.Add("@hasta", MySqlDbType.String);

                cx.Cmd.Parameters[0].Value = mesa;

                cx.Cmd.Parameters[1].Value = desde.Year.ToString() + "-" + desde.Month.ToString() + "-" + desde.Day.ToString() + " 00:00:00";
                cx.Cmd.Parameters[2].Value = hasta.Year.ToString() + "-" + hasta.Month.ToString() + "-" + hasta.Day.ToString() + " 23:59:59";

                MySqlDataReader reader = cx.Cmd.ExecuteReader();

                if (reader.HasRows) // pregunta si hay datos
                {
                    while (reader.Read())
                    {
                        if (reader.GetInt32(0) > 0)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }

                else
                {
                    MessageBox.Show("ERROR. Detalle_Comanda_datos");
                    return(false);
                }
                reader.Close();
                cx.cerrar();

                return(true);
            }
            catch (MySqlException e)
            {
                if (e.Number == 1062)
                {
                    MessageBox.Show("El producto ya esta el la lista, seleccionelo en la tabla, presione en 'Modificar Ingrediente'", "Producto Repetido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Detalle_comanda_datos\n" + e.Message);
                }
                return(false);
            }
        }