Commit graph

351 commits

Author SHA1 Message Date
f5805133d1 fix: Afficher liste professions dès le focus du champ
- Ajouter useEffect pour charger professions techniciens au montage initial
- Ajouter état professionInputFocused pour afficher la liste dès le focus
- Corriger le bug où la liste ne s'affichait que si on tapait dans le champ
- Fonctionne pour les professions Artiste et Technicien
2025-12-16 12:10:06 +01:00
543cc2da95 feat: Ajouter la suppression du contrat signé depuis staff/contrats/[id]
- Créer l'API DELETE /api/staff/contrats/[id]/delete-signed-pdf
- Supprimer le fichier S3 et mettre à jour la BDD
- Ajouter un bouton de suppression dans la card Documents
- Afficher un modal de confirmation avant suppression
- Invalider les queries React Query après suppression
2025-12-11 19:10:36 +01:00
c0142d167e feat: Ajouter possibilité de renommer les périodes dans documents comptables (staff) 2025-12-10 16:16:32 +01:00
39fea18d9e fix: Ajouter valeur par défaut pour AWS_S3_BUCKET_NAME dans route download 2025-12-10 15:56:39 +01:00
1954d90255 fix: Améliorer logique de téléchargement .txt avec logs debug 2025-12-10 15:49:46 +01:00
8bf19016a9 fix: Ajouter route API dédiée pour téléchargement fichiers .txt depuis S3 2025-12-10 15:43:42 +01:00
30d77bf7b0 fix: Utiliser fetch + blob pour forcer le téléchargement des fichiers .txt 2025-12-10 15:30:26 +01:00
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