[Gnucash-changes] r12959 - gnucash/trunk/src/engine - Let QOF
backends work with splits without checking for the parent Trans
Neil Williams
codehelp at cvs.gnucash.org
Mon Jan 23 13:59:03 EST 2006
Author: codehelp
Date: 2006-01-23 13:59:02 -0500 (Mon, 23 Jan 2006)
New Revision: 12959
Trac: http://svn.gnucash.org/trac/changeset/12959
Modified:
gnucash/trunk/src/engine/Transaction.c
Log:
Let QOF backends work with splits without checking for the parent Trans
Modified: gnucash/trunk/src/engine/Transaction.c
===================================================================
--- gnucash/trunk/src/engine/Transaction.c 2006-01-23 18:22:13 UTC (rev 12958)
+++ gnucash/trunk/src/engine/Transaction.c 2006-01-23 18:59:02 UTC (rev 12959)
@@ -686,10 +686,9 @@
qofSplitSetSharePrice (Split *split, gnc_numeric price)
{
g_return_if_fail(split);
- g_return_if_fail(split->parent);
- g_return_if_fail(qof_begin_edit(&split->parent->inst));
- xaccSplitSetSharePrice (split, price);
- qof_commit_edit(&split->parent->inst);
+ split->value = gnc_numeric_mul(xaccSplitGetAmount(split),
+ price, get_currency_denom(split),
+ GNC_HOW_RND_ROUND);
}
void
@@ -742,10 +741,12 @@
qofSplitSetAmount (Split *split, gnc_numeric amt)
{
g_return_if_fail(split);
- g_return_if_fail(split->parent);
- g_return_if_fail(qof_begin_edit(&split->parent->inst));
- xaccSplitSetAmount (split, amt);
- qof_commit_edit(&split->parent->inst);
+ if (split->acc)
+ {
+ split->amount = gnc_numeric_convert(amt,
+ get_commodity_denom(split), GNC_HOW_RND_ROUND);
+ }
+ else { split->amount = amt; }
}
void
@@ -771,10 +772,8 @@
qofSplitSetValue (Split *split, gnc_numeric amt)
{
g_return_if_fail(split);
- g_return_if_fail(split->parent);
- g_return_if_fail(qof_begin_edit(&split->parent->inst));
- xaccSplitSetValue (split, amt);
- qof_commit_edit(&split->parent->inst);
+ split->value = gnc_numeric_convert(amt,
+ get_currency_denom(split), GNC_HOW_RND_ROUND);
}
void
@@ -2675,11 +2674,12 @@
static void
qofSplitSetMemo (Split *split, const char* memo)
{
+ gchar *tmp;
+
g_return_if_fail(split);
- g_return_if_fail(split->parent);
- if (!qof_begin_edit(&split->parent->inst)) return;
- xaccSplitSetMemo(split, memo);
- qof_commit_edit(&split->parent->inst);
+ tmp = gnc_string_cache_insert((gpointer) memo);
+ gnc_string_cache_remove(split->memo);
+ split->memo = tmp;
}
void
@@ -2698,10 +2698,7 @@
qofSplitSetAction (Split *split, const char *actn)
{
g_return_if_fail(split);
- g_return_if_fail(split->parent);
- if (!qof_begin_edit(&split->parent->inst)) return;
- xaccSplitSetAction (split, actn);
- qof_commit_edit(&split->parent->inst);
+ split->action = g_strdup(actn);
}
void
@@ -2720,10 +2717,20 @@
qofSplitSetReconcile (Split *split, char recn)
{
g_return_if_fail(split);
- g_return_if_fail(split->parent);
- if (!qof_begin_edit(&split->parent->inst)) return;
- xaccSplitSetReconcile(split, recn);
- qof_commit_edit(&split->parent->inst);
+ switch (recn)
+ {
+ case NREC:
+ case CREC:
+ case YREC:
+ case FREC:
+ case VREC:
+ split->reconciled = recn;
+ mark_split (split);
+ xaccAccountRecomputeBalance (split->acc);
+ break;
+ default:
+ PERR("Bad reconciled flag");
+ }
}
void
More information about the gnucash-changes
mailing list