mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-26 19:00:18 -06:00
195 lines
6.3 KiB
OpenEdge ABL
195 lines
6.3 KiB
OpenEdge ABL
/********************************************************************\
|
|
* 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 *
|
|
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
|
|
* Boston, MA 02110-1301, USA gnu@gnu.org *
|
|
* *
|
|
\********************************************************************/
|
|
|
|
#if defined(SWIGGUILE)
|
|
%{
|
|
/* Disable -Waddress. GCC 4.2 warns (and fails to compile with -Werror) when
|
|
* passing the address of a guid on the stack to QOF_BOOK_LOOKUP_ENTITY via
|
|
* gncInvoiceLookup and friends. When the macro gets inlined, the compiler
|
|
* emits a warning that the guid null pointer test is always true.
|
|
*/
|
|
#if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 2)
|
|
# pragma GCC diagnostic warning "-Waddress"
|
|
#endif
|
|
%}
|
|
#endif
|
|
|
|
%rename(gncOwnerReturnGUID) gncOwnerRetGUID;
|
|
|
|
%inline %{
|
|
static GncGUID gncTaxTableReturnGUID(GncTaxTable *x)
|
|
{ return (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null())); }
|
|
|
|
static GncGUID gncInvoiceReturnGUID(GncInvoice *x)
|
|
{ return (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null())); }
|
|
|
|
static GncGUID gncJobReturnGUID(GncJob *x)
|
|
{ return (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null())); }
|
|
|
|
static GncGUID gncVendorReturnGUID(GncVendor *x)
|
|
{ return (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null())); }
|
|
|
|
static GncGUID gncCustomerReturnGUID(GncCustomer *x)
|
|
{ return (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null())); }
|
|
|
|
static GncGUID gncEmployeeReturnGUID(GncEmployee *x)
|
|
{ return (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null())); }
|
|
|
|
static GncTaxTable * gncTaxTableLookupFlip(GncGUID g, QofBook *b)
|
|
{ return gncTaxTableLookup(b, &g); }
|
|
|
|
static GncInvoice * gncInvoiceLookupFlip(GncGUID g, QofBook *b)
|
|
{ return gncInvoiceLookup(b, &g); }
|
|
|
|
static GncJob * gncJobLookupFlip(GncGUID g, QofBook *b)
|
|
{ return gncJobLookup(b, &g); }
|
|
|
|
static GncVendor * gncVendorLookupFlip(GncGUID g, QofBook *b)
|
|
{ return gncVendorLookup(b, &g); }
|
|
|
|
static GncCustomer * gncCustomerLookupFlip(GncGUID g, QofBook *b)
|
|
{ return gncCustomerLookup(b, &g); }
|
|
|
|
static GncEmployee * gncEmployeeLookupFlip(GncGUID g, QofBook *b)
|
|
{ return gncEmployeeLookup(b, &g); }
|
|
|
|
%}
|
|
|
|
GLIST_HELPER_INOUT(GncInvoiceList, SWIGTYPE_p__gncInvoice);
|
|
GLIST_HELPER_INOUT(EntryList, SWIGTYPE_p__gncEntry);
|
|
GLIST_HELPER_INOUT(GncTaxTableGetTables, SWIGTYPE_p__gncTaxTable);
|
|
GLIST_HELPER_INOUT(GncTaxTableEntryList, SWIGTYPE_p__gncTaxTableEntry);
|
|
GLIST_HELPER_INOUT(OwnerList, SWIGTYPE_p__gncOwner);
|
|
|
|
#if defined(SWIGGUILE)
|
|
%typemap(in) GncAccountValue * "$1 = gnc_scm_to_account_value_ptr($input);"
|
|
%typemap(out) GncAccountValue * "$result = gnc_account_value_ptr_to_scm($1);"
|
|
%typemap(in) AccountValueList * {
|
|
SCM list = $input;
|
|
GList *c_list = NULL;
|
|
|
|
while (!scm_is_null(list)) {
|
|
GncAccountValue *p;
|
|
|
|
SCM p_scm = SCM_CAR(list);
|
|
if (scm_is_false(p_scm) || scm_is_null(p_scm))
|
|
p = NULL;
|
|
else
|
|
p = gnc_scm_to_account_value_ptr(p_scm);
|
|
|
|
c_list = g_list_prepend(c_list, p);
|
|
list = SCM_CDR(list);
|
|
}
|
|
|
|
$1 = g_list_reverse(c_list);
|
|
}
|
|
%typemap(out) AccountValueList * {
|
|
SCM list = SCM_EOL;
|
|
GList *node;
|
|
|
|
for (node = $1; node; node = node->next)
|
|
list = scm_cons(gnc_account_value_ptr_to_scm(node->data), list);
|
|
|
|
$result = scm_reverse(list);
|
|
}
|
|
#endif
|
|
|
|
|
|
/* Parse the header files to generate wrappers */
|
|
%include <gncAddress.h>
|
|
%include <gncBillTerm.h>
|
|
%include <gncBusiness.h>
|
|
%include <gncCustomer.h>
|
|
%include <gncEmployee.h>
|
|
%include <gncEntry.h>
|
|
%include <gncInvoice.h>
|
|
%include <gncJob.h>
|
|
%include <gncOrder.h>
|
|
%include <gncOwner.h>
|
|
%include <gncTaxTable.h>
|
|
%include <gncVendor.h>
|
|
#if defined(SWIGGUILE)
|
|
%include <gncBusGuile.h>
|
|
#endif
|
|
/* Import query bindings for the below invoice query functions (but
|
|
* don't generate bindings for them). */
|
|
%import <qofquery.h>
|
|
|
|
#define URL_TYPE_CUSTOMER GNC_ID_CUSTOMER
|
|
#define URL_TYPE_VENDOR GNC_ID_VENDOR
|
|
#define URL_TYPE_EMPLOYEE GNC_ID_EMPLOYEE
|
|
#define URL_TYPE_JOB GNC_ID_JOB
|
|
#define URL_TYPE_INVOICE GNC_ID_INVOICE
|
|
// not exactly clean
|
|
#define URL_TYPE_OWNERREPORT "owner-report"
|
|
|
|
%inline %{
|
|
static QofQuery * qof_query_create_for_invoices(void) {
|
|
return qof_query_create_for(GNC_ID_INVOICE);
|
|
}
|
|
|
|
static GncInvoiceList * qof_query_run_for_invoices(QofQuery *q) {
|
|
return qof_query_run(q);
|
|
}
|
|
%}
|
|
|
|
#if defined(SWIGGUILE)
|
|
%init {
|
|
{
|
|
char tmp[100];
|
|
|
|
#define SET_ENUM(e) snprintf(tmp, 100, "(set! %s (%s))", (e), (e)); \
|
|
scm_c_eval_string(tmp);
|
|
|
|
SET_ENUM("GNC-OWNER-CUSTOMER");
|
|
SET_ENUM("GNC-OWNER-VENDOR");
|
|
SET_ENUM("GNC-OWNER-EMPLOYEE");
|
|
SET_ENUM("GNC-OWNER-JOB");
|
|
SET_ENUM("GNC-AMT-TYPE-VALUE");
|
|
SET_ENUM("GNC-AMT-TYPE-PERCENT");
|
|
|
|
SET_ENUM("URL-TYPE-CUSTOMER");
|
|
SET_ENUM("URL-TYPE-VENDOR");
|
|
SET_ENUM("URL-TYPE-EMPLOYEE");
|
|
SET_ENUM("URL-TYPE-JOB");
|
|
SET_ENUM("URL-TYPE-INVOICE");
|
|
SET_ENUM("URL-TYPE-OWNERREPORT");
|
|
|
|
SET_ENUM("INVOICE-FROM-TXN");
|
|
SET_ENUM("INVOICE-FROM-LOT");
|
|
SET_ENUM("INVOICE-OWNER");
|
|
SET_ENUM("INVOICE-BILLTO");
|
|
SET_ENUM("OWNER-PARENTG");
|
|
SET_ENUM("OWNER-FROM-LOT");
|
|
|
|
SET_ENUM("GNC-INVOICE-UNDEFINED");
|
|
SET_ENUM("GNC-INVOICE-CUST-INVOICE");
|
|
SET_ENUM("GNC-INVOICE-VEND-INVOICE");
|
|
SET_ENUM("GNC-INVOICE-EMPL-INVOICE");
|
|
SET_ENUM("GNC-INVOICE-CUST-CREDIT-NOTE");
|
|
SET_ENUM("GNC-INVOICE-VEND-CREDIT-NOTE");
|
|
SET_ENUM("GNC-INVOICE-EMPL-CREDIT-NOTE");
|
|
|
|
#undef SET_ENUM
|
|
}
|
|
|
|
}
|
|
#endif
|