Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 20705499c9 | |||
| aadf34b8c3 | |||
| b2b8738bad | |||
| df408c81d6 | |||
| 6c09c6f35a | |||
| 016bdf148a | |||
| 42132f564a | |||
| f90f6fe1a9 | |||
| dcd187b916 | |||
| 14c2ad6e20 |
215
README.md
215
README.md
@@ -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 d’un fichier Excel mensuel (format `YYYY-MM`)
|
- 📥 Import de fichiers Excel (.xlsx)
|
||||||
- Lecture automatique des heures d’astreinte et d’intervention
|
- 👤 Sélection d’un agent (nom, prénom, matricule)
|
||||||
- Sélection d’un agent par **nom / prénom / matricule**
|
- 🧮 Calcul automatique des montants d’astreintes 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 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
|
## 🧱 Socle technique
|
||||||
|
|
||||||
1. L’utilisateur 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. L’utilisateur 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. L’utilisateur 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 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.
|
- 🪟 Windows : paycheck.exe
|
||||||
|
- 🐧 Linux : paycheck
|
||||||
|
|
||||||
|
Aucune installation supplémentaire n’est 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 l’environnement :
|
||||||
|
|
||||||
```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 l’application
|
||||||
|
|
||||||
```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 n’est 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**.
|
L’export PDF inclut :
|
||||||
|
|
||||||
|
- 🏷️ Titre
|
||||||
|
- 📅 Mois de paie
|
||||||
|
- 🧑 Identité de l’agent
|
||||||
|
- 📐 Profil appliqué
|
||||||
|
- 📋 Détail ligne par ligne des montants
|
||||||
|
- 💰 Total brut
|
||||||
|
- 🧾 Légende des codes de paie
|
||||||
|
- 🕒 Pied de page avec date d’export
|
||||||
|
|
||||||
|
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 l’ergonomie de l’interface
|
## 🧭 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.
|
||||||
10
app/app.go
10
app/app.go
@@ -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})$`)
|
||||||
|
|||||||
@@ -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
2
go.mod
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -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 :
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"git.dumerain.org/alban/calcul-astreintes/internal/models"
|
"git.dumerain.org/alban/paycheck/internal/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -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"
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user