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`)
|
||||
- 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)
|
||||
- 📥 Import de fichiers Excel (.xlsx)
|
||||
- 👤 Sélection d’un agent (nom, prénom, matricule)
|
||||
- 🧮 Calcul automatique des montants d’astreintes selon un profil
|
||||
- 🧾 Détail clair des lignes de rémunération
|
||||
- 📄 Export PDF
|
||||
- 🖥️ Application multiplateforme (Windows / Linux)
|
||||
|
||||
---
|
||||
|
||||
## Principe de fonctionnement
|
||||
## 🧱 Socle technique
|
||||
|
||||
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 »
|
||||
- 🧠 Go (backend et logique métier)
|
||||
- 🪟 Wails v2 (application desktop)
|
||||
- 🎨 JavaScript / HTML / CSS (frontend)
|
||||
- 📄 gofpdf (génération PDF)
|
||||
- ⚡ Vite (build frontend)
|
||||
|
||||
---
|
||||
|
||||
## Format du fichier Excel attendu
|
||||
## 🚀 Utilisation
|
||||
|
||||
- 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
|
||||
### ▶️ Utiliser le binaire
|
||||
|
||||
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é
|
||||
Télécharger le binaire correspondant à votre système depuis la page Releases du dépôt.
|
||||
|
||||
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
|
||||
sudo apt update
|
||||
sudo apt install -y \
|
||||
build-essential pkg-config \
|
||||
libgtk-3-dev \
|
||||
libwebkit2gtk-4.1-dev
|
||||
```
|
||||
- Go 1.21 ou plus récent
|
||||
- Node.js 18 ou plus récent
|
||||
- Wails CLI v2
|
||||
|
||||
### Go (≥ 1.21)
|
||||
Vérification de l’environnement :
|
||||
|
||||
```bash
|
||||
sudo apt install -y golang
|
||||
```
|
||||
wails doctor
|
||||
|
||||
### Node.js (Node 20 LTS – recommandé)
|
||||
### ▶️ Lancer en mode développement
|
||||
|
||||
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
|
||||
```
|
||||
wails dev
|
||||
|
||||
---
|
||||
|
||||
## Lancement en mode développement (Linux)
|
||||
## 🏗️ Build de l’application
|
||||
|
||||
```bash
|
||||
wails dev -tags webkit2_41
|
||||
```
|
||||
### 🐧 Linux
|
||||
|
||||
---
|
||||
|
||||
## 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é.
|
||||
### 🪟 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**
|
||||
- Projet en cours de développement
|
||||
paycheck/
|
||||
- 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
|
||||
- Gestion de plusieurs profils utilisateurs
|
||||
- Export des résultats (PDF / CSV)
|
||||
- Calcul du net à partir du brut
|
||||
- Compilation et distribution Windows
|
||||
## 🧭 Versioning
|
||||
|
||||
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/xuri/excelize/v2"
|
||||
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/calc"
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/importer"
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/models"
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/pdf"
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/profiles"
|
||||
"git.dumerain.org/alban/paycheck/internal/calc"
|
||||
"git.dumerain.org/alban/paycheck/internal/importer"
|
||||
"git.dumerain.org/alban/paycheck/internal/models"
|
||||
"git.dumerain.org/alban/paycheck/internal/pdf"
|
||||
"git.dumerain.org/alban/paycheck/internal/profiles"
|
||||
)
|
||||
|
||||
var ymRe = regexp.MustCompile(`^(\d{4})-(\d{2})$|^(\d{2})-(\d{4})$`)
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"log"
|
||||
"sort"
|
||||
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/profiles"
|
||||
"git.dumerain.org/alban/paycheck/internal/profiles"
|
||||
)
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package calc
|
||||
import (
|
||||
"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"
|
||||
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/models"
|
||||
"git.dumerain.org/alban/paycheck/internal/models"
|
||||
)
|
||||
|
||||
// Feuille de mois acceptée :
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
|
||||
"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
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"sort"
|
||||
"sync"
|
||||
|
||||
"git.dumerain.org/alban/calcul-astreintes/internal/models"
|
||||
"git.dumerain.org/alban/paycheck/internal/models"
|
||||
)
|
||||
|
||||
//go:embed profiles.json
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"sort"
|
||||
"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"
|
||||
"log"
|
||||
|
||||
"git.dumerain.org/alban/calcul-astreintes/app"
|
||||
"git.dumerain.org/alban/paycheck/app"
|
||||
|
||||
"github.com/wailsapp/wails/v2"
|
||||
"github.com/wailsapp/wails/v2/pkg/options"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"$schema": "https://wails.io/schemas/config.v2.json",
|
||||
"name": "calcul-astreintes",
|
||||
"name": "paycheck",
|
||||
"title": "Paychek - Give me my money",
|
||||
"outputfilename": "calcul-astreintes",
|
||||
"outputfilename": "paycheck",
|
||||
"frontend:install": "npm install",
|
||||
"frontend:build": "npm run build",
|
||||
"frontend:dev:watcher": "npm run dev",
|
||||
|
||||
Reference in New Issue
Block a user