rem: if ( contra_transaction ) echeance -> type_contre_ope = gsb_data_transaction_get_method_of_payment_number ( gsb_data_transaction_get_transaction_number (contra_transaction ));
add: gsb_data_scheduled_set_contra_method_of_payment_number ( scheduled_number, gsb_data_transaction_get_method_of_payment_number (contra_transaction_number));
context: struct operation_echeance *schedule_transaction ( gpointer * transaction ){    struct operation_echeance *echeance;    echeance = (struct operation_echeance *) calloc ( 1,						      sizeof(struct operation_echeance) );    if ( !echeance )    {	dialogue_error_memory ();	return(FALSE);    }    echeance -> compte = gsb_data_transaction_get_account_number (gsb_data_transaction_get_transaction_number (transaction));    echeance -> date = gsb_date_copy (gsb_data_transaction_get_date ( gsb_data_transaction_get_transaction_number ( transaction )));    echeance -> montant = gsb_data_transaction_get_amount ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> devise = gsb_data_transaction_get_currency_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> tiers = gsb_data_transaction_get_party_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> categorie = gsb_data_transaction_get_category_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> sous_categorie = gsb_data_transaction_get_sub_category_number ( gsb_data_transaction_get_transaction_number (transaction ));    /*     pour 1 virement, categ et sous categ sont à 0, et compte_virement contient le no de compte */    /* 	mais si categ et sous categ sont à 0 et que ce n'est pas un virement ni une ventil, compte_virement = -1 */    /*     on va changer ça la prochaine version, dès que c'est pas un virement -> -1 */    if ( gsb_data_transaction_get_transaction_number_transfer ( gsb_data_transaction_get_transaction_number (transaction )))    {	/* 	c'est un virement, on met la relation et on recherche le type de la contre opération */	gpointer contra_transaction;	echeance -> compte_virement = gsb_data_transaction_get_account_number_transfer ( gsb_data_transaction_get_transaction_number (transaction ));	contra_transaction = gsb_data_transaction_get_pointer_to_transaction (gsb_data_transaction_get_transaction_number_transfer (gsb_data_transaction_get_transaction_number (transaction)));	if ( contra_transaction )	    echeance -> type_contre_ope = gsb_data_transaction_get_method_of_payment_number ( gsb_data_transaction_get_transaction_number (contra_transaction ));    }    else	if ( !echeance -> categorie	     &&	     !gsb_data_transaction_get_breakdown_of_transaction ( gsb_data_transaction_get_transaction_number (transaction )))	    echeance -> compte_virement = -1;    echeance -> notes = g_strdup ( gsb_data_transaction_get_notes ( gsb_data_transaction_get_transaction_number (transaction )));    echeance -> type_ope = gsb_data_transaction_get_method_of_payment_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> contenu_type = g_strdup ( gsb_data_transaction_get_method_of_payment_content ( gsb_data_transaction_get_transaction_number (transaction )));    echeance -> no_exercice = gsb_data_transaction_get_financial_year_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> imputation = gsb_data_transaction_get_budgetary_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> sous_imputation = gsb_data_transaction_get_sub_budgetary_number ( gsb_data_transaction_get_transaction_number (transaction ));    echeance -> operation_ventilee = gsb_data_transaction_get_breakdown_of_transaction ( gsb_data_transaction_get_transaction_number (transaction ));    /*     par défaut, on met en manuel, pour éviter si l'utilisateur se gourre dans la date, */    /*     (c'est le cas, à 0 avec calloc) */    /*     que l'opé soit enregistrée immédiatement ; de même on le met en mensuel par défaut */    /* 	pour la même raison */    echeance -> periodicite = 2;    echeance -> no_operation = ++no_derniere_echeance;    nb_echeances++;    liste_struct_echeances = g_slist_insert_sorted ( liste_struct_echeances,						     echeance,						     (GCompareFunc) classement_sliste_echeance_par_date );    /*     on récupère les opés de ventil si c'était une opé ventilée */    if ( echeance -> operation_ventilee )    {	GSList *list_tmp_transactions;	list_tmp_transactions = gsb_data_transaction_get_transactions_list ();	while ( list_tmp_transactions )	{	    gint transaction_number_tmp;	    transaction_number_tmp = gsb_data_transaction_get_transaction_number (list_tmp_transactions -> data);	    if ( gsb_data_transaction_get_account_number (transaction_number_tmp) == gsb_data_transaction_get_account_number (gsb_data_transaction_get_transaction_number (transaction))		 &&		 gsb_data_transaction_get_mother_transaction_number (transaction_number_tmp) == gsb_data_transaction_get_transaction_number (transaction))	    {		struct operation_echeance *echeance_de_ventil;		echeance_de_ventil = calloc ( 1,					      sizeof ( struct operation_echeance));		if ( !echeance_de_ventil )		{		    dialogue_error_memory ();		    return(FALSE);		}		echeance_de_ventil -> compte = gsb_data_transaction_get_account_number (transaction_number_tmp);		echeance_de_ventil -> date = gsb_date_copy (gsb_data_transaction_get_date (transaction_number_tmp));		echeance_de_ventil -> montant = gsb_data_transaction_get_amount ( transaction_number_tmp);		echeance_de_ventil -> devise = gsb_data_transaction_get_currency_number ( transaction_number_tmp);		echeance_de_ventil -> tiers = gsb_data_transaction_get_party_number ( transaction_number_tmp);		echeance_de_ventil -> categorie = gsb_data_transaction_get_category_number ( transaction_number_tmp);		echeance_de_ventil -> sous_categorie = gsb_data_transaction_get_sub_category_number ( transaction_number_tmp);		/*     pour 1 virement, categ et sous categ sont à 0, et compte_virement contient le no de compte */		/* 	mais si categ et sous categ sont à 0 et que ce n'est pas un virement, compte_virement = -1 */		/*     on va changer ça la prochaine version, dès que c'est pas un virement -> -1 */		if ( gsb_data_transaction_get_transaction_number_transfer ( transaction_number_tmp))		{		    /* 	c'est un virement, on met la relation et on recherche le type de la contre opération */		    gint contra_transaction_number;		    echeance_de_ventil -> compte_virement = gsb_data_transaction_get_account_number_transfer (transaction_number_tmp);		    contra_transaction_number = gsb_data_transaction_get_transaction_number_transfer (transaction_number_tmp);		    if ( contra_transaction_number )			echeance_de_ventil -> type_contre_ope = gsb_data_transaction_get_method_of_payment_number (contra_transaction_number);		}		else		    if ( !echeance_de_ventil -> categorie )			echeance_de_ventil -> compte_virement = -1;		echeance_de_ventil -> notes = g_strdup ( gsb_data_transaction_get_notes ( transaction_number_tmp));		echeance_de_ventil -> type_ope = gsb_data_transaction_get_method_of_payment_number ( transaction_number_tmp);		echeance_de_ventil -> contenu_type = g_strdup ( gsb_data_transaction_get_method_of_payment_content ( transaction_number_tmp));		echeance_de_ventil -> no_exercice = gsb_data_transaction_get_financial_year_number ( transaction_number_tmp);		echeance_de_ventil -> imputation = gsb_data_transaction_get_budgetary_number ( transaction_number_tmp);		echeance_de_ventil -> sous_imputation = gsb_data_transaction_get_sub_budgetary_number ( transaction_number_tmp);		echeance_de_ventil-> no_operation_ventilee_associee = echeance -> no_operation;		/*     par défaut, on met en manuel, pour éviter si l'utilisateur se gourre dans la date, */		/*     (c'est le cas, à 0 avec calloc) */		/*     que l'opé soit enregistrée immédiatement ; de même on le met en mensuel par défaut */		/* 	pour la même raison */		echeance_de_ventil -> periodicite = 2;		echeance_de_ventil -> no_operation = ++no_derniere_echeance;		nb_echeances++;		liste_struct_echeances = g_slist_insert_sorted ( liste_struct_echeances,								 echeance_de_ventil,								 (GCompareFunc) classement_sliste_echeance_par_date );	    }	    list_tmp_transactions = list_tmp_transactions -> next;	}    }    return echeance;}