Reconfiguration de maj_prod_ratio.bat
This commit is contained in:
Binary file not shown.
BIN
Fichiers_Install_Clients/Ratio_prod.xlsm
Normal file
BIN
Fichiers_Install_Clients/Ratio_prod.xlsm
Normal file
Binary file not shown.
138
README.md
138
README.md
@@ -3,12 +3,14 @@
|
||||
Ce projet permet de gérer les inventaires et les ratios de plusieurs sites à partir d’un fichier Excel central et d’une base MySQL.
|
||||
|
||||
## Fonctionnalités
|
||||
- Mise à jour du pilote ODBC sur machine client
|
||||
- Authentification par site
|
||||
- Lecture automatique du fichier `ratio.xlsm`
|
||||
- Insertion des données dans la base correspondante
|
||||
- Gestion des articles et inventaire par code barres
|
||||
- Affichage dans Streamlit (à venir)
|
||||
|
||||
* Mise à jour du pilote ODBC sur machine client
|
||||
* Authentification par site
|
||||
* Lecture automatique du fichier `ratio.xlsm`
|
||||
* Insertion des données dans la base correspondante
|
||||
* Gestion des articles et inventaire par code barres
|
||||
* Affichage dans Streamlit (à venir)
|
||||
|
||||
# 🚀 Installation du pilote MySQL ODBC 8.3
|
||||
|
||||
## ✅ Objectif
|
||||
@@ -21,7 +23,7 @@ Assurer une compatibilité totale entre les fichiers Excel connectés à MySQL e
|
||||
|
||||
1. Télécharger le fichier `mysql-connector-odbc-8.3.0-winx64.msi` depuis le site officiel :
|
||||
|
||||
👉 https://dev.mysql.com/downloads/connector/odbc/
|
||||
👉 [https://dev.mysql.com/downloads/connector/odbc/](https://dev.mysql.com/downloads/connector/odbc/)
|
||||
|
||||
2. Copier le fichier dans ce dossier sur chaque poste cible :
|
||||
|
||||
@@ -54,8 +56,8 @@ Assurer une compatibilité totale entre les fichiers Excel connectés à MySQL e
|
||||
|
||||
4. Lancer le script :
|
||||
|
||||
- clic droit sur `Installer_ODBC_83.bat`
|
||||
- puis **"Exécuter en tant qu’administrateur"**
|
||||
* clic droit sur `Installer_ODBC_83.bat`
|
||||
* puis **"Exécuter en tant qu’administrateur"**
|
||||
|
||||
---
|
||||
|
||||
@@ -73,10 +75,9 @@ msiexec /x {GUID-DE-LA-VERSION-8.2} /qn
|
||||
|
||||
## 🧩 Conseils
|
||||
|
||||
- Intégrez ces fichiers dans votre dépôt (ex : dossier `Installers/`)
|
||||
- Versionnez votre script dans Git (Gitea) pour faciliter le déploiement sur tous les sites
|
||||
- Utilisez RustDesk ou accès direct pour l'installation sur les PC distants
|
||||
|
||||
* Intégrez ces fichiers dans votre dépôt (ex : dossier `Installers/`)
|
||||
* Versionnez votre script dans Git (Gitea) pour faciliter le déploiement sur tous les sites
|
||||
* Utilisez RustDesk ou accès direct pour l'installation sur les PC distants
|
||||
|
||||
# 🔧 Gestion et distribution du fichier Excel `Ratio_prod.xlsm`
|
||||
|
||||
@@ -90,16 +91,12 @@ Ce document décrit le fonctionnement mis en place pour garantir une version sta
|
||||
|
||||
/Excel/
|
||||
├── dev/
|
||||
│ └── Ratio_dev.xlsm ← Fichier de travail
|
||||
│ └── Ratio\_dev.xlsm ← Fichier de travail
|
||||
├── prod/
|
||||
│ └── Ratio_prod.xlsm ← Fichier de production (non suivi par Git)
|
||||
│ └── Ratio\_prod.xlsm ← Fichier de production (non suivi par Git)
|
||||
|
||||
yaml
|
||||
Copier
|
||||
Modifier
|
||||
|
||||
- `Ratio_dev.xlsm` : version de développement modifiable, suivie par Git.
|
||||
- `Ratio_prod.xlsm` : version validée, protégée (ajoutée au `.gitignore` pour éviter tout push accidentel).
|
||||
* `Ratio_dev.xlsm` : version de développement modifiable, suivie par Git.
|
||||
* `Ratio_prod.xlsm` : version validée, protégée (ajoutée au `.gitignore` pour éviter tout push accidentel).
|
||||
|
||||
---
|
||||
|
||||
@@ -107,6 +104,103 @@ Modifier
|
||||
|
||||
Le fichier `Ratio_prod.xlsm` est copié automatiquement sur le NAS Synology, dans un dossier partagé :
|
||||
|
||||
``` ### ⚙️ Configuration - **Synology Drive Server** est activé sur le NAS. - **Synology Drive Client** est installé sur le poste de travail. - Dossier synchronisé : `Partage_Ratio` - Mode de synchronisation recommandé : `Téléchargement uniquement`. --- ## 🔌 Copie automatique vers clé USB (via NAS) ### Prérequis - Application **USB Copy** installée et activée sur le NAS. ### Fonctionnement 1. Brancher une clé USB sur le port en façade du NAS. 2. Le NAS copie automatiquement `Ratio_prod.xlsm` sur la clé USB si une version plus récente est disponible. 3. Le fichier est copié dans le dossier racine de la clé, ou dans un dossier `Ratio/`. ### Avantages - Pas besoin d’ordinateur pour copier à la main. - Copie toujours à jour dès que la clé est branchée. --- ## 🛠️ Installation manuelle depuis une clé USB Contenu du dossier USB : ``` INSTALL_RATIO/ ├── Ratio_prod.xlsm └── Installer_Prod.bat ``` ### Étapes : 1. Brancher la clé USB sur le poste utilisateur. 2. Lancer `Installer_Prod.bat` **en tant qu’administrateur**. 3. Le fichier sera copié dans : ``` C:\Program Files\Ratio\Ratio.xlsm ``` et protégé en lecture seule. --- ## ♻️ Restaurer la version de production dans le projet (dev) Si la version de travail (`dev`) a été corrompue ou modifiée par erreur : ```bash cp Excel/prod/Ratio_prod.xlsm Excel/dev/Ratio_dev.xlsm ``` Ou sous Windows : ```powershell Copy-Item -Path "Excel\prod\Ratio_prod.xlsm" -Destination "Excel\dev\Ratio_dev.xlsm" -Force ``` --- ## 🧾 Notes complémentaires - Le fichier `Ratio_prod.xlsm` n’est **pas suivi par Git**, car exclu via `.gitignore`. - Il est **protégé en lecture seule** sur le poste utilisateur. - Une sauvegarde automatique est possible via **Hyper Backup** ou les **snapshots** du NAS. --- 📌 **Dernière mise à jour :** 16 mai 2025 ``` --- Souhaites-tu que je t’envoie ce fichier directement en `.md`, ou que je l’intègre dans ton dépôt Gitea ? Je peux aussi te générer une version `.pdf` si tu veux la distribuer aux utilisateurs.
|
||||
### ⚙️ Configuration
|
||||
|
||||
* **Synology Drive Server** est activé sur le NAS.
|
||||
* **Synology Drive Client** est installé sur le poste de travail.
|
||||
* Dossier synchronisé : `Partage_Ratio`
|
||||
* Mode de synchronisation recommandé : `Téléchargement uniquement`.
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Copie automatique vers clé USB (via NAS)
|
||||
|
||||
### Prérequis
|
||||
|
||||
* Application **USB Copy** installée et activée sur le NAS.
|
||||
|
||||
### Fonctionnement
|
||||
|
||||
1. Brancher une clé USB sur le port en façade du NAS.
|
||||
2. Le NAS copie automatiquement `Ratio_prod.xlsm` sur la clé USB si une version plus récente est disponible.
|
||||
3. Le fichier est copié dans le dossier racine de la clé, ou dans un dossier `Ratio/`.
|
||||
|
||||
### Avantages
|
||||
|
||||
* Pas besoin d’ordinateur pour copier à la main.
|
||||
* Copie toujours à jour dès que la clé est branchée.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Installation manuelle depuis une clé USB
|
||||
|
||||
Contenu du dossier USB :
|
||||
|
||||
```
|
||||
INSTALL_RATIO/
|
||||
├── Ratio_prod.xlsm
|
||||
└── Installer_Prod.bat
|
||||
```
|
||||
|
||||
### Étapes :
|
||||
|
||||
1. Brancher la clé USB sur le poste utilisateur.
|
||||
2. Lancer `Installer_Prod.bat` **en tant qu’administrateur**.
|
||||
3. Le fichier sera copié dans :
|
||||
|
||||
```
|
||||
C:\Program Files\Ratio\Ratio.xlsm
|
||||
```
|
||||
|
||||
et protégé en lecture seule.
|
||||
|
||||
---
|
||||
|
||||
## ♻️ Restaurer la version de production dans le projet (dev)
|
||||
|
||||
Si la version de travail (`dev`) a été corrompue ou modifiée par erreur :
|
||||
|
||||
```bash
|
||||
cp Excel/prod/Ratio_prod.xlsm Excel/dev/Ratio_dev.xlsm
|
||||
```
|
||||
|
||||
Ou sous Windows :
|
||||
|
||||
```powershell
|
||||
Copy-Item -Path "Excel\prod\Ratio_prod.xlsm" -Destination "Excel\dev\Ratio_dev.xlsm" -Force
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧾 Notes complémentaires
|
||||
|
||||
* Le fichier `Ratio_prod.xlsm` n’est **pas suivi par Git**, car exclu via `.gitignore`.
|
||||
* Il est **protégé en lecture seule** sur le poste utilisateur.
|
||||
* Une sauvegarde automatique est possible via **Hyper Backup** ou les **snapshots** du NAS.
|
||||
|
||||
---
|
||||
|
||||
# 📋 Checklist Release DEV → PROD
|
||||
|
||||
Pour garantir que DEV reste ouvert et que PROD soit protégé :
|
||||
|
||||
1. **Travailler dans DEV** : `Excel/dev/Ratio_dev.xlsm` (projet VBA non verrouillé).
|
||||
2. **Lancer le script batch** (`build_prod.bat`).
|
||||
|
||||
* Copie DEV → PROD
|
||||
* Application des protections (feuilles, structure, horodatage)
|
||||
* Vérification/verrouillage du projet VBA PROD (manuel si nécessaire)
|
||||
3. **Vérifier PROD** :
|
||||
|
||||
* Feuilles protégées
|
||||
* Structure du classeur protégée
|
||||
* Projet VBA verrouillé (mot de passe, déjà posé une fois)
|
||||
4. **Distribuer PROD** : via NAS, USB ou dossier client.
|
||||
|
||||
👉 DEV reste toujours libre, PROD reste verrouillé et sûr.
|
||||
|
||||
---
|
||||
|
||||
## Auteur
|
||||
|
||||
Michel
|
||||
|
||||
@@ -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
|
||||
@@ -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
1
Scripts/PROD
Normal file
@@ -0,0 +1 @@
|
||||
=== [2/3] Copie DEV -
|
||||
@@ -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 ========================================
|
||||
echo === [1/4] 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.
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user