espace-paie-odentas/migrations/make_period_month_nullable.sql
odentas 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

21 lines
859 B
SQL

-- Migration: Rendre period_month nullable pour le mode manual
-- Date: 2025-11-28
-- Description: En mode manual, period_month n'est pas requis car les paies peuvent être de différents mois
-- Rendre la colonne period_month nullable
ALTER TABLE salary_transfers
ALTER COLUMN period_month DROP NOT NULL;
-- Ajouter un commentaire pour documenter
COMMENT ON COLUMN salary_transfers.period_month IS
'Mois de la période (YYYY-MM-DD). NULL en mode manual, requis en mode period.';
-- Ajouter une contrainte de validation pour s'assurer de la cohérence
-- En mode period: period_month doit être renseigné
-- En mode manual: period_month doit être NULL
ALTER TABLE salary_transfers
ADD CONSTRAINT check_period_month_by_mode
CHECK (
(selection_mode = 'period' AND period_month IS NOT NULL) OR
(selection_mode = 'manual' AND period_month IS NULL)
);