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

44 lines
1.1 KiB
SQL

-- Script pour trouver les contrats dont le champ "structure" ne correspond pas au nom de l'organisation
-- Cela permet d'identifier les incohérences dans les données
SELECT
c.id,
c.contract_number,
c.employee_name,
c.structure AS structure_actuelle,
o.name AS nom_organisation,
c.start_date,
c.end_date,
c.created_at
FROM
cddu_contracts c
INNER JOIN organizations o ON c.org_id = o.id
WHERE
c.structure IS DISTINCT FROM o.name
-- IS DISTINCT FROM gère aussi les cas NULL
ORDER BY
c.created_at DESC;
-- Compter le nombre total de contrats avec incohérence
SELECT
COUNT(*) as nombre_contrats_incoherents
FROM
cddu_contracts c
INNER JOIN organizations o ON c.org_id = o.id
WHERE
c.structure IS DISTINCT FROM o.name;
-- Grouper par organisation pour voir quelles organisations ont le plus d'incohérences
SELECT
o.name AS nom_organisation,
COUNT(*) as nombre_incoherences,
ARRAY_AGG(DISTINCT c.structure) as structures_utilisees
FROM
cddu_contracts c
INNER JOIN organizations o ON c.org_id = o.id
WHERE
c.structure IS DISTINCT FROM o.name
GROUP BY
o.name
ORDER BY
nombre_incoherences DESC;