5. Opción buscar/editar por CÓDIGO
Buscar, editar y eliminar producto
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
- El directorio de inicio donde debe realizar la búsqueda es
/tiendas/tu_tienda - Python muestra el menú y edita el JSON.
- 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.