mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
start work to clone owner
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9499 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
8e545f865e
commit
a15de4f933
@ -15,6 +15,10 @@ XXX TODO:
|
|||||||
-- TaxTable and BillTerm have common parent/child code.
|
-- TaxTable and BillTerm have common parent/child code.
|
||||||
this could be abstracted into common code.
|
this could be abstracted into common code.
|
||||||
|
|
||||||
|
=======
|
||||||
|
-- finish onwer cclone
|
||||||
|
-- vendor, invoice, entry, order
|
||||||
|
|
||||||
|
|
||||||
#include "gncBusiness.h"
|
#include "gncBusiness.h"
|
||||||
|
|
||||||
|
@ -224,6 +224,20 @@ static void gncCustomerFree (GncCustomer *cust)
|
|||||||
g_free (cust);
|
g_free (cust);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GncCustomer *
|
||||||
|
gncCustomerObtainTwin (GncCustomer *from, QofBook *book)
|
||||||
|
{
|
||||||
|
GncCustomer *cust;
|
||||||
|
if (!from) return NULL;
|
||||||
|
|
||||||
|
cust = (GncCustomer *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
|
||||||
|
if (!cust)
|
||||||
|
{
|
||||||
|
cust = gncCloneCustomer (from, book);
|
||||||
|
}
|
||||||
|
return cust;
|
||||||
|
}
|
||||||
|
|
||||||
/* ============================================================== */
|
/* ============================================================== */
|
||||||
/* Set Functions */
|
/* Set Functions */
|
||||||
|
|
||||||
|
@ -43,4 +43,15 @@ void gncCustomerSetGUID (GncCustomer *customer, const GUID *guid);
|
|||||||
*/
|
*/
|
||||||
GncCustomer * gncCloneCustomer (GncCustomer *from, QofBook *book);
|
GncCustomer * gncCloneCustomer (GncCustomer *from, QofBook *book);
|
||||||
|
|
||||||
|
/** The gncCustomerObtainTwin() will find the 'twin' of the
|
||||||
|
* indicated customer in the indicated book. If the twin doesn't
|
||||||
|
* yet exist in the book, it will be created (by calling
|
||||||
|
* gncCloneCustomer()) and placed into the book.
|
||||||
|
*
|
||||||
|
* We called this routine 'Obtain' instead of "Get" to distinguish
|
||||||
|
* it from the other Get routines, which work in fundamentally
|
||||||
|
* different ways.
|
||||||
|
*/
|
||||||
|
GncCustomer * gncCustomerObtainTwin (GncCustomer *from, QofBook *book);
|
||||||
|
|
||||||
#endif /* GNC_CUSTOMERP_H_ */
|
#endif /* GNC_CUSTOMERP_H_ */
|
||||||
|
@ -35,10 +35,10 @@
|
|||||||
#include "messages.h"
|
#include "messages.h"
|
||||||
#include "gnc-engine-util.h"
|
#include "gnc-engine-util.h"
|
||||||
#include "gnc-numeric.h"
|
#include "gnc-numeric.h"
|
||||||
#include "gnc-book.h"
|
|
||||||
#include "gnc-event-p.h"
|
#include "gnc-event-p.h"
|
||||||
#include "gnc-be-utils.h"
|
#include "gnc-be-utils.h"
|
||||||
|
|
||||||
|
#include "qofbook.h"
|
||||||
#include "qofclass.h"
|
#include "qofclass.h"
|
||||||
#include "qofinstance.h"
|
#include "qofinstance.h"
|
||||||
#include "qofid.h"
|
#include "qofid.h"
|
||||||
|
@ -44,7 +44,7 @@ void gncJobSetGUID (GncJob *job, const GUID *guid);
|
|||||||
GncJob * gncCloneJob (GncJob *from, QofBook *book);
|
GncJob * gncCloneJob (GncJob *from, QofBook *book);
|
||||||
|
|
||||||
/** The gncJobObtainTwin() will find the 'twin' of the
|
/** The gncJobObtainTwin() will find the 'twin' of the
|
||||||
* indicated tax table in the indicated book. If the twin doesn't
|
* indicated job in the indicated book. If the twin doesn't
|
||||||
* yet exist in the book, it will be created (by calling
|
* yet exist in the book, it will be created (by calling
|
||||||
* gncCloneJob()) and placed into the book.
|
* gncCloneJob()) and placed into the book.
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,28 @@
|
|||||||
|
/********************************************************************\
|
||||||
|
* gncOwner.c -- Business Interface: Object OWNERs *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License as *
|
||||||
|
* published by the Free Software Foundation; either version 2 of *
|
||||||
|
* the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License*
|
||||||
|
* along with this program; if not, contact: *
|
||||||
|
* *
|
||||||
|
* Free Software Foundation Voice: +1-617-542-5942 *
|
||||||
|
* 59 Temple Place - Suite 330 Fax: +1-617-542-2652 *
|
||||||
|
* Boston, MA 02111-1307, USA gnu@gnu.org *
|
||||||
|
* *
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* gncOwner.c -- Business Interface: Object OWNERs
|
|
||||||
* Copyright (C) 2001, 2002 Derek Atkins
|
* Copyright (C) 2001, 2002 Derek Atkins
|
||||||
|
* Copyright (C) 2003 Linas Vepstas <linas@linas.org>
|
||||||
* Author: Derek Atkins <warlord@MIT.EDU>
|
* Author: Derek Atkins <warlord@MIT.EDU>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -9,11 +31,13 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <string.h> /* for memcpy() */
|
#include <string.h> /* for memcpy() */
|
||||||
|
|
||||||
|
#include "qofbook.h"
|
||||||
#include "qofclass.h"
|
#include "qofclass.h"
|
||||||
#include "qofinstance.h"
|
|
||||||
#include "qofquerycore.h"
|
#include "qofquerycore.h"
|
||||||
#include "qofquery.h"
|
#include "qofquery.h"
|
||||||
|
|
||||||
|
#include "gncCustomerP.h"
|
||||||
|
#include "gncJobP.h"
|
||||||
#include "gncOwner.h"
|
#include "gncOwner.h"
|
||||||
#include "gncOwnerP.h"
|
#include "gncOwnerP.h"
|
||||||
|
|
||||||
@ -138,6 +162,36 @@ void gncOwnerCopy (const GncOwner *src, GncOwner *dest)
|
|||||||
memcpy (dest, src, sizeof (*dest));
|
memcpy (dest, src, sizeof (*dest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GncOwner
|
||||||
|
gncCloneOwner (const GncOwner *from, QofBook *book)
|
||||||
|
{
|
||||||
|
GncOwner owner = {GNC_OWNER_NONE};
|
||||||
|
if (!from) return owner;
|
||||||
|
owner.type = from->type;
|
||||||
|
switch (from->type)
|
||||||
|
{
|
||||||
|
case GNC_OWNER_NONE:
|
||||||
|
return owner;
|
||||||
|
case GNC_OWNER_UNDEFINED:
|
||||||
|
owner.owner.undefined = from->owner.undefined; /* XXX probably wrong ! */
|
||||||
|
return owner;
|
||||||
|
case GNC_OWNER_CUSTOMER:
|
||||||
|
owner.owner.customer = gncCustomerObtainTwin (from->owner.customer, book);
|
||||||
|
return owner;
|
||||||
|
case GNC_OWNER_JOB:
|
||||||
|
owner.owner.job = gncJobObtainTwin (from->owner.job, book);
|
||||||
|
return owner;
|
||||||
|
case GNC_OWNER_VENDOR:
|
||||||
|
/* XXX unfinished */
|
||||||
|
return owner;
|
||||||
|
case GNC_OWNER_EMPLOYEE:
|
||||||
|
/* XXX unfinished */
|
||||||
|
return owner;
|
||||||
|
default:
|
||||||
|
return owner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
gboolean gncOwnerEqual (const GncOwner *a, const GncOwner *b)
|
gboolean gncOwnerEqual (const GncOwner *a, const GncOwner *b)
|
||||||
{
|
{
|
||||||
if (!a || !b) return FALSE;
|
if (!a || !b) return FALSE;
|
||||||
|
@ -1,5 +1,26 @@
|
|||||||
|
/********************************************************************\
|
||||||
|
* gncOwnerP.h -- Business Interface: Object OWNERs private file *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License as *
|
||||||
|
* published by the Free Software Foundation; either version 2 of *
|
||||||
|
* the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License*
|
||||||
|
* along with this program; if not, contact: *
|
||||||
|
* *
|
||||||
|
* Free Software Foundation Voice: +1-617-542-5942 *
|
||||||
|
* 59 Temple Place - Suite 330 Fax: +1-617-542-2652 *
|
||||||
|
* Boston, MA 02111-1307, USA gnu@gnu.org *
|
||||||
|
* *
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* gncOwnerP.h -- Business Interface: Object OWNERs
|
|
||||||
* Copyright (C) 2001, 2002 Derek Atkins
|
* Copyright (C) 2001, 2002 Derek Atkins
|
||||||
* Author: Derek Atkins <warlord@MIT.EDU>
|
* Author: Derek Atkins <warlord@MIT.EDU>
|
||||||
*/
|
*/
|
||||||
@ -7,6 +28,15 @@
|
|||||||
#ifndef GNC_OWNERP_H_
|
#ifndef GNC_OWNERP_H_
|
||||||
#define GNC_OWNERP_H_
|
#define GNC_OWNERP_H_
|
||||||
|
|
||||||
|
#include "qofbook.h"
|
||||||
|
#include "gncOwner.h"
|
||||||
|
|
||||||
gboolean gncOwnerRegister (void);
|
gboolean gncOwnerRegister (void);
|
||||||
|
|
||||||
|
/** The gncCloneOwner() routine makes a copy of the indicated
|
||||||
|
* owner, and one of its union elements, depending on the
|
||||||
|
* owner type.
|
||||||
|
*/
|
||||||
|
GncOwner gncCloneOwner (const GncOwner *from, QofBook *book);
|
||||||
|
|
||||||
#endif /* GNC_OWNERP_H_ */
|
#endif /* GNC_OWNERP_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user