rem: if ( operation_import -> operation_ventilee )
add: } }    operation -> notes = operation_import -> notes;     if ( operation_import -> cheque ) {    struct struct_type_ope *type_choisi; GSList *liste_tmp;  if ( operation -> montant < 0 ) operation -> type_ope = TYPE_DEFAUT_DEBIT; else operation -> type_ope = TYPE_DEFAUT_CREDIT;  operation -> contenu_type = itoa ( operation_import -> cheque );  liste_tmp = TYPES_OPES; type_choisi = NULL;  while ( liste_tmp ) { struct struct_type_ope *type;  type = liste_tmp -> data;      if ( type -> numerotation_auto )
context: struct structure_operation *enregistre_ope_importee ( struct struct_ope_importation *operation_import,		gint no_compte ){      struct structure_operation *operation;      gchar **tab_str;      GSList *pointeur_tmp;        	p_tab_nom_de_compte_variable = p_tab_nom_de_compte + no_compte;  	operation = calloc ( 1,			       sizeof ( struct structure_operation ));	  /* rcupration du no de l'op */	  operation -> no_operation = ++no_derniere_operation;	  /* rcupration de l'id de l'op s'il existe */	  if ( operation_import -> id_operation )	    operation -> id_operation = g_strdup ( operation_import -> id_operation );	  /* rcupration de la date */	  operation -> jour = g_date_day ( operation_import -> date );	  operation -> mois = g_date_month ( operation_import -> date );	  operation -> annee = g_date_year ( operation_import -> date );	  operation -> date = g_date_new_dmy ( operation -> jour,					       operation -> mois,					       operation -> annee );	  /* rcupration de la date de valeur */	  if ( operation_import -> date_de_valeur )	    {	      operation -> jour_bancaire = g_date_day ( operation_import -> date_de_valeur );	      operation -> mois_bancaire = g_date_month ( operation_import -> date_de_valeur );	      operation -> annee_bancaire = g_date_year ( operation_import -> date_de_valeur );	      operation -> date_bancaire = g_date_new_dmy ( operation -> jour,							    operation -> mois,							    operation -> annee );	    }	  /* rcupration du no de compte */	  operation -> no_compte = NO_COMPTE;	  /* rcupration du montant */	  operation -> montant = operation_import -> montant;	  /* 	  rcupration de la devise, sur la popup affiche */	  operation -> devise = operation_import -> devise;	  /* rcupration du tiers */	  if ( operation_import -> tiers )	    {	      pointeur_tmp = g_slist_find_custom ( liste_struct_tiers,						   g_strstrip ( operation_import -> tiers ),						   (GCompareFunc) recherche_tiers_par_nom );	      /* si le tiers n'existait pas, on le cre */	      if ( pointeur_tmp )		operation -> tiers = ((struct struct_tiers *)(pointeur_tmp -> data)) -> no_tiers;	      else		operation -> tiers = (( struct struct_tiers * )( ajoute_nouveau_tiers ( operation_import -> tiers ))) -> no_tiers;	    }	  /* vrification si c'est ventil, sinon rcupration des catgories */	  if ( operation_import -> operation_ventilee )	    {	      /* l'opration est ventile */	      operation -> operation_ventilee = 1;	    }	  else	    {	      /* vrification que ce n'est pas un virement */	      if ( operation_import -> categ		   &&		   strlen ( g_strstrip (operation_import -> categ)) )		{		  if ( operation_import -> 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 dj utilis pour les comptes supprims */		      operation -> info_banque_guichet = operation_import -> categ;		      operation -> relation_no_compte = -2;		      operation -> relation_no_operation = -1;		      virements_a_chercher = 1;		    }		  else		    {		      struct struct_categ *categ;		      struct struct_sous_categ *sous_categ ;		      tab_str = g_strsplit ( operation_import -> categ,					     ":",					     2 );		      /* rcupration ou cration de la catgorie */		      if ( !g_slist_find_custom ( liste_struct_categories,						  g_strstrip ( tab_str[0] ),						  (GCompareFunc) recherche_categorie_par_nom ))			{			  categ = calloc ( 1,					   sizeof ( struct struct_categ ));			  categ -> no_categ = ++no_derniere_categorie;			  categ -> nom_categ = g_strdup ( g_strstrip ( tab_str[0] ) );			  if ( operation_import -> montant < 0 )			    categ -> type_categ = 1;			  else			    categ -> type_categ = 0;			  nb_enregistrements_categories++;			  liste_struct_categories = g_slist_append ( liste_struct_categories,								     categ );			}		      else			categ = g_slist_find_custom ( liste_struct_categories,						      g_strstrip ( tab_str[0] ),						      (GCompareFunc) recherche_categorie_par_nom ) -> data;		      operation -> categorie = categ -> no_categ;		      /* rcupration ou cration de la sous-catgorie */		      if ( tab_str[1] )			{			  if ( !g_slist_find_custom ( categ -> liste_sous_categ,						      g_strstrip ( tab_str[1] ),						      (GCompareFunc) recherche_sous_categorie_par_nom ))			    {			      sous_categ = calloc ( 1,						    sizeof ( struct struct_sous_categ ));			      sous_categ -> no_sous_categ = ++( categ -> no_derniere_sous_categ );			      sous_categ -> nom_sous_categ = g_strdup ( g_strstrip ( tab_str[1] ));			      categ -> liste_sous_categ = g_slist_append ( categ -> liste_sous_categ,									   sous_categ );			    }			  else			    sous_categ = g_slist_find_custom ( categ -> liste_sous_categ,							       g_strstrip ( tab_str[1] ),							       (GCompareFunc) recherche_sous_categorie_par_nom ) -> data;			  operation -> sous_categorie = sous_categ -> no_sous_categ;			}		      g_strfreev ( tab_str );		    }		}	    }	  /* rcupration des notes */	  operation -> notes = operation_import -> notes;	  /* rcupration du chque et mise en forme du type d'opration */	  if ( operation_import -> cheque )	    {	      /* c'est un chque, on va rechercher un type  incrmentation automatique et mettre l'op sous ce type */	      /* si un tel type n'existe pas, on met quand mme le no dans contenu_type et on met le type par dfaut */	      struct struct_type_ope *type_choisi;	      GSList *liste_tmp;	      if ( operation -> montant < 0 )		operation -> type_ope = TYPE_DEFAUT_DEBIT;	      else		operation -> type_ope = TYPE_DEFAUT_CREDIT;	      operation -> contenu_type = itoa ( operation_import -> cheque );	      liste_tmp = TYPES_OPES;	      type_choisi = NULL;	      while ( liste_tmp )		{		  struct struct_type_ope *type;		  type = liste_tmp -> data;		  /* si l'op on trouve un type  incrmentation automatique et que le signe du type est bon, on l'enregistre */		  /*   et on arrte 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 && operation -> montant < 0 )			   ||			   ( type -> signe_type == 2 && operation -> montant > 0 ))			{			  operation -> type_ope = type -> no_type;			  type_choisi = type;			  liste_tmp = NULL;			}		      else			{			  operation -> type_ope = type -> no_type;			  type_choisi = type;			  liste_tmp = liste_tmp -> next;			}		    }		  else		    liste_tmp = liste_tmp -> next;		}	      /* type_choisi contient l'adr du type qui a t utilis, on peut y mettre le dernier no de chque */	      if ( type_choisi )		type_choisi -> no_en_cours = MAX ( operation_import -> cheque,						   type_choisi -> no_en_cours );	    }	  else	    {	      /* comme ce n'est pas un chque, on met sur le type par dfaut */	      if ( operation -> montant < 0 )		operation -> type_ope = TYPE_DEFAUT_DEBIT;	      else		operation -> type_ope = TYPE_DEFAUT_CREDIT;	    }	  /* rcupration du point */	  operation -> pointe = operation_import -> p_r;	  /* si c'est une ope de ventilation, lui ajoute le no de l'opration prcdente */	  if ( operation_import -> ope_de_ventilation )	    operation -> no_operation_ventilee_associee = derniere_operation_enregistrement_ope_import ;	  else	    derniere_operation_enregistrement_ope_import  = operation -> no_operation;	  /* ajoute l'opration dans la liste des ops du compte */	  LISTE_OPERATIONS = g_slist_append ( LISTE_OPERATIONS,					      operation );	  NB_OPE_COMPTE++;	      return ( operation );}