rem: operation = ope_test;
add: transaction = ope_test;
context: struct structure_operation *recherche_derniere_occurence_tiers ( gint no_tiers ){    struct structure_operation *operation;    GSList *pointeur_ope;    struct structure_operation *ope_test;    /* on fait d'abord le tour du compte courant pour recherche une opé avec ce tiers */    /* s'il n'y a aucune opé correspondante, on fait le tour de tous les comptes */    operation = NULL;    pointeur_ope = gsb_account_get_transactions_list (compte_courant);    while ( pointeur_ope )    {	ope_test = pointeur_ope -> data;	if ( ope_test -> tiers == no_tiers	     &&	     !ope_test -> no_operation_ventilee_associee )	{	    if ( operation )	    {		if ( g_date_compare ( ope_test -> date,				      operation -> date ) >= 0 )		    operation = ope_test;	    }	    else		operation = ope_test;	}	pointeur_ope = pointeur_ope -> next;    }    if ( !operation )    {	/* aucune opération correspondant à ce tiers n'a été trouvée dans le compte courant */	/* on recherche dans les autres comptes, la première trouvée fera l'affaire */	/* FIXME : tester si c'est beaucoup plus long sur un gros fichier de récupérer la dernière opé entrée... */	GSList *list_tmp;	list_tmp = list_struct_accounts;	while ( list_tmp )	{	    gint i;	    i = gsb_account_get_no_account ( list_tmp -> data );	    if ( i != compte_courant )	    {		pointeur_ope = gsb_account_get_transactions_list (i);		while ( pointeur_ope )		{		    ope_test = pointeur_ope -> data;		    if ( ope_test -> tiers == no_tiers )		    {			operation = ope_test;			pointeur_ope = NULL;			i = gsb_account_get_accounts_amount ();		    }		    else			pointeur_ope = pointeur_ope -> next;		}	    }	    list_tmp = list_tmp -> next;	}    }    return operation;}