/// <summary>
        /// Obtiene todas las facturas del lavadero.
        /// </summary>
        /// <returns>Las facturas del lavadero.</returns>
        public static List <FacturaLavadero> ObtenerFacturas()
        {
            MySqlConnection conexion = Foo.ConexionABd();
            MySqlCommand    comando  = new MySqlCommand(@"SELECT factLav.id, factLav.fecha, cliLav.nif, CONCAT(cliLav.nombre, ' ', cliLav.apellidos) AS nombre, factLav.estaPagada, factLav.concepto, factLav.baseImponible, factLav.iva, factLav.total
                                                      FROM   facturasLavadero factLav
                                                             JOIN clientesLavadero cliLav ON factLav.idCliente = cliLav.id
                                                      ORDER BY factLav.id;", conexion);

            MySqlDataReader        cursor        = comando.ExecuteReader();
            List <FacturaLavadero> listaFacturas = new List <FacturaLavadero>();

            while (cursor.Read())
            {
                FacturaLavadero factura = new FacturaLavadero();
                factura.Id             = cursor.GetInt32("id");
                factura.Fecha          = cursor.GetDateTime("fecha");
                factura.Cliente        = new ClienteLavadero();
                factura.Cliente.Nif    = cursor.GetString("nif");
                factura.Cliente.Nombre = cursor.GetString("nombre");
                factura.EstaPagada     = cursor.GetBoolean("estaPagada");
                factura.Concepto       = cursor.GetString("concepto");
                factura.BaseImponible  = cursor.GetDecimal("baseImponible");
                factura.Iva            = cursor.GetDecimal("iva");
                factura.Total          = cursor.GetDecimal("total");
                listaFacturas.Add(factura);
            }
            cursor.Close();
            conexion.Close();

            return(listaFacturas);
        }
        /// <summary>
        /// Obtiene una factura del lavadero a partir de un Id de un cliente.
        /// </summary>
        /// <param name="idCliente">El Id de un cliente.</param>
        /// <returns>Los datos de la factura.</returns>
        public static FacturaLavadero ObtenerFacturaPorIdCliente(int idCliente)
        {
            MySqlConnection conexion = Foo.ConexionABd();
            MySqlCommand    comando  = new MySqlCommand(@"SELECT factLav.id, factLav.fecha, cliLav.nif, CONCAT(cliLav.nombre, ' ', cliLav.apellidos) AS nombre, factLav.estaPagada,
                                                             factLav.baseImponible, factLav.iva, factLav.total
                                                      FROM   facturasLavadero factLav
                                                             JOIN clientesLavadero cliLav ON factLav.idCliente = cliLav.id                                                                
                                                      WHERE  cliLav.id = @id;", conexion);

            comando.Parameters.AddWithValue("@id", idCliente);

            MySqlDataReader cursor  = comando.ExecuteReader();
            FacturaLavadero factura = new FacturaLavadero();

            while (cursor.Read())
            {
                factura.Id             = cursor.GetInt32("id");
                factura.Fecha          = cursor.GetDateTime("fecha");
                factura.Cliente        = new ClienteLavadero();
                factura.Cliente.Nif    = cursor.GetString("nif");
                factura.Cliente.Nombre = cursor.GetString("nombre");
                factura.EstaPagada     = cursor.GetBoolean("estaPagada");
                factura.BaseImponible  = cursor.GetDecimal("baseImponible");
                factura.Iva            = cursor.GetDecimal("iva");
                factura.Total          = cursor.GetDecimal("total");
            }
            cursor.Close();
            conexion.Close();

            return(factura);
        }
        /// <summary>
        /// Obtiene todas las facturas del lavadero entre una fecha de inicio y fin para realizar un informe.
        /// </summary>
        /// <returns>Todas las facturas del lavadero</returns>
        public static List <FacturaLavadero> ObtenerFacturasPorFechasInforme(DateTime desde, DateTime hasta)
        {
            MySqlConnection conexion = Foo.ConexionABd();
            MySqlCommand    comando  = new MySqlCommand(@"SELECT factLav.id, factLav.fecha, CONCAT(cliLav.nombre, ' ', cliLav.apellidos) AS nombre, cliLav.direccion, cliLav.nif, factLav.baseImponible, factLav.iva, factLav.total
                                                      FROM   facturasLavadero factLav
		                                                     JOIN clientesLavadero cliLav ON cliLav.id = factLav.idCliente
		                                              WHERE factLav.fecha BETWEEN @desde AND @hasta
                                                      ORDER BY factLav.id;", conexion);

            comando.Parameters.AddWithValue("@desde", desde);
            comando.Parameters.AddWithValue("@hasta", hasta);

            MySqlDataReader        cursor        = comando.ExecuteReader();
            List <FacturaLavadero> listaFacturas = new List <FacturaLavadero>();

            while (cursor.Read())
            {
                FacturaLavadero factura = new FacturaLavadero();
                factura.Id                = cursor.GetInt32("id");
                factura.Fecha             = cursor.GetDateTime("fecha");
                factura.Cliente           = new ClienteLavadero();
                factura.Cliente.Nif       = cursor.GetString("nif");
                factura.Cliente.Direccion = cursor.GetString("direccion");
                factura.Cliente.Nombre    = cursor.GetString("nombre");
                factura.BaseImponible     = cursor.GetDecimal("baseImponible");
                factura.Iva               = cursor.GetDecimal("iva");
                factura.Total             = cursor.GetDecimal("total");
                listaFacturas.Add(factura);
            }
            cursor.Close();
            conexion.Close();

            return(listaFacturas);
        }
        public override bool Equals(object obj)
        {
            FacturaLavadero factura = obj as FacturaLavadero;

            return(factura != null && Id == factura.Id);
        }