#!/usr/bin/env bash
set -Eeuo pipefail

BASE="${1:-/home/iotcuboc/pyme}"
PAQUETE="$(cd "$(dirname "$0")" && pwd)"
MARCA="$(date +%Y%m%d_%H%M%S)"
RESPALDO="$BASE/respaldos/movimientos_agrupados_v4_8_$MARCA"
NUEVO="$BASE/public/movimientos_stock_agrupados_v3.php"

for archivo in \
  "$BASE/app/includes/menu_v3.php" \
  "$BASE/public/mas_v3.php" \
  "$BASE/public/movimientos_stock_v3.php"; do
  if [[ ! -f "$archivo" ]]; then
    echo "ERROR: falta el archivo requerido $archivo" >&2
    exit 1
  fi
done

php -l "$PAQUETE/public/movimientos_stock_agrupados_v3.php" >/dev/null
php -l "$PAQUETE/paso/enlazar_movimientos_agrupados.php" >/dev/null
mkdir -p "$RESPALDO/app/includes" "$RESPALDO/public" "$RESPALDO/generados"
cp -p "$BASE/app/includes/menu_v3.php" "$RESPALDO/app/includes/menu_v3.php"
cp -p "$BASE/public/mas_v3.php" "$RESPALDO/public/mas_v3.php"
cp -p "$BASE/public/movimientos_stock_v3.php" "$RESPALDO/public/movimientos_stock_v3.php"

if [[ -f "$NUEVO" ]]; then
  cp -p "$NUEVO" "$RESPALDO/public/movimientos_stock_agrupados_v3.php"
  touch "$RESPALDO/NUEVO_YA_EXISTIA"
else
  touch "$RESPALDO/NUEVO_NO_EXISTIA"
fi

restaurar_error() {
  cp -p "$RESPALDO/app/includes/menu_v3.php" "$BASE/app/includes/menu_v3.php" || true
  cp -p "$RESPALDO/public/mas_v3.php" "$BASE/public/mas_v3.php" || true
  cp -p "$RESPALDO/public/movimientos_stock_v3.php" "$BASE/public/movimientos_stock_v3.php" || true
  if [[ -f "$RESPALDO/NUEVO_YA_EXISTIA" ]]; then
    cp -p "$RESPALDO/public/movimientos_stock_agrupados_v3.php" "$NUEVO" || true
  elif [[ -f "$NUEVO" ]]; then
    mv "$NUEVO" "$RESPALDO/generados/movimientos_stock_agrupados_v3.php" || true
  fi
  echo "ERROR: instalación cancelada. Se restauraron los archivos originales." >&2
}
trap restaurar_error ERR

php "$PAQUETE/paso/enlazar_movimientos_agrupados.php" menu "$RESPALDO/app/includes/menu_v3.php" "$RESPALDO/menu_nuevo.php"
php "$PAQUETE/paso/enlazar_movimientos_agrupados.php" mas "$RESPALDO/public/mas_v3.php" "$RESPALDO/mas_nuevo.php"
php "$PAQUETE/paso/enlazar_movimientos_agrupados.php" kardex "$RESPALDO/public/movimientos_stock_v3.php" "$RESPALDO/kardex_nuevo.php"
php -l "$RESPALDO/menu_nuevo.php" >/dev/null
php -l "$RESPALDO/mas_nuevo.php" >/dev/null
php -l "$RESPALDO/kardex_nuevo.php" >/dev/null

cp -p "$PAQUETE/public/movimientos_stock_agrupados_v3.php" "$NUEVO"
cp -p "$RESPALDO/menu_nuevo.php" "$BASE/app/includes/menu_v3.php"
cp -p "$RESPALDO/mas_nuevo.php" "$BASE/public/mas_v3.php"
cp -p "$RESPALDO/kardex_nuevo.php" "$BASE/public/movimientos_stock_v3.php"

php -l "$NUEVO" >/dev/null
php -l "$BASE/app/includes/menu_v3.php" >/dev/null
php -l "$BASE/public/mas_v3.php" >/dev/null
php -l "$BASE/public/movimientos_stock_v3.php" >/dev/null
trap - ERR

echo "Módulo Movimientos agrupados v4.8 instalado correctamente."
echo "Respaldo: $RESPALDO"
echo "Abrir: /public/movimientos_stock_agrupados_v3.php"
