- 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)
30 lines
1,011 B
SQL
30 lines
1,011 B
SQL
-- Migration: Forcer le rafraîchissement de is_member_of_org
|
|
-- Date: 2025-11-28
|
|
-- Description: Recréer is_member_of_org pour s'assurer qu'elle utilise la version mise à jour de is_staff()
|
|
|
|
-- D'abord, supprimer la fonction existante
|
|
DROP FUNCTION IF EXISTS public.is_member_of_org(uuid);
|
|
|
|
-- Recréer la fonction avec la bonne logique
|
|
CREATE OR REPLACE FUNCTION public.is_member_of_org(target_org uuid)
|
|
RETURNS boolean
|
|
LANGUAGE sql
|
|
STABLE
|
|
AS $function$
|
|
select public.is_staff() -- bypass total pour le staff
|
|
or exists (
|
|
select 1
|
|
from public.organization_members om
|
|
where om.org_id = target_org
|
|
and om.user_id = auth.uid()
|
|
);
|
|
$function$;
|
|
|
|
-- Commentaire
|
|
COMMENT ON FUNCTION public.is_member_of_org(uuid) IS
|
|
'Vérifie si l''utilisateur est staff (is_staff = true) OU membre de l''organisation';
|
|
|
|
-- Tester immédiatement
|
|
SELECT
|
|
public.is_staff() as is_staff_result,
|
|
public.is_member_of_org('fba4ad7b-bac7-4ce3-8707-05d220280fb1') as can_access_via_arte;
|