# Calcul Astreintes

Outil de calcul de rémunération des astreintes et interventions, basé sur un import de fichier Excel mensuel et un **remplissage automatique** des données par agent.

---

## Fonctionnalités

- Import d’un fichier Excel mensuel (format `YYYY-MM`)
- Lecture automatique des heures d’astreinte et d’intervention
- Sélection d’un agent par **nom / prénom / matricule**
- **Remplissage automatique** des champs de calcul à partir du fichier Excel
- Saisie manuelle possible (sans import Excel)
- Calcul **manuel** via un bouton « Calculer » (comportement volontairement sécurisé)
- Export PDF du calcul (A4) (nom de fichier : `calcul-astreintes-YYYY-MM-NOM-Prenom.pdf`)
- Application graphique multiplateforme basée sur **Wails** (Go + Web)

Champs remplis automatiquement :
- Heures d’intervention de jour (code 456)
- Heures d’intervention de nuit (code 459)
- Heures d’intervention dimanche / jours fériés (code 458)
- Total des heures d’astreinte du mois (code 471)

---

## Principe de fonctionnement

1. L’utilisateur importe le fichier Excel mensuel des astreintes
2. Le logiciel analyse automatiquement la feuille correspondant au mois (`YYYY-MM`)
3. L’utilisateur sélectionne un agent dans la liste (nom, prénom, matricule)
4. Les champs de calcul sont **remplis automatiquement** à partir de la ligne « Total Agent »
5. L’utilisateur vérifie / complète si nécessaire (ex. nombre de dimanches / jours fériés)
6. Le calcul est lancé manuellement via le bouton « Calculer »

---

## Format du fichier Excel attendu

- Une feuille par mois, nommée `YYYY-MM` (exemple : `2026-01`)
- Les agents sont identifiés par :
  - Un **matricule unique**
  - Le nom et le prénom dans une seule cellule (format : `NOM Prénom`)
- Les valeurs utilisées sont celles de la ligne **Total Agent**, située juste au-dessus des lignes détaillées

Colonnes exploitées sur la ligne « Total Agent » :
- Total des heures d’astreinte du mois
- Heures d’intervention de jour
- Heures d’intervention de nuit
- Heures d’intervention dimanche / jour férié

Les lignes détaillées (types d’intervention) ne sont pas utilisées.

---

## Installation – Debian 13 (Linux)

### Dépendances système

```bash
sudo apt update
sudo apt install -y \
  build-essential pkg-config \
  libgtk-3-dev \
  libwebkit2gtk-4.1-dev
```

### Go (≥ 1.21)

```bash
sudo apt install -y golang
```

### Node.js (Node 20 LTS – recommandé)

Ajout du dépôt NodeSource :

```bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
```

### Wails

```bash
go install github.com/wailsapp/wails/v2/cmd/wails@latest
```

---

## Lancement en mode développement (Linux)

```bash
wails dev -tags webkit2_41
```

---

## Compilation Linux

```bash
wails build -tags webkit2_41
```

Le binaire généré se trouve dans le dossier `build/`.

---

## Compilation Windows (préparation / roadmap)

La compilation Windows est prévue prochainement. Le projet est déjà compatible Wails.

### Prérequis Windows

- Windows 10 ou 11 (64 bits)
- Go ≥ 1.21
- Node.js 20 LTS
- Outils de compilation Microsoft :
  - **Visual Studio Build Tools**
  - Composant « Développement Desktop en C++ »

### Étapes prévues pour compiler sous Windows

1. Installer Go et Node.js
2. Installer les Visual Studio Build Tools (C++ requis)
3. Installer Wails :

```powershell
go install github.com/wailsapp/wails/v2/cmd/wails@latest
```

4. Depuis un terminal PowerShell dans le projet :

```powershell
wails build
```

Un binaire Windows (`.exe`) sera alors généré.

> Remarque : aucune dépendance GTK/WebKit n’est nécessaire sous Windows.

---

## Licence

Ce projet est distribué sous licence **GNU GPL v3**.

---

## Statut du projet

- Version actuelle : **v0.2**
- Projet en cours de développement

### Évolutions prévues

- Amélioration de l’ergonomie de l’interface
- Gestion de plusieurs profils utilisateurs
- Export des résultats (PDF / CSV)
- Calcul du net à partir du brut
- Compilation et distribution Windows

