Modification du versionnage auto
This commit is contained in:
537
README.md
537
README.md
@@ -1,203 +1,428 @@
|
||||
# Inventaire-Gestion
|
||||
# Ratio Inventaires
|
||||
|
||||
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.
|
||||
Projet Excel/VBA permettant de gérer les inventaires, les articles, les fournisseurs, les factures, le chiffre d’affaires et les ratios de consommation pour plusieurs activités.
|
||||
|
||||
## 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)
|
||||
|
||||
# 🚀 Installation du pilote MySQL ODBC 8.3
|
||||
|
||||
## ✅ Objectif
|
||||
|
||||
Assurer une compatibilité totale entre les fichiers Excel connectés à MySQL et le pilote ODBC, en uniformisant tous les postes avec la **version 8.3.0 du connecteur MySQL ODBC**.
|
||||
Le projet est organisé pour travailler proprement avec PyCharm, Git/Gitea et des scripts de mise en production automatisés.
|
||||
|
||||
---
|
||||
|
||||
## 📥 Étapes d'installation
|
||||
## Objectif du projet
|
||||
|
||||
1. Télécharger le fichier `mysql-connector-odbc-8.3.0-winx64.msi` depuis le site officiel :
|
||||
Le projet permet de maintenir plusieurs classeurs Excel métier :
|
||||
|
||||
👉 [https://dev.mysql.com/downloads/connector/odbc/](https://dev.mysql.com/downloads/connector/odbc/)
|
||||
- `Ratio_Cuisine.xlsm`
|
||||
- `Ratio_Restauration.xlsm`
|
||||
- `Démo_Ratio_Cuisine.xlsm`
|
||||
|
||||
2. Copier le fichier dans ce dossier sur chaque poste cible :
|
||||
Les fichiers de développement sont conservés dans `Excel/dev`, puis copiés vers `Excel/prod` par des scripts de mise en production.
|
||||
|
||||
```
|
||||
C:\Installers\
|
||||
```
|
||||
|
||||
3. Créer un fichier `Installer_ODBC_93.bat` contenant :
|
||||
|
||||
```bat
|
||||
@echo off
|
||||
echo ===============================
|
||||
echo Installation MySQL ODBC 8.3.0
|
||||
echo ===============================
|
||||
|
||||
SET MYPATH=C:\Installers
|
||||
SET INSTALLER=%MYPATH%\mysql-connector-odbc-8.3.0-winx64.msi
|
||||
|
||||
IF EXIST "%INSTALLER%" (
|
||||
echo >> Démarrage de l'installation silencieuse...
|
||||
msiexec /i "%INSTALLER%" /qn
|
||||
echo >> Installation terminée avec succès.
|
||||
pause
|
||||
) ELSE (
|
||||
echo >> Fichier MSI non trouvé :
|
||||
echo >> %INSTALLER%
|
||||
pause
|
||||
)
|
||||
```
|
||||
|
||||
4. Lancer le script :
|
||||
|
||||
* clic droit sur `Installer_ODBC_83.bat`
|
||||
* puis **"Exécuter en tant qu’administrateur"**
|
||||
Le numéro de version est géré automatiquement par fichier `.txt` interne, puis écrit directement dans le classeur Excel livré.
|
||||
|
||||
---
|
||||
|
||||
## 🔁 (Optionnel) Désinstallation d'une version précédente
|
||||
## Organisation des dossiers
|
||||
|
||||
Pour supprimer proprement une version antérieure (ex : 8.2), vous pouvez ajouter :
|
||||
```text
|
||||
Ratio_Inventaires/
|
||||
│
|
||||
├── Docs/
|
||||
│
|
||||
├── Excel/
|
||||
│ ├── backup/
|
||||
│ │ └── anciennes versions sauvegardées
|
||||
│ │
|
||||
│ ├── dev/
|
||||
│ │ ├── Ratio_Cuisine_dev.xlsm
|
||||
│ │ ├── Ratio_Cuisine_VERSION.txt
|
||||
│ │ ├── Ratio_Restauration_dev.xlsm
|
||||
│ │ └── Ratio_Restauration_VERSION.txt
|
||||
│ │
|
||||
│ └── prod/
|
||||
│ ├── Démo_Ratio_Cuisine.xlsm
|
||||
│ ├── Ratio_Cuisine.xlsm
|
||||
│ └── Ratio_Restauration.xlsm
|
||||
│
|
||||
└── Scripts/
|
||||
├── Maj_prod_Cuisine.bat
|
||||
├── Maj_prod_Restauration.bat
|
||||
├── maj_version.py
|
||||
└── set_cell_silent.vbs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Rôle des dossiers
|
||||
|
||||
### `Excel/dev`
|
||||
|
||||
Contient les fichiers de travail.
|
||||
|
||||
```text
|
||||
Ratio_Cuisine_dev.xlsm
|
||||
Ratio_Restauration_dev.xlsm
|
||||
```
|
||||
|
||||
Ces fichiers sont les fichiers modifiables.
|
||||
|
||||
Les fichiers `*_VERSION.txt` restent uniquement dans `dev`. Ils servent de compteurs internes pour les scripts de versionnage.
|
||||
|
||||
---
|
||||
|
||||
### `Excel/prod`
|
||||
|
||||
Contient les fichiers livrables.
|
||||
|
||||
```text
|
||||
Ratio_Cuisine.xlsm
|
||||
Ratio_Restauration.xlsm
|
||||
Démo_Ratio_Cuisine.xlsm
|
||||
```
|
||||
|
||||
Les fichiers de production ne nécessitent plus de fichier `.txt` à côté. La version est directement écrite dans le classeur Excel.
|
||||
|
||||
---
|
||||
|
||||
### `Excel/backup`
|
||||
|
||||
Contient les anciennes versions de production sauvegardées automatiquement avant remplacement.
|
||||
|
||||
Exemple :
|
||||
|
||||
```text
|
||||
Ratio_Cuisine_Vers1.0.15.xlsm
|
||||
Ratio_Restauration_Vers2.1.3.xlsm
|
||||
```
|
||||
|
||||
Le nombre de sauvegardes conservées est limité dans les scripts `.bat`.
|
||||
|
||||
---
|
||||
|
||||
### `Scripts`
|
||||
|
||||
Contient les scripts d’automatisation :
|
||||
|
||||
```text
|
||||
Maj_prod_Cuisine.bat
|
||||
Maj_prod_Restauration.bat
|
||||
maj_version.py
|
||||
set_cell_silent.vbs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Versionnage
|
||||
|
||||
Le projet utilise deux familles de versions :
|
||||
|
||||
```text
|
||||
Cuisine → 1.x.x
|
||||
Restauration → 2.x.x
|
||||
```
|
||||
|
||||
Les fichiers de version à conserver sont uniquement :
|
||||
|
||||
```text
|
||||
Excel/dev/Ratio_Cuisine_VERSION.txt
|
||||
Excel/dev/Ratio_Restauration_VERSION.txt
|
||||
```
|
||||
|
||||
Les fichiers `.txt` de version ne doivent plus être copiés dans `Excel/prod`.
|
||||
|
||||
---
|
||||
|
||||
## Fonctionnement du script de version
|
||||
|
||||
Le script :
|
||||
|
||||
```text
|
||||
Scripts/maj_version.py
|
||||
```
|
||||
|
||||
fait les opérations suivantes :
|
||||
|
||||
1. lit le fichier `*_VERSION.txt` dans `Excel/dev` ;
|
||||
2. force le numéro majeur selon le classeur ;
|
||||
3. incrémente le patch ;
|
||||
4. réécrit le fichier `.txt` ;
|
||||
5. écrit la version directement dans le classeur Excel de production.
|
||||
|
||||
Exemple de version écrite dans Excel :
|
||||
|
||||
```text
|
||||
Version : 1.0.12
|
||||
Version : 2.1.4
|
||||
```
|
||||
|
||||
L’écriture dans le classeur Excel est faite par :
|
||||
|
||||
```text
|
||||
Scripts/set_cell_silent.vbs
|
||||
```
|
||||
|
||||
Ce script ouvre Excel en arrière-plan, modifie la cellule de version, sauvegarde et ferme le classeur.
|
||||
|
||||
---
|
||||
|
||||
## Cellule de version dans Excel
|
||||
|
||||
La version est écrite automatiquement dans la feuille :
|
||||
|
||||
```text
|
||||
Tableau de bord
|
||||
```
|
||||
|
||||
La cellule utilisée doit être réservée à la version.
|
||||
|
||||
Recommandation actuelle :
|
||||
|
||||
```text
|
||||
E1 = Version : x.x.x
|
||||
```
|
||||
|
||||
Attention : `C1` est utilisé par le contexte du site, notamment `SiteCanonique`, et ne doit donc pas être utilisé pour la version.
|
||||
|
||||
---
|
||||
|
||||
## Mise en production Cuisine
|
||||
|
||||
Depuis le dossier `Scripts`, lancer :
|
||||
|
||||
```bat
|
||||
msiexec /x {GUID-DE-LA-VERSION-8.2} /qn
|
||||
Maj_prod_Cuisine.bat CUISINE
|
||||
```
|
||||
|
||||
*(à compléter avec l'identifiant de produit si nécessaire)*
|
||||
Le script effectue :
|
||||
|
||||
1. sauvegarde de l’ancienne version de production ;
|
||||
2. copie de `Excel/dev/Ratio_Cuisine_dev.xlsm` vers `Excel/prod/Ratio_Cuisine.xlsm` ;
|
||||
3. incrément de `Excel/dev/Ratio_Cuisine_VERSION.txt` ;
|
||||
4. écriture de la version dans le classeur de production ;
|
||||
5. nettoyage des anciennes sauvegardes.
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Conseils
|
||||
## Mise en production Restauration
|
||||
|
||||
* 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
|
||||
Depuis le dossier `Scripts`, lancer :
|
||||
|
||||
# 🔧 Gestion et distribution du fichier Excel `Ratio_prod.xlsm`
|
||||
|
||||
Ce document décrit le fonctionnement mis en place pour garantir une version stable et toujours à jour du fichier Excel `Ratio_prod.xlsm`, utilisé dans le cadre du projet **Ratio & Inventaires**.
|
||||
|
||||
---
|
||||
|
||||
## 🗃️ Organisation des fichiers
|
||||
|
||||
### Structure dans le projet (Git)
|
||||
|
||||
/Excel/
|
||||
├── dev/
|
||||
│ └── Ratio\_dev.xlsm ← Fichier de travail
|
||||
├── prod/
|
||||
│ └── Ratio\_prod.xlsm ← Fichier de production (non suivi par Git)
|
||||
|
||||
* `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).
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Synchronisation automatique avec le NAS Synology
|
||||
|
||||
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
|
||||
```bat
|
||||
Maj_prod_Restauration.bat RESTAURATION
|
||||
```
|
||||
|
||||
### Étapes :
|
||||
Le script effectue :
|
||||
|
||||
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.
|
||||
1. sauvegarde de l’ancienne version de production ;
|
||||
2. copie de `Excel/dev/Ratio_Restauration_dev.xlsm` vers `Excel/prod/Ratio_Restauration.xlsm` ;
|
||||
3. incrément de `Excel/dev/Ratio_Restauration_VERSION.txt` ;
|
||||
4. écriture de la version dans le classeur de production ;
|
||||
5. nettoyage des anciennes sauvegardes.
|
||||
|
||||
---
|
||||
|
||||
## ♻️ Restaurer la version de production dans le projet (dev)
|
||||
## Fichier de démonstration
|
||||
|
||||
Si la version de travail (`dev`) a été corrompue ou modifiée par erreur :
|
||||
Le fichier :
|
||||
|
||||
```text
|
||||
Excel/prod/Démo_Ratio_Cuisine.xlsm
|
||||
```
|
||||
|
||||
est destiné à présenter le fonctionnement sans installation réseau obligatoire.
|
||||
|
||||
Il peut contenir des données locales dans des feuilles de type :
|
||||
|
||||
```text
|
||||
DATA_Articles
|
||||
DATA_Fournisseurs
|
||||
DATA_Factures
|
||||
DATA_Ca
|
||||
DATA_Inventaires
|
||||
```
|
||||
|
||||
La version démo peut fonctionner sans connexion MySQL, sans ODBC et sans fichier `.txt` distribué.
|
||||
|
||||
Recommandations pour la version démo :
|
||||
|
||||
- données locales uniquement ;
|
||||
- pas d’identifiants MySQL ;
|
||||
- pas de requêtes Power Query actives ;
|
||||
- pas de fichier de version `.txt` livré ;
|
||||
- limitation volontaire des ajouts pour éviter un usage réel non maîtrisé.
|
||||
|
||||
---
|
||||
|
||||
## Connexions MySQL et ODBC
|
||||
|
||||
Les classeurs de production connectés peuvent utiliser MySQL via ODBC.
|
||||
|
||||
La version recommandée du pilote est :
|
||||
|
||||
```text
|
||||
MySQL ODBC 8.3 Unicode Driver
|
||||
```
|
||||
|
||||
Sur les postes clients connectés, le pilote doit être installé avant utilisation.
|
||||
|
||||
La version démo locale, elle, ne doit pas dépendre du pilote ODBC.
|
||||
|
||||
---
|
||||
|
||||
## Installation du pilote MySQL ODBC 8.3
|
||||
|
||||
Télécharger le pilote officiel :
|
||||
|
||||
```text
|
||||
mysql-connector-odbc-8.3.0-winx64.msi
|
||||
```
|
||||
|
||||
Puis le placer dans :
|
||||
|
||||
```text
|
||||
C:\Installers\
|
||||
```
|
||||
|
||||
Exemple de script d’installation silencieuse :
|
||||
|
||||
```bat
|
||||
@echo off
|
||||
echo ===============================
|
||||
echo Installation MySQL ODBC 8.3.0
|
||||
echo ===============================
|
||||
|
||||
set MYPATH=C:\Installers
|
||||
set INSTALLER=%MYPATH%\mysql-connector-odbc-8.3.0-winx64.msi
|
||||
|
||||
if exist "%INSTALLER%" (
|
||||
echo Démarrage de l'installation silencieuse...
|
||||
msiexec /i "%INSTALLER%" /qn
|
||||
echo Installation terminée.
|
||||
) else (
|
||||
echo Fichier MSI non trouvé :
|
||||
echo %INSTALLER%
|
||||
)
|
||||
```
|
||||
|
||||
À lancer en administrateur.
|
||||
|
||||
---
|
||||
|
||||
## Bonnes pratiques Git/Gitea
|
||||
|
||||
À versionner :
|
||||
|
||||
```text
|
||||
Excel/dev/Ratio_Cuisine_dev.xlsm
|
||||
Excel/dev/Ratio_Restauration_dev.xlsm
|
||||
Excel/dev/*_VERSION.txt
|
||||
Scripts/*.bat
|
||||
Scripts/*.py
|
||||
Scripts/*.vbs
|
||||
README.md
|
||||
```
|
||||
|
||||
À ignorer ou éviter de versionner :
|
||||
|
||||
```text
|
||||
Excel/backup/
|
||||
~$*.xlsm
|
||||
*.tmp
|
||||
*.bak
|
||||
```
|
||||
|
||||
Selon la stratégie choisie, les fichiers de `Excel/prod` peuvent être versionnés ou non. Dans ce projet, ils servent de fichiers livrables générés par les scripts.
|
||||
|
||||
---
|
||||
|
||||
## Exemple de `.gitignore`
|
||||
|
||||
```gitignore
|
||||
# Fichiers temporaires Excel
|
||||
~$*.xlsm
|
||||
~$*.xlsx
|
||||
*.tmp
|
||||
*.bak
|
||||
|
||||
# Sauvegardes générées
|
||||
Excel/backup/
|
||||
|
||||
# Cache Python
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Environnements virtuels
|
||||
.venv/
|
||||
venv/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Checklist avant mise en production
|
||||
|
||||
Avant de lancer un script de mise en production :
|
||||
|
||||
1. fermer le classeur Excel concerné ;
|
||||
2. vérifier qu’aucun fichier `~$Ratio_*.xlsm` n’est présent ;
|
||||
3. sauvegarder les modifications dans le fichier `dev` ;
|
||||
4. lancer le script `.bat` correspondant ;
|
||||
5. vérifier que la version est bien écrite dans le classeur `prod` ;
|
||||
6. faire un commit Git/Gitea.
|
||||
|
||||
---
|
||||
|
||||
## Commandes utiles
|
||||
|
||||
Vérifier l’état Git :
|
||||
|
||||
```bash
|
||||
cp Excel/prod/Ratio_Cuisine.xlsm Excel/dev/Ratio_Cuisine_dev_old.xlsm
|
||||
git status
|
||||
```
|
||||
|
||||
Ou sous Windows :
|
||||
Ajouter les modifications :
|
||||
|
||||
```powershell
|
||||
Copy-Item -Path "Excel\prod\Ratio_prod.xlsm" -Destination "Excel\dev\Ratio_dev.xlsm" -Force
|
||||
```bash
|
||||
git add README_old.md Scripts/ Excel/dev/
|
||||
```
|
||||
|
||||
Créer un commit :
|
||||
|
||||
```bash
|
||||
git commit -m "Normalise versioning and prod deployment scripts"
|
||||
```
|
||||
|
||||
Envoyer vers Gitea :
|
||||
|
||||
```bash
|
||||
git push
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧾 Notes complémentaires
|
||||
## Dépannage
|
||||
|
||||
* 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.
|
||||
### Erreur : fichier utilisé par un autre processus
|
||||
|
||||
Cause probable : le classeur est encore ouvert dans Excel ou un fichier temporaire existe.
|
||||
|
||||
Solution :
|
||||
|
||||
```bat
|
||||
taskkill /F /IM excel.exe
|
||||
```
|
||||
|
||||
Puis vérifier que le fichier temporaire a disparu :
|
||||
|
||||
```text
|
||||
~$Ratio_Cuisine.xlsm
|
||||
~$Ratio_Restauration.xlsm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 📋 Checklist Release DEV → PROD
|
||||
### Erreur dans `set_cell_silent.vbs` au moment de fermer Excel
|
||||
|
||||
Pour garantir que DEV reste ouvert et que PROD soit protégé :
|
||||
Cause probable : Excel est resté en arrière-plan.
|
||||
|
||||
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.
|
||||
Solution : utiliser la version robuste de `set_cell_silent.vbs`, qui ferme explicitement le classeur et l’application Excel après sauvegarde.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user