add: gsb_data_transaction_set_bank_references ( transaction_number, "" ); gsb_data_transaction_set_voucher ( transaction_number, "" );
context: gint gsb_import_create_transaction ( struct struct_ope_importation *imported_transaction,				     gint account_number ){    gchar **tab_str;    gint transaction_number;    /* we create the new transaction */    transaction_number = gsb_data_transaction_new_transaction ( account_number );    /* récupération de l'id de l'opé s'il existe */    if ( imported_transaction -> id_operation )	gsb_data_transaction_set_transaction_id ( transaction_number,						  g_strdup ( imported_transaction -> id_operation ));    /* récupération de la date */    gsb_data_transaction_set_date ( transaction_number,				    gsb_date_copy ( imported_transaction -> date ));    /* récupération de la date de valeur */    gsb_data_transaction_set_value_date ( transaction_number,					  gsb_date_copy ( imported_transaction -> date_de_valeur ));    /* récupération du montant */    gsb_data_transaction_set_amount ( transaction_number,				      imported_transaction -> montant );    /* 	  récupération de la devise */    gsb_data_transaction_set_currency_number ( transaction_number,					       imported_transaction -> devise );    /* rÃ©cupération du tiers */    if ( imported_transaction -> tiers 	 &&	 strlen ( g_strstrip ( imported_transaction -> tiers )))	gsb_data_transaction_set_party_number ( transaction_number,						gsb_data_payee_get_number_by_name ( imported_transaction -> tiers,									       TRUE ));    /* vérification si c'est ventilé, sinon récupération des catégories */    if ( imported_transaction -> operation_ventilee )    {	/* l'opération est ventilée */	gsb_data_transaction_set_breakdown_of_transaction ( transaction_number,							    1 );    }    else    {	/* vérification que ce n'est pas un virement */	if ( imported_transaction -> categ	     &&	     strlen ( g_strstrip (imported_transaction -> categ)) )	{	    if ( imported_transaction -> categ[0] == '[' )	    {		/* 		      c'est un virement, or le compte n'a peut être pas encore été créé, */		/* on va mettre le nom du compte dans info_banque_guichet qui n'est jamais utilisé */		/* lors d'import, et relation_no_compte sera mis à -2 (-1 est déjà utilisé pour les comptes supprimés */		gsb_data_transaction_set_bank_references ( transaction_number,							   imported_transaction -> categ);		gsb_data_transaction_set_account_number_transfer ( transaction_number,								   -2);		gsb_data_transaction_set_transaction_number_transfer ( transaction_number,								       -1);		virements_a_chercher = 1;	    }	    else	    {		/* it's a normal category */		gint category_number;		tab_str = g_strsplit ( imported_transaction -> categ,				       ":",				       2 );		/* get the category and create it if doesn't exist */		category_number = gsb_data_category_get_number_by_name ( g_strstrip (tab_str[0]),									 TRUE,									 imported_transaction -> montant < 0 );		gsb_data_transaction_set_category_number ( transaction_number,							   category_number );		gsb_data_transaction_set_sub_category_number ( transaction_number,							       gsb_data_category_get_sub_category_number_by_name ( category_number,														   g_strstrip (tab_str[1]),														   TRUE ));	    }	}    }    /* récupération des notes */    gsb_data_transaction_set_notes ( transaction_number,				     imported_transaction -> notes );    /* récupération du chèque et mise en forme du type d'opération */    if ( imported_transaction -> cheque )    {	/* c'est un chèque, on va rechercher un type à incrémentation automatique et mettre l'opé sous ce type */	/* si un tel type n'existe pas, on met quand même le no dans contenu_type et on met le type par défaut */	struct struct_type_ope *type_choisi;	GSList *list_tmp;	if ( gsb_data_transaction_get_amount (transaction_number)< 0 )	    gsb_data_transaction_set_method_of_payment_number ( transaction_number,								gsb_data_account_get_default_debit (account_number));	else	    gsb_data_transaction_set_method_of_payment_number ( transaction_number,								gsb_data_account_get_default_credit (account_number));	gsb_data_transaction_set_method_of_payment_content ( transaction_number,							     utils_str_itoa ( imported_transaction -> cheque ) );	list_tmp = gsb_data_account_get_method_payment_list (account_number);	type_choisi = NULL;	while ( list_tmp )	{	    struct struct_type_ope *type;	    type = list_tmp -> data;	    /* si l'opé on trouve un type à incrémentation automatique et que le signe du type est bon, on l'enregistre */	    /*   et on arrête la recherche, sinon, on l'enregistre mais on continue la recherche dans l'espoir de trouver */	    /* mieux */	    if ( type -> numerotation_auto )	    {		if ( !type -> signe_type		     ||		     ( type -> signe_type == 1 && gsb_data_transaction_get_amount (transaction_number)< 0 )		     ||		     ( type -> signe_type == 2 && gsb_data_transaction_get_amount (transaction_number)> 0 ))		{		    gsb_data_transaction_set_method_of_payment_number ( transaction_number,									type -> no_type );		    type_choisi = type;		    list_tmp = NULL;		}		else		{		    gsb_data_transaction_set_method_of_payment_number ( transaction_number,									type -> no_type );		    type_choisi = type;		    list_tmp = list_tmp -> next;		}	    }	    else		list_tmp = list_tmp -> next;	}	/* type_choisi contient l'adr du type qui a été utilisé, on peut y mettre le dernier no de chèque */	if ( type_choisi )	    type_choisi -> no_en_cours = MAX ( imported_transaction -> cheque,					       type_choisi -> no_en_cours );    }    else    {	/* comme ce n'est pas un chèque, on met sur le type par défaut */	if ( gsb_data_transaction_get_amount (transaction_number)< 0 )	    gsb_data_transaction_set_method_of_payment_number ( transaction_number,								gsb_data_account_get_default_debit (account_number));	else	    gsb_data_transaction_set_method_of_payment_number ( transaction_number,								gsb_data_account_get_default_credit (account_number));    }    /* récupération du pointé */    gsb_data_transaction_set_marked_transaction ( transaction_number,						  imported_transaction -> p_r );    /* si c'est une ope de ventilation, lui ajoute le no de l'opération précédente */    if ( imported_transaction -> ope_de_ventilation )	gsb_data_transaction_set_mother_transaction_number ( transaction_number,							     mother_transaction_number );    else	mother_transaction_number  = transaction_number;    gsb_data_account_set_update_list ( account_number,				  1 );    return (transaction_number);}