10 Commits
v1.0.0 ... main

Author SHA1 Message Date
20705499c9 Correction du module Go et des imports après renommage en Paycheck 2026-01-22 13:57:05 +01:00
aadf34b8c3 Actualiser README.md 2026-01-20 09:57:07 +01:00
b2b8738bad Actualiser README.md 2026-01-19 20:23:07 +01:00
df408c81d6 Actualiser README.md 2026-01-19 14:46:12 +01:00
6c09c6f35a Actualiser README.md 2026-01-19 14:42:55 +01:00
016bdf148a Actualiser README.md 2026-01-19 14:42:13 +01:00
42132f564a Actualiser README.md 2026-01-19 14:40:47 +01:00
f90f6fe1a9 Actualiser README.md 2026-01-19 14:40:19 +01:00
dcd187b916 Actualiser README.md 2026-01-19 14:39:44 +01:00
14c2ad6e20 Actualiser README.md 2026-01-19 14:37:46 +01:00
11 changed files with 112 additions and 133 deletions

215
README.md
View File

@@ -1,161 +1,140 @@
# Calcul Astreintes # 🐷 Paycheck <small><em>Give me my fuc\*\* money.</em></small>
Paycheck est une application desktop permettant de calculer, vérifier et exporter la rémunération des astreintes à partir des données de paie (Excel), selon des profils de règles configurables.
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 ## Fonctionnalités
- Import dun fichier Excel mensuel (format `YYYY-MM`) - 📥 Import de fichiers Excel (.xlsx)
- Lecture automatique des heures dastreinte et dintervention - 👤 Sélection dun agent (nom, prénom, matricule)
- Sélection dun agent par **nom / prénom / matricule** - 🧮 Calcul automatique des montants dastreintes selon un profil
- **Remplissage automatique** des champs de calcul à partir du fichier Excel - 🧾 Détail clair des lignes de rémunération
- Saisie manuelle possible (sans import Excel) - 📄 Export PDF
- Calcul **manuel** via un bouton « Calculer » (comportement volontairement sécurisé) - 🖥️ Application multiplateforme (Windows / Linux)
- 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 dintervention de jour (code 456)
- Heures dintervention de nuit (code 459)
- Heures dintervention dimanche / jours fériés (code 458)
- Total des heures dastreinte du mois (code 471)
--- ---
## Principe de fonctionnement ## 🧱 Socle technique
1. Lutilisateur importe le fichier Excel mensuel des astreintes - 🧠 Go (backend et logique métier)
2. Le logiciel analyse automatiquement la feuille correspondant au mois (`YYYY-MM`) - 🪟 Wails v2 (application desktop)
3. Lutilisateur sélectionne un agent dans la liste (nom, prénom, matricule) - 🎨 JavaScript / HTML / CSS (frontend)
4. Les champs de calcul sont **remplis automatiquement** à partir de la ligne « Total Agent » - 📄 gofpdf (génération PDF)
5. Lutilisateur vérifie / complète si nécessaire (ex. nombre de dimanches / jours fériés) - ⚡ Vite (build frontend)
6. Le calcul est lancé manuellement via le bouton « Calculer »
--- ---
## Format du fichier Excel attendu ## 🚀 Utilisation
- Une feuille par mois, nommée `YYYY-MM` (exemple : `2026-01`) ### ▶️ Utiliser le binaire
- 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 » : Télécharger le binaire correspondant à votre système depuis la page Releases du dépôt.
- Total des heures dastreinte du mois
- Heures dintervention de jour
- Heures dintervention de nuit
- Heures dintervention dimanche / jour férié
Les lignes détaillées (types dintervention) ne sont pas utilisées. - 🪟 Windows : paycheck.exe
- 🐧 Linux : paycheck
Aucune installation supplémentaire nest nécessaire.
--- ---
## Installation Debian 13 (Linux) ## 🛠️ Développement
### Dépendances système ### 🔧 Prérequis
```bash - Go 1.21 ou plus récent
sudo apt update - Node.js 18 ou plus récent
sudo apt install -y \ - Wails CLI v2
build-essential pkg-config \
libgtk-3-dev \
libwebkit2gtk-4.1-dev
```
### Go (≥ 1.21) Vérification de lenvironnement :
```bash wails doctor
sudo apt install -y golang
```
### Node.js (Node 20 LTS recommandé) ### ▶️ Lancer en mode développement
Ajout du dépôt NodeSource : wails dev
```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) ## 🏗️ Build de lapplication
```bash ### 🐧 Linux
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 wails build
```
Un binaire Windows (`.exe`) sera alors généré. ### 🪟 Windows
> Remarque : aucune dépendance GTK/WebKit nest nécessaire sous Windows. wails build -platform windows/amd64
Les binaires sont générés dans le dossier :
build/bin/
--- ---
## Licence ## 📄 Export PDF
Ce projet est distribué sous licence **GNU GPL v3**. Lexport PDF inclut :
- 🏷️ Titre
- 📅 Mois de paie
- 🧑 Identité de lagent
- 📐 Profil appliqué
- 📋 Détail ligne par ligne des montants
- 💰 Total brut
- 🧾 Légende des codes de paie
- 🕒 Pied de page avec date dexport
Le PDF est volontairement monopage, stable et prêt à être transmis.
--- ---
## Statut du projet ## 📁 Structure du projet
- Version actuelle : **v0.2** paycheck/
- Projet en cours de développement - main.go
- wails.json
- go.mod
- internal/
- models/
- pdf/
- frontend/
- src/
- wailsjs/
- build/
- windows/
- README.md
### Évolutions prévues ---
- Amélioration de lergonomie de linterface ## 🧭 Versioning
- Gestion de plusieurs profils utilisateurs
- Export des résultats (PDF / CSV)
- Calcul du net à partir du brut
- Compilation et distribution Windows
Ce projet suit le Semantic Versioning.
- 🏁 v1.0.0 : première version stable
- vX.Y.Z
- X : changement majeur
- Y : nouvelle fonctionnalité
- Z : correctif
---
## 👨‍💻 Auteur
Développé avec amour ❤️ par **Alban Dumerain** pour Flooze Corp - *A Niaremud Nablax Company*.
---
## 📜 Licence
Projet distribué tel quel.
Voir le fichier LICENSE si applicable.
---
## 🕰️ Historique
Paycheck est la version renommée et stabilisée du projet initialement appelé calcul-astreintes.
À partir de la version 1.0, seul Paycheck est maintenu.

View File

@@ -15,11 +15,11 @@ import (
"github.com/wailsapp/wails/v2/pkg/runtime" "github.com/wailsapp/wails/v2/pkg/runtime"
"github.com/xuri/excelize/v2" "github.com/xuri/excelize/v2"
"git.dumerain.org/alban/calcul-astreintes/internal/calc" "git.dumerain.org/alban/paycheck/internal/calc"
"git.dumerain.org/alban/calcul-astreintes/internal/importer" "git.dumerain.org/alban/paycheck/internal/importer"
"git.dumerain.org/alban/calcul-astreintes/internal/models" "git.dumerain.org/alban/paycheck/internal/models"
"git.dumerain.org/alban/calcul-astreintes/internal/pdf" "git.dumerain.org/alban/paycheck/internal/pdf"
"git.dumerain.org/alban/calcul-astreintes/internal/profiles" "git.dumerain.org/alban/paycheck/internal/profiles"
) )
var ymRe = regexp.MustCompile(`^(\d{4})-(\d{2})$|^(\d{2})-(\d{4})$`) var ymRe = regexp.MustCompile(`^(\d{4})-(\d{2})$|^(\d{2})-(\d{4})$`)

View File

@@ -5,7 +5,7 @@ import (
"log" "log"
"sort" "sort"
"git.dumerain.org/alban/calcul-astreintes/internal/profiles" "git.dumerain.org/alban/paycheck/internal/profiles"
) )
func main() { func main() {

2
go.mod
View File

@@ -1,4 +1,4 @@
module git.dumerain.org/alban/calcul-astreintes module git.dumerain.org/alban/paycheck
go 1.24.0 go 1.24.0

View File

@@ -3,7 +3,7 @@ package calc
import ( import (
"math" "math"
"git.dumerain.org/alban/calcul-astreintes/internal/models" "git.dumerain.org/alban/paycheck/internal/models"
) )
/* /*

View File

@@ -9,7 +9,7 @@ import (
"github.com/xuri/excelize/v2" "github.com/xuri/excelize/v2"
"git.dumerain.org/alban/calcul-astreintes/internal/models" "git.dumerain.org/alban/paycheck/internal/models"
) )
// Feuille de mois acceptée : // Feuille de mois acceptée :

View File

@@ -9,7 +9,7 @@ import (
"github.com/phpdave11/gofpdf" "github.com/phpdave11/gofpdf"
"git.dumerain.org/alban/calcul-astreintes/internal/models" "git.dumerain.org/alban/paycheck/internal/models"
) )
//go:embed fonts/DejaVuSans.ttf fonts/DejaVuSans-Bold.ttf assets/paychek-logo.png //go:embed fonts/DejaVuSans.ttf fonts/DejaVuSans-Bold.ttf assets/paychek-logo.png

View File

@@ -7,7 +7,7 @@ import (
"sort" "sort"
"sync" "sync"
"git.dumerain.org/alban/calcul-astreintes/internal/models" "git.dumerain.org/alban/paycheck/internal/models"
) )
//go:embed profiles.json //go:embed profiles.json

View File

@@ -7,7 +7,7 @@ import (
"sort" "sort"
"sync" "sync"
"git.dumerain.org/alban/calcul-astreintes/internal/models" "git.dumerain.org/alban/paycheck/internal/models"
) )
/* /*

View File

@@ -4,7 +4,7 @@ import (
"embed" "embed"
"log" "log"
"git.dumerain.org/alban/calcul-astreintes/app" "git.dumerain.org/alban/paycheck/app"
"github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options"

View File

@@ -1,8 +1,8 @@
{ {
"$schema": "https://wails.io/schemas/config.v2.json", "$schema": "https://wails.io/schemas/config.v2.json",
"name": "calcul-astreintes", "name": "paycheck",
"title": "Paychek - Give me my money", "title": "Paychek - Give me my money",
"outputfilename": "calcul-astreintes", "outputfilename": "paycheck",
"frontend:install": "npm install", "frontend:install": "npm install",
"frontend:build": "npm run build", "frontend:build": "npm run build",
"frontend:dev:watcher": "npm run dev", "frontend:dev:watcher": "npm run dev",