Commit graph

394 commits

Author SHA1 Message Date
f26b41c525 fix: Téléchargement direct des fichiers .txt dans documents comptables 2025-12-10 15:23:31 +01:00
2b6a926c64 fix: afficher tous les tickets support pour le staff 2025-12-09 16:47:58 +01:00
ebcfa602b1 fix: appliquer restriction Odentas uniquement sur filtre virement en attente 2025-12-09 16:29:30 +01:00
1036360801 fix: filtrer virements en attente sur Odentas 2025-12-09 16:19:58 +01:00
50515b76e4 fix: sujet email accès créé 2025-12-09 14:24:30 +01:00
77b5579ab9 chore: mettre à jour sujet email d\'accès 2025-12-09 14:17:54 +01:00
3df0968024 fix: utiliser RPC find_user_by_email 2025-12-09 14:09:07 +01:00
2a08a69efd fix: vérifier les comptes clients créés par le staff 2025-12-09 14:01:52 +01:00
d1957400bc fix: restaurer code emploi en duplication 2025-12-09 12:32:58 +01:00
15646af9d6 fix: sécuriser upload auto-declaration 2025-12-09 11:40:09 +01:00
1144180141 feat: Ajout du champ pseudonyme sur la page auto-déclaration 2025-12-08 16:52:37 +01:00
9a922ce77e fix: Corriger logique AEM status (éviter faux positif "À traiter" avec includes('traite')) 2025-12-05 18:06:08 +01:00
e0f1b48453 fix: Corriger condition voyant bleu 48h (inclure <= 2 jours) 2025-12-05 18:03:30 +01:00
e73bed369e refactor: Réorganiser le menu staff - renommer Gestion RH en Gestion Paie, déplacer Virements et Cotisations, renommer Gestion Financière en Gestion Facturation 2025-12-05 16:17:54 +01:00
00b77b2f17 fix: Corriger le type de multiMoisFilter (boolean au lieu de null) 2025-12-05 16:08:03 +01:00
3728653595 fix: Corriger la réinitialisation des filtres sur page staff/contrats 2025-12-05 16:04:07 +01:00
6dffd2ed45 feat: Ajouter colonne Notif. dans tableau factures et améliorer message par défaut
- Ajouter colonne 'Notif.' avec voyant vert (Oui) ou gris (Non) après la colonne Statut
- Enlever le bouton 'Modifier' du tableau (garder seulement 'Voir')
- Ajouter champ notified au type Invoice et à l'API GET /staff/facturation
- Ajouter période au message par défaut pour factures sans invoice_type reconnu
- Appliqué aux deux routes (notify et bulk-notify)
2025-12-04 22:30:54 +01:00
5bff842a8c feat: Ajouter invoice_type et payment_method aux factures de saisie tableau
- Ajouter invoice_type='paie_mensuelle' et payment_method='sepa' au payload de saisie tableau
- Modifier l'API bulk-create pour accepter et stocker ces champs
- Améliorer les messages de notification paie_mensuelle :
  * Toujours afficher 'Votre facture pour la période XXX est disponible'
  * Utiliser 'du mois' comme fallback si period_label est vide
  * Appliquer le changement aux deux routes (notify et bulk-notify)
2025-12-04 22:24:54 +01:00
13d844921e fix: Corriger récupération des emails de notification et améliorer labels de templates
- Modifier l'API GET /staff/facturation/[id] pour inclure organization_details avec emails
- Retourner les infos complètes de l'organisation (email_notifs, email_notifs_cc)
- Améliorer les noms de templates de factures :
  * 'Facture (type non défini)' au lieu de 'Invoice générique'
  * Retirer 'Invoice' des noms de templates
  * Afficher le type personnalisé si non reconnu
- Les factures auront maintenant leurs emails correctement affichés dans le modal
2025-12-04 22:16:20 +01:00
0b453b272e fix: Retirer l'export de getInvoiceTemplateName dans l'API route
- Les routes Next.js ne peuvent exporter que POST, GET, etc.
- Garder getInvoiceTemplateName comme fonction interne uniquement
2025-12-04 22:08:34 +01:00
3263d6e24c feat: Ajouter envoi de notifications en masse pour les factures
- Créer l'API route /api/staff/facturation/bulk-notify
- Créer le composant BulkInvoiceNotifyModal avec :
  * Liste détaillée des factures sélectionnées
  * Affichage du montant TTC, nom de la structure, emails (notif + CC)
  * Type de template email selon le type de facture et mode de paiement
  * Statistiques (total factures, montant total, avec/sans email)
  * Alertes pour factures sans email configuré
  * Expansion/réduction des détails par facture
- Ajouter le bouton 'Notifier' dans la barre d'actions en masse
- Récupération automatique des infos d'email et type de facture
- Gestion des erreurs et feedback utilisateur détaillé
2025-12-04 22:04:04 +01:00
eaec9a2123 feat: Ajouter bouton de visualisation en masse des PDFs de factures
- Créer le composant InvoicePdfViewerModal pour afficher les PDFs de factures
- Créer l'API route /api/staff/facturation/[id]/pdf-url
- Ajouter le bouton 'Voir les PDF' dans la barre d'actions en masse
- Afficher résumé rapide de chaque facture (numéro, client, période, montants, statut)
- Navigation au clavier et entre factures (flèches gauche/droite)
- Téléchargement et ouverture dans nouvel onglet disponibles
2025-12-04 21:43:28 +01:00
18edf3b9b0 feat: Ajouter filtre multi-mois pour les contrats CDDU
- Ajouter un bouton de filtre rapide 'Multi-mois' dans la page staff/contrats
- Le filtre affiche uniquement les contrats CDDU dont la date de début et la date de fin sont sur des mois calendaires différents
- Ajout d'un compteur en temps réel pour afficher le nombre de contrats multi-mois
- Le filtre est persisté dans le localStorage comme les autres filtres
- Utilise une icône Calendar de Lucide React et une couleur violette (purple)
2025-12-04 21:11:06 +01:00
b89d26d26e fix: Alignement des bords arrondis du bouton Enregistrer avec son animation 2025-12-04 19:56:31 +01:00
38cbabaf1a feat: Réorganisation de la sidebar et améliorations UX
- Déplacement du menu Staff au-dessus des menus clients
- Organisation des menus clients en 3 sections nommées :
  * Gestion paie (navigation principale)
  * Gestion compte (facturation, infos, documents)
  * Simulation & CCN (minima CCN, simulateur)
- Réorganisation du menu Staff (Support & Communication après Administration)
- Ajout du tri par code employeur dans ContractsGrid
- Amélioration UX ContractEditor :
  * Headers colorés par section
  * Détection des modifications non sauvegardées
  * Animation du bouton Enregistrer avec gradient
  * Mise à jour PDF sans rafraîchissement de page
2025-12-04 19:49:44 +01:00
2ec29d07ab fix: Préserver la préférence du popup de confidentialité lors de la déconnexion
Le popup de confidentialité réapparaissait systématiquement après chaque
déconnexion/reconnexion car localStorage.clear() supprimait la clé
'odentas_info_suivi_ack_v1'.

Solution: Sauvegarder et restaurer cette clé lors du nettoyage du localStorage
dans LogoutButton.tsx.

Fixes: Popup s'affiche plusieurs fois par jour au lieu d'une seule fois
2025-12-04 18:55:46 +01:00
70bcd8af9c fix: Inclure type_salaire dans l'API de recherche staff/contrats 2025-12-04 18:09:29 +01:00
605d55f4e6 feat: Améliorer accessibilité des voyants d'urgence (rouge/bleu) 2025-12-04 18:06:49 +01:00
839190fa8f feat: Ajouter colonne Type de salaire dans staff/contrats 2025-12-04 17:59:03 +01:00
e694129fb2 feat: Ajout de la colonne Date de début sur la page signatures-electroniques 2025-12-04 17:50:59 +01:00
23870cc2be feat: Ajout des cards Infos salarié et Infos structure sur page staff/contrats/[id] 2025-12-04 15:56:03 +01:00
fab3b25094 fix: Ajuster largeur card boutons flottants pour correspondre au menu de droite 2025-12-02 18:40:40 +01:00
f3081a7807 feat: Validation automatique des comptes STAFF/SUPER_STAFF à la création 2025-12-02 17:52:08 +01:00
ab61fb1852 feat: Ajout persistence des filtres sur page staff/payslips 2025-12-02 14:15:58 +01:00
64299cd9a5 fix: Affichage des CDI et activation Super Staff
- Support complet des contrats CDI dans l'onglet Régime général
  - Correction du filtrage pour inclure type_de_contrat = 'CDI'
  - Gestion des CDI sans date de fin (end_date null)
  - Les CDI apparaissent maintenant dans 'En cours'
  - Redirection vers /contrats-rg/[id] pour les CDI
  - Ajout du type 'CDI' dans les types TypeScript

- Correction du lien d'activation pour les Super Staff
  - Ajout de /activate aux pages publiques dans middleware.ts
  - Les nouveaux Super Staff peuvent maintenant activer leur compte sans erreur 404

- Nettoyage du code
  - Retrait des logs de debug temporaires
2025-12-02 13:32:44 +01:00
88ad651557 fix: Corriger types TypeScript pour globalSelectedOrgId null
- Ajouter vérification null avant isValidUUID dans tous les useState
- Ajouter vérification null dans tous les useEffect de synchronisation
- Typer explicitement payslip_id dans map
- Compléter createForm reset avec tous les champs requis
2025-12-01 22:17:17 +01:00
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
5020298912 fix: Ajouter les champs *_reel dans le type ContratDetail 2025-11-28 13:02:06 +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
7fae87353c refactor: Restructurer la page staff/contrats/[id] en sous-cards logiques
- Diviser la grande card 'Contrat' en 6 sous-cards organisées par importance
- Card 1: États et statuts (demande, paie, DPAE, signatures)
- Card 2: Informations du contrat (spectacle, analytique, dates)
- Card 3: Salarié et profession (avec catégorie professionnelle)
- Card 4: Rémunération (type salaire, montant, brut, panier repas)
- Card 5: Temps de travail (répétitions, représentations, heures)
- Card 6: Informations complémentaires (S3, notes, précisions)

Modifications spécifiques:
- Retirer le champ 'Référence' (non modifiable)
- Déplacer 'Analytique' dans 'Informations du contrat'
- Déplacer 'Catégorie professionnelle' dans 'Salarié et profession'
- Supprimer les doublons de champs (signatures, début/fin/brut)
- Ajouter les icônes Euro et StickyNote aux imports lucide-react
2025-11-28 11:25:28 +01:00
956d655b7a feat: Gestion complète des utilisateurs staff avec filtres et tri
- Ajout de la création d'utilisateurs staff (STAFF et SUPER_STAFF)
- Email de notification avec lien d'activation (paie.odentas.fr)
- API de révocation/restauration des utilisateurs staff
- Sécurité: SUPER_STAFF ne peut pas être révoqué
- Sécurité: Seul SUPER_STAFF peut créer d'autres SUPER_STAFF
- Tableau des utilisateurs clients avec filtres (organisation, niveau, statut)
- Tri dynamique sur toutes les colonnes (prénom, email, organisation, niveau, date)
- Utilisation du client admin pour contourner les RLS
- Interface avec recherche et filtres avancés
2025-11-28 00:48:14 +01:00
ad2a9c6b7d feat: Amélioration modale création fiche de paie et page staff/contrats
- Ajout profession et dates de contrat dans la modale de création de fiche de paie
- Pré-remplissage automatique des dates et salaire brut pour contrats mono-mois
- Exclusion des contrats annulés des statistiques et recherches
- Suppression titre page staff/contrats et mise en pleine largeur des filtres
- Ajout route API pour organisations avec contrats sans paie
2025-11-28 00:11:52 +01:00
d535b17f26 feat: Améliorations majeures des contrats et fiches de paie
Ajout détails cachets/répétitions/heures au modal ContractDetails

Card verte avec validation quand tous les contrats ont une fiche de paie

Système complet de création de fiches de paie avec recherche et vérification

Modal liste des contrats sans paie avec création directe

Amélioration édition dates dans PayslipDetailsModal

Optimisation recherche contrats (ordre des filtres)

Augmentation limite pagination ContractsGrid à 200

Ajout logs debug génération PDF logo

Script SQL vérification cohérence structure/organisation
2025-11-27 20:37:37 +01:00
dd570d4509 feat: Améliorations majeures des contrats et fiches de paie
- Ajout détails cachets/répétitions/heures au modal ContractDetails
- Card verte avec validation quand tous les contrats ont une fiche de paie
- Système complet de création de fiches de paie avec recherche et vérification
- Modal liste des contrats sans paie avec création directe
- Amélioration édition dates dans PayslipDetailsModal
- Optimisation recherche contrats (ordre des filtres)
- Augmentation limite pagination ContractsGrid à 200
- Ajout logs debug génération PDF logo
- Script SQL vérification cohérence structure/organisation
2025-11-27 20:31:11 +01:00
8edb624330 fix: Corriger logos cassés dans PDFs PDFMonkey
- Conserver data URI complète (data:image/png;base64,...) lors de l'upload
- Ajout script migration SQL pour logos existants
- Compatible avec affichage et génération PDF PDFMonkey
2025-11-27 14:09:16 +01:00
ce46db63af fix: Autoriser iframe simulateur avec X-Frame-Options SAMEORIGIN 2025-11-24 18:31:49 +01:00
f11790784b fix: Corriger la sélection de durée des répétitions dans le modal de quantités 2025-11-20 18:45:00 +01:00
7f09f3f42b feat: Ajouter sélection de durée des répétitions (3h/4h) dans le modal de quantités avec texte d'info 2025-11-20 18:14:56 +01:00
2c90512beb Repush 2025-11-20 18:02:17 +01:00