|
|
return: text
|
|
|
lang: plpgsql
|
|
|
src: |
|
|
|
DECLARE
|
|
|
result TEXT;
|
|
|
BEGIN
|
|
|
|
|
|
-- Réaffectation des types selon l'utilisation
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET type_tiers_payant = '1'
|
|
|
FROM
|
|
|
(
|
|
|
SELECT t_tiers_payant.oid,t_tiers_payant.code,
|
|
|
SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id THEN 1 ELSE 0 END),
|
|
|
SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END)
|
|
|
FROM activite.t_tiers_payant
|
|
|
JOIN activite.p_factures ON
|
|
|
t_tiers_payant.oid = tiers_payant_1_id OR t_tiers_payant.oid = tiers_payant_2_id
|
|
|
WHERE type_tiers_payant = '2'
|
|
|
GROUP BY 1,2
|
|
|
HAVING SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id THEN 1 ELSE 0 END) > 0 AND
|
|
|
SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END) = 0
|
|
|
) subview
|
|
|
WHERE t_tiers_payant.oid = subview.oid
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET type_tiers_payant = '1'
|
|
|
FROM
|
|
|
(
|
|
|
SELECT t_tiers_payant.oid,t_tiers_payant.code,
|
|
|
SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id THEN 1 ELSE 0 END),
|
|
|
SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END)
|
|
|
FROM activite.t_tiers_payant
|
|
|
JOIN activite.p_factures ON
|
|
|
t_tiers_payant.oid = tiers_payant_1_id OR t_tiers_payant.oid = tiers_payant_2_id
|
|
|
WHERE type_tiers_payant = '1'
|
|
|
GROUP BY 1,2
|
|
|
HAVING SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id THEN 1 ELSE 0 END) > 0 AND
|
|
|
SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END) = 0
|
|
|
) subview
|
|
|
WHERE t_tiers_payant.oid = subview.oid
|
|
|
;
|
|
|
|
|
|
-- Grands régimes
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET
|
|
|
grand_regime_id = 0
|
|
|
WHERE grand_regime_id IS NULL;
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET type_tiers_payant_texte = t_types_tiers_payant.texte_court,
|
|
|
type_tiers_payant_id = to_number('0' || type_tiers_payant,'00')
|
|
|
FROM activite.t_types_tiers_payant
|
|
|
WHERE type_tiers_payant = t_types_tiers_payant.code AND
|
|
|
(
|
|
|
type_tiers_payant_texte IS DISTINCT FROM t_types_tiers_payant.texte_court OR
|
|
|
type_tiers_payant_id IS DISTINCT FROM to_number('0' || type_tiers_payant,'00')
|
|
|
)
|
|
|
;
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '01' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%CPAM%' OR t_tiers_payant.texte ILIKE '%C.P.A.M%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '02' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MSA%' OR t_tiers_payant.texte ILIKE '%M.S.A%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '02' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%GAMEX%' OR t_tiers_payant.texte ILIKE '%GROUPAMA%' );
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '03' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%AMPI%' OR t_tiers_payant.texte ILIKE '%A.M.P.I%');
|
|
|
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '03' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%AGF %' OR t_tiers_payant.texte ILIKE '%A.G.F.%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '03' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE 'RAM %' OR t_tiers_payant.texte ILIKE '%R.A.M.%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '04' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%SNCF%' OR t_tiers_payant.texte ILIKE '%S.N.C.F%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '05' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%RATP%' OR t_tiers_payant.texte ILIKE '%R.A.T.P%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '06' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%ENIM%' OR t_tiers_payant.texte ILIKE '%E.N.I.M%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '07' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MINEUR%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '08' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MILITAIRE%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '09' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%BANQUE%' AND t_tiers_payant.texte ILIKE '%FRANCE%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '10' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%NOTAIRE%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '14' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%ASSEMBLEE%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '15' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%SENAT%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '17' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%FRANCAIS%' AND t_tiers_payant.texte ILIKE '%ETRANGER%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '80' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%COMBATTANT%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '91' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MGEN%' OR t_tiers_payant.texte ILIKE '%M.G.E.N%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '92' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%PTT%' OR t_tiers_payant.texte ILIKE '%P.T.T%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '93' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MGP%' OR t_tiers_payant.texte ILIKE '%M.G.P%' OR t_tiers_payant.texte ILIKE '%POLICE%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '93' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%POLICE%' OR t_tiers_payant.texte ILIKE '%M.G.P%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '94' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MFP%' OR t_tiers_payant.texte ILIKE '%M.F.P.%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '95' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%MNH%' OR t_tiers_payant.texte ILIKE '%M.N.H%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '96' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%AVIATION%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '99' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE 'MMI %' OR t_tiers_payant.texte ILIKE '%M.M.I%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '99' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%LMDE%');
|
|
|
UPDATE activite.t_tiers_payant
|
|
|
SET grand_regime_id = t_grands_regimes.oid
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE t_grands_regimes.code = '99' AND
|
|
|
(grand_regime_id IS NULL OR grand_regime_id = 0) AND
|
|
|
(t_tiers_payant.texte ILIKE '%VITTAVI%');
|
|
|
|
|
|
|
|
|
UPDATE activite.t_tiers_payant SET
|
|
|
grand_regime_code = t_grands_regimes.code,
|
|
|
grand_regime_texte = t_grands_regimes.texte
|
|
|
FROM base.t_grands_regimes
|
|
|
WHERE grand_regime_id = t_grands_regimes.oid AND
|
|
|
(
|
|
|
grand_regime_code IS DISTINCT FROM t_grands_regimes.code OR
|
|
|
grand_regime_texte IS DISTINCT FROM t_grands_regimes.texte
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
RETURN 'OK';
|
|
|
END;
|