Dans l'onglet "Actes" de la fiche individu, les actes pour évènements familiaux apparaissent dans la fiche du mari, mais pas dans celle de la femme. Pour corriger celà, 3 procédures stockées sont à modifier pour que la jointure avec la table T_UNION fonctionne avec les 2 conjoints.
La procédure PROC_ACTES_A_TROUVER_FAMILLESBEGIN
FOR
select Fam.ev_fam_clef,
Fam.ev_fam_type,
Ref.ref_eve_lib_long,
Fam.ev_fam_date_writen,
Fam.ev_fam_cp,
Fam.ev_fam_ville,
Fam.ev_fam_acte,
'F'
FROM ref_evenements Ref,
evenements_fam Fam,
T_UNION Marriage,
individu indi
WHERE indi.CLE_FICHE = :I_INDI AND
Marriage.UNION_CLEF = Fam.EV_FAM_KLE_FAMILLE AND
(Marriage.UNION_MARI = indi.CLE_FICHE OR
Marriage.UNION_FEMME = indi.CLE_FICHE) AND
Fam.ev_fam_type = Ref.ref_eve_lib_court and
Ref.ref_eve_visible = 1 AND
(Fam.ev_fam_acte = 0 OR Fam.ev_fam_acte is null)
INTO
:EVE_CLEF,
:EVE_TYPE,
:EVE_LIB_LONG,
:EVE_DATE_WRITEN,
:EVE_CP,
:EVE_VILLE,
:EVE_ACTE,
:EVE_TABLE
DO
BEGIN
SUSPEND;
END
END
La procédure PROC_ACTES_DEJA_TROUVESBEGIN
FOR
select Media.MP_MEDIA,
Fam.ev_fam_clef,
Fam.ev_fam_type,
Ref.ref_eve_lib_long,
Fam.ev_fam_date_writen,
Fam.ev_fam_cp,
Fam.ev_fam_ville,
Fam.ev_fam_acte,
'F'
FROM ref_evenements Ref,
evenements_fam Fam
LEFT JOIN MEDIA_POINTEURS Media
ON (Media.MP_POINTE_SUR = fam.ev_fam_clef AND
Media.MP_TABLE = 'F' AND Media.MP_TYPE_IMAGE='A'),
T_UNION Marriage,
individu indi
WHERE indi.CLE_FICHE = :I_INDI AND
Marriage.UNION_CLEF = Fam.EV_FAM_KLE_FAMILLE AND
(Marriage.UNION_MARI = indi.CLE_FICHE OR
Marriage.UNION_FEMME = indi.CLE_FICHE) AND
Fam.ev_fam_type = Ref.ref_eve_lib_court AND
Ref.ref_eve_visible = 1 AND
Fam.ev_fam_acte = 1
UNION
select Media.MP_MEDIA,
eve.ev_ind_clef,
eve.ev_ind_type,
ref_eve_lib_long,
eve.ev_ind_date_writen,
eve.ev_ind_cp,
eve.ev_ind_ville,
eve.ev_ind_acte,
'I'
from evenements_ind eve
LEFT JOIN MEDIA_POINTEURS Media
ON (Media.MP_POINTE_SUR = eve.ev_ind_clef AND
Media.MP_TABLE = 'I' AND Media.MP_TYPE_IMAGE='A'),
ref_evenements ref
where eve.ev_ind_kle_fiche = :I_INDI AND
eve.ev_ind_type = ref_eve_lib_court AND
ref_eve_visible = 1 AND
eve.ev_ind_acte = 1
INTO
:EVE_IMAGE,
:EVE_CLEF,
:EVE_TYPE,
:EVE_LIB_LONG,
:EVE_DATE_WRITEN,
:EVE_CP,
:EVE_VILLE,
:EVE_ACTE,
:EVE_TABLE
/* if (:EVE_IMAGE > 0) then EVE_IMAGE = 1;*/
DO
BEGIN
SUSPEND;
END
END
La procédure PROC_ACTES_RAZ doit être rectifiée pour remettre à 0 le champ EV_FAM_ACTE quelque soit le conjoint:declare variable I_CLEF INTEGER;
BEGIN
DELETE FROM media_pointeurs
WHERE MP_CLE_INDIVIDU = :INDI AND
MP_TYPE_IMAGE = 'A';
UPDATE multimedia
SET MULTI_NUM_ACTE = NULL,
MULTI_TYPE_ACTE = NULL
WHERE MULTI_INDIVIDU = :INDI;
UPDATE EVENEMENTS_IND
SET EV_IND_ACTE = 0
WHERE EV_IND_KLE_FICHE = :INDI;
FOR
SELECT EV_FAM_CLEF
FROM evenements_fam Fam,
T_UNION Marriage,
individu indi
WHERE indi.CLE_FICHE = :INDI AND
Marriage.UNION_CLEF = Fam.EV_FAM_KLE_FAMILLE AND
(Marriage.UNION_MARI = indi.CLE_FICHE OR
Marriage.UNION_FEMME = indi.CLE_FICHE) AND
Fam.ev_fam_acte > 0
INTO :I_CLEF
DO BEGIN
UPDATE evenements_fam SET EV_FAM_ACTE = 0
WHERE EV_FAM_CLEF = :I_CLEF;
END
SUSPEND;
END
Il reste une anomalie. Si un média est lié à l'acte, une icône apparaît en début de ligne de l'acte trouvé, mais le média n'est visible dans l'onglet "Médias", que dans la fiche du conjoint depuis lequel on a créé le lien acte familial-média. La solution reste à trouver.
Autre anomalie, le point vert ne s'affiche pas sur l'onglet (sauf si des médias sont liés à l'individu depuis l'onglet "Medias").
André
Réédition du 22/05 pour modifications à la procédure PROC_ACTES_DEJA_TROUVES, ajout de AND Media.MP_TYPE_IMAGE='A' dans la jointure avec la table MEDIA_POINTEUR pour corriger une erreur qui pouvait faire apparaître l'icône "image jointe" en début de ligne alors qu'aucune image n'est jointe, ou la ligne de l'acte trouvé en double.