Closed DonovanMaillard closed 2 years ago
Une autre solution, plus logique, serait simplement de réactiver la nomenclature NSP si elle existe....
DO $$ BEGIN IF EXISTS (select * from ref_nomenclatures.t_nomenclatures where cd_nomenclature = 'NSP' and id_type=ref_nomenclatures.get_id_nomenclature_type('STATUT_OBS')) THEN UPDATE ref_nomenclatures.t_nomenclatures SET active = true WHERE id_nomenclature = ref_nomenclatures.get_id_nomenclature('STATUT_OBS', 'NSP');
ELSE INSERT INTO ref_nomenclatures.t_nomenclatures (id_type, cd_nomenclature, mnemonique, label_fr, label_default, definition_fr, source, statut, id_broader, hierarchy, meta_create_date, meta_update_date, active) VALUES (ref_nomenclatures.get_id_nomenclature_type('STATUT_OBS'), 'NSP', 'NSP', 'Ne Sait Pas', 'Ne Sait Pas', 'Ne Sait Pas : l''information n''est pas connue', 'SINP', 'Validé', 0, '018.003', '2020-12-22 00:00:00', '2020-12-22 00:00:00', true); END IF;
END $$;
Fait : de03ec70
Salut,
Au cours de la MAJ vers la version 1.3.5, j'ai eu une contrainte d'unicité violée, ça peut toucher les instances dont l'installation initiale est ancienne.
Pour le type STATUT_OBS, sur les installations anciennes il a déjà existé une nomenclature NSP, qui avait été simplement inactivée mais pas supprimée via cette MAJ 1.2.3->1.2.4 de mars 2019 : https://github.com/PnX-SI/Nomenclature-api-module/blob/master/data/update1.2.3to1.2.4.sql Du coup, le binome type+code nomenclature est dupliqué.
Il faudrait donc faire le ménage nécessaire, au choix :
Changer le code de l'ancienne nomenclature NSP comme cela s'est déjà fait
UPDATE ref_nomenclatures.t_nomenclatures SET cd_nomenclature = 'OLD_NSP' WHERE id_nomenclature = ref_nomenclatures.get_id_nomenclature('STATUT_OBS', 'NSP');
Supprimer l'ancienne nomenclature NSP avant de créer la nouvelle
DELETE FROM ref_nomenclatures.t_nomenclatures WHERE id_nomenclature = ref_nomenclatures.get_id_nomenclature('STATUT_OBS', 'NSP');