[Gnucash-changes] * src/engine/Account.c: - updated implementation of

Derek Atkins warlord at cvs.gnucash.org
Sun Jan 30 17:45:16 EST 2005


Log Message:
-----------
	* src/engine/Account.c:
	  - updated implementation of qofAccountSetParent().

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash:
        ChangeLog
    gnucash/src/engine:
        Account.c

Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.163
retrieving revision 1.1487.2.164
diff -LChangeLog -LChangeLog -u -r1.1487.2.163 -r1.1487.2.164
--- ChangeLog
+++ ChangeLog
@@ -18,6 +18,9 @@
 	  - Use gnc_commodity_table_find_namespace() throughout
 	  - fix a crash when adding a new namespace to the commodity table.
 
+	* src/engine/Account.c:
+	  - updated implementation of qofAccountSetParent().
+
 2005-01-26  Derek Atkins  <derek at ihtfp.com>
 
 	Neil Williams' QSF Backend.
Index: Account.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Account.c,v
retrieving revision 1.222.4.9
retrieving revision 1.222.4.10
diff -Lsrc/engine/Account.c -Lsrc/engine/Account.c -u -r1.222.4.9 -r1.222.4.10
--- src/engine/Account.c
+++ src/engine/Account.c
@@ -1257,23 +1257,17 @@
 
 void qofAccountSetParent (Account *acc, QofEntity *parent) 
 {
-	AccountGroup *ag;
-	if((!acc)||(!parent)) return;
-	if(acc->parent) return;
+	Account *parent_acc;
+	
+	if((!acc)||(!parent)) { return; }
+	parent_acc = (Account*)parent;
 	xaccAccountBeginEdit(acc);
-	g_message("qofAccountSetParent start");
-	ag = xaccAccountGetParent((Account*)parent);
-	acc->parent = ag;
-/* FIXME: acc->parent is type AccountGroup but AccountGroup is not a true QOF object 
-so can't set AccountGroup in the target book because the GUID of any new AccountGroups 
-is not found. Workaround uses Account as the reference type.
- */
-	if(!acc->parent) {
-		g_message("qofAccountSetParent failed.");
-	}
+	xaccAccountBeginEdit(parent_acc);
+	xaccAccountInsertSubAccount(parent_acc, acc);
+	mark_account (parent_acc);
 	mark_account (acc);
-	acc->inst.dirty = TRUE;
 	xaccAccountCommitEdit(acc);
+	xaccAccountCommitEdit(parent_acc);
 }
 
 void


More information about the gnucash-changes mailing list