mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Merge branch 'maint'
This commit is contained in:
commit
c9f8137ca2
@ -168,8 +168,8 @@ gnc_ui_select_commodity_modal_full(gnc_commodity * orig_sel,
|
||||
fullname ? fullname : "",
|
||||
/* Translators: Replace here and later CUSIP by the name of your local
|
||||
National Securities Identifying Number
|
||||
like gb:SEDOL, de:WKN, ch:Valorennummer, fr:SICOVAM …
|
||||
See http://en.wikipedia.org/wiki/ISIN and
|
||||
like gb:SEDOL, de:WKN, ch:Valorennummer, fr:SICOVAM ...
|
||||
See https://en.wikipedia.org/wiki/ISIN and
|
||||
https://en.wikipedia.org/wiki/National_numbering_agency for hints. */
|
||||
cusip ? _("\nExchange code (ISIN, CUSIP or similar): ") : "",
|
||||
cusip ? cusip : "",
|
||||
|
@ -602,7 +602,9 @@ static void
|
||||
add_error (StringVec& errors, const char* format_str, const char* arg)
|
||||
{
|
||||
gchar *buf = g_strdup_printf (_(format_str),
|
||||
g_dpgettext2 (nullptr, "Stock Assistant: Page name", arg));
|
||||
g_strcmp0("Cash", arg) ?
|
||||
_(arg) :
|
||||
g_dpgettext2 (nullptr, "Stock Assistant", arg));
|
||||
errors.emplace_back (buf);
|
||||
g_free (buf);
|
||||
}
|
||||
@ -757,7 +759,9 @@ to ensure proper recording."), new_date_str, last_split_date_str);
|
||||
else
|
||||
check_page (line, debit, credit, info->txn_type->stock_value, info->acct,
|
||||
info->stock_memo_edit, info->stock_value_edit, info->currency,
|
||||
NC_ ("Stock Assistant: Page name", "stock value"), errors);
|
||||
// Translators: Designates the page in the Stock Assistant for entering
|
||||
// the currency value of a non-currency asset.
|
||||
N_ ("Stock Value"), errors);
|
||||
|
||||
|
||||
if (info->txn_type->stock_amount == FieldMask::DISABLED)
|
||||
@ -827,7 +831,9 @@ to ensure proper recording."), new_date_str, last_split_date_str);
|
||||
check_page (line, debit, credit, info->txn_type->cash_value,
|
||||
gas_account (info->cash_account), info->cash_memo_edit,
|
||||
info->cash_value, info->currency,
|
||||
NC_ ("Stock Assistant: Page name", "cash"), errors);
|
||||
// Translators: Designates a page in the stock assistant or inserts the value
|
||||
// into the non-currency asset split of an investment transaction.
|
||||
NC_ ("Stock Assistant", "Cash"), errors);
|
||||
add_to_summary_table (list, line);
|
||||
}
|
||||
|
||||
@ -838,7 +844,9 @@ to ensure proper recording."), new_date_str, last_split_date_str);
|
||||
check_page (line, debit, credit, info->txn_type->fees_value,
|
||||
capitalize_fees ? info->acct : gas_account (info->fees_account),
|
||||
info->fees_memo_edit, info->fees_value, info->currency,
|
||||
NC_ ("Stock Assistant: Page name", "fees"), errors);
|
||||
// Translators: Designates a page in the stock assistant or inserts the value
|
||||
// into the fees split of an investment transaction.
|
||||
N_ ("Fees"), errors);
|
||||
if (!line.value_is_zero)
|
||||
add_to_summary_table (list, line);
|
||||
}
|
||||
@ -848,7 +856,9 @@ to ensure proper recording."), new_date_str, last_split_date_str);
|
||||
check_page (line, debit, credit, info->txn_type->dividend_value,
|
||||
gas_account (info->dividend_account),
|
||||
info->dividend_memo_edit, info->dividend_value, info->currency,
|
||||
NC_ ("Stock Assistant: Page name", "dividend"), errors);
|
||||
// Translators: Designates a page in the stock assistant or inserts the value
|
||||
// into the income split of an investment dividend transaction.
|
||||
N_ ("Dividend"), errors);
|
||||
add_to_summary_table (list, line);
|
||||
}
|
||||
|
||||
@ -861,14 +871,16 @@ to ensure proper recording."), new_date_str, last_split_date_str);
|
||||
check_page (line, debit, credit, info->txn_type->capgains_value,
|
||||
gas_account (info->capgains_account),
|
||||
info->capgains_memo_edit, info->capgains_value, info->currency,
|
||||
NC_ ("Stock Assistant: Page name", "capital gains"), errors);
|
||||
// Translators: Designates a page in the stock assistant or inserts the value
|
||||
// into the capital gain/loss income split of an investment transaction.
|
||||
N_ ("Capital Gain"), errors);
|
||||
add_to_summary_table (list, line);
|
||||
|
||||
check_page (line, debit, credit,
|
||||
info->txn_type->capgains_value ^ (FieldMask::ENABLED_CREDIT | FieldMask::ENABLED_DEBIT),
|
||||
info->acct, info->capgains_memo_edit, info->capgains_value,
|
||||
info->currency,
|
||||
NC_ ("Stock Assistant: Page name", "capital gains"), errors);
|
||||
N_ ("Capital Gain"), errors);
|
||||
add_to_summary_table (list, line);
|
||||
}
|
||||
|
||||
@ -1024,8 +1036,10 @@ create_split (Transaction *trans, const gchar *action, Account *account,
|
||||
gnc_num_dbg_to_string (amount_numeric),
|
||||
gnc_num_dbg_to_string (xaccSplitGetValue (split)),
|
||||
gnc_num_dbg_to_string (xaccSplitGetAmount (split)));
|
||||
gnc_set_num_action (nullptr, split,
|
||||
nullptr, g_dpgettext2 (nullptr, "Stock Assistant: Action field", action));
|
||||
auto action_str{ g_strcmp0(action, "Cash") ?
|
||||
_(action) :
|
||||
g_dpgettext2 (nullptr, "Stock Assistant: Action field", action)};
|
||||
gnc_set_num_action (nullptr, split, nullptr, action_str);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1094,7 +1108,9 @@ stock_assistant_finish (GtkAssistant *assistant, gpointer user_data)
|
||||
stock_value = gnc_numeric_neg (stock_value);
|
||||
}
|
||||
|
||||
create_split (trans, NC_ ("Stock Assistant: Action field", "Stock"),
|
||||
// Translators: Inserts the value into action field of the non-currency asset split of
|
||||
// an investment transaction.
|
||||
create_split (trans, N_ ("Stock"),
|
||||
info->acct, account_commits, info->stock_memo_edit,
|
||||
stock_amount, stock_value);
|
||||
|
||||
@ -1104,7 +1120,7 @@ stock_assistant_finish (GtkAssistant *assistant, gpointer user_data)
|
||||
if (info->txn_type->cash_value & FieldMask::ENABLED_CREDIT)
|
||||
cash = gnc_numeric_neg (cash);
|
||||
|
||||
create_split (trans, NC_ ("Stock Assistant: Action field", "Cash"),
|
||||
create_split (trans, NC_ ("Stock Assistant:", "Cash"),
|
||||
gas_account (info->cash_account), account_commits,
|
||||
info->cash_memo_edit, cash, cash);
|
||||
}
|
||||
@ -1117,7 +1133,7 @@ stock_assistant_finish (GtkAssistant *assistant, gpointer user_data)
|
||||
auto capitalize = gtk_toggle_button_get_active
|
||||
(GTK_TOGGLE_BUTTON (info->capitalize_fees_checkbox));
|
||||
|
||||
create_split (trans, NC_ ("Stock Assistant: Action field", "Fees"),
|
||||
create_split (trans, N_ ("Fees"),
|
||||
capitalize ? info->acct : gas_account (info->fees_account),
|
||||
account_commits, info->fees_memo_edit,
|
||||
capitalize ? gnc_numeric_zero () : fees, fees);
|
||||
@ -1130,7 +1146,7 @@ stock_assistant_finish (GtkAssistant *assistant, gpointer user_data)
|
||||
if (info->txn_type->dividend_value & FieldMask::ENABLED_CREDIT)
|
||||
dividend = gnc_numeric_neg (dividend);
|
||||
|
||||
create_split (trans, NC_ ("Stock Assistant: Action field", "Dividend"),
|
||||
create_split (trans, N_ ("Dividend"),
|
||||
gas_account (info->dividend_account), account_commits,
|
||||
info->dividend_memo_edit, dividend, dividend);
|
||||
}
|
||||
@ -1138,12 +1154,12 @@ stock_assistant_finish (GtkAssistant *assistant, gpointer user_data)
|
||||
if (info->txn_type->capgains_value != FieldMask::DISABLED)
|
||||
{
|
||||
auto capgains = gae_amount (info->capgains_value);
|
||||
create_split (trans, NC_ ("Stock Assistant: Action field", "Capital Gain"),
|
||||
create_split (trans, N_ ("Capital Gain"),
|
||||
info->acct, account_commits, info->capgains_memo_edit,
|
||||
gnc_numeric_zero (), capgains);
|
||||
|
||||
capgains = gnc_numeric_neg (capgains);
|
||||
create_split (trans, NC_ ("Stock Assistant: Action field", "Capital Gain"),
|
||||
create_split (trans, N_ ("Capital Gain"),
|
||||
gas_account (info->capgains_account), account_commits,
|
||||
info->capgains_memo_edit, capgains, capgains);
|
||||
}
|
||||
|
@ -238,11 +238,16 @@ setup_location_dialog (GtkBuilder *builder, GtkWidget *button_loc, const gchar *
|
||||
// update label and set entry text if required
|
||||
if (uri)
|
||||
{
|
||||
gtk_label_set_text (location_label, _("Amend URL:"));
|
||||
gtk_label_set_text (location_label, _("Amend the URL"));
|
||||
gtk_entry_set_text (entry, uri);
|
||||
}
|
||||
else
|
||||
gtk_label_set_text (location_label, _("Enter URL like http://www.gnucash.org:"));
|
||||
{
|
||||
gchar *enter_uri = g_strdup_printf (_("Enter an URL like \"%s\""),
|
||||
PACKAGE_URL);
|
||||
gtk_label_set_text (location_label, enter_uri);
|
||||
g_free (enter_uri);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@ -256,7 +261,7 @@ setup_file_dialog (GtkBuilder *builder, const gchar *path_head, const gchar *uri
|
||||
GtkWidget *existing_hbox = GTK_WIDGET(gtk_builder_get_object (builder, "existing_hbox"));
|
||||
GtkWidget *image = gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gchar *use_uri = gnc_doclink_get_use_uri (path_head, uri, scheme);
|
||||
gchar *uri_label = g_strdup_printf ("%s '%s'", _("Existing Document Link is"), display_uri);
|
||||
gchar *uri_label = g_strdup_printf ("%s \"%s\"", _("Existing Document Link is"), display_uri);
|
||||
GtkWidget *label = gtk_label_new (uri_label);
|
||||
|
||||
if (g_file_test (display_uri, G_FILE_TEST_EXISTS))
|
||||
|
@ -1624,7 +1624,8 @@ static Split *select_payment_split (GtkWindow *parent, Transaction *txn)
|
||||
GList *node;
|
||||
GtkWidget *first_rb = NULL;
|
||||
int answer = GTK_BUTTONS_OK;
|
||||
const char *message = _("While this transaction has multiple splits that can be considered\nas 'the payment split', GnuCash only knows how to handle one.\n"
|
||||
const char *message = _("While this transaction has multiple splits that can be considered\n"
|
||||
"as 'the payment split', GnuCash only knows how to handle one.\n"
|
||||
"Please select one, the others will be discarded.\n\n");
|
||||
GtkDialog *dialog = GTK_DIALOG(
|
||||
gtk_dialog_new_with_buttons (_("Warning"),
|
||||
|
@ -1956,17 +1956,15 @@ gnc_plugin_page_register_check_for_empty_group (GKeyFile *state_file,
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gnc_plugin_page_register_get_filter_gcm (Account* leader)
|
||||
gnc_plugin_page_register_get_filter_gcm (GNCSplitReg *gsr)
|
||||
{
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar* state_section;
|
||||
gchar acct_guid[GUID_ENCODING_LENGTH + 1];
|
||||
GError* error = NULL;
|
||||
char* filter = NULL;
|
||||
|
||||
// get the filter from the .gcm file
|
||||
guid_to_string_buff (xaccAccountGetGUID (leader), acct_guid);
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", acct_guid, NULL);
|
||||
state_section = gsr_get_register_state_section (gsr);
|
||||
filter = g_key_file_get_string (state_file, state_section,
|
||||
KEY_PAGE_FILTER, &error);
|
||||
|
||||
@ -1984,7 +1982,6 @@ gnc_plugin_page_register_get_filter (GncPluginPage* plugin_page)
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
GNCLedgerDisplayType ledger_type;
|
||||
Account* leader;
|
||||
char* filter = NULL;
|
||||
|
||||
g_return_val_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page),
|
||||
@ -1993,10 +1990,9 @@ gnc_plugin_page_register_get_filter (GncPluginPage* plugin_page)
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
|
||||
|
||||
ledger_type = gnc_ledger_display_type (priv->ledger);
|
||||
leader = gnc_ledger_display_leader (priv->ledger);
|
||||
|
||||
// load from gcm file
|
||||
filter = gnc_plugin_page_register_get_filter_gcm (leader);
|
||||
filter = gnc_plugin_page_register_get_filter_gcm (priv->gsr);
|
||||
|
||||
if (filter)
|
||||
return filter;
|
||||
@ -2006,17 +2002,15 @@ gnc_plugin_page_register_get_filter (GncPluginPage* plugin_page)
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_plugin_page_register_set_filter_gcm (Account* leader, const gchar* filter,
|
||||
gnc_plugin_page_register_set_filter_gcm (GNCSplitReg *gsr, const gchar* filter,
|
||||
gchar* default_filter)
|
||||
{
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar* state_section;
|
||||
gchar* filter_text;
|
||||
gchar acct_guid[GUID_ENCODING_LENGTH + 1];
|
||||
|
||||
// save the filter to the .gcm file also
|
||||
guid_to_string_buff (xaccAccountGetGUID (leader), acct_guid);
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", acct_guid, NULL);
|
||||
state_section = gsr_get_register_state_section (gsr);
|
||||
if (!filter || (g_strcmp0 (filter, default_filter) == 0))
|
||||
{
|
||||
if (g_key_file_has_key (state_file, state_section, KEY_PAGE_FILTER, NULL))
|
||||
@ -2041,37 +2035,33 @@ gnc_plugin_page_register_set_filter (GncPluginPage* plugin_page,
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
GNCLedgerDisplayType ledger_type;
|
||||
Account* leader;
|
||||
gchar* default_filter;
|
||||
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
|
||||
|
||||
ledger_type = gnc_ledger_display_type (priv->ledger);
|
||||
leader = gnc_ledger_display_leader (priv->ledger);
|
||||
|
||||
default_filter = g_strdup_printf ("%s,%s,%s,%s", DEFAULT_FILTER,
|
||||
"0", "0", get_filter_default_num_of_days (ledger_type));
|
||||
|
||||
// save to gcm file
|
||||
gnc_plugin_page_register_set_filter_gcm (leader, filter, default_filter);
|
||||
gnc_plugin_page_register_set_filter_gcm (priv->gsr, filter, default_filter);
|
||||
|
||||
g_free (default_filter);
|
||||
return;
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gnc_plugin_page_register_get_sort_order_gcm (Account* leader)
|
||||
gnc_plugin_page_register_get_sort_order_gcm (GNCSplitReg *gsr)
|
||||
{
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar* state_section;
|
||||
gchar* sort_text;
|
||||
gchar acct_guid[GUID_ENCODING_LENGTH + 1];
|
||||
GError* error = NULL;
|
||||
char* sort_order = NULL;
|
||||
|
||||
// get the sort_order from the .gcm file
|
||||
guid_to_string_buff (xaccAccountGetGUID (leader), acct_guid);
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", acct_guid, NULL);
|
||||
state_section = gsr_get_register_state_section (gsr);
|
||||
sort_text = g_key_file_get_string (state_file, state_section, KEY_PAGE_SORT,
|
||||
&error);
|
||||
|
||||
@ -2090,7 +2080,6 @@ static gchar*
|
||||
gnc_plugin_page_register_get_sort_order (GncPluginPage* plugin_page)
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
Account* leader;
|
||||
char* sort_order = NULL;
|
||||
|
||||
g_return_val_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page),
|
||||
@ -2098,26 +2087,21 @@ gnc_plugin_page_register_get_sort_order (GncPluginPage* plugin_page)
|
||||
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
|
||||
|
||||
leader = gnc_ledger_display_leader (priv->ledger);
|
||||
|
||||
// load from gcm file
|
||||
sort_order = gnc_plugin_page_register_get_sort_order_gcm (leader);
|
||||
|
||||
sort_order = gnc_plugin_page_register_get_sort_order_gcm (priv->gsr);
|
||||
|
||||
return sort_order ? sort_order : g_strdup (DEFAULT_SORT_ORDER);
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_plugin_page_register_set_sort_order_gcm (Account* leader,
|
||||
gnc_plugin_page_register_set_sort_order_gcm (GNCSplitReg *gsr,
|
||||
const gchar* sort_order)
|
||||
{
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar* state_section;
|
||||
gchar acct_guid[GUID_ENCODING_LENGTH + 1];
|
||||
|
||||
// save sort_order to the .gcm file also
|
||||
guid_to_string_buff (xaccAccountGetGUID (leader), acct_guid);
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", acct_guid, NULL);
|
||||
state_section = gsr_get_register_state_section (gsr);
|
||||
if (!sort_order || (g_strcmp0 (sort_order, DEFAULT_SORT_ORDER) == 0))
|
||||
{
|
||||
if (g_key_file_has_key (state_file, state_section, KEY_PAGE_SORT, NULL))
|
||||
@ -2135,28 +2119,23 @@ gnc_plugin_page_register_set_sort_order (GncPluginPage* plugin_page,
|
||||
const gchar* sort_order)
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
Account* leader;
|
||||
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
|
||||
|
||||
leader = gnc_ledger_display_leader (priv->ledger);
|
||||
|
||||
// save to gcm file
|
||||
gnc_plugin_page_register_set_sort_order_gcm (leader, sort_order);
|
||||
gnc_plugin_page_register_set_sort_order_gcm (priv->gsr, sort_order);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gnc_plugin_page_register_get_sort_reversed_gcm (Account* leader)
|
||||
gnc_plugin_page_register_get_sort_reversed_gcm (GNCSplitReg *gsr)
|
||||
{
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar* state_section;
|
||||
gchar acct_guid[GUID_ENCODING_LENGTH + 1];
|
||||
GError* error = NULL;
|
||||
gboolean sort_reversed = FALSE;
|
||||
|
||||
// get the sort_reversed from the .gcm file
|
||||
guid_to_string_buff (xaccAccountGetGUID (leader), acct_guid);
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", acct_guid, NULL);
|
||||
state_section = gsr_get_register_state_section (gsr);
|
||||
sort_reversed = g_key_file_get_boolean (state_file, state_section,
|
||||
KEY_PAGE_SORT_REV, &error);
|
||||
|
||||
@ -2171,31 +2150,27 @@ static gboolean
|
||||
gnc_plugin_page_register_get_sort_reversed (GncPluginPage* plugin_page)
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
Account* leader;
|
||||
gboolean sort_reversed = FALSE;
|
||||
|
||||
g_return_val_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page), FALSE);
|
||||
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
|
||||
|
||||
leader = gnc_ledger_display_leader (priv->ledger);
|
||||
|
||||
// load from gcm file
|
||||
sort_reversed = gnc_plugin_page_register_get_sort_reversed_gcm (leader);
|
||||
sort_reversed = gnc_plugin_page_register_get_sort_reversed_gcm (priv->gsr);
|
||||
return sort_reversed;
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_plugin_page_register_set_sort_reversed_gcm (Account* leader,
|
||||
gnc_plugin_page_register_set_sort_reversed_gcm (GNCSplitReg *gsr,
|
||||
gboolean reverse_order)
|
||||
{
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar* state_section;
|
||||
gchar acct_guid[GUID_ENCODING_LENGTH + 1];
|
||||
|
||||
// save reverse_order to the .gcm file also
|
||||
guid_to_string_buff (xaccAccountGetGUID (leader), acct_guid);
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", acct_guid, NULL);
|
||||
state_section = gsr_get_register_state_section (gsr);
|
||||
|
||||
if (!reverse_order)
|
||||
{
|
||||
if (g_key_file_has_key (state_file, state_section, KEY_PAGE_SORT_REV, NULL))
|
||||
@ -2215,13 +2190,11 @@ gnc_plugin_page_register_set_sort_reversed (GncPluginPage* plugin_page,
|
||||
gboolean reverse_order)
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
Account* leader;
|
||||
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
|
||||
leader = gnc_ledger_display_leader (priv->ledger);
|
||||
|
||||
// save to gcm file
|
||||
gnc_plugin_page_register_set_sort_reversed_gcm (leader, reverse_order);
|
||||
gnc_plugin_page_register_set_sort_reversed_gcm (priv->gsr, reverse_order);
|
||||
}
|
||||
|
||||
static gchar*
|
||||
@ -5137,16 +5110,16 @@ gnc_plugin_page_register_get_gsr (GncPluginPage* plugin_page)
|
||||
|
||||
static void
|
||||
gnc_plugin_page_help_changed_cb (GNCSplitReg* gsr,
|
||||
GncPluginPageRegister* page)
|
||||
GncPluginPageRegister* register_page)
|
||||
{
|
||||
GncPluginPageRegisterPrivate* priv;
|
||||
SplitRegister* reg;
|
||||
GncWindow* window;
|
||||
char* help;
|
||||
|
||||
g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (page));
|
||||
g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (register_page));
|
||||
|
||||
window = GNC_WINDOW (GNC_PLUGIN_PAGE (page)->window);
|
||||
window = GNC_WINDOW (GNC_PLUGIN_PAGE (register_page)->window);
|
||||
if (!window)
|
||||
{
|
||||
// This routine can be called before the page is added to a
|
||||
@ -5155,15 +5128,15 @@ gnc_plugin_page_help_changed_cb (GNCSplitReg* gsr,
|
||||
}
|
||||
|
||||
// only update status text if on current page
|
||||
if (GNC_IS_MAIN_WINDOW(window) &&
|
||||
(gnc_main_window_get_current_page (GNC_MAIN_WINDOW(window)) != GNC_PLUGIN_PAGE(page)))
|
||||
if (GNC_IS_MAIN_WINDOW(window) && (gnc_main_window_get_current_page
|
||||
(GNC_MAIN_WINDOW(window)) != GNC_PLUGIN_PAGE(register_page)))
|
||||
return;
|
||||
|
||||
/* Get the text from the ledger */
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (page);
|
||||
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (register_page);
|
||||
reg = gnc_ledger_display_get_split_register (priv->ledger);
|
||||
help = gnc_table_get_help (reg->table);
|
||||
gnc_window_set_status (window, GNC_PLUGIN_PAGE (page), help);
|
||||
gnc_window_set_status (window, GNC_PLUGIN_PAGE (register_page), help);
|
||||
g_free (help);
|
||||
}
|
||||
|
||||
|
@ -453,22 +453,36 @@ gsr_move_sort_and_filter_to_state_file (GNCSplitReg *gsr, GKeyFile* state_file,
|
||||
}
|
||||
}
|
||||
|
||||
gchar *
|
||||
gsr_get_register_state_section (GNCSplitReg *gsr)
|
||||
{
|
||||
GNCLedgerDisplayType ledger_type = gnc_ledger_display_type (gsr->ledger);
|
||||
Account *account = gnc_ledger_display_leader (gsr->ledger);
|
||||
const GncGUID *guid = xaccAccountGetGUID (account);
|
||||
gchar guidstr[GUID_ENCODING_LENGTH+1];
|
||||
gchar *register_state_section;
|
||||
|
||||
guid_to_string_buff (guid, guidstr);
|
||||
|
||||
if (ledger_type == LD_SUBACCOUNT)
|
||||
register_state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", guidstr, "+", NULL);
|
||||
else
|
||||
register_state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", guidstr, NULL);
|
||||
|
||||
return register_state_section;
|
||||
}
|
||||
|
||||
static
|
||||
void
|
||||
gsr_create_table( GNCSplitReg *gsr )
|
||||
{
|
||||
GtkWidget *register_widget = NULL;
|
||||
SplitRegister *sr = NULL;
|
||||
|
||||
Account * account = gnc_ledger_display_leader(gsr->ledger);
|
||||
const GncGUID * guid = xaccAccountGetGUID(account);
|
||||
gchar guidstr[GUID_ENCODING_LENGTH+1];
|
||||
GKeyFile* state_file = gnc_state_get_current();
|
||||
gchar *register_state_section;
|
||||
|
||||
guid_to_string_buff (guid, guidstr);
|
||||
|
||||
register_state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", guidstr, NULL);
|
||||
/* register_state_section is used to store per register state: column widths, sort order,... */
|
||||
register_state_section = gsr_get_register_state_section (gsr);
|
||||
|
||||
ENTER("gsr=%p", gsr);
|
||||
|
||||
@ -785,29 +799,22 @@ static void
|
||||
gnc_split_reg_ld_destroy( GNCLedgerDisplay *ledger )
|
||||
{
|
||||
GNCSplitReg *gsr = gnc_ledger_display_get_user_data( ledger );
|
||||
Account * account = gnc_ledger_display_leader(ledger);
|
||||
const GncGUID * guid = xaccAccountGetGUID(account);
|
||||
gchar guidstr[GUID_ENCODING_LENGTH+1];
|
||||
gchar *state_section;
|
||||
guid_to_string_buff(guid, guidstr);
|
||||
|
||||
state_section = g_strconcat (STATE_SECTION_REG_PREFIX, " ", guidstr, NULL);
|
||||
|
||||
if (gsr)
|
||||
{
|
||||
SplitRegister *reg;
|
||||
|
||||
reg = gnc_ledger_display_get_split_register (ledger);
|
||||
/* register_state_section is used to store per register state: column widths, sort order,... */
|
||||
gchar *register_state_section = gsr_get_register_state_section (gsr);
|
||||
SplitRegister *reg = gnc_ledger_display_get_split_register (ledger);
|
||||
|
||||
if (reg && reg->table)
|
||||
gnc_table_save_state (reg->table, state_section);
|
||||
gnc_table_save_state (reg->table, register_state_section);
|
||||
|
||||
/*
|
||||
* Don't destroy the window here any more. The register no longer
|
||||
* owns it.
|
||||
*/
|
||||
g_free (register_state_section);
|
||||
}
|
||||
g_free (state_section);
|
||||
|
||||
gnc_ledger_display_set_user_data (ledger, NULL);
|
||||
g_object_unref (gsr);
|
||||
@ -2143,11 +2150,14 @@ gnc_split_reg_set_sort_reversed(GNCSplitReg *gsr, gboolean rev, gboolean refresh
|
||||
* In other words, qof_query_set_sort_increasing should
|
||||
* always use the inverse of rev.
|
||||
*/
|
||||
SplitRegister *reg = gnc_ledger_display_get_split_register (gsr->ledger);
|
||||
Query *query = gnc_ledger_display_get_query( gsr->ledger );
|
||||
|
||||
gnc_split_register_set_reverse_sort (reg, rev);
|
||||
|
||||
qof_query_set_sort_increasing (query, !rev, !rev, !rev);
|
||||
gsr->sort_rev = rev;
|
||||
Account *acct = gnc_ledger_display_leader (gsr->ledger);
|
||||
xaccAccountSetSortReversed(acct, rev);
|
||||
|
||||
if (refresh)
|
||||
gnc_ledger_display_refresh( gsr->ledger );
|
||||
}
|
||||
|
@ -299,6 +299,14 @@ void gsr_default_reinit_handler( GNCSplitReg *gsr, gpointer data );
|
||||
void gsr_default_expand_handler( GNCSplitReg *gsr, gpointer data );
|
||||
void gsr_default_schedule_handler( GNCSplitReg *gsr, gpointer data );
|
||||
|
||||
/** Get the register state section
|
||||
*
|
||||
* @param gsr A pointer to GNCSplitReg
|
||||
*
|
||||
* @return The register state section, to be freed by caller
|
||||
**/
|
||||
gchar *gsr_get_register_state_section (GNCSplitReg *gsr);
|
||||
|
||||
void gnc_split_reg_set_moved_cb( GNCSplitReg *gsr, GFunc cb, gpointer cb_data );
|
||||
|
||||
#endif /* GNC_SPLIT_REG_H */
|
||||
|
@ -35,8 +35,7 @@ Danger: this feature does not work correctly at this time; it is still under dev
|
||||
<object class="GtkLabel" id="menu_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
Select an accounting period and the closing date which must not be in the future and is greater than the closing date of the previous book.
|
||||
<property name="label" translatable="yes">Select an accounting period and the closing date which must not be in the future, but is greater than the closing date of the previous book.
|
||||
|
||||
Books will be closed at midnight on the selected date.</property>
|
||||
<property name="justify">center</property>
|
||||
|
@ -63,9 +63,7 @@ Click on "Next" to proceed or "Cancel" to Abort Import.
|
||||
<object class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
Enter file name and location for the Import…
|
||||
</property>
|
||||
<property name="label" translatable="yes">Enter file name and location for the Import…</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
|
@ -684,9 +684,7 @@ Select the type of Export required and the separator that will be used.
|
||||
<object class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
Enter file name and location for the Export…
|
||||
</property>
|
||||
<property name="label" translatable="yes">Enter file name and location for the Export…</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
|
@ -41,8 +41,7 @@ Click 'Cancel' if you do not wish to create any new accounts now.</property>
|
||||
<object class="GtkLabel" id="choose_currency_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
Please choose the currency to use for new accounts.</property>
|
||||
<property name="label" translatable="yes">Please choose the currency to use for new accounts.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -528,15 +527,13 @@ Please choose the currency to use for new accounts.</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="label" translatable="yes">
|
||||
If you would like to change an account's name, click on the row containing the account, then click on the account name and change it.
|
||||
<property name="label" translatable="yes">If you would like to change an account's name, click on the row containing the account, then click on the account name and change it.
|
||||
|
||||
Some accounts are marked as "Placeholder". Placeholder accounts are used to create a hierarchy of accounts and normally do not have transactions or opening balances. If you would like an account to be a placeholder account, click the checkbox for that account.
|
||||
|
||||
If you would like an account to have an opening balance, click on the row containing the account, then click on the opening balance field and enter the starting balance.
|
||||
|
||||
<b>Note:</b> all accounts except Equity and placeholder accounts may have an opening balance.
|
||||
</property>
|
||||
<b>Note:</b> all accounts except Equity and placeholder accounts may have an opening balance.</property>
|
||||
<property name="use-markup">True</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="width-chars">75</property>
|
||||
|
@ -448,8 +448,7 @@ If you make a mistake or want to make changes later, you can edit the created Sc
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="label" translatable="yes">
|
||||
Do you utilise an escrow account, if so an account must be specified…</property>
|
||||
<property name="label" translatable="yes">Do you utilise an escrow account, if so an account must be specified…</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
</object>
|
||||
@ -542,11 +541,12 @@ Do you utilise an escrow account, if so an account must be specified…</propert
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
All accounts must have valid entries to continue.
|
||||
</property>
|
||||
<property name="label" translatable="yes">All accounts must have valid entries to continue.</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="wrap">True</property>
|
||||
<style>
|
||||
<class name="gnc-class-highlight"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@ -724,9 +724,7 @@ All accounts must have valid entries to continue.
|
||||
<object class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
All enabled option pages must contain valid entries to continue.
|
||||
</property>
|
||||
<property name="label" translatable="yes">All enabled option pages must contain valid entries to continue.</property>
|
||||
<property name="justify">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
@ -1080,8 +1078,7 @@ All enabled option pages must contain valid entries to continue.
|
||||
<object class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
Review the details below and if correct press Apply to create the schedule.</property>
|
||||
<property name="label" translatable="yes">Review the details below and if correct press "Apply"" to create the schedule.</property>
|
||||
<property name="justify">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
|
@ -1208,8 +1208,7 @@ If you don't see your exchange listed, or none of the available choices are appr
|
||||
<object class="GtkLabel" id="label847694">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" comments="Run the assistant in your language to see GTK's translation of the button labels.">
|
||||
If you are importing a QIF file from a bank or other financial institution, some of the transactions may already exist in your GnuCash accounts. To avoid duplication, GnuCash has tried to identify matches and needs your help to review them.
|
||||
<property name="label" translatable="yes" comments="Run the assistant in your language to see GTK's translation of the button labels.">If you are importing a QIF file from a bank or other financial institution, some of the transactions may already exist in your GnuCash accounts. To avoid duplication, GnuCash has tried to identify matches and needs your help to review them.
|
||||
|
||||
On the next page you will be shown a list of imported transactions. As you select each one, a list of possible matches will be shown below it. If you find a correct match, click on it. Your selection will be confirmed by a check mark in the "Match?" column.
|
||||
|
||||
|
@ -97,9 +97,7 @@
|
||||
<child>
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">
|
||||
Currently you have no saved reports.
|
||||
</property>
|
||||
<property name="label" translatable="yes">Currently you have no saved reports.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
@ -111,9 +109,11 @@ Currently you have no saved reports.
|
||||
<object class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Saved report configurations are created by first opening a report from the Reports menu,
|
||||
altering the report's options to your taste and then choosing "Save Report Configuration" from
|
||||
the Reports menu or tool bar.</property>
|
||||
<property name="label" translatable="yes">Saved report configurations are created by
|
||||
1. opening a report from the Reports menu,
|
||||
2. altering the report's options to your taste,
|
||||
3. selecting "Save Report Configuration [As…]" from the Reports menu
|
||||
or pressing a "Save Config [As…]" button on the tool bar.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -343,7 +343,7 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">(None)</property>
|
||||
<property name="label" translatable="yes">(none)</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
@ -406,7 +406,7 @@
|
||||
<property name="halign">start</property>
|
||||
<property name="margin-top">3</property>
|
||||
<property name="margin-bottom">3</property>
|
||||
<property name="label" translatable="yes">Enter URL like http://www.gnucash.org</property>
|
||||
<property name="label" translatable="yes">Enter an URL like "https://www.gnucash.org"</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -423,7 +423,7 @@
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="uri">http://www.gnucash.org</property>
|
||||
<property name="uri">https://www.gnucash.org</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -74,23 +74,23 @@ static QofLogModule log_module = G_LOG_DOMAIN; //G_LOG_BUSINESS;
|
||||
static char * un_escape(char *str);
|
||||
|
||||
/** \brief Imports a csv file with invoice data into a GtkListStore.
|
||||
|
||||
|
||||
Opens the csv file and attempts to match each row with the regular
|
||||
expression provided in parser_regexp. This is a regular expression
|
||||
that matches each field of the import row and the user selected field
|
||||
separators (, or ;), optionally with the fields enclosed in quotes.
|
||||
|
||||
|
||||
If the match is successful, the fields of the import row are transferred to
|
||||
a row in the GtkListStore store. If the match is not successful, the
|
||||
row is ignored. Maintains information about number of rows imported,
|
||||
the number of rows ignored, and the actual ignored rows.
|
||||
|
||||
|
||||
@param filename The csv filename to read
|
||||
@param parser_regexp The regular expression with which to match the import rows
|
||||
@param store To store the matched data
|
||||
@param max_rows The maximum number of rows to import; use 0 for no maximum.
|
||||
@param stats Return information about matched and non-matched rows. Use NULL if the information is not required.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
bi_import_result
|
||||
@ -236,13 +236,13 @@ gnc_bi_import_read_file (const gchar * filename, const gchar * parser_regexp,
|
||||
|
||||
|
||||
/** \brief Adjusts and validates invoice import data.
|
||||
|
||||
|
||||
Replaces missing or invalid data with defaults:
|
||||
- if quantity is not set, default to 1
|
||||
- if date_opened is not set or invalid, default to today
|
||||
- if date is not set or invalid, default to date_opened
|
||||
- if due date is not set or invalid, default to date_posted
|
||||
|
||||
|
||||
Validates the import data; any error causes all rows of the same invoice
|
||||
to be deleted from the import data:
|
||||
- id is not set, and there is no previous id
|
||||
@ -252,17 +252,17 @@ gnc_bi_import_read_file (const gchar * filename, const gchar * parser_regexp,
|
||||
- account posted is not the applicable type, A/P or A/R
|
||||
- price is not set
|
||||
- account does not exist
|
||||
|
||||
|
||||
Adjustment and validation for header fields is only done for the first row of an invoice,
|
||||
which is assumed to hold the header data for all items of the same invoice.
|
||||
Currency related validation is done in subsqequent processing by gnc_bi_import_create_bis.
|
||||
|
||||
|
||||
@param store Holds the rows of invoice import data
|
||||
@param n_rows_fixed Increased for every data row that is adjusted in this function
|
||||
@param n_rows_ignored Increased for every data row that is deleted in this function
|
||||
@param info Updated with the error messages from this function
|
||||
@param type The type of the import data, BILL or INVOICE
|
||||
|
||||
|
||||
*/
|
||||
|
||||
void
|
||||
@ -288,7 +288,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
|
||||
*n_rows_fixed = 0;
|
||||
*n_rows_ignored = 0;
|
||||
|
||||
|
||||
// Init control variables
|
||||
running_id = g_string_new("");
|
||||
ignore_invoice = FALSE;
|
||||
@ -313,10 +313,10 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
DUE_DATE, &due_date,
|
||||
ACCOUNT_POSTED, &account_posted,
|
||||
OWNER_ID, &owner_id, -1);
|
||||
|
||||
|
||||
g_string_assign (running_id, id);
|
||||
first_row_of_invoice = iter;
|
||||
|
||||
|
||||
// Validate the invoice id.
|
||||
if (strlen (id) == 0)
|
||||
{
|
||||
@ -360,7 +360,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
row, id, invoice_line, owner_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (strlen(date_posted) != 0)
|
||||
{
|
||||
// Validate the date posted and due date.
|
||||
@ -371,7 +371,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
g_string_append_printf (info,
|
||||
_("Row %d, invoice %s/%u: %s is not a valid posting date.\n"),
|
||||
row, id, invoice_line, date_posted);
|
||||
|
||||
|
||||
// Verify the due date.
|
||||
if (!isDateValid(due_date))
|
||||
{
|
||||
@ -392,7 +392,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
row_fixed = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Validate account posted.
|
||||
// Account should exists, and should be of type A/R for invoices, A/P for bills.
|
||||
acc = gnc_account_lookup_for_register
|
||||
@ -408,7 +408,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
{
|
||||
if (g_ascii_strcasecmp (type, "BILL") == 0)
|
||||
{
|
||||
|
||||
|
||||
if (xaccAccountGetType (acc) != ACCT_TYPE_PAYABLE)
|
||||
{
|
||||
ignore_invoice = TRUE;
|
||||
@ -429,7 +429,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Verify the date opened.
|
||||
if(!isDateValid(date_opened))
|
||||
{
|
||||
@ -444,9 +444,9 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
row_fixed = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Validate and fix item data for each row.
|
||||
|
||||
|
||||
// Get item data.
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
|
||||
DATE, &date,
|
||||
@ -454,7 +454,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
QUANTITY, &quantity,
|
||||
PRICE, &price, -1);
|
||||
|
||||
|
||||
|
||||
// Validate the price.
|
||||
if (strlen (price) == 0)
|
||||
{
|
||||
@ -475,11 +475,11 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
_("Row %d, invoice %s/%u: account %s does not exist.\n"),
|
||||
row, id, invoice_line, account);
|
||||
}
|
||||
|
||||
|
||||
// Fix item data.
|
||||
if (!ignore_invoice)
|
||||
{
|
||||
|
||||
|
||||
// Verify the quantity.
|
||||
if (strlen (quantity) == 0)
|
||||
{
|
||||
@ -487,7 +487,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
gtk_list_store_set (store, &iter, QUANTITY, "1", -1);
|
||||
row_fixed = TRUE;
|
||||
}
|
||||
|
||||
|
||||
// Verify the item date
|
||||
if(!isDateValid(date))
|
||||
{
|
||||
@ -499,19 +499,19 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
|
||||
}
|
||||
if (row_fixed) ++fixed_for_invoice;
|
||||
|
||||
|
||||
// Get the next row and its id.
|
||||
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter);
|
||||
if (valid) gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, ID, &id, -1);
|
||||
|
||||
|
||||
|
||||
// If the id of the next row is blank, it takes the id of the previous row.
|
||||
if (valid && strlen(id) == 0)
|
||||
{
|
||||
strcpy( id, running_id->str);
|
||||
gtk_list_store_set (store, &iter, ID, id, -1);
|
||||
}
|
||||
|
||||
|
||||
// If this row was the last row of the invoice...
|
||||
if (!valid || (valid && g_strcmp0 (id, running_id->str) != 0))
|
||||
{
|
||||
@ -526,7 +526,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
if (valid) gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, ID, &id, -1);
|
||||
}
|
||||
while (valid && (g_strcmp0 (id, running_id->str) == 0));
|
||||
|
||||
|
||||
if (running_id->len != 0)
|
||||
{
|
||||
g_string_append_printf (info,
|
||||
@ -538,18 +538,18 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
g_string_append_printf (info,
|
||||
_("Error(s) in invoice without id, all rows of this invoice ignored.\n"));
|
||||
}
|
||||
|
||||
|
||||
// Fixes for ignored invoices don't count in the statistics.
|
||||
fixed_for_invoice = 0;
|
||||
|
||||
|
||||
ignore_invoice = FALSE;
|
||||
}
|
||||
|
||||
|
||||
on_first_row_of_invoice = TRUE;
|
||||
(*n_rows_fixed) += fixed_for_invoice;
|
||||
fixed_for_invoice = 0;
|
||||
invoice_line = 0;
|
||||
|
||||
|
||||
g_free (id);
|
||||
g_free (date_opened);
|
||||
g_free (date_posted);
|
||||
@ -558,7 +558,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
g_free (owner_id);
|
||||
}
|
||||
else on_first_row_of_invoice = FALSE;
|
||||
|
||||
|
||||
g_free (date);
|
||||
g_free (account);
|
||||
g_free (quantity);
|
||||
@ -566,7 +566,7 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
|
||||
row++;
|
||||
}
|
||||
|
||||
|
||||
// Deallocate strings.
|
||||
g_string_free (running_id, TRUE);
|
||||
|
||||
@ -574,24 +574,24 @@ gnc_bi_import_fix_bis (GtkListStore * store, guint * n_rows_fixed, guint * n_row
|
||||
|
||||
|
||||
/** \brief Creates and updates invoices from validated import data.
|
||||
|
||||
|
||||
Loops through the import data to create and update invoices.
|
||||
The first data row for an invoice is assumed to hold the header data.
|
||||
|
||||
|
||||
If an invoice already exists, the user is asked, once per import,
|
||||
to confirm that invoices should be updated.
|
||||
If not confirmed, any rows for existing invoices are ignored.
|
||||
If confirmed, entries are added to existing invoices.
|
||||
Posted invoices, however, are never updated.
|
||||
|
||||
|
||||
If the field date_posted is set, the system will
|
||||
attempt to also post the invoice. The system will not
|
||||
post the invoice if the entries of the invoice hold different currencies,
|
||||
or if the currency of the invoice differs from the currency of the account_posted.
|
||||
|
||||
|
||||
As per user selection, the system displays tabs for either all affected invoices,
|
||||
all affected invoices not yet posted, or no invoices at all.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
void
|
||||
@ -641,9 +641,9 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
update = NOT_ASKED;
|
||||
on_first_row_of_invoice = TRUE;
|
||||
running_id = g_string_new("");
|
||||
|
||||
g_string_append_printf (info, _("\nProcessing…\n") );
|
||||
|
||||
|
||||
g_string_append_printf (info, "\n%s\n", _("Processing…") );
|
||||
|
||||
valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
|
||||
while (valid)
|
||||
{
|
||||
@ -671,12 +671,12 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
TAXABLE, &taxable,
|
||||
TAXINCLUDED, &taxincluded,
|
||||
TAX_TABLE, &tax_table, -1);
|
||||
|
||||
|
||||
if (on_first_row_of_invoice)
|
||||
{
|
||||
g_string_assign(running_id, id);
|
||||
first_row_of_invoice = iter;
|
||||
|
||||
|
||||
if (g_ascii_strcasecmp (type, "BILL") == 0)
|
||||
invoice = gnc_search_bill_on_id (book, id);
|
||||
else if (g_ascii_strcasecmp (type, "INVOICE") == 0)
|
||||
@ -712,7 +712,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
//if (g_ascii_strcasecmp(type,"INVOICE"))gncInvoiceSetBillTo( invoice, billto );
|
||||
(*n_invoices_created)++;
|
||||
g_string_append_printf (info, _("Invoice %s created.\n"),id);
|
||||
|
||||
|
||||
gncInvoiceCommitEdit (invoice);
|
||||
}
|
||||
else // Dealing with an existing invoice.
|
||||
@ -730,7 +730,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
update = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
|
||||
if (update == NO)
|
||||
{
|
||||
// If the user does not want to update existing invoices, ignore all rows of the invoice.
|
||||
@ -745,7 +745,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
on_first_row_of_invoice = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (gncInvoiceIsPosted (invoice))
|
||||
{
|
||||
// If the invoice is already posted, ignore all rows of the invoice.
|
||||
@ -782,7 +782,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
notes = un_escape(notes);
|
||||
gncEntrySetDescription (entry, desc);
|
||||
gncEntrySetAction (entry, action);
|
||||
value = gnc_numeric_zero();
|
||||
value = gnc_numeric_zero();
|
||||
gnc_exp_parser_parse (quantity, &value, NULL);
|
||||
gncEntrySetQuantity (entry, value);
|
||||
acc = gnc_account_lookup_for_register (gnc_get_current_root_account (),
|
||||
@ -819,12 +819,12 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
gncEntryCommitEdit(entry);
|
||||
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter);
|
||||
// handle auto posting of invoices
|
||||
|
||||
|
||||
if (valid)
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, ID, &id, -1);
|
||||
else
|
||||
id = NULL;
|
||||
|
||||
|
||||
if (g_strcmp0 (id, running_id->str) == 0) // The next row is for the same invoice.
|
||||
{
|
||||
on_first_row_of_invoice = FALSE;
|
||||
@ -897,7 +897,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
{
|
||||
PWARN("Invoice %s is NOT marked for posting",id);
|
||||
}
|
||||
|
||||
|
||||
// open new bill / invoice in a tab, if requested
|
||||
if (g_ascii_strcasecmp(open_mode, "ALL") == 0
|
||||
|| (g_ascii_strcasecmp(open_mode, "NOT_POSTED") == 0
|
||||
@ -906,15 +906,15 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
iw = gnc_ui_invoice_edit (parent, invoice);
|
||||
gnc_plugin_page_invoice_new (iw);
|
||||
}
|
||||
|
||||
|
||||
// The next row will be for a new invoice.
|
||||
on_first_row_of_invoice = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (*n_invoices_updated + *n_invoices_created == 0)
|
||||
g_string_append_printf (info, _("Nothing to process.\n"));
|
||||
|
||||
|
||||
// cleanup
|
||||
g_free (id);
|
||||
g_free (date_opened);
|
||||
@ -938,7 +938,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
|
||||
g_free (account_posted);
|
||||
g_free (memo_posted);
|
||||
g_free (accumulatesplits);
|
||||
|
||||
|
||||
g_string_free (running_id, TRUE);
|
||||
}
|
||||
|
||||
|
@ -169,7 +169,9 @@
|
||||
(list "oth s" GNC-ASSET-TYPE GNC-BANK-TYPE GNC-CASH-TYPE)
|
||||
(list "mutual" GNC-BANK-TYPE)))
|
||||
(or (assoc-ref string-map-alist (string-downcase! (string-trim-both read-value)))
|
||||
(let ((msg (format #f (G_ "Unrecognized account type '~s'. Defaulting to Bank.")
|
||||
;; Translators: Mapping the QIF account type to a GnuCash account type.
|
||||
;; see https://en.wikipedia.org/wiki/Quicken_Interchange_Format#Detail_items
|
||||
(let ((msg (format #f (G_ "The account type ~s is unknown, using 'bank' instead.")
|
||||
read-value)))
|
||||
(errorproc errortype msg)
|
||||
(list GNC-BANK-TYPE))))
|
||||
@ -232,6 +234,7 @@
|
||||
(and read-value
|
||||
(let ((sym (string->symbol (string-downcase (string-trim-both read-value)))))
|
||||
(or (any (lambda (lst) (and (memq sym lst) (car lst))) action-map)
|
||||
;; Translators: This is an error message about actions like buy, sell …
|
||||
(let ((msg (format #f (G_ "Unrecognized action '~a'.") read-value)))
|
||||
(errorproc errortype msg))))))
|
||||
|
||||
@ -251,7 +254,8 @@
|
||||
(not (string-null? read-value))
|
||||
(let* ((secondchar (string-ref read-value 0)))
|
||||
(or (any (lambda (m) (and (memq secondchar (cdr m)) (car m))) maplist)
|
||||
(let ((msg (format #f (G_ "Unrecognized status '~a'. Defaulting to uncleared.")
|
||||
;; Translators: Error message about reconciliation status, see msgctxt "Reconciled flag …"
|
||||
(let ((msg (format #f (G_ "The unknown reconciliation status '~a' will be replaced by 'uncleared'.")
|
||||
read-value)))
|
||||
(errorproc errortype msg))))))
|
||||
|
||||
|
@ -374,7 +374,6 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
|
||||
gboolean need_divider_upper = FALSE;
|
||||
gboolean found_divider_upper = FALSE;
|
||||
gboolean found_divider = FALSE;
|
||||
bool reverse_sort = xaccAccountGetSortReversed(default_account);
|
||||
gboolean has_last_num = FALSE;
|
||||
gboolean multi_line;
|
||||
gboolean dynamic;
|
||||
@ -612,8 +611,8 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
|
||||
use_autoreadonly &&
|
||||
!found_divider_upper)
|
||||
{
|
||||
if (((reverse_sort && xaccTransGetDate(trans) < autoreadonly_time) ||
|
||||
(!reverse_sort && xaccTransGetDate (trans) >= autoreadonly_time)))
|
||||
if (((table->model->reverse_sort && xaccTransGetDate(trans) < autoreadonly_time) ||
|
||||
(!table->model->reverse_sort && xaccTransGetDate (trans) >= autoreadonly_time)))
|
||||
{
|
||||
table->model->dividing_row_upper = vcell_loc.virt_row;
|
||||
found_divider_upper = TRUE;
|
||||
@ -625,8 +624,8 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
|
||||
}
|
||||
|
||||
if (info->show_present_divider && !found_divider &&
|
||||
((reverse_sort && xaccTransGetDate(trans) < present) ||
|
||||
(!reverse_sort && xaccTransGetDate (trans) > present)))
|
||||
((table->model->reverse_sort && xaccTransGetDate (trans) < present) ||
|
||||
(!table->model->reverse_sort && xaccTransGetDate (trans) > present)))
|
||||
{
|
||||
table->model->dividing_row = vcell_loc.virt_row;
|
||||
found_divider = TRUE;
|
||||
@ -647,6 +646,9 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
|
||||
save_loc.phys_col_offset = 0;
|
||||
}
|
||||
|
||||
// used in the setting the rows insensitive
|
||||
table->model->blank_trans_row = vcell_loc.virt_row;
|
||||
|
||||
gnc_split_register_add_transaction (reg,
|
||||
blank_trans, blank_split,
|
||||
lead_cursor, split_cursor,
|
||||
@ -733,6 +735,9 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
|
||||
save_loc.phys_col_offset = 0;
|
||||
}
|
||||
|
||||
// used in the setting the rows insensitive
|
||||
table->model->blank_trans_row = vcell_loc.virt_row;
|
||||
|
||||
gnc_split_register_add_transaction (reg, blank_trans, blank_split,
|
||||
lead_cursor, split_cursor,
|
||||
multi_line, start_primary_color,
|
||||
|
@ -2951,6 +2951,13 @@ gnc_split_register_config (SplitRegister* reg,
|
||||
gnc_table_realize_gui (reg->table);
|
||||
}
|
||||
|
||||
void
|
||||
gnc_split_register_set_reverse_sort (SplitRegister* reg, gboolean reverse_sort)
|
||||
{
|
||||
g_return_if_fail (reg);
|
||||
gnc_table_model_set_reverse_sort (reg->table->model, reverse_sort);
|
||||
}
|
||||
|
||||
void
|
||||
gnc_split_register_set_auto_complete (SplitRegister* reg,
|
||||
gboolean do_auto_complete)
|
||||
|
@ -323,6 +323,15 @@ void gnc_split_register_config (SplitRegister* reg,
|
||||
SplitRegisterStyle style,
|
||||
gboolean use_double_line);
|
||||
|
||||
/** Sets a split register's reverse sort order based on register
|
||||
*
|
||||
* @param reg a ::SplitRegister
|
||||
*
|
||||
* @param reverse_sort @c TRUE reverse sort order, @c FALSE default
|
||||
*/
|
||||
void gnc_split_register_set_reverse_sort (SplitRegister* reg,
|
||||
gboolean reverse_sort);
|
||||
|
||||
/** Sets whether a register uses auto-completion.
|
||||
*
|
||||
* @param reg a ::SplitRegister
|
||||
|
@ -145,6 +145,8 @@ gnc_table_model_new (void)
|
||||
model->dividing_row = -1;
|
||||
model->dividing_row_lower = -1;
|
||||
|
||||
model->blank_trans_row = -1;
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
@ -199,6 +201,14 @@ gnc_table_model_read_only (TableModel *model)
|
||||
return model->read_only;
|
||||
}
|
||||
|
||||
void
|
||||
gnc_table_model_set_reverse_sort (TableModel *model,
|
||||
gboolean reverse_sort)
|
||||
{
|
||||
g_return_if_fail (model);
|
||||
model->reverse_sort = reverse_sort;
|
||||
}
|
||||
|
||||
void
|
||||
gnc_table_model_set_entry_handler (TableModel *model,
|
||||
TableGetEntryHandler entry_handler,
|
||||
|
@ -122,6 +122,10 @@ typedef struct
|
||||
* and edits should not be allowed. */
|
||||
gboolean read_only;
|
||||
|
||||
/* If true, denotes that this table is being displayed
|
||||
* in the reverse direction. */
|
||||
gboolean reverse_sort;
|
||||
|
||||
/* If positive, denotes a row that marks a boundary that should
|
||||
* be visually distinguished. */
|
||||
int dividing_row;
|
||||
@ -132,6 +136,9 @@ typedef struct
|
||||
* be visually distinguished. */
|
||||
int dividing_row_lower;
|
||||
|
||||
/* If positive, denotes the row position of the blank trans */
|
||||
int blank_trans_row;
|
||||
|
||||
VirtCellDataAllocator cell_data_allocator;
|
||||
VirtCellDataDeallocator cell_data_deallocator;
|
||||
VirtCellDataCopy cell_data_copy;
|
||||
@ -145,6 +152,9 @@ void gnc_table_model_set_read_only (TableModel *model,
|
||||
gboolean read_only);
|
||||
gboolean gnc_table_model_read_only (TableModel *model);
|
||||
|
||||
void gnc_table_model_set_reverse_sort (TableModel *model,
|
||||
gboolean read_only);
|
||||
|
||||
void gnc_table_model_set_entry_handler
|
||||
(TableModel *model,
|
||||
TableGetEntryHandler entry_handler,
|
||||
|
@ -350,6 +350,13 @@ draw_divider_line (cairo_t *cr, VirtualLocation virt_loc,
|
||||
cairo_stroke (cr);
|
||||
}
|
||||
|
||||
static void
|
||||
set_cell_insensitive (GtkStyleContext *stylectxt)
|
||||
{
|
||||
if (!gtk_style_context_has_class (stylectxt, GTK_STYLE_CLASS_BACKGROUND))
|
||||
gtk_style_context_set_state (stylectxt, GTK_STATE_FLAG_INSENSITIVE);
|
||||
}
|
||||
|
||||
static void
|
||||
draw_cell (GnucashSheet *sheet, SheetBlock *block,
|
||||
VirtualLocation virt_loc, cairo_t *cr,
|
||||
@ -385,10 +392,7 @@ draw_cell (GnucashSheet *sheet, SheetBlock *block,
|
||||
gnucash_get_style_classes (sheet, stylectxt, color_type, use_neg_class);
|
||||
|
||||
if (sheet->read_only)
|
||||
{
|
||||
if (!gtk_style_context_has_class (stylectxt, GTK_STYLE_CLASS_BACKGROUND))
|
||||
gtk_style_context_set_state (stylectxt, GTK_STATE_FLAG_INSENSITIVE);
|
||||
}
|
||||
set_cell_insensitive (stylectxt);
|
||||
else
|
||||
{
|
||||
if (gtk_style_context_has_class (stylectxt, GTK_STYLE_CLASS_BACKGROUND))
|
||||
@ -397,11 +401,27 @@ draw_cell (GnucashSheet *sheet, SheetBlock *block,
|
||||
|
||||
// Are we in a read-only row? Then make the background color somewhat more grey.
|
||||
if ((virt_loc.phys_row_offset < block->style->nrows)
|
||||
&& (table->model->dividing_row_upper >= 0)
|
||||
&& (virt_loc.vcell_loc.virt_row < table->model->dividing_row_upper))
|
||||
&& (table->model->dividing_row_upper >= 0))
|
||||
{
|
||||
if (!gtk_style_context_has_class (stylectxt, GTK_STYLE_CLASS_BACKGROUND))
|
||||
gtk_style_context_set_state (stylectxt, GTK_STATE_FLAG_INSENSITIVE);
|
||||
if (table->model->reverse_sort)
|
||||
{
|
||||
if ((table->model->blank_trans_row < table->model->dividing_row_upper)
|
||||
&& (virt_loc.vcell_loc.virt_row >= table->model->dividing_row_upper))
|
||||
{
|
||||
set_cell_insensitive (stylectxt); // future trans after blank
|
||||
}
|
||||
|
||||
if ((virt_loc.vcell_loc.virt_row >= table->model->dividing_row_upper)
|
||||
&& (virt_loc.vcell_loc.virt_row < table->model->blank_trans_row))
|
||||
{
|
||||
set_cell_insensitive (stylectxt);
|
||||
}
|
||||
}
|
||||
else // normal order
|
||||
{
|
||||
if (virt_loc.vcell_loc.virt_row < table->model->dividing_row_upper)
|
||||
set_cell_insensitive (stylectxt);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_render_background (stylectxt, cr, x, y, width, height);
|
||||
|
@ -37,7 +37,7 @@
|
||||
<attribute name="hidden-when">action-disabled</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Pa_ge Setup…</attribute>
|
||||
<attribute name="label" translatable="yes">Pa_ge Setup</attribute>
|
||||
<attribute name="action">mainwin.FilePageSetupAction</attribute>
|
||||
<attribute name="accel"><Primary><Shift>p</attribute>
|
||||
<attribute name="tooltip" translatable="yes">Specify the page size and orientation for printing</attribute>
|
||||
|
@ -116,7 +116,7 @@
|
||||
<attribute name="tooltip" translatable="yes">Use the loan/mortgage repayment calculator</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Close Book</attribute>
|
||||
<attribute name="label" translatable="yes">_Close Book…</attribute>
|
||||
<attribute name="action">gnc-plugin-basic-commands-actions.ToolsBookCloseAction</attribute>
|
||||
<attribute name="tooltip" translatable="yes">Close the Book at the end of the Period</attribute>
|
||||
</item>
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
<menu id="FilePlaceholder3">
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Print Report</attribute>
|
||||
<attribute name="label" translatable="yes">_Print Report…</attribute>
|
||||
<attribute name="action">GncPluginPageReportActions.FilePrintAction</attribute>
|
||||
<attribute name="accel"><Primary>p</attribute>
|
||||
<attribute name="tooltip" translatable="yes">Print the current report</attribute>
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
<menu id="FilePlaceholder5">
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Export _Report</attribute>
|
||||
<attribute name="label" translatable="yes">Export _Report…</attribute>
|
||||
<attribute name="action">GncPluginPageReportActions.ReportExportAction</attribute>
|
||||
<attribute name="tooltip" translatable="yes">Export HTML-formatted report to file</attribute>
|
||||
<attribute name="temp" translatable="no">yes</attribute>
|
||||
|
@ -1,4 +1,2 @@
|
||||
# These are files that we don't want to translate, because they are
|
||||
# in experimental status.
|
||||
gnucash/gnome/assistant-stock-transaction.cpp
|
||||
gnucash/gtkbuilder/assistant-stock-transaction.glade
|
||||
|
@ -57,6 +57,7 @@ gnucash/gnome/assistant-acct-period.c
|
||||
gnucash/gnome/assistant-hierarchy.cpp
|
||||
gnucash/gnome/assistant-loan.cpp
|
||||
gnucash/gnome/assistant-stock-split.c
|
||||
gnucash/gnome/assistant-stock-transaction.cpp
|
||||
gnucash/gnome/business-gnome-utils.c
|
||||
gnucash/gnome/business-options-gnome.cpp
|
||||
gnucash/gnome/business-urls.c
|
||||
@ -240,6 +241,7 @@ gnucash/gtkbuilder/assistant-hierarchy.glade
|
||||
gnucash/gtkbuilder/assistant-loan.glade
|
||||
gnucash/gtkbuilder/assistant-qif-import.glade
|
||||
gnucash/gtkbuilder/assistant-stock-split.glade
|
||||
gnucash/gtkbuilder/assistant-stock-transaction.glade
|
||||
gnucash/gtkbuilder/assistant-xml-encoding.glade
|
||||
gnucash/gtkbuilder/business-options-gnome.glade
|
||||
gnucash/gtkbuilder/business-prefs.glade
|
||||
|
25
po/hu.po
25
po/hu.po
@ -14,7 +14,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
|
||||
"cgi?product=GnuCash&component=Translations\n"
|
||||
"POT-Creation-Date: 2022-12-04 19:47-0800\n"
|
||||
"PO-Revision-Date: 2023-02-26 20:44+0000\n"
|
||||
"PO-Revision-Date: 2023-02-27 18:39+0000\n"
|
||||
"Last-Translator: mocsa <csaba@feltoltve.hu>\n"
|
||||
"Language-Team: Hungarian <https://hosted.weblate.org/projects/gnucash/"
|
||||
"program-beta/hu/>\n"
|
||||
@ -1923,10 +1923,8 @@ msgid "Business Document Links"
|
||||
msgstr "<b>Új tranzakció-információ</b>"
|
||||
|
||||
#: gnucash/gnome/dialog-employee.c:201
|
||||
#, fuzzy
|
||||
#| msgid "You must enter a payment address."
|
||||
msgid "You must enter a Payment-Address Name."
|
||||
msgstr "Meg kell adni egy teljesítési címet."
|
||||
msgstr ""
|
||||
|
||||
#: gnucash/gnome/dialog-employee.c:296
|
||||
msgid "Edit Employee"
|
||||
@ -2053,10 +2051,9 @@ msgstr "A_dóvonatkozású"
|
||||
#. Translators: %s is a full account name.
|
||||
#. This is a label in Search Account from context menu.
|
||||
#: gnucash/gnome/dialog-find-account.c:491
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Accounts in '%s'"
|
||||
#, c-format
|
||||
msgid "Su_b-accounts of '%s'"
|
||||
msgstr "<b>Számlák '%s'-ban</b>"
|
||||
msgstr ""
|
||||
|
||||
#: gnucash/gnome/dialog-find-transactions2.c:107
|
||||
#: gnucash/gnome/dialog-find-transactions.c:105
|
||||
@ -2778,10 +2775,8 @@ msgid "You must choose an owner for this job."
|
||||
msgstr "Ki kell választani egy jelöltet a megbízásra."
|
||||
|
||||
#: gnucash/gnome/dialog-job.c:154
|
||||
#, fuzzy
|
||||
#| msgid "Credit must be a positive amount or you must leave it blank."
|
||||
msgid "The rate amount must be valid or you must leave it blank."
|
||||
msgstr "A terhelés pozitív összeg lehet, vagy üresen kell hagyni."
|
||||
msgstr "Az árfolyamnak érvényes árnak vagy üresnek kell lennie."
|
||||
|
||||
#: gnucash/gnome/dialog-job.c:255
|
||||
msgid "Edit Job"
|
||||
@ -2836,8 +2831,6 @@ msgid "Empty"
|
||||
msgstr "Névtér"
|
||||
|
||||
#: gnucash/gnome/dialog-lot-viewer.c:829
|
||||
#, fuzzy
|
||||
#| msgid "Open"
|
||||
msgctxt "Adjective"
|
||||
msgid "Open"
|
||||
msgstr "Megnyitás"
|
||||
@ -3080,10 +3073,10 @@ msgstr ""
|
||||
|
||||
#. Translators: %d is the number of prices. This is a ngettext(3) message.
|
||||
#: gnucash/gnome/dialog-price-edit-db.c:204
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Are you sure you want to delete the selected price?"
|
||||
msgid_plural "Are you sure you want to delete the %d selected prices?"
|
||||
msgstr[0] "Biztosan törölni kívánja a %d kiválasztott árat?"
|
||||
msgstr[0] "Biztosan törölni kívánja a %d db kiválasztott árat?"
|
||||
|
||||
#: gnucash/gnome/dialog-price-edit-db.c:212
|
||||
msgid "Delete prices?"
|
||||
@ -3796,10 +3789,8 @@ msgid "View and Delete Bayesian and non-Bayesian information"
|
||||
msgstr "Bayes-féle és nem Bayes-féle információk megtekintése és törlése"
|
||||
|
||||
#: gnucash/gnome/gnc-plugin-basic-commands.c:217
|
||||
#, fuzzy
|
||||
#| msgid "Transaction amount"
|
||||
msgid "_Transaction Linked Documents"
|
||||
msgstr "Tranzakció összeg"
|
||||
msgstr ""
|
||||
|
||||
#: gnucash/gnome/gnc-plugin-basic-commands.c:218
|
||||
#, fuzzy
|
||||
|
Loading…
Reference in New Issue
Block a user