Commit graph

6 commits

Author SHA1 Message Date
266eb3598a feat: Implémenter store global Zustand + calcul total quantités + fix structure field + montants personnalisés virements
- Créer hook useStaffOrgSelection avec persistence localStorage
- Ajouter badge StaffOrgBadge dans Sidebar
- Synchroniser filtres org dans toutes les pages (contrats, cotisations, facturation, etc.)
- Fix calcul cachets: utiliser totalQuantities au lieu de dates.length
- Fix structure field bug: ne plus écraser avec production_name
- Ajouter création note lors modification contrat
- Implémenter montants personnalisés pour virements salaires
- Migrations SQL: custom_amount + fix_structure_field
- Réorganiser boutons ContractEditor en carte flottante droite
2025-12-01 21:51:57 +01:00
8ba984af1d feat: Ajout système de sélection manuelle de paies pour virements + corrections RLS
- Ajout mode de sélection 'period' (existant) et 'manual' (nouveau) pour les virements
- Création table de liaison salary_transfer_payslips pour paies sélectionnées manuellement
- Nouveau modal de sélection de paies avec filtres (recherche, période, statut)
- API route /api/staff/payslips/available pour récupérer les paies disponibles
- Rendre period_month nullable en mode manual avec contrainte de validation
- Correction fonction is_staff() pour vérifier is_staff = true
- Correction is_member_of_org() pour utiliser la version à jour de is_staff()
- Mise à jour génération PDF pour supporter les deux modes (period et manual)
- Filtre des organisations sur virements-salaires (uniquement celles avec virements_salaires = 'Odentas')
- Amélioration affichage totaux dans PayslipsGrid (total sélection si lignes sélectionnées)
- Ajout boutons 'Créer par période' et 'Créer personnalisé' dans SalaryTransfersGrid
- Interface optimisée (textes plus courts, tailles réduites)
2025-11-28 20:12:48 +01:00
965b1fb9cd feat: Ajouter interface de saisie en masse du temps de travail réel
- Création de la page /staff/contrats/saisie-temps-reel avec tableau éditable
- Ajout des colonnes jours_representations et jours_repetitions dans l'API
- Construction intelligente du TT Contractuel (concaténation des sources)
- Ajout de la colonne temps_reel_traite pour marquer les contrats traités
- Interface avec filtres (année, mois, organisation, recherche)
- Tri par date/salarié
- Édition inline avec auto-save via API
- Checkbox pour marquer comme traité (masque automatiquement la ligne)
- Toggle pour afficher/masquer les contrats traités
- Migration SQL pour la colonne temps_reel_traite
- Ajout du menu 'Temps de travail réel' dans la sidebar
- Logs de débogage pour le suivi des sauvegardes
2025-11-28 12:31:02 +01:00
897af4b23a feat: Ajout fonctionnalités virements, facturation, signatures et emails
- Ajout sous-header total net à payer sur page virements-salaires
- Migration transfer_done_at pour tracking précis des virements
- Nouvelle page saisie tableau pour création factures en masse
- APIs bulk pour mise à jour dates signature et jours technicien
- API demande mandat SEPA avec email template
- Webhook DocuSeal pour signature contrats (mode TEST)
- Composants modaux détails et vérification PDF fiches de paie
- Upload/suppression/remplacement PDFs dans PayslipsGrid
- Amélioration affichage colonnes et filtres grilles contrats/paies
- Template email mandat SEPA avec sous-texte CTA
- APIs bulk facturation (création, update statut/date paiement)
- API clients sans facture pour période donnée
- Corrections calculs dates et montants avec auto-remplissage
2025-11-02 23:26:19 +01:00
31459f3c10 feat: Ajout fonctionnalité salaires par date avec JSONB
 Nouvelle fonctionnalité
- Ajout mode 'Saisir le salaire par date' dans création de contrat
- Interface de saisie compacte et moderne par représentation/répétition/jour
- Stockage en JSONB dans colonne salaires_par_date
- Affichage détaillé dans contrats/[id] et staff/contrats/[id]

🗄️ Base de données
- Migration SQL : ajout colonne salaires_par_date JSONB
- Index GIN pour requêtes performantes sur JSONB
- Index partial sur le champ mode
- Fonction de validation validate_salaires_par_date()

🎨 Interface utilisateur
- Design en ligne (inline) au lieu de tableau traditionnel
- Labels courts (R1, R2 pour représentations, S1, S2 pour services)
- Cartes par catégorie avec codes couleur (indigo/purple/green)
- Calculatrice et Minima accessibles dans les deux modes
- Calculatrice désactivée en mode par_date (pas de champ unique)
- Minimum conventionnel retiré du menu déroulant en mode par_date
- Calcul automatique du total

💻 Code
- Types TypeScript : SalaireParDate avec interfaces complètes
- Fonction convertSalariesByDateToJSON() pour conversion formulaire → JSONB
- Validation adaptée selon le mode (global vs par_date)
- API /api/cddu-contracts : support du champ salaires_par_date
- API /api/contrats/[id] : retour du champ salaires_par_date
- Contournement temporaire de la RPC pour utiliser service_role

📝 Fichiers modifiés
- migrations/add_salaires_par_date_column.sql (nouveau)
- types/salaires.ts (nouveau)
- components/contrats/NouveauCDDUForm.tsx
- app/api/cddu-contracts/route.ts
- app/api/contrats/[id]/route.ts
- app/(app)/contrats/[id]/page.tsx
- components/staff/contracts/ContractEditor.tsx
2025-10-29 23:12:15 +01:00
c55ead58ca feat: Ajout modal création en masse de paies avec champs exacts du PayslipModal 2025-10-28 14:49:40 +01:00