Reconfiguration de maj_prod_ratio.bat

This commit is contained in:
2025-09-07 16:41:21 +02:00
parent 36365d4ecd
commit 6cfd3f748c
7 changed files with 145 additions and 124 deletions

View File

@@ -1,9 +0,0 @@
@echo off
echo ===============================
echo Installation MySQL ODBC 9.3.0
echo ===============================
echo Installation des composants requis...
start /wait vc_redist.x64.exe /quiet /norestart
start /wait mysql-connector-odbc-9.2.0-winx64.msi /quiet
echo Installation terminée.
pause

View File

@@ -1,27 +0,0 @@
@echo off
title Installation de la version stable de Ratio
echo.
echo ==========================================
echo INSTALLATION DE RATIO - VERSION STABLE
echo ==========================================
echo.
REM Chemin de destination
set DEST="C:\Program Files\Ratio"
REM Créer le dossier si nécessaire
if not exist %DEST% (
mkdir %DEST%
)
REM Copier le fichier Excel
copy "Ratio_prod.xlsm" %DEST%\Ratio.xlsm /Y
REM Protéger le fichier en lecture seule
attrib +R %DEST%\Ratio.xlsm
echo.
echo ✔️ Le fichier Ratio_prod a été installé avec succès !
echo Emplacement : %DEST%\Ratio.xlsm
echo.
pause

1
Scripts/PROD Normal file
View File

@@ -0,0 +1 @@
=== [2/3] Copie DEV -

View File

@@ -1,97 +1,59 @@
@echo off
setlocal EnableExtensions EnableDelayedExpansion
REM === PARAMÈTRES A ADAPTER UNE FOIS ===
REM === PARAMÈTRES A ADAPTER UNE FOIS =========================================
set "ROOT=C:\Users\miche\PycharmProjects\Ratio_Inventaires"
set "DEV_XLSM=%ROOT%\Excel\dev\Ratio_dev.xlsm"
set "DEV_AUTH_PY=%ROOT%\Excel\dev\Auth\auth_cli.py"
set "VENV_PY=%ROOT%\.venv\Scripts\python.exe"
set "PROD_DIR=%ROOT%\Excel\prod"
set "PROD_XLSM=%PROD_DIR%\Ratio_prod.xlsm"
set "PROD_AUTH_DIR=%PROD_DIR%\Auth"
set "INSTALL_CLIENT=%USERPROFILE%\Desktop\Install_Ratio_Inv" REM <- dossier prêt à livrer au client
set "CLIENT_AUTH_DIR=%INSTALL_CLIENT%\Auth"
REM Dossier prêt à livrer au client
set "INSTALL_CLIENT=%USERPROFILE%\Desktop\Install_Ratio_Inv"
REM ============================================================================
REM === DATE ISO robuste (indépendant des paramètres régionaux) ===
REM === DATE ISO robuste (indépendant des paramètres régionaux) ===============
for /f %%i in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy_MM_dd\")"') do set "DATESTAMP=%%i"
set "ARCHIVE_FILE=%PROD_DIR%\Ratio_prod_%DATESTAMP%.xlsm"
echo.
echo === [1/6] Préparation des dossiers ========================================
if not exist "%PROD_DIR%" mkdir "%PROD_DIR%"
if not exist "%PROD_AUTH_DIR%" mkdir "%PROD_AUTH_DIR%"
if not exist "%INSTALL_CLIENT%" mkdir "%INSTALL_CLIENT%"
if not exist "%CLIENT_AUTH_DIR%" mkdir "%CLIENT_AUTH_DIR%"
echo === [1/4] Préparation des dossiers =======================================
if not exist "%PROD_DIR%" mkdir "%PROD_DIR%"
if not exist "%INSTALL_CLIENT%" mkdir "%INSTALL_CLIENT%"
echo.
echo === [2/6] (Optionnel) Build de auth_cli.exe avec PyInstaller ==============
if exist "%VENV_PY%" (
echo Compilation via venv: %VENV_PY%
"%VENV_PY%" -m PyInstaller --onefile --clean --distpath "%PROD_AUTH_DIR%" "%DEV_AUTH_PY%"
if errorlevel 1 (
echo [WARN] Echec de compilation. On continue avec l'exe existant s'il est présent.
)
) else (
echo [WARN] VENV introuvable: %VENV_PY% -> build ignore
)
echo.
echo === [3/6] Sauvegarde de la prod courante ==================================
if exist "%PROD_XLSM%" (
echo Sauvegarde -> "%ARCHIVE_FILE%"
copy /Y "%PROD_XLSM%" "%ARCHIVE_FILE%" >nul
) else (
echo Pas de prod courante a sauvegarder.
)
echo.
echo === [4/6] Mise a jour de la prod depuis le dev ============================
if not exist "%DEV_XLSM%" (
echo [ERREUR] Fichier DEV introuvable: %DEV_XLSM%
goto :EOF
)
echo.
echo === [2/4] Sauvegarde de la PROD courante =================================
if exist "%PROD_XLSM%" (
echo Sauvegarde -> "%ARCHIVE_FILE%"
copy /Y "%PROD_XLSM%" "%ARCHIVE_FILE%" >nul
) else (
echo Pas de PROD courante a sauvegarder.
)
echo.
echo === [3/4] Mise a jour de la PROD depuis le DEV ===========================
copy /Y "%DEV_XLSM%" "%PROD_XLSM%" >nul
if errorlevel 1 (
echo [ERREUR] Copie du XLSM vers PROD echouee.
goto :EOF
)
REM On s'assure que l'exe est bien present et on deblocque Windows (SmartScreen)
if exist "%PROD_AUTH_DIR%\auth_cli.exe" (
powershell -NoProfile -Command "Unblock-File -Path '%PROD_AUTH_DIR%\auth_cli.exe'" 2>nul
) else (
echo [ERREUR] auth_cli.exe absent dans %PROD_AUTH_DIR%
echo Lance d'abord la compilation ou copie l'exe manuellement.
goto :EOF
)
REM Le .env doit exister dans PROD\Auth (modele ou reel)
if not exist "%PROD_AUTH_DIR%\.env" (
echo [WARN] Aucun .env dans %PROD_AUTH_DIR% -> Pense a y mettre DB_HOST/DB_NAME/DB_USER/DB_PASSWORD
)
echo.
echo === [5/6] Préparation du dossier client ===================================
echo === [4/4] Preparation du dossier client ==================================
copy /Y "%PROD_XLSM%" "%INSTALL_CLIENT%\Ratio_prod.xlsm" >nul
if errorlevel 1 (
echo [ERREUR] Copie du XLSM vers INSTALL_CLIENT echouee.
goto :EOF
)
copy /Y "%PROD_AUTH_DIR%\auth_cli.exe" "%CLIENT_AUTH_DIR%\auth_cli.exe" >nul
powershell -NoProfile -Command "Unblock-File -Path '%CLIENT_AUTH_DIR%\auth_cli.exe'" 2>nul
if exist "%PROD_AUTH_DIR%\.env" (
copy /Y "%PROD_AUTH_DIR%\.env" "%CLIENT_AUTH_DIR%\.env" >nul
) else (
echo [INFO] Pas de .env a copier (client). Tu pourras le remplir a la main.
)
echo.
echo === [6/6] Nettoyage: on garde 5 archives les plus recentes ===============
pushd "%PROD_DIR%"
echo === Nettoyage: on garde 5 archives les plus recentes =====================
pushd "%PROD_DIR%" >nul
set count=0
for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do (
set /a count+=1
@@ -100,13 +62,13 @@ for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do (
del "%%f"
)
)
popd
popd >nul
echo.
echo [OK] Release terminee :
echo [OK] Mise a jour terminee :
echo - PROD : "%PROD_XLSM%"
echo - AUTH : "%PROD_AUTH_DIR%\auth_cli.exe" + ".env"
echo - CLIENT: "%INSTALL_CLIENT%\Ratio_prod.xlsm" + "Auth\*"
echo - CLIENT: "%INSTALL_CLIENT%\Ratio_prod.xlsm"
echo.
pause
endlocal
endlocal & exit /b 0