Skip to main content

5. Opción buscar/editar por CÓDIGO

Buscar, editar y eliminar producto

buscar editar eliminar

El menú BUSCAR permite localizar un producto por su código y, en caso de existir, editarlo o eliminarlo.

El proceso combina Bash y Python:

  • Bash se encarga de localizar y eliminar archivos.
  • Python se encarga de editar el contenido del JSON.

Ayuda antes de empezar

  1. El directorio de inicio donde debe realizar la búsqueda es /tiendas/tu_tienda
  2. Python muestra el menú y edita el JSON.
  3. Bash muestra el contenido del JSON y pasa los datos como argumentos a un scrip de python que se encarga de editarlo.

El siguiente código te servirá de ejemplo para realizar esta primera parte de búsqueda y edición.

#!/bin/bash


# IMPORTANTE: Ejecutar sudo apt install jq si no lo tienes instalado

# Pedimos el codigo al usuario (aqui debes manejar posibles datos erroneos como valores vacios)
read -p "Indica el codigo: " codigo

# Almacenamos el resultado en la variable ruta
ruta=$(find /tiendas/nombre_tienda -name "$codigo.json") # No te olvides poner el nombre de tu tienda

# Comprobar si la ruta exsite
if [[ $ruta == "" ]]; then
read -n1 -p "No se encuentra el codigo $codigo"
exit
else
read -n1 -p "El producto con codigo $codigo se encuentra en $ruta"
fi

# jq permite mostrar el valor de diferentes atributos del json.
# Capturamos cada valor (el json tiene nombre, descripcion, cantidad) completar el resto
nombre=$(jq -r '.nombre' $ruta)
descripcion=$(jq -r '.descripcion' $ruta)
cantidad=$(jq -r '.cantidad' $ruta)
echo "$nombre $descripcion $cantidad"

# Este apartado os vale para la parte de editar el producto ya que muestra en el propio read el contenido del json para que sea mas sencillo editar
read -e -p "nombre: " -i "$nombre" nombre
read -e -p "descripcion: " -i "$descripcion" descripcion
read -e -p "cantidad: " -i "$cantidad" cantidad

echo "$nombre $descripcion $cantidad"

Búsqueda por código

El sistema solicitará el código del producto:

Indica el código del producto:

El script en Bash deberá comprobar si existe un archivo con ese código dentro de la tienda.

Si no se encuentra coincidencia:

  • No se ha encontrado ninguna coincidencia.
  • Pulsa una tecla para volver o intentarlo de nuevo.

Producto encontrado

Si el producto existe, se mostrará su información:

  • nombre
  • descripción
  • precio
  • stock
  • envase

A continuación se ofrecerán opciones:

¿Qué desea hacer?
Editar (e), Borrar (b), Volver (v)


Editar producto

Si el usuario selecciona editar:

  • se mostrarán los valores actuales del producto,
  • el sistema solicitará cada atributo permitiendo modificarlo,
  • el usuario podrá confirmar o cancelar la operación.

Ejemplo:

Nombre actual: Agua con gas Lanjarón
Nuevo nombre (enter para mantener):

Los nuevos valores se enviarán a un script en Python encargado de actualizar el archivo JSON.

Tras confirmar:

Producto actualizado correctamente.
Pulsa una tecla para volver al menú.


Eliminar producto

Si el usuario selecciona borrar, el sistema solicitará confirmación:

¿Realmente deseas eliminar este producto? [S/N]

Solo si el usuario confirma, Bash eliminará el archivo.

Ejemplo:

Producto eliminado con éxito.
Pulsa una tecla para volver al menú.


Consideraciones

  • No se permitirá editar productos inexistentes.
  • No se eliminará ningún archivo sin confirmación previa.
  • Cada producto se identifica por un código único.
  • Python gestiona el contenido del JSON.
  • Bash gestiona la existencia y eliminación de archivos.