mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
* src/gnome/dialog-tax-info.c: more work
* src/guile/gnc.gwp: wrap more of pricedb api * src/engine/gnc-pricedb.c (gnc_pricedb_get_prices): new func git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3849 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
6cc1792964
commit
3ab1dc57d0
@ -1,3 +1,11 @@
|
|||||||
|
2001-03-28 Dave Peticolas <dave@krondo.com>
|
||||||
|
|
||||||
|
* src/gnome/dialog-tax-info.c: more work
|
||||||
|
|
||||||
|
* src/guile/gnc.gwp: wrap more of pricedb api
|
||||||
|
|
||||||
|
* src/engine/gnc-pricedb.c (gnc_pricedb_get_prices): new func
|
||||||
|
|
||||||
2001-03-28 Bill Gribble <grib@billgribble.com>
|
2001-03-28 Bill Gribble <grib@billgribble.com>
|
||||||
|
|
||||||
* src/gnome/dialog-column-view.c: set the view dirty on edit
|
* src/gnome/dialog-column-view.c: set the view dirty on edit
|
||||||
|
@ -448,6 +448,31 @@ gnc_pricedb_lookup_latest(GNCPriceDB *db,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GList *
|
||||||
|
gnc_pricedb_get_prices(GNCPriceDB *db,
|
||||||
|
gnc_commodity *commodity,
|
||||||
|
gnc_commodity *currency)
|
||||||
|
{
|
||||||
|
GList *price_list;
|
||||||
|
GList *result;
|
||||||
|
GList *node;
|
||||||
|
GHashTable *currency_hash;
|
||||||
|
|
||||||
|
if(!db || !commodity || !currency) return NULL;
|
||||||
|
|
||||||
|
currency_hash = g_hash_table_lookup(db->commodity_hash, commodity);
|
||||||
|
if(!currency_hash) return NULL;
|
||||||
|
|
||||||
|
price_list = g_hash_table_lookup(currency_hash, currency);
|
||||||
|
if(!price_list) return NULL;
|
||||||
|
|
||||||
|
result = g_list_copy (price_list);
|
||||||
|
for (node = result; node; node = node->next)
|
||||||
|
gnc_price_ref (node->data);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
GList *
|
GList *
|
||||||
gnc_pricedb_lookup_at_time(GNCPriceDB *db,
|
gnc_pricedb_lookup_at_time(GNCPriceDB *db,
|
||||||
gnc_commodity *c,
|
gnc_commodity *c,
|
||||||
@ -690,7 +715,7 @@ gnc_pricedb_substitute_commodity(GNCPriceDB *db,
|
|||||||
|
|
||||||
/* Semi-lame debugging code */
|
/* Semi-lame debugging code */
|
||||||
|
|
||||||
static void
|
void
|
||||||
gnc_price_print(GNCPrice *p, FILE *f, int indent)
|
gnc_price_print(GNCPrice *p, FILE *f, int indent)
|
||||||
{
|
{
|
||||||
gnc_commodity *commodity;
|
gnc_commodity *commodity;
|
||||||
@ -728,7 +753,7 @@ gnc_price_print(GNCPrice *p, FILE *f, int indent)
|
|||||||
g_free(istr);
|
g_free(istr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
gnc_price_print_stdout(GNCPrice *p, int indent)
|
gnc_price_print_stdout(GNCPrice *p, int indent)
|
||||||
{
|
{
|
||||||
gnc_price_print(p, stdout, indent);
|
gnc_price_print(p, stdout, indent);
|
||||||
@ -752,5 +777,3 @@ gnc_pricedb_print_contents(GNCPriceDB *db, FILE *f)
|
|||||||
gnc_pricedb_foreach_price(db, print_pricedb_adapter, f, FALSE);
|
gnc_pricedb_foreach_price(db, print_pricedb_adapter, f, FALSE);
|
||||||
fprintf(f, "</gnc:pricedb>\n");
|
fprintf(f, "</gnc:pricedb>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,6 +141,10 @@ GNCPrice * gnc_pricedb_lookup_latest(GNCPriceDB *db,
|
|||||||
gnc_commodity *commodity,
|
gnc_commodity *commodity,
|
||||||
gnc_commodity *currency);
|
gnc_commodity *currency);
|
||||||
|
|
||||||
|
GList * gnc_pricedb_get_prices(GNCPriceDB *db,
|
||||||
|
gnc_commodity *commodity,
|
||||||
|
gnc_commodity *currency);
|
||||||
|
|
||||||
/* Return all prices that match the given commodity, currency, and
|
/* Return all prices that match the given commodity, currency, and
|
||||||
timespec. Prices will be returned as a price_list (see above) */
|
timespec. Prices will be returned as a price_list (see above) */
|
||||||
GList * gnc_pricedb_lookup_at_time(GNCPriceDB *db,
|
GList * gnc_pricedb_lookup_at_time(GNCPriceDB *db,
|
||||||
|
@ -216,7 +216,7 @@ load_txf_info (gboolean income)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static GList *
|
static GList *
|
||||||
gnc_tax_info_current_codes (TaxInfoDialog *ti_dialog)
|
tax_infos (TaxInfoDialog *ti_dialog)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
ti_dialog->income ?
|
ti_dialog->income ?
|
||||||
@ -233,7 +233,7 @@ load_category_list (TaxInfoDialog *ti_dialog)
|
|||||||
gtk_clist_freeze (clist);
|
gtk_clist_freeze (clist);
|
||||||
gtk_clist_clear (clist);
|
gtk_clist_clear (clist);
|
||||||
|
|
||||||
codes = gnc_tax_info_current_codes (ti_dialog);
|
codes = tax_infos (ti_dialog);
|
||||||
|
|
||||||
for ( ; codes; codes = codes->next)
|
for ( ; codes; codes = codes->next)
|
||||||
{
|
{
|
||||||
@ -259,10 +259,28 @@ clear_gui (TaxInfoDialog *ti_dialog)
|
|||||||
(GTK_TOGGLE_BUTTON (ti_dialog->current_account_button), TRUE);
|
(GTK_TOGGLE_BUTTON (ti_dialog->current_account_button), TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static TXFInfo *
|
||||||
|
txf_infos_find_code (GList *infos, const char *code)
|
||||||
|
{
|
||||||
|
for (; infos; infos = infos->next)
|
||||||
|
{
|
||||||
|
TXFInfo *info = infos->data;
|
||||||
|
|
||||||
|
if (safe_strcmp (code, info->code) == 0)
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
account_to_gui (TaxInfoDialog *ti_dialog, Account *account)
|
account_to_gui (TaxInfoDialog *ti_dialog, Account *account)
|
||||||
{
|
{
|
||||||
gboolean tax_related;
|
gboolean tax_related;
|
||||||
|
const char *str;
|
||||||
|
TXFInfo *info;
|
||||||
|
GList *infos;
|
||||||
|
gint index;
|
||||||
|
|
||||||
if (!account)
|
if (!account)
|
||||||
{
|
{
|
||||||
@ -273,6 +291,78 @@ account_to_gui (TaxInfoDialog *ti_dialog, Account *account)
|
|||||||
tax_related = xaccAccountGetTaxRelated (account);
|
tax_related = xaccAccountGetTaxRelated (account);
|
||||||
gtk_toggle_button_set_active
|
gtk_toggle_button_set_active
|
||||||
(GTK_TOGGLE_BUTTON (ti_dialog->tax_related_button), tax_related);
|
(GTK_TOGGLE_BUTTON (ti_dialog->tax_related_button), tax_related);
|
||||||
|
|
||||||
|
infos = tax_infos (ti_dialog);
|
||||||
|
|
||||||
|
str = xaccAccountGetTaxUSCode (account);
|
||||||
|
info = txf_infos_find_code (infos, str);
|
||||||
|
if (info)
|
||||||
|
index = g_list_index (infos, info);
|
||||||
|
else
|
||||||
|
index = 0;
|
||||||
|
if (index < 0)
|
||||||
|
index = 0;
|
||||||
|
|
||||||
|
gtk_clist_select_row (GTK_CLIST (ti_dialog->txf_category_clist), index, 0);
|
||||||
|
|
||||||
|
str = xaccAccountGetTaxUSPayerNameSource (account);
|
||||||
|
if (safe_strcmp (str, "parent") == 0)
|
||||||
|
gtk_toggle_button_set_active
|
||||||
|
(GTK_TOGGLE_BUTTON (ti_dialog->parent_account_button), TRUE);
|
||||||
|
else
|
||||||
|
gtk_toggle_button_set_active
|
||||||
|
(GTK_TOGGLE_BUTTON (ti_dialog->current_account_button), TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gui_to_accounts (TaxInfoDialog *ti_dialog)
|
||||||
|
{
|
||||||
|
gboolean tax_related;
|
||||||
|
const char *code;
|
||||||
|
const char *pns;
|
||||||
|
GList *accounts;
|
||||||
|
TXFInfo *info;
|
||||||
|
GList *infos;
|
||||||
|
GList *node;
|
||||||
|
|
||||||
|
tax_related = gtk_toggle_button_get_active
|
||||||
|
(GTK_TOGGLE_BUTTON (ti_dialog->tax_related_button));
|
||||||
|
|
||||||
|
infos = tax_infos (ti_dialog);
|
||||||
|
|
||||||
|
info = g_list_nth_data
|
||||||
|
(infos, GTK_CLIST (ti_dialog->txf_category_clist)->focus_row);
|
||||||
|
g_return_if_fail (info != NULL);
|
||||||
|
|
||||||
|
code = tax_related ? info->code : NULL;
|
||||||
|
|
||||||
|
if (tax_related && info->payer_name_source)
|
||||||
|
{
|
||||||
|
gboolean current;
|
||||||
|
|
||||||
|
current = gtk_toggle_button_get_active
|
||||||
|
(GTK_TOGGLE_BUTTON (ti_dialog->current_account_button));
|
||||||
|
|
||||||
|
pns = current ? "current" : "parent";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pns = NULL;
|
||||||
|
|
||||||
|
accounts = gnc_account_tree_get_current_accounts
|
||||||
|
(GNC_ACCOUNT_TREE (ti_dialog->account_tree));
|
||||||
|
|
||||||
|
for (node = accounts; node; node = node->next)
|
||||||
|
{
|
||||||
|
Account *account = node->data;
|
||||||
|
|
||||||
|
xaccAccountBeginEdit (account);
|
||||||
|
|
||||||
|
xaccAccountSetTaxRelated (account, tax_related);
|
||||||
|
xaccAccountSetTaxUSCode (account, code);
|
||||||
|
xaccAccountSetTaxUSPayerNameSource (account, pns);
|
||||||
|
|
||||||
|
xaccAccountCommitEdit (account);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -314,6 +404,9 @@ tax_info_ok_clicked (GtkWidget *widget, gpointer data)
|
|||||||
{
|
{
|
||||||
TaxInfoDialog *ti_dialog = data;
|
TaxInfoDialog *ti_dialog = data;
|
||||||
|
|
||||||
|
if (ti_dialog->changed)
|
||||||
|
gui_to_accounts (ti_dialog);
|
||||||
|
|
||||||
gnc_close_gui_component_by_data (DIALOG_TAX_INFO_CM_CLASS, ti_dialog);
|
gnc_close_gui_component_by_data (DIALOG_TAX_INFO_CM_CLASS, ti_dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,7 +415,8 @@ tax_info_apply_clicked (GtkWidget *widget, gpointer data)
|
|||||||
{
|
{
|
||||||
TaxInfoDialog *ti_dialog = data;
|
TaxInfoDialog *ti_dialog = data;
|
||||||
|
|
||||||
return;
|
gui_to_accounts (ti_dialog);
|
||||||
|
gnc_tax_info_set_changed (ti_dialog, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -409,9 +503,13 @@ gnc_tax_info_select_account_cb (GNCAccountTree *tree,
|
|||||||
TaxInfoDialog *ti_dialog = data;
|
TaxInfoDialog *ti_dialog = data;
|
||||||
|
|
||||||
if (gnc_tax_info_update_accounts (ti_dialog) != 1)
|
if (gnc_tax_info_update_accounts (ti_dialog) != 1)
|
||||||
|
{
|
||||||
|
gnc_tax_info_set_changed (ti_dialog, TRUE);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
account_to_gui (ti_dialog, account);
|
account_to_gui (ti_dialog, account);
|
||||||
|
gnc_tax_info_set_changed (ti_dialog, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -423,7 +521,11 @@ gnc_tax_info_unselect_account_cb (GNCAccountTree *tree,
|
|||||||
|
|
||||||
accounts = gnc_account_tree_get_current_accounts (tree);
|
accounts = gnc_account_tree_get_current_accounts (tree);
|
||||||
|
|
||||||
gnc_tax_info_update_accounts (ti_dialog);
|
if (gnc_tax_info_update_accounts (ti_dialog) != 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
clear_gui (ti_dialog);
|
||||||
|
gnc_tax_info_set_changed (ti_dialog, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -440,7 +542,7 @@ txf_code_select_row_cb (GtkCList *clist,
|
|||||||
const char *text;
|
const char *text;
|
||||||
gint pos = 0;
|
gint pos = 0;
|
||||||
|
|
||||||
txf_info = g_list_nth_data (gnc_tax_info_current_codes (ti_dialog), row);
|
txf_info = g_list_nth_data (tax_infos (ti_dialog), row);
|
||||||
|
|
||||||
ge = GTK_EDITABLE (ti_dialog->txf_help_text);
|
ge = GTK_EDITABLE (ti_dialog->txf_help_text);
|
||||||
|
|
||||||
@ -618,8 +720,8 @@ gnc_tax_info_dialog_create (GtkWidget * parent, TaxInfoDialog *ti_dialog)
|
|||||||
}
|
}
|
||||||
|
|
||||||
gnc_tax_info_update_accounts (ti_dialog);
|
gnc_tax_info_update_accounts (ti_dialog);
|
||||||
gnc_tax_info_set_changed (ti_dialog, FALSE);
|
|
||||||
clear_gui (ti_dialog);
|
clear_gui (ti_dialog);
|
||||||
|
gnc_tax_info_set_changed (ti_dialog, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -5964,7 +5964,7 @@ create_Tax_Information_Dialog (void)
|
|||||||
gtk_widget_show (apply_button);
|
gtk_widget_show (apply_button);
|
||||||
GTK_WIDGET_SET_FLAGS (apply_button, GTK_CAN_DEFAULT);
|
GTK_WIDGET_SET_FLAGS (apply_button, GTK_CAN_DEFAULT);
|
||||||
|
|
||||||
gnome_dialog_append_button (GNOME_DIALOG (Tax_Information_Dialog), GNOME_STOCK_BUTTON_CANCEL);
|
gnome_dialog_append_button (GNOME_DIALOG (Tax_Information_Dialog), GNOME_STOCK_BUTTON_CLOSE);
|
||||||
button75 = GTK_WIDGET (g_list_last (GNOME_DIALOG (Tax_Information_Dialog)->buttons)->data);
|
button75 = GTK_WIDGET (g_list_last (GNOME_DIALOG (Tax_Information_Dialog)->buttons)->data);
|
||||||
gtk_widget_ref (button75);
|
gtk_widget_ref (button75);
|
||||||
gtk_object_set_data_full (GTK_OBJECT (Tax_Information_Dialog), "button75", button75,
|
gtk_object_set_data_full (GTK_OBJECT (Tax_Information_Dialog), "button75", button75,
|
||||||
@ -6821,6 +6821,7 @@ create_Edit_Column_View_Page (void)
|
|||||||
gtk_widget_show (available_list);
|
gtk_widget_show (available_list);
|
||||||
gtk_container_add (GTK_CONTAINER (scrolledwindow26), available_list);
|
gtk_container_add (GTK_CONTAINER (scrolledwindow26), available_list);
|
||||||
gtk_clist_set_column_width (GTK_CLIST (available_list), 0, 80);
|
gtk_clist_set_column_width (GTK_CLIST (available_list), 0, 80);
|
||||||
|
gtk_clist_set_selection_mode (GTK_CLIST (available_list), GTK_SELECTION_BROWSE);
|
||||||
gtk_clist_column_titles_show (GTK_CLIST (available_list));
|
gtk_clist_column_titles_show (GTK_CLIST (available_list));
|
||||||
|
|
||||||
label847720 = gtk_label_new (_("Available reports"));
|
label847720 = gtk_label_new (_("Available reports"));
|
||||||
@ -6917,6 +6918,7 @@ create_Edit_Column_View_Page (void)
|
|||||||
gtk_clist_set_column_width (GTK_CLIST (contents_list), 0, 150);
|
gtk_clist_set_column_width (GTK_CLIST (contents_list), 0, 150);
|
||||||
gtk_clist_set_column_width (GTK_CLIST (contents_list), 1, 34);
|
gtk_clist_set_column_width (GTK_CLIST (contents_list), 1, 34);
|
||||||
gtk_clist_set_column_width (GTK_CLIST (contents_list), 2, 25);
|
gtk_clist_set_column_width (GTK_CLIST (contents_list), 2, 25);
|
||||||
|
gtk_clist_set_selection_mode (GTK_CLIST (contents_list), GTK_SELECTION_BROWSE);
|
||||||
gtk_clist_column_titles_show (GTK_CLIST (contents_list));
|
gtk_clist_column_titles_show (GTK_CLIST (contents_list));
|
||||||
|
|
||||||
label847725 = gtk_label_new (_("Report"));
|
label847725 = gtk_label_new (_("Report"));
|
||||||
|
@ -8492,7 +8492,7 @@ words.
|
|||||||
<name>button75</name>
|
<name>button75</name>
|
||||||
<can_default>True</can_default>
|
<can_default>True</can_default>
|
||||||
<can_focus>True</can_focus>
|
<can_focus>True</can_focus>
|
||||||
<stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
|
<stock_button>GNOME_STOCK_BUTTON_CLOSE</stock_button>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
||||||
@ -10054,7 +10054,7 @@ quit without making any changes.</text>
|
|||||||
<can_focus>True</can_focus>
|
<can_focus>True</can_focus>
|
||||||
<columns>1</columns>
|
<columns>1</columns>
|
||||||
<column_widths>80</column_widths>
|
<column_widths>80</column_widths>
|
||||||
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
|
<selection_mode>GTK_SELECTION_BROWSE</selection_mode>
|
||||||
<show_titles>True</show_titles>
|
<show_titles>True</show_titles>
|
||||||
<shadow_type>GTK_SHADOW_IN</shadow_type>
|
<shadow_type>GTK_SHADOW_IN</shadow_type>
|
||||||
|
|
||||||
@ -10267,7 +10267,7 @@ quit without making any changes.</text>
|
|||||||
<can_focus>True</can_focus>
|
<can_focus>True</can_focus>
|
||||||
<columns>3</columns>
|
<columns>3</columns>
|
||||||
<column_widths>150,34,25</column_widths>
|
<column_widths>150,34,25</column_widths>
|
||||||
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
|
<selection_mode>GTK_SELECTION_BROWSE</selection_mode>
|
||||||
<show_titles>True</show_titles>
|
<show_titles>True</show_titles>
|
||||||
<shadow_type>GTK_SHADOW_IN</shadow_type>
|
<shadow_type>GTK_SHADOW_IN</shadow_type>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user