[grisbi-cvs] grisbi/src affichage_liste.c, 1.120, 1.121 balance_estimate_data.c, 1.17, 1.18 balance_estimate_data.h, 1.11, 1.12 balance_estimate_future.c, 1.5, 1.6 balance_estimate_future.h, 1.4, 1.5 balance_estimate_tab.c, 1.58, 1.59 gsb_assistant_archive.c, 1.43, 1.44 gsb_data_account.c, 1.100, 1.101 gsb_data_payee.c, 1.51, 1.52 gsb_data_payment.c, 1.18, 1.19 gsb_data_payment.h, 1.7, 1.8 gsb_file_load.c, 1.215, 1.216 gsb_file_others.c, 1.33, 1.34 gsb_file_save.c, 1.161, 1.162 gsb_form.c, 1.155, 1.156 gsb_form_transaction.c, 1.55, 1.56 gsb_form_widget.c, 1.51, 1.52 gsb_form_widget.h, 1.8, 1.9 gsb_transactions_list.c, 1.204, 1.205 gtk_combofix.c, 1.73, 1.74 import.c, 1.327, 1.328 main.c, 1.169, 1.170 tiers_onglet.c, 1.171, 1.172 transaction_list.c, 1.58, 1.59 utils_dates.c, 1.66, 1.67 utils_dates.h, 1.23, 1.24
Pierre Biava
pbiava at users.sourceforge.net
Sat Apr 3 21:57:44 CEST 2010
- Previous message: [grisbi-cvs] grisbi/po cs.po, 1.104, 1.105 da.po, 1.110, 1.111 de.po, 1.184, 1.185 el.po, 1.74, 1.75 eo.po, 1.67, 1.68 es.po, 1.184, 1.185 fa.po, 1.97, 1.98 fr.po, 1.243, 1.244 grisbi.pot, 1.145, 1.146 he.po, 1.103, 1.104 it.po, 1.103, 1.104 nl.po, 1.102, 1.103 pl.po, 1.108, 1.109 pt_BR.po, 1.105, 1.106 ro.po, 1.104, 1.105 ru.po, 1.102, 1.103 zh_CN.po, 1.98, 1.99
- Next message: [grisbi-cvs] grisbi/src balance_estimate_data.c, 1.18, 1.19 balance_estimate_data.h, 1.12, 1.13 balance_estimate_tab.c, 1.59, 1.60
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/grisbi/grisbi/src
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv7054/src
Modified Files:
affichage_liste.c balance_estimate_data.c
balance_estimate_data.h balance_estimate_future.c
balance_estimate_future.h balance_estimate_tab.c
gsb_assistant_archive.c gsb_data_account.c gsb_data_payee.c
gsb_data_payment.c gsb_data_payment.h gsb_file_load.c
gsb_file_others.c gsb_file_save.c gsb_form.c
gsb_form_transaction.c gsb_form_widget.c gsb_form_widget.h
gsb_transactions_list.c gtk_combofix.c import.c main.c
tiers_onglet.c transaction_list.c utils_dates.c utils_dates.h
Log Message:
Bug fixes in the management of payees. Additions of the modification of the future data for the budget module.
Index: gsb_file_others.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_file_others.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- gsb_file_others.c 28 Jan 2010 20:25:12 -0000 1.33
+++ gsb_file_others.c 3 Apr 2010 19:57:41 -0000 1.34
@@ -99,7 +99,7 @@
length_calculated = length_part * g_slist_length (gsb_data_category_get_categories_list());
iterator = 0;
- file_content = g_malloc ( length_calculated );
+ file_content = g_malloc0 ( length_calculated );
/* begin the file whit xml markup */
@@ -180,7 +180,7 @@
length_calculated = length_part * g_slist_length (gsb_data_budget_get_budgets_list());
iterator = 0;
- file_content = g_malloc ( length_calculated );
+ file_content = g_malloc0 ( length_calculated );
/* begin the file whit xml markup */
@@ -261,7 +261,7 @@
length_calculated = length_part * g_slist_length (gsb_data_report_get_report_list ());
iterator = 0;
- file_content = g_malloc ( length_calculated );
+ file_content = g_malloc0 ( length_calculated );
/* begin the file whit xml markup */
Index: balance_estimate_future.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_future.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- balance_estimate_future.h 28 Mar 2010 14:40:28 -0000 1.4
+++ balance_estimate_future.h 3 Apr 2010 19:57:41 -0000 1.5
@@ -8,6 +8,9 @@
/* START_DECLARATION */
+gboolean bet_future_modify_line ( gint account_number,
+ gint number,
+ gint mother_row );
gboolean bet_future_new_line_dialog ( GtkTreeModel *tab_model,
gchar *str_date );
/* END_DECLARATION */
Index: utils_dates.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/utils_dates.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -d -r1.66 -r1.67
--- utils_dates.c 29 Mar 2010 21:54:00 -0000 1.66
+++ utils_dates.c 3 Apr 2010 19:57:42 -0000 1.67
@@ -128,6 +128,26 @@
/**
+ * return the tomorrow date in the gdate format
+ *
+ * \param
+ *
+ * \return a newly allocated GDate which represents the date of the day. Use g_date_free to free memory when no more used.
+ * */
+GDate *gsb_date_tomorrow ( void )
+{
+ GDate *date;
+
+ date = g_date_new ( );
+ g_date_set_time_t ( date, time ( NULL ) );
+ g_date_add_days ( date, 1);
+
+ return ( date );
+}
+
+
+
+/**
* copy the date given in param
*
* \param date a GDate to copy
Index: gsb_data_payment.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_data_payment.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- gsb_data_payment.c 28 Mar 2010 14:40:28 -0000 1.18
+++ gsb_data_payment.c 3 Apr 2010 19:57:41 -0000 1.19
@@ -768,7 +768,7 @@
/**
- * try to find a method of payment similar to the origin method of payement
+ * try to find a method of payment similar to the origin method of payment
*
* \param origin_payment the method of payment we try to find a similar other
* \param target_account_number the account we want to search into for the new method of payment
@@ -904,3 +904,54 @@
}
+/**
+ * permet de trouver pour un autre compte le moyen de paiement
+ * ayant le même nom.
+ *
+ * \param number initial
+ * \ numéro du nouveau compte
+ *
+ * \ return the numéro de paiement si trouvé ou celui par défaut pour
+ * le compte concerné.
+ * */
+gint gsb_data_payment_search_number_other_account_by_name ( gint payment_number,
+ gint account_number )
+{
+
+ const gchar *name;
+ GSList *tmp_list;
+ gint new_payment_number;
+ gint sign;
+
+ name = gsb_data_payment_get_name ( payment_number );
+
+ tmp_list = payment_list;
+
+ while ( tmp_list )
+ {
+ struct_payment *payment;
+
+ payment = tmp_list -> data;
+
+ if ( payment -> account_number == account_number )
+ {
+ if ( my_strcasecmp ( (gchar *)name, payment -> payment_name ) == 0 )
+ return payment -> payment_number;
+ }
+ tmp_list = tmp_list -> next;
+ }
+
+ sign = gsb_data_payment_get_sign ( payment_number );
+
+ if ( sign == GSB_PAYMENT_CREDIT)
+ new_payment_number = gsb_data_account_get_default_credit ( account_number );
+ else
+ new_payment_number = gsb_data_account_get_default_debit ( account_number );
+
+ return new_payment_number;
+}
+
+
+/* Local Variables: */
+/* c-basic-offset: 4 */
+/* End: */
Index: transaction_list.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/transaction_list.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- transaction_list.c 8 Mar 2010 21:30:01 -0000 1.58
+++ transaction_list.c 3 Apr 2010 19:57:42 -0000 1.59
@@ -134,22 +134,22 @@
/* if this is a child, go to append_child_record */
if (gsb_data_transaction_get_mother_transaction_number (transaction_number))
{
- transaction_list_append_child (transaction_number);
- return;
+ transaction_list_append_child (transaction_number);
+ return;
}
/* the transaction is a mother */
- account_number = gsb_gui_navigation_get_current_account ();
+ account_number = gsb_data_transaction_get_account_number ( transaction_number );
/* if the transaction is a split, create a white line, we will append it later */
- if (gsb_data_transaction_get_split_of_transaction (transaction_number))
+ if ( gsb_data_transaction_get_split_of_transaction ( transaction_number ) )
{
/* append a white line */
gint white_line_number;
gchar *amount_string;
gchar *variance_string;
- white_line_number = gsb_data_transaction_new_white_line (transaction_number);
+ white_line_number = gsb_data_transaction_new_white_line ( transaction_number );
children_rows = g_malloc0 (sizeof (CustomRecord*));
/* create and fill the white line record */
@@ -216,7 +216,7 @@
/* we check if the row is visible or not only if we are on an account,
* in other case, the model will be filtered when change account so no need
* to do that here */
- if (account_number != -1
+ if ( gsb_gui_navigation_get_current_account ( ) != -1
&&
gsb_transactions_list_transaction_visible ( newrecord[i] -> transaction_pointer,
account_number,
Index: balance_estimate_future.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_future.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- balance_estimate_future.c 28 Mar 2010 14:40:28 -0000 1.5
+++ balance_estimate_future.c 3 Apr 2010 19:57:41 -0000 1.6
@@ -86,14 +86,16 @@
gpointer null );
static GtkWidget *bet_form_scheduler_get_element_widget ( gint element_number );
static GtkWidget *bet_form_widget_get_widget ( gint element_number );
+static gboolean bet_future_create_dialog ( void );
static gboolean bet_future_get_budget_data ( GtkWidget *widget,
gint budget_type,
struct_futur_data *scheduled );
static gboolean bet_future_get_category_data ( GtkWidget *widget,
gint budget_type,
struct_futur_data *scheduled );
-static gboolean bet_future_take_data_from_form ( GtkWidget *dialog,
- struct_futur_data *scheduled );
+static gboolean bet_future_set_form_data_from_line ( gint account_number,
+ gint number );
+static gboolean bet_future_take_data_from_form ( struct_futur_data *scheduled );
/*END_STATIC*/
/*START_EXTERN*/
@@ -129,40 +131,14 @@
gchar *str_date )
{
GtkWidget *widget;
- GtkWidget *vbox;
- GtkWidget *table;
gchar *tmp_str;
GDate *date;
+ GDate *date_jour;
gint result;
if ( bet_dialog == NULL )
{
- /* Create the dialog */
- bet_dialog = gtk_dialog_new_with_buttons ( _("Enter a budget line"),
- GTK_WINDOW ( window ),
- GTK_DIALOG_MODAL,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- NULL );
-
- gtk_window_set_position ( GTK_WINDOW ( bet_dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
- gtk_window_set_resizable ( GTK_WINDOW ( bet_dialog ), TRUE );
- gtk_dialog_set_default_response ( GTK_DIALOG ( bet_dialog ), GTK_RESPONSE_OK );
-
- vbox = gtk_vbox_new ( FALSE, 0 );
- gtk_box_pack_start ( GTK_BOX ( GTK_DIALOG ( bet_dialog )->vbox ), vbox, TRUE, TRUE, 0 );
- gtk_container_set_border_width ( GTK_CONTAINER ( vbox ), 12 );
-
- /* next we fill the bet_form */
- table = gtk_table_new ( BET_SCHEDULED_HEIGHT, BET_SCHEDULED_WIDTH, FALSE );
- gtk_table_set_col_spacings ( GTK_TABLE ( table ), 6 );
- gtk_widget_show ( table );
- gtk_box_pack_start ( GTK_BOX ( vbox ), table, FALSE, FALSE, 5 );
-
- bet_form_create_scheduler_part ( table );
- bet_form_create_current_form ( table );
-
- gtk_widget_show ( vbox );
+ bet_future_create_dialog ( );
}
else
{
@@ -171,15 +147,28 @@
}
/* init data */
-
widget = bet_form_widget_get_widget ( TRANSACTION_FORM_DATE );
date = gsb_parse_date_string ( str_date );
+ date_jour = gdate_today ( );
+
if ( g_date_valid ( date ) )
{
- gsb_form_widget_set_empty ( widget, FALSE );
- gsb_calendar_entry_set_date ( widget, date );
+ if ( g_date_compare ( date_jour, date ) >= 0 )
+ {
+ g_date_free ( date );
+ g_date_add_days ( date_jour, 1 );
+ date = date_jour;
+ }
+ }
+ else
+ {
+ g_date_add_days ( date_jour, 1 );
+ date = date_jour;
}
+ gsb_form_widget_set_empty ( widget, FALSE );
+ gsb_calendar_entry_set_date ( widget, date );
+
gtk_dialog_set_response_sensitive ( GTK_DIALOG ( bet_dialog ), GTK_RESPONSE_OK, FALSE );
dialog_return:
@@ -198,7 +187,7 @@
return FALSE;
}
- if ( bet_future_take_data_from_form ( bet_dialog, scheduled ) == FALSE )
+ if ( bet_future_take_data_from_form ( scheduled ) == FALSE )
{
tmp_str = g_strdup ( _("Error: the frequency defined by the user or the amount is "
"not specified or the date is invalid.") );
@@ -206,6 +195,9 @@
g_free ( tmp_str );
goto dialog_return;
}
+ else
+ bet_data_future_add_lines ( scheduled );
+
bet_array_refresh_estimate_tab ( );
}
@@ -216,6 +208,48 @@
/**
+ *
+ *
+ *
+ *
+ * */
+gboolean bet_future_create_dialog ( void )
+{
+ GtkWidget *vbox;
+ GtkWidget *table;
+
+ /* Create the dialog */
+ bet_dialog = gtk_dialog_new_with_buttons ( _("Enter a budget line"),
+ GTK_WINDOW ( window ),
+ GTK_DIALOG_MODAL,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
+ NULL );
+
+ gtk_window_set_position ( GTK_WINDOW ( bet_dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
+ gtk_window_set_resizable ( GTK_WINDOW ( bet_dialog ), TRUE );
+ gtk_dialog_set_default_response ( GTK_DIALOG ( bet_dialog ), GTK_RESPONSE_OK );
+
+ vbox = gtk_vbox_new ( FALSE, 0 );
+ gtk_box_pack_start ( GTK_BOX ( GTK_DIALOG ( bet_dialog )->vbox ), vbox, TRUE, TRUE, 0 );
+ gtk_container_set_border_width ( GTK_CONTAINER ( vbox ), 12 );
+
+ /* next we fill the bet_form */
+ table = gtk_table_new ( BET_SCHEDULED_HEIGHT, BET_SCHEDULED_WIDTH, FALSE );
+ gtk_table_set_col_spacings ( GTK_TABLE ( table ), 6 );
+ gtk_widget_show ( table );
+ gtk_box_pack_start ( GTK_BOX ( vbox ), table, FALSE, FALSE, 5 );
+
+ bet_form_create_scheduler_part ( table );
+ bet_form_create_current_form ( table );
+
+ gtk_widget_show ( vbox );
+
+ return FALSE;
+ }
+
+
+/**
* create the scheduled part
*
* \param table a GtkTable with the dimension SCHEDULED_HEIGHT*SCHEDULED_WIDTH to be filled
@@ -389,8 +423,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (widget),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
+ //~ etat.combofix_enter_select_completion );
/* we never mix the payee because the only case of the complex combofix is
* for the report and there is non sense to mix report with the payee */
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (widget),
@@ -475,7 +509,7 @@
element_number = TRANSACTION_FORM_CATEGORY;
widget = gtk_combofix_new_complex (
- gsb_data_category_get_name_list ( TRUE, TRUE, TRUE, TRUE ) );
+ gsb_data_category_get_name_list ( TRUE, TRUE, FALSE, FALSE ) );
gtk_widget_set_size_request ( widget, width, -1 );
gtk_combofix_set_force_text ( GTK_COMBOFIX (widget),
etat.combofix_force_category );
@@ -483,8 +517,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (widget),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
+ //~ etat.combofix_enter_select_completion );
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (widget),
etat.combofix_mixed_sort );
gtk_widget_show ( widget );
@@ -535,8 +569,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (widget),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
+ //~ etat.combofix_enter_select_completion );
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (widget),
etat.combofix_mixed_sort );
gtk_widget_show ( widget );
@@ -646,6 +680,22 @@
{
GSList *tmp_list;
+ /* clean the scheduled widget */
+ tmp_list = bet_schedul_element_list;
+
+ while (tmp_list)
+ {
+ struct_element *element;
+
+ element = tmp_list -> data;
+
+ /* better to protect here if widget != NULL (bad experience...) */
+ if (element -> element_widget)
+ gtk_widget_set_sensitive ( element -> element_widget, TRUE );
+
+ tmp_list = tmp_list -> next;
+ }
+
/* clean the transactions widget */
tmp_list = bet_form_list_widgets;
@@ -1215,13 +1265,131 @@
/**
+ * initialise les données du formulaire
+ *
+ *
+ *
+ * */
+gboolean bet_future_set_form_data_from_line ( gint account_number,
+ gint number )
+{
+ GtkWidget *widget;
+ GHashTable *future_list;
+ gchar *key;
+ struct_futur_data *scheduled;
+
+ if ( account_number == 0 )
+ key = g_strconcat ("0:", utils_str_itoa ( number ), NULL );
+ else
+ key = g_strconcat ( utils_str_itoa ( account_number ), ":",
+ utils_str_itoa ( number ), NULL );
+
+ future_list = bet_data_future_get_list ( );
+
+ scheduled = g_hash_table_lookup ( future_list, key );
+ if ( scheduled == NULL )
+ return FALSE;
+
+ /* On traite les données de la planification */
+ widget = bet_form_scheduler_get_element_widget ( SCHEDULED_FORM_FREQUENCY_BUTTON );
+ gsb_combo_box_set_index ( widget, scheduled -> frequency );
+ gtk_widget_set_sensitive ( widget, FALSE );
+
+ if ( scheduled -> frequency > 0 )
+ {
+ if ( scheduled -> limit_date && g_date_valid ( scheduled -> limit_date ) )
+ {
+ widget = bet_form_scheduler_get_element_widget ( SCHEDULED_FORM_LIMIT_DATE );
+ gsb_form_widget_set_empty ( widget, FALSE );
+ gsb_calendar_entry_set_date ( widget, scheduled -> limit_date );
+ gtk_widget_set_sensitive ( widget, FALSE );
+ }
+
+ if ( scheduled -> user_entry > 0 )
+ {
+ widget = bet_form_scheduler_get_element_widget (
+ SCHEDULED_FORM_FREQUENCY_USER_ENTRY );
+ gsb_form_widget_set_empty ( widget, FALSE );
+ gtk_entry_set_text ( GTK_ENTRY ( widget ),
+ utils_str_itoa ( scheduled -> user_entry ) );
+ gtk_widget_set_sensitive ( widget, FALSE );
+
+ widget = bet_form_scheduler_get_element_widget (
+ SCHEDULED_FORM_FREQUENCY_USER_BUTTON );
+ gsb_combo_box_set_index ( widget, scheduled -> user_interval );
+ gtk_widget_set_sensitive ( widget, FALSE );
+ }
+ }
+
+ /* On traite les données de transaction */
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_DATE );
+ gsb_calendar_entry_set_date ( widget, scheduled -> date );
+ gsb_form_widget_set_empty ( widget, FALSE );
+
+ if ( scheduled -> fyear_number > 0 )
+ {
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_EXERCICE );
+ gsb_fyear_set_combobox_history ( widget, scheduled -> fyear_number );
+ }
+
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_PARTY );
+ gsb_form_widget_set_empty ( GTK_COMBOFIX ( widget ) -> entry, FALSE );
+ gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+ gsb_data_payee_get_name ( scheduled -> party_number, FALSE ) );
+ gtk_editable_set_position ( GTK_EDITABLE ( GTK_COMBOFIX ( widget ) -> entry ), 0 );
+
+ if ( scheduled -> amount.mantissa < 0 )
+ {
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
+ gtk_entry_set_text ( GTK_ENTRY ( widget ), gsb_real_get_string (
+ gsb_real_opposite ( scheduled -> amount ) ) );
+ }
+ else
+ {
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
+ gtk_entry_set_text ( GTK_ENTRY ( widget ), gsb_real_get_string ( scheduled -> amount ) );
+ }
+ gsb_form_widget_set_empty ( widget, FALSE );
+
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_TYPE );
+ gsb_payment_method_set_combobox_history ( widget, scheduled -> payment_number );
+
+ if ( scheduled -> category_number > 0 )
+ {
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_CATEGORY );
+ gsb_form_widget_set_empty ( GTK_COMBOFIX ( widget ) -> entry, FALSE );
+ gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+ gsb_data_category_get_name ( scheduled -> category_number,
+ scheduled -> sub_category_number, NULL) );
+ }
+
+ if ( scheduled -> budgetary_number > 0 )
+ {
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_BUDGET );
+ gsb_form_widget_set_empty ( GTK_COMBOFIX ( widget ) -> entry, FALSE );
+ gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+ gsb_data_budget_get_name ( scheduled -> budgetary_number,
+ scheduled -> sub_budgetary_number, NULL ) );
+ }
+
+ if ( scheduled -> notes && strlen ( scheduled -> notes ) > 0 )
+ {
+ widget = bet_form_widget_get_widget ( TRANSACTION_FORM_NOTES );
+ gsb_form_widget_set_empty ( widget, FALSE );
+ gtk_entry_set_text ( GTK_ENTRY ( widget ), scheduled -> notes );
+ }
+
+ return TRUE;
+}
+
+
+/**
* récupère les données du formulaire
*
*
*
* */
-gboolean bet_future_take_data_from_form ( GtkWidget *dialog,
- struct_futur_data *scheduled )
+gboolean bet_future_take_data_from_form ( struct_futur_data *scheduled )
{
GtkWidget *widget;
gint budget_type;
@@ -1272,14 +1440,18 @@
widget = bet_form_widget_get_widget ( TRANSACTION_FORM_DATE );
if ( gsb_form_widget_check_empty( widget ) == FALSE )
{
- GDate *date_jour;
+ GDate *date_tomorrow;
- date_jour = gdate_today ( );
+ date_tomorrow = gsb_date_tomorrow ( );
scheduled -> date = gsb_calendar_entry_get_date ( widget );
if ( scheduled -> date == NULL
||
- g_date_compare ( date_jour, scheduled -> date ) > 0 )
+ g_date_compare ( scheduled -> date, date_tomorrow ) < 0 )
+ {
+ g_date_free ( date_tomorrow );
return FALSE;
+ }
+ g_date_free ( date_tomorrow );
}
else
return FALSE;
@@ -1349,8 +1521,6 @@
scheduled -> notes = g_strdup ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
else
scheduled -> notes = NULL;
-
- bet_data_future_add_lines ( scheduled );
return TRUE;
}
@@ -1433,6 +1603,64 @@
*
*
* */
+gboolean bet_future_modify_line ( gint account_number,
+ gint number,
+ gint mother_row )
+{
+ gchar *tmp_str;
+ gint result;
+
+ if ( bet_dialog == NULL )
+ {
+ bet_future_create_dialog ( );
+ }
+ else
+ {
+ bet_form_clean ( gsb_gui_navigation_get_current_account ( ) );
+ gtk_widget_show ( bet_dialog );
+ }
+
+ /* init data */
+ bet_future_set_form_data_from_line ( account_number, number );
+
+dialog_return:
+ result = gtk_dialog_run ( GTK_DIALOG ( bet_dialog ));
+
+ if ( result == GTK_RESPONSE_OK )
+ {
+ struct_futur_data *scheduled;
+
+ scheduled = struct_initialise_bet_future ( );
+
+ if ( !scheduled )
+ {
+ dialogue_error_memory ();
+ gtk_widget_hide ( bet_dialog );
+ return FALSE;
+ }
+
+ if ( bet_future_take_data_from_form ( scheduled ) == FALSE )
+ {
+ tmp_str = g_strdup ( _("Error: the frequency defined by the user or the amount is "
+ "not specified or the date is invalid.") );
+ dialogue_warning_hint ( tmp_str, _("One field is not filled in") );
+ g_free ( tmp_str );
+ goto dialog_return;
+ }
+ else
+ {
+ scheduled -> number = number;
+ scheduled -> mother_row = mother_row;
+ bet_data_future_modify_lines ( scheduled );
+ }
+
+ bet_array_refresh_estimate_tab ( );
+ }
+
+ gtk_widget_hide ( bet_dialog );
+
+ return FALSE;
+}
/* Local Variables: */
/* c-basic-offset: 4 */
/* End: */
Index: tiers_onglet.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/tiers_onglet.c,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -d -r1.171 -r1.172
--- tiers_onglet.c 14 Feb 2010 17:48:50 -0000 1.171
+++ tiers_onglet.c 3 Apr 2010 19:57:42 -0000 1.172
@@ -1002,8 +1002,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (entry),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (entry),
- FALSE );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (entry),
+ //~ FALSE );
gtk_box_pack_start ( GTK_BOX(paddingbox), entry, FALSE, FALSE, 6 );
g_object_set_data ( G_OBJECT (assistant), "payee", entry );
paddingbox = new_paddingbox_with_title ( page, TRUE, _("Enter the new payee"));
Index: gsb_data_account.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_data_account.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -d -r1.100 -r1.101
--- gsb_data_account.c 13 Mar 2010 21:06:58 -0000 1.100
+++ gsb_data_account.c 3 Apr 2010 19:57:41 -0000 1.101
@@ -120,7 +120,7 @@
GDate *bet_start_date; /* date de début */
gint bet_spin_range; /* echelle de la période 0 = mois 1 = années */
gint bet_months; /* nombre de mois ou d'années */
- gint bet_hist_data; /* origine des données catégories ou IB */
+ gint bet_hist_data; /* origine des données 0 = catégories 1 = IB */
gint bet_hist_fyear; /* numéro d'exercice */
} struct_account;
@@ -2948,7 +2948,7 @@
/**
- *
+ * return the historical source of the data
*
*
* */
Index: gsb_file_save.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_file_save.c,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -d -r1.161 -r1.162
--- gsb_file_save.c 28 Mar 2010 14:40:29 -0000 1.161
+++ gsb_file_save.c 3 Apr 2010 19:57:41 -0000 1.162
@@ -687,7 +687,7 @@
"\t\tCombofix_mixed_sort=\"%d\"\n"
"\t\tCombofix_max_item=\"%d\"\n"
"\t\tCombofix_case_sensitive=\"%d\"\n"
- "\t\tCombofix_enter_select_completion=\"%d\"\n"
+ //~ "\t\tCombofix_enter_select_completion=\"%d\"\n"
"\t\tCombofix_force_payee=\"%d\"\n"
"\t\tCombofix_force_category=\"%d\"\n"
"\t\tAutomatic_amount_separator=\"%d\"\n"
@@ -726,7 +726,7 @@
etat.combofix_mixed_sort,
etat.combofix_max_item,
etat.combofix_case_sensitive,
- etat.combofix_enter_select_completion,
+ //~ etat.combofix_enter_select_completion,
etat.combofix_force_payee,
etat.combofix_force_category,
etat.automatic_separator,
Index: balance_estimate_tab.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_tab.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- balance_estimate_tab.c 28 Mar 2010 14:40:28 -0000 1.58
+++ balance_estimate_tab.c 3 Apr 2010 19:57:41 -0000 1.59
@@ -85,6 +85,8 @@
GtkTreeSelection *tree_selection );
static gboolean bet_array_list_button_press ( GtkWidget *tree_view,
GdkEventButton *ev );
+static void bet_array_list_change_menu ( GtkWidget *menu_item,
+ GtkTreeSelection *tree_selection );
static void bet_array_list_context_menu ( GtkWidget *tree_view );
static void bet_array_list_delete_menu ( GtkWidget *menu_item,
GtkTreeSelection *tree_selection );
@@ -289,7 +291,6 @@
GtkTreeIter iter;
GtkTreeModel *tree_model;
gchar *color_str = NULL;
- gchar *str_date_init;
gchar *str_date_min;
gchar *str_date_max;
gchar *str_current_balance;
@@ -319,29 +320,18 @@
/* calculate date_min and date_max with user choice */
date_min = gsb_data_account_get_bet_start_date ( account_nb );
-
- date_init = gsb_date_copy ( date_min );
- g_date_subtract_days ( date_init, 1 );
-
- date_max = gsb_date_copy ( date_min );
-
- if ( g_date_get_day ( date_min ) == 1 )
- {
- g_date_add_months (date_max, gsb_data_account_get_bet_months ( account_nb ) - 1 );
- date_max = gsb_date_get_last_day_of_month ( date_max );
- }
- else
- {
- g_date_add_months (date_max, gsb_data_account_get_bet_months ( account_nb ) );
- g_date_subtract_days ( date_max, 1 );
- }
+
+ date_max = bet_data_array_get_date_max ( account_nb );
widget = g_object_get_data ( G_OBJECT ( notebook ), "initial_date");
gsb_calendar_entry_set_date ( widget, date_min );
- str_date_init = gsb_format_gdate ( date_init );
str_date_min = gsb_format_gdate ( date_min );
+ /* sert à mettre en première ligne le solde de début de période */
+ date_init = gsb_date_copy ( date_min );
+ g_date_subtract_days ( date_init, 1 );
+
g_value_init ( &date_value, G_TYPE_DATE );
g_value_set_boxed ( &date_value, date_init );
@@ -399,7 +389,6 @@
-1);
g_value_unset ( &date_value );
- g_free ( str_date_init );
g_free ( str_date_min );
g_free ( str_date_max );
g_free ( tmp_str );
@@ -424,9 +413,9 @@
date_min,
date_max );
- g_free ( date_min );
- g_free ( date_init );
- g_free ( date_max );
+ g_date_free ( date_min );
+ g_date_free ( date_init );
+ g_date_free ( date_max );
/* Calculate the balance column */
tmp_range -> first_pass = TRUE;
@@ -1019,7 +1008,7 @@
else
str_credit = str_value;
- while (date != NULL && g_date_valid ( date ) )
+ while ( date != NULL && g_date_valid ( date ) )
{
if ( g_date_compare ( date, date_max ) > 0 )
break;
@@ -1085,13 +1074,6 @@
GHashTable *future_list;
GHashTableIter iter;
gpointer key, value;
- GtkTreeIter tab_iter;
- GValue date_value = {0, };
- gchar *str_date;
- gchar *str_description;
- gchar *str_debit = NULL;
- gchar *str_credit = NULL;
- gchar *str_amount;
gint account_number;
devel_debug (NULL);
@@ -1103,17 +1085,51 @@
while ( g_hash_table_iter_next ( &iter, &key, &value ) )
{
struct_futur_data *scheduled = ( struct_futur_data *) value;
+ GtkTreeIter tab_iter;
+ GValue date_value = {0, };
+ gchar *str_debit = NULL;
+ gchar *str_credit = NULL;
+ gchar *str_date;
+ gchar *str_description;
+ gchar *str_amount;
+ GDate *date_tomorrow;
if ( account_number != scheduled -> account_number )
continue;
+ date_tomorrow = gsb_date_tomorrow ( );
+ if ( g_date_compare ( scheduled -> date, date_tomorrow ) < 0 )
+ {
+ bet_data_future_remove_line ( account_number, scheduled -> number );
+ g_date_free ( date_tomorrow );
+ continue;
+ }
+ else
+ g_date_free ( date_tomorrow );
+
+ if ( g_date_compare ( scheduled -> date, date_max ) > 0 )
+ continue;
+ if ( g_date_compare ( scheduled -> date, date_min ) < 0 )
+ continue;
+
str_description = g_strdup ( scheduled -> notes );
if ( !str_description || !strlen ( str_description ) )
str_description = g_strdup ( gsb_data_payee_get_name (
- scheduled -> party_number, FALSE ) );
+ scheduled -> party_number, FALSE ) );
+
+ if ( !str_description || !strlen ( str_description ) )
+ {
+ if ( gsb_data_account_get_bet_hist_data ( scheduled -> account_number ) == 0 )
+ str_description = g_strdup ( gsb_data_category_get_name ( scheduled -> category_number,
+ scheduled -> sub_category_number, NULL) );
+ else
+ str_description = g_strdup ( gsb_data_budget_get_name ( scheduled -> budgetary_number,
+ scheduled -> sub_budgetary_number, NULL ) );
+ }
str_amount = gsb_real_save_real_to_string ( scheduled -> amount, 2 );
+
if ( scheduled -> amount.mantissa < 0 )
str_debit = gsb_real_get_string_with_currency ( gsb_real_opposite (
scheduled -> amount ),
@@ -1122,11 +1138,6 @@
str_credit = gsb_real_get_string_with_currency ( scheduled -> amount,
bet_data_get_selected_currency ( ), TRUE );;
- if ( g_date_compare ( scheduled -> date, date_max ) > 0 )
- break;
- if ( g_date_compare ( scheduled -> date, date_min ) < 0 )
- break;
-
str_date = gsb_format_gdate ( scheduled -> date );
g_value_init ( &date_value, G_TYPE_DATE );
@@ -1157,6 +1168,7 @@
if ( str_credit )
g_free ( str_credit );
}
+
return FALSE;
}
@@ -1239,22 +1251,19 @@
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
- if ( g_date_compare ( date, date_jour ) > 0 )
- {
- /* Separator */
- gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), gtk_separator_menu_item_new ( ) );
- gtk_widget_show ( menu_item );
+ /* Separator */
+ gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), gtk_separator_menu_item_new ( ) );
+ gtk_widget_show ( menu_item );
- menu_item = gtk_image_menu_item_new_with_label ( _("Insert Row") );
- gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
- gtk_image_new_from_stock ( GTK_STOCK_ADD,
- GTK_ICON_SIZE_MENU ) );
- g_signal_connect ( G_OBJECT ( menu_item ),
- "activate",
- G_CALLBACK ( bet_array_list_insert_menu ),
- tree_selection );
- gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
- }
+ menu_item = gtk_image_menu_item_new_with_label ( _("Insert Row") );
+ gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+ gtk_image_new_from_stock ( GTK_STOCK_ADD,
+ GTK_ICON_SIZE_MENU ) );
+ g_signal_connect ( G_OBJECT ( menu_item ),
+ "activate",
+ G_CALLBACK ( bet_array_list_insert_menu ),
+ tree_selection );
+ gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
/* Delete item */
switch ( origine )
@@ -1286,6 +1295,16 @@
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
break;
case SPP_ORIGIN_FUTURE:
+ menu_item = gtk_image_menu_item_new_with_label ( _("Change selection") );
+ gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+ gtk_image_new_from_stock ( GTK_STOCK_EDIT,
+ GTK_ICON_SIZE_MENU ) );
+ g_signal_connect ( G_OBJECT ( menu_item ),
+ "activate",
+ G_CALLBACK ( bet_array_list_change_menu ),
+ tree_selection );
+ gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+
menu_item = gtk_image_menu_item_new_with_label ( _("Delete selection") );
gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
gtk_image_new_from_stock ( GTK_STOCK_DELETE,
@@ -1359,6 +1378,30 @@
}
+void bet_array_list_change_menu ( GtkWidget *menu_item,
+ GtkTreeSelection *tree_selection )
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gint origine;
+ gint number;
+ gint mother_row;
+
+ if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( tree_selection ),
+ &model, &iter ) )
+ return;
+
+ gtk_tree_model_get ( GTK_TREE_MODEL ( model ), &iter,
+ SPP_ESTIMATE_TREE_ORIGIN_DATA, &origine,
+ SPP_ESTIMATE_TREE_DIVISION_COLUMN, &number,
+ SPP_ESTIMATE_TREE_SUB_DIV_COLUMN, &mother_row,
+ -1 );
+
+ if ( origine == SPP_ORIGIN_FUTURE )
+ bet_future_modify_line ( gsb_gui_navigation_get_current_account ( ), number, mother_row );
+}
+
+
/**
* delete a row
*
@@ -1369,8 +1412,7 @@
void bet_array_list_delete_menu ( GtkWidget *menu_item,
GtkTreeSelection *tree_selection )
{
- GtkWidget *tree_view;
- GtkWidget *notebook;
+ GtkTreeView *tree_view;
GtkTreeModel *model;
GtkTreeIter iter;
gint origine;
@@ -1385,12 +1427,11 @@
SPP_ESTIMATE_TREE_DIVISION_COLUMN, &number,
-1 );
- notebook = g_object_get_data ( G_OBJECT ( notebook_general ), "account_notebook");
- tree_view = g_object_get_data ( G_OBJECT ( notebook), "bet_estimate_treeview");
gtk_tree_store_remove ( GTK_TREE_STORE ( model ), &iter );
if ( origine == SPP_ORIGIN_FUTURE )
bet_data_future_remove_line ( gsb_gui_navigation_get_current_account ( ), number );
- bet_array_list_set_background_color ( tree_view );
+ tree_view = gtk_tree_selection_get_tree_view ( tree_selection );
+ bet_array_list_set_background_color ( GTK_WIDGET ( tree_view ) );
bet_array_list_update_balance ( model );
}
@@ -1439,8 +1480,7 @@
void bet_array_list_insert_menu ( GtkWidget *menu_item,
GtkTreeSelection *tree_selection )
{
- GtkWidget *tree_view;
- GtkWidget *notebook;
+ GtkTreeView *tree_view;
GtkTreeModel *model;
GtkTreeIter iter;
gchar *str_date;
@@ -1453,10 +1493,9 @@
SPP_ESTIMATE_TREE_DATE_COLUMN, &str_date,
-1 );
- notebook = g_object_get_data ( G_OBJECT ( notebook_general ), "account_notebook");
- tree_view = g_object_get_data ( G_OBJECT ( notebook), "bet_estimate_treeview");
bet_future_new_line_dialog ( model, str_date );
- bet_array_list_set_background_color ( tree_view );
+ tree_view = gtk_tree_selection_get_tree_view ( tree_selection );
+ bet_array_list_set_background_color ( GTK_WIDGET ( tree_view ) );
bet_array_list_update_balance ( model );
}
@@ -1862,16 +1901,10 @@
* */
void bet_array_list_traite_double_click ( GtkTreeView *tree_view )
{
-//~ printf ("bet_array_list_traite_double_click\n");
GtkTreeSelection *selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
selection = gtk_tree_view_get_selection ( tree_view );
- if ( selection && !gtk_tree_selection_get_selected ( selection, &model, &iter ) )
- return;
-
-
+ bet_array_list_change_menu ( NULL, selection );
}
Index: gsb_data_payee.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_data_payee.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- gsb_data_payee.c 14 Feb 2010 17:48:50 -0000 1.51
+++ gsb_data_payee.c 3 Apr 2010 19:57:41 -0000 1.52
@@ -455,13 +455,12 @@
while ( tmp_list )
{
- struct_payee *payee;
+ struct_payee *payee;
- payee = tmp_list -> data;
+ payee = tmp_list -> data;
- return_list = g_slist_append ( return_list,
- payee -> payee_name );
- tmp_list = tmp_list -> next;
+ return_list = g_slist_insert_sorted ( return_list, payee -> payee_name, (GCompareFunc) g_utf8_collate );
+ tmp_list = tmp_list -> next;
}
return return_list;
}
Index: gsb_assistant_archive.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_assistant_archive.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- gsb_assistant_archive.c 9 Jan 2010 20:57:38 -0000 1.43
+++ gsb_assistant_archive.c 3 Apr 2010 19:57:41 -0000 1.44
@@ -799,7 +799,6 @@
/* ok for now the choice is on initial/final date */
if ( gtk_notebook_get_current_page (GTK_NOTEBOOK(notebook)) == ARCHIVE_ASSISTANT_MENU )
{
- printf ("current_page = ARCHIVE_ASSISTANT_MENU\n");
if ( GTK_WIDGET_IS_SENSITIVE (initial_date) )
{
GDate *init_gdate;
@@ -871,9 +870,7 @@
tmp_list = tmp_list -> next;
}
- printf ("nbre de transactions dans l'archive = %d\n",
- g_slist_length ( list_transaction_to_archive ) );
- }
+ }
/* ok for now the choice is on fyear */
else if ( GTK_WIDGET_IS_SENSITIVE ( financial_year_button ) )
Index: balance_estimate_data.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_data.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- balance_estimate_data.h 28 Mar 2010 14:40:28 -0000 1.11
+++ balance_estimate_data.h 3 Apr 2010 19:57:41 -0000 1.12
@@ -67,10 +67,12 @@
/* START_DECLARATION */
+GDate *bet_data_array_get_date_max ( gint account_number );
GHashTable *bet_data_future_get_list ( void );
gboolean bet_data_future_add_lines ( struct_futur_data *sfd );
GDate *bet_data_futur_get_next_date ( struct_futur_data *scheduled,
const GDate *date );
+gboolean bet_data_future_modify_lines ( struct_futur_data *scheduled );
gboolean bet_data_future_remove_line ( gint account_number, gint number );
gboolean bet_data_future_remove_lines ( gint account_number,
gint number,
Index: import.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/import.c,v
retrieving revision 1.327
retrieving revision 1.328
diff -u -d -r1.327 -r1.328
--- import.c 23 Mar 2010 22:15:21 -0000 1.327
+++ import.c 3 Apr 2010 19:57:42 -0000 1.328
@@ -3715,8 +3715,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (entry),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (entry),
- FALSE );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (entry),
+ //~ FALSE );
gtk_table_attach ( GTK_TABLE ( table ), entry, 1, 2, 0, 1,
GTK_EXPAND|GTK_FILL, 0, 0, 0 );
g_object_set_data ( G_OBJECT (vbox_main), "payee", entry );
Index: gsb_file_load.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_file_load.c,v
retrieving revision 1.215
retrieving revision 1.216
diff -u -d -r1.215 -r1.216
--- gsb_file_load.c 28 Mar 2010 14:40:28 -0000 1.215
+++ gsb_file_load.c 3 Apr 2010 19:57:41 -0000 1.216
@@ -967,11 +967,11 @@
etat.combofix_case_sensitive = utils_str_atoi( attribute_values[i]);
}
- else if ( !strcmp ( attribute_names[i],
- "Combofix_enter_select_completion" ))
- {
- etat.combofix_enter_select_completion = utils_str_atoi( attribute_values[i]);
- }
+ //~ else if ( !strcmp ( attribute_names[i],
+ //~ "Combofix_enter_select_completion" ))
+ //~ {
+ //~ etat.combofix_enter_select_completion = utils_str_atoi( attribute_values[i]);
+ //~ }
else if ( !strcmp ( attribute_names[i],
"Combofix_force_payee" ))
Index: gsb_data_payment.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_data_payment.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- gsb_data_payment.h 16 Mar 2010 11:48:43 -0000 1.7
+++ gsb_data_payment.h 3 Apr 2010 19:57:41 -0000 1.8
@@ -31,6 +31,8 @@
gboolean gsb_data_payment_init_variables ( void );
gint gsb_data_payment_new ( const gchar *name );
gboolean gsb_data_payment_remove ( gint payment_number );
+gint gsb_data_payment_search_number_other_account_by_name ( gint payment_number,
+ gint account_number );
gboolean gsb_data_payment_set_account_number ( gint payment_number,
gint account_number );
gboolean gsb_data_payment_set_automatic_numbering ( gint payment_number,
Index: balance_estimate_data.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_data.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- balance_estimate_data.c 28 Mar 2010 14:40:28 -0000 1.17
+++ balance_estimate_data.c 3 Apr 2010 19:57:41 -0000 1.18
@@ -846,7 +846,7 @@
{
SBR *sbr;
- sbr = g_malloc ( sizeof ( SBR ) );
+ sbr = g_malloc0 ( sizeof ( SBR ) );
sbr -> first_pass = TRUE;
sbr -> min_date = NULL;
sbr -> max_date = NULL;
@@ -885,7 +885,7 @@
{
SH *sh;
- sh = g_malloc ( sizeof ( SH ) );
+ sh = g_malloc0 ( sizeof ( SH ) );
sh -> sbr = struct_initialise_bet_range ( );
sh -> list_sub_div = g_hash_table_new_full ( g_str_hash,
g_str_equal,
@@ -923,7 +923,7 @@
{
struct_hist_div *shd;
- shd = g_malloc ( sizeof ( struct_hist_div ) );
+ shd = g_malloc0 ( sizeof ( struct_hist_div ) );
shd -> account_nb = 0;
shd -> div_number = 0;
shd -> div_edited = FALSE;
@@ -1007,7 +1007,7 @@
{
struct_futur_data *sfd;
- sfd = g_malloc ( sizeof ( struct_futur_data ) );
+ sfd = g_malloc0 ( sizeof ( struct_futur_data ) );
sfd -> date = NULL;
sfd -> amount = null_real;
@@ -1051,9 +1051,6 @@
if ( scheduled -> frequency == 0 )
{
- //~ if ( ( old_sch = g_hash_table_lookup ( bet_future_list, key ) ) )
- //~ g_hash_table_replace ( bet_future_list, key, scheduled );
- //~ else
if ( scheduled -> account_number == 0 )
key = g_strconcat ("0:", utils_str_itoa ( future_number ), NULL );
else
@@ -1066,14 +1063,16 @@
else
{
GDate *date;
+ GDate *date_max;
gint mother_row;
struct_futur_data *new_sch = NULL;
mother_row = future_number;
+ date_max = bet_data_array_get_date_max ( scheduled -> account_number );
/* we don't change the initial date */
date = gsb_date_copy ( scheduled -> date );
- while ( date != NULL && g_date_valid ( date ) )
+ while ( date != NULL && g_date_valid ( date ) && g_date_compare ( date, date_max ) <= 0 )
{
if ( scheduled -> account_number == 0 )
key = g_strconcat ("0:", utils_str_itoa ( future_number ), NULL );
@@ -1096,6 +1095,7 @@
new_sch = bet_data_future_copy_struct ( scheduled );
new_sch -> date = date;
}
+ g_date_free ( date_max );
}
if ( etat.modification_fichier == 0 )
@@ -1260,14 +1260,17 @@
new_sch -> number = scheduled -> number;
new_sch -> account_number = scheduled -> account_number;
+
if ( g_date_valid ( scheduled -> date ) )
new_sch -> date = gsb_date_copy ( scheduled -> date );
else
new_sch -> date = NULL;
+
new_sch -> amount = gsb_real_new ( scheduled -> amount.mantissa,
scheduled -> amount.exponent );
new_sch -> fyear_number = scheduled -> fyear_number;
new_sch -> payment_number = scheduled -> payment_number;
+
new_sch -> party_number = scheduled -> party_number;
new_sch -> category_number = scheduled -> category_number;
new_sch -> sub_category_number = scheduled -> sub_category_number;
@@ -1278,7 +1281,8 @@
new_sch -> frequency = scheduled -> frequency;
new_sch -> user_interval = scheduled -> user_interval;
new_sch -> user_entry = scheduled -> user_entry;
- if ( g_date_valid ( scheduled -> limit_date ) )
+
+ if ( scheduled -> limit_date && g_date_valid ( scheduled -> limit_date ) )
new_sch -> limit_date = gsb_date_copy ( scheduled -> limit_date );
else
new_sch -> limit_date = NULL;
@@ -1359,11 +1363,71 @@
/**
+ * retourne la date max d'interrogation pour les prévisions
+ *
*
*
+ * */
+GDate *bet_data_array_get_date_max ( gint account_number )
+{
+ GDate *date_min;
+ GDate *date_max;
+
+ date_min = gsb_data_account_get_bet_start_date ( account_number );
+
+ date_max = gsb_date_copy ( date_min );
+
+ if ( g_date_get_day ( date_min ) == 1 )
+ {
+ g_date_add_months (date_max, gsb_data_account_get_bet_months ( account_number ) - 1 );
+ date_max = gsb_date_get_last_day_of_month ( date_max );
+ }
+ else
+ {
+ g_date_add_months (date_max, gsb_data_account_get_bet_months ( account_number ) );
+ g_date_subtract_days ( date_max, 1 );
+ }
+
+ return date_max;
+}
+
+
+/**
+ * modify futures data lines
+ *
*
*
* */
+gboolean bet_data_future_modify_lines ( struct_futur_data *scheduled )
+{
+ GHashTableIter iter;
+ gpointer key, value;
+
+ g_hash_table_iter_init ( &iter, bet_future_list );
+ while ( g_hash_table_iter_next ( &iter, &key, &value ) )
+ {
+ struct_futur_data *sch = ( struct_futur_data *) value;
+
+ if ( scheduled -> number == sch -> number )
+ {
+ if ( scheduled -> account_number == 0 )
+ key = g_strconcat ("0:", utils_str_itoa ( scheduled -> number ), NULL );
+ else
+ key = g_strconcat ( utils_str_itoa ( scheduled -> account_number ), ":",
+ utils_str_itoa ( scheduled -> number ), NULL );
+
+ g_hash_table_replace ( bet_future_list, key, scheduled );
+ }
+ }
+
+ if ( etat.modification_fichier == 0 )
+ modification_fichier ( TRUE );
+
+ return TRUE;
+}
+
+
+
/* Local Variables: */
/* c-basic-offset: 4 */
/* End: */
Index: main.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/main.c,v
retrieving revision 1.169
retrieving revision 1.170
diff -u -d -r1.169 -r1.170
--- main.c 15 Mar 2010 20:29:47 -0000 1.169
+++ main.c 3 Apr 2010 19:57:42 -0000 1.170
@@ -110,8 +110,10 @@
gboolean first_use = FALSE;
gchar *string;
gchar *path;
- struct lconv *conv;
cmdline_options opt;
+#ifdef IS_DEVELOPMENT_VERSION
+ struct lconv *conv;
+#endif
#ifndef _WIN32
struct sigaction sig_sev;
@@ -191,7 +193,7 @@
register_import_formats ();
#ifdef IS_DEVELOPMENT_VERSION
- /* test locale pour les nombres */
+ /* test local pour les nombres */
conv = localeconv();
printf ("currency_symbol = %s\n"
Index: gtk_combofix.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gtk_combofix.c,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- gtk_combofix.c 23 Mar 2010 22:15:21 -0000 1.73
+++ gtk_combofix.c 3 Apr 2010 19:57:42 -0000 1.74
@@ -97,6 +97,7 @@
COMBOFIX_COL_VISIBLE,
COMBOFIX_COL_LIST_NUMBER,
COMBOFIX_COL_SEPARATOR,
+ COMBOFIX_N_COLUMNS,
};
enum combofix_key_direction {
@@ -523,7 +524,7 @@
* COMBOFIX_COL_LIST_NUMBER (a int) : the number of the list for a complex combofix (0 else)
* COMBOFIX_COL_SEPARATOR (a boolean) : TRUE for a separator
* */
- combofix -> store = gtk_tree_store_new ( 5,
+ combofix -> store = gtk_tree_store_new ( COMBOFIX_N_COLUMNS,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_BOOLEAN,
Index: gsb_form_widget.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_widget.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- gsb_form_widget.c 23 Mar 2010 22:15:21 -0000 1.51
+++ gsb_form_widget.c 3 Apr 2010 19:57:41 -0000 1.52
@@ -75,8 +75,8 @@
static gchar *old_debit = NULL;
static gchar *old_credit = NULL;
-static gint old_credit_payement_number = 0;
-static gint old_debit_payement_number = 0;
+static gint old_credit_payment_number = 0;
+static gint old_debit_payment_number = 0;
/**
* return the list wich contains the widgets of the form
@@ -219,8 +219,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (widget),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
+ //~ etat.combofix_enter_select_completion );
/* we never mix the payee because the only case of the complex combofix is
* for the report and there is non sense to mix report with the payee */
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (widget),
@@ -236,8 +236,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (widget),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
+ //~ etat.combofix_enter_select_completion );
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (widget),
etat.combofix_mixed_sort );
break;
@@ -255,8 +255,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (widget),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (widget),
+ //~ etat.combofix_enter_select_completion );
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (widget),
etat.combofix_mixed_sort );
break;
@@ -810,7 +810,7 @@
/* change the signe of the method of payment and the contra */
if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_CREDIT )
{
- old_credit_payement_number = gsb_payment_method_get_selected_number (
+ old_credit_payment_number = gsb_payment_method_get_selected_number (
widget );
gsb_payment_method_create_combo_list ( widget,
@@ -853,7 +853,7 @@
/* change the signe of the method of payment and the contra */
if ( gsb_payment_method_get_combo_sign (widget) == GSB_PAYMENT_DEBIT)
{
- old_debit_payement_number = gsb_payment_method_get_selected_number (
+ old_debit_payment_number = gsb_payment_method_get_selected_number (
widget );
gsb_payment_method_create_combo_list ( widget,
@@ -1066,9 +1066,9 @@
*
*
* */
-gint gsb_form_widget_get_old_credit_payement ( void )
+gint gsb_form_widget_get_old_credit_payment ( void )
{
- return old_credit_payement_number;
+ return old_credit_payment_number;
}
@@ -1078,7 +1078,7 @@
*
*
* */
-gint gsb_form_widget_get_old_debit_payement ( void )
+gint gsb_form_widget_get_old_debit_payment ( void )
{
- return old_debit_payement_number;
+ return old_debit_payment_number;
}
Index: gsb_form_transaction.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_transaction.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- gsb_form_transaction.c 30 Jan 2010 17:04:12 -0000 1.55
+++ gsb_form_transaction.c 3 Apr 2010 19:57:41 -0000 1.56
@@ -103,14 +103,18 @@
&&
element -> element_number != TRANSACTION_FORM_PARTY
&&
- ((GTK_IS_ENTRY (element -> element_widget)
+ element -> element_number != TRANSACTION_FORM_CHEQUE
+ &&
+ ( ( GTK_IS_ENTRY ( element -> element_widget )
&&
- !gsb_form_widget_check_empty(element -> element_widget))
+ !gsb_form_widget_check_empty ( element -> element_widget ) )
||
(GTK_IS_COMBOFIX (element -> element_widget)
&&
- !gsb_form_widget_check_empty(GTK_COMBOFIX (element -> element_widget) -> entry))))
+ !gsb_form_widget_check_empty ( GTK_COMBOFIX (
+ element -> element_widget ) -> entry ) ) ) )
return TRUE;
+
tmp_list = tmp_list -> next;
}
@@ -192,7 +196,14 @@
if ( GTK_WIDGET_VISIBLE (widget))
{
+ gint tmp_account;
+
number = gsb_data_mix_get_method_of_payment_number (transaction_number, TRUE);
+ tmp_account = gsb_data_transaction_get_account_number ( transaction_number );
+
+ if ( account_number != tmp_account )
+ number = gsb_data_payment_search_number_other_account_by_name ( number,
+ account_number );
/* we show the cheque entry only for transactions */
if (gsb_payment_method_set_combobox_history ( widget, number )
Index: affichage_liste.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/affichage_liste.c,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -d -r1.120 -r1.121
--- affichage_liste.c 8 Mar 2010 21:30:00 -0000 1.120
+++ affichage_liste.c 3 Apr 2010 19:57:41 -0000 1.121
@@ -596,8 +596,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (combofix),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (combofix),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (combofix),
+ //~ etat.combofix_enter_select_completion );
}
combofix = gsb_form_widget_get_widget ( TRANSACTION_FORM_CATEGORY );
@@ -609,8 +609,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (combofix),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (combofix),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (combofix),
+ //~ etat.combofix_enter_select_completion );
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (combofix),
etat.combofix_mixed_sort );
}
@@ -624,8 +624,8 @@
etat.combofix_max_item );
gtk_combofix_set_case_sensitive ( GTK_COMBOFIX (combofix),
etat.combofix_case_sensitive );
- gtk_combofix_set_enter_function ( GTK_COMBOFIX (combofix),
- etat.combofix_enter_select_completion );
+ //~ gtk_combofix_set_enter_function ( GTK_COMBOFIX (combofix),
+ //~ etat.combofix_enter_select_completion );
gtk_combofix_set_mixed_sort ( GTK_COMBOFIX (combofix),
etat.combofix_mixed_sort );
}
Index: gsb_transactions_list.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_transactions_list.c,v
retrieving revision 1.204
retrieving revision 1.205
diff -u -d -r1.204 -r1.205
--- gsb_transactions_list.c 23 Mar 2010 22:15:21 -0000 1.204
+++ gsb_transactions_list.c 3 Apr 2010 19:57:41 -0000 1.205
@@ -405,8 +405,13 @@
alignment[i] );
/* automatic and resizeable sizing */
- gtk_tree_view_column_set_sizing ( transactions_tree_view_columns[i],
+ if ( i == column_balance )
+ gtk_tree_view_column_set_sizing ( transactions_tree_view_columns[i],
+ GTK_TREE_VIEW_COLUMN_AUTOSIZE );
+ else
+ gtk_tree_view_column_set_sizing ( transactions_tree_view_columns[i],
GTK_TREE_VIEW_COLUMN_FIXED );
+
gtk_tree_view_column_set_resizable ( transactions_tree_view_columns[i],
TRUE );
}
Index: gsb_form.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form.c,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -d -r1.155 -r1.156
--- gsb_form.c 28 Mar 2010 14:40:29 -0000 1.155
+++ gsb_form.c 3 Apr 2010 19:57:41 -0000 1.156
@@ -1500,7 +1500,7 @@
GtkWidget *widget;
gint account_number;
gint transaction_number;
- gint payement_number;
+ gint payment_number;
/* still not found, if change the content of the form, something come in entry
* wich is nothing, so protect here */
@@ -1604,15 +1604,15 @@
if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_DEBIT )
{
if ( transaction_number == -1 )
- payement_number = gsb_form_widget_get_old_credit_payement ( );
+ payment_number = gsb_form_widget_get_old_credit_payment ( );
else
- payement_number = gsb_data_transaction_get_method_of_payment_number (
+ payment_number = gsb_data_transaction_get_method_of_payment_number (
transaction_number );
gsb_payment_method_create_combo_list ( widget,
GSB_PAYMENT_CREDIT,
account_number, 0 );
- gsb_payment_method_set_payment_position ( widget, payement_number );
+ gsb_payment_method_set_payment_position ( widget, payment_number );
/* if there is no payment method, the last function hide it, but we have
* to hide the cheque element too */
@@ -1694,15 +1694,15 @@
if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_CREDIT )
{
if ( transaction_number == -1 )
- payement_number = gsb_form_widget_get_old_debit_payement ( );
+ payment_number = gsb_form_widget_get_old_debit_payment ( );
else
- payement_number = gsb_data_transaction_get_method_of_payment_number (
+ payment_number = gsb_data_transaction_get_method_of_payment_number (
transaction_number );
gsb_payment_method_create_combo_list ( widget,
GSB_PAYMENT_DEBIT,
account_number, 0 );
- gsb_payment_method_set_payment_position ( widget, payement_number );
+ gsb_payment_method_set_payment_position ( widget, payment_number );
/* if there is no payment method, the last function hide it, but we have
* to hide the cheque element too */
@@ -2181,8 +2181,12 @@
}
else
{
- gsb_form_finish_edition();
- return TRUE;
+ widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_PARTY );
+
+ gsb_form_transaction_complete_form_by_payee ( gtk_combofix_get_text (
+ GTK_COMBOFIX ( widget_prov ) ) );
+ gsb_form_finish_edition();
+ return TRUE;
}
break;
@@ -2709,11 +2713,32 @@
return (FALSE);
}
+ /* check if it's a daughter split */
+ mother_number = gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction);
+
+ /* check if debit or credit is > 0 */
+ widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
+
+ if ( widget && mother_number )
+ {
+ if ( gsb_form_widget_check_empty ( widget ) == TRUE
+ ||
+ utils_str_atoi ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) ) == 0 )
+ {
+ widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
+
+ if ( gsb_form_widget_check_empty ( widget ) == TRUE
+ ||
+ utils_str_atoi ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) ) == 0 )
+ dialogue_error ( _("You must enter an amount.") );
+
+ return (FALSE);
+ }
+ }
+
/* now work with the categories */
widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY);
- mother_number = gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction);
-
/* check if it's a daughter split that the category is not a split of transaction */
if ( widget
&&
@@ -2724,7 +2749,8 @@
!strcmp ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
_("Split of transaction")))
{
- dialogue_error ( _("You cannot set split of transaction in category for a daughter of a split of transaction.") );
+ dialogue_error ( _("You cannot set split of transaction in category for a daughter "
+ "of a split of transaction.") );
return (FALSE);
}
Index: utils_dates.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/utils_dates.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- utils_dates.h 9 Jan 2010 20:57:38 -0000 1.23
+++ utils_dates.h 3 Apr 2010 19:57:42 -0000 1.24
@@ -21,5 +21,6 @@
GDate *gsb_parse_date_string ( const gchar *date_string );
GDate *gsb_parse_date_string_safe ( const gchar *date_string );
GDate *gsb_date_get_last_day_of_month ( const GDate *date );
+GDate *gsb_date_tomorrow ( void );
/* END_DECLARATION */
#endif
Index: gsb_form_widget.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_widget.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- gsb_form_widget.h 23 Mar 2010 22:15:21 -0000 1.8
+++ gsb_form_widget.h 3 Apr 2010 19:57:41 -0000 1.9
@@ -30,8 +30,8 @@
gchar *gsb_form_widget_get_name ( gint element_number );
gchar *gsb_form_widget_get_old_credit ( void );
gchar *gsb_form_widget_get_old_debit ( void );
-gint gsb_form_widget_get_old_credit_payement ( void );
-gint gsb_form_widget_get_old_debit_payement ( void );
+gint gsb_form_widget_get_old_credit_payment ( void );
+gint gsb_form_widget_get_old_debit_payment ( void );
GtkWidget *gsb_form_widget_get_widget ( gint element_number );
gint gsb_form_widget_next_element ( gint account_number,
gint element_number,
- Previous message: [grisbi-cvs] grisbi/po cs.po, 1.104, 1.105 da.po, 1.110, 1.111 de.po, 1.184, 1.185 el.po, 1.74, 1.75 eo.po, 1.67, 1.68 es.po, 1.184, 1.185 fa.po, 1.97, 1.98 fr.po, 1.243, 1.244 grisbi.pot, 1.145, 1.146 he.po, 1.103, 1.104 it.po, 1.103, 1.104 nl.po, 1.102, 1.103 pl.po, 1.108, 1.109 pt_BR.po, 1.105, 1.106 ro.po, 1.104, 1.105 ru.po, 1.102, 1.103 zh_CN.po, 1.98, 1.99
- Next message: [grisbi-cvs] grisbi/src balance_estimate_data.c, 1.18, 1.19 balance_estimate_data.h, 1.12, 1.13 balance_estimate_tab.c, 1.59, 1.60
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the cvs
mailing list