/**********************************************************
 * This file has been automatically created by "typemaker2"
 * from the file "paymentgroup.xml".
 * Please do not edit this file, all changes will be lost.
 * Better edit the mentioned source file instead.
 **********************************************************/

#ifndef AB_IMEXPORTER_XML_PAYMENTGROUP_PAYMENTGROUP_H
#define AB_IMEXPORTER_XML_PAYMENTGROUP_PAYMENTGROUP_H


#ifdef __cplusplus
extern "C" {
#endif

/** @page P_AB_IMEXPORTER_XML_PAYMENTGROUP Structure AB_IMEXPORTER_XML_PAYMENTGROUP
<p>This page describes the properties of AB_IMEXPORTER_XML_PAYMENTGROUP.</p>



<h1>AB_IMEXPORTER_XML_PAYMENTGROUP</h1>



@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_id
<h2>id</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetId(), get it with @ref AB_ImExporterXML_PaymentGroup_GetId().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_transactionCount
<h2>transactionCount</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetTransactionCount(), get it with @ref AB_ImExporterXML_PaymentGroup_GetTransactionCount().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_controlSum
<h2>controlSum</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetControlSum(), get it with @ref AB_ImExporterXML_PaymentGroup_GetControlSum().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_transactionDate
<h2>transactionDate</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetTransactionDate(), get it with @ref AB_ImExporterXML_PaymentGroup_GetTransactionDate().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_sequence
<h2>sequence</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetSequence(), get it with @ref AB_ImExporterXML_PaymentGroup_GetSequence().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_creditorSchemeId
<h2>creditorSchemeId</h2>

Creditor Scheme Identification" ("Glaeubiger-ID", assigned by Deutsche Bundesbank).
<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetCreditorSchemeId(), get it with @ref AB_ImExporterXML_PaymentGroup_GetCreditorSchemeId().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_localIban
<h2>localIban</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetLocalIban(), get it with @ref AB_ImExporterXML_PaymentGroup_GetLocalIban().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_localBic
<h2>localBic</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetLocalBic(), get it with @ref AB_ImExporterXML_PaymentGroup_GetLocalBic().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_localName
<h2>localName</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetLocalName(), get it with @ref AB_ImExporterXML_PaymentGroup_GetLocalName().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_transactionList2
<h2>transactionList2</h2>

List of transactions. This list contains any kind of transactions all in one list. You can differentiate the type of the transaction (e.g. bank statement, debit note, transfer etc) by looking at the transaction type (see @ref AB_Transaction_GetType).
<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetTransactionList2(), get it with @ref AB_ImExporterXML_PaymentGroup_GetTransactionList2().</p>


@anchor AB_IMEXPORTER_XML_PAYMENTGROUP_hash
<h2>hash</h2>

<p>Set this property with @ref AB_ImExporterXML_PaymentGroup_SetHash(), get it with @ref AB_ImExporterXML_PaymentGroup_GetHash().</p>

*/

/* needed system headers */
#include <gwenhywfar/types.h>
#include <gwenhywfar/list1.h>

/* pre-headers */
#include <aqbanking/error.h>
#include <aqbanking/types/value.h>
#include <aqbanking/types/transaction.h>
#include <gwenhywfar/gwendate.h>
#include <gwenhywfar/buffer.h>
#include <gwenhywfar/db.h>
#include <gwenhywfar/debug.h>

typedef struct AB_IMEXPORTER_XML_PAYMENTGROUP AB_IMEXPORTER_XML_PAYMENTGROUP;
GWEN_LIST_FUNCTION_DEFS(AB_IMEXPORTER_XML_PAYMENTGROUP, AB_ImExporterXML_PaymentGroup)



/* post-headers */


/** Constructor. */
AB_IMEXPORTER_XML_PAYMENTGROUP *AB_ImExporterXML_PaymentGroup_new(void);

/** Destructor. */
void AB_ImExporterXML_PaymentGroup_free(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

AB_IMEXPORTER_XML_PAYMENTGROUP *AB_ImExporterXML_PaymentGroup_dup(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_src);

AB_IMEXPORTER_XML_PAYMENTGROUP *AB_ImExporterXML_PaymentGroup_copy(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const AB_IMEXPORTER_XML_PAYMENTGROUP *p_src);

/** Getter.
 * Use this function to get the member "id" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_id)
*/
const char *AB_ImExporterXML_PaymentGroup_GetId(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "transactionCount" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_transactionCount)
*/
int AB_ImExporterXML_PaymentGroup_GetTransactionCount(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "controlSum" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_controlSum)
*/
const AB_VALUE *AB_ImExporterXML_PaymentGroup_GetControlSum(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "transactionDate" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_transactionDate)
*/
const GWEN_DATE *AB_ImExporterXML_PaymentGroup_GetTransactionDate(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "sequence" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_sequence)
*/
int AB_ImExporterXML_PaymentGroup_GetSequence(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "creditorSchemeId" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_creditorSchemeId)
*/
const char *AB_ImExporterXML_PaymentGroup_GetCreditorSchemeId(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "localIban" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_localIban)
*/
const char *AB_ImExporterXML_PaymentGroup_GetLocalIban(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "localBic" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_localBic)
*/
const char *AB_ImExporterXML_PaymentGroup_GetLocalBic(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "localName" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_localName)
*/
const char *AB_ImExporterXML_PaymentGroup_GetLocalName(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "transactionList2" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_transactionList2)
*/
AB_TRANSACTION_LIST2 *AB_ImExporterXML_PaymentGroup_GetTransactionList2(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Getter.
 * Use this function to get the member "hash" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_hash)
*/
const char *AB_ImExporterXML_PaymentGroup_GetHash(const AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct);

/** Setter.
 * Use this function to set the member "id" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_id)
*/
void AB_ImExporterXML_PaymentGroup_SetId(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "transactionCount" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_transactionCount)
*/
void AB_ImExporterXML_PaymentGroup_SetTransactionCount(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "controlSum" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_controlSum)
*/
void AB_ImExporterXML_PaymentGroup_SetControlSum(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const AB_VALUE *p_src);

/** Setter.
 * Use this function to set the member "transactionDate" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_transactionDate)
*/
void AB_ImExporterXML_PaymentGroup_SetTransactionDate(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const GWEN_DATE *p_src);

/** Setter.
 * Use this function to set the member "sequence" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_sequence)
*/
void AB_ImExporterXML_PaymentGroup_SetSequence(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "creditorSchemeId" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_creditorSchemeId)
*/
void AB_ImExporterXML_PaymentGroup_SetCreditorSchemeId(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "localIban" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_localIban)
*/
void AB_ImExporterXML_PaymentGroup_SetLocalIban(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "localBic" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_localBic)
*/
void AB_ImExporterXML_PaymentGroup_SetLocalBic(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "localName" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_localName)
*/
void AB_ImExporterXML_PaymentGroup_SetLocalName(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "transactionList2" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_transactionList2)
*/
void AB_ImExporterXML_PaymentGroup_SetTransactionList2(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, AB_TRANSACTION_LIST2 *p_src);

/** Setter.
 * Use this function to set the member "hash" (see @ref AB_IMEXPORTER_XML_PAYMENTGROUP_hash)
*/
void AB_ImExporterXML_PaymentGroup_SetHash(AB_IMEXPORTER_XML_PAYMENTGROUP *p_struct, const char *p_src);

AB_IMEXPORTER_XML_PAYMENTGROUP_LIST *AB_ImExporterXML_PaymentGroup_List_dup(const AB_IMEXPORTER_XML_PAYMENTGROUP_LIST *p_src);

 void AB_ImExporterXML_PaymentGroup_AddTransaction(AB_IMEXPORTER_XML_PAYMENTGROUP *st, AB_TRANSACTION *t);


#ifdef __cplusplus
}
#endif

#endif

