1 /***************************************************************************
2     begin       : Mon Mar 01 2004
3     copyright   : (C) 2018 by Martin Preuss
4     email       : martin@libchipcard.de
5 
6  ***************************************************************************
7  *          Please see toplevel file COPYING for license details           *
8  ***************************************************************************/
9 
10 #ifndef AH_ACCOUNT_H
11 #define AH_ACCOUNT_H
12 
13 #include "aqhbci/aqhbci.h" /* for AQHBCI_API */
14 #include <aqbanking/backendsupport/account.h>
15 
16 /** @defgroup G_AB_BE_AQHBCI_Account HBCI Account Extensions
17  * @ingroup G_AB_BE_AQHBCI
18  * @short HBCI-specific user functions
19  * @author Martin Preuss<martin@libchipcard.de>
20  *
21  */
22 /*@{*/
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 
29 /** @name Flags
30  *
31  */
32 /*@{*/
33 /** Prefer single transfers over multi transfers for this account */
34 #define AH_BANK_FLAGS_PREFER_SINGLE_TRANSFER  0x00000001
35 /** Prefer single debit notes over multi debit notes for this account */
36 #define AH_BANK_FLAGS_PREFER_SINGLE_DEBITNOTE 0x00000002
37 
38 /* for this account there are KTV2 information availabel (e.g. account sub id) */
39 #define AH_BANK_FLAGS_KTV2                    0x00000004
40 
41 /* this account can be used with SEPA jobs */
42 #define AH_BANK_FLAGS_SEPA                    0x00000008
43 
44 /** Prefer single transfers over multi transfers for this account (SEPA) */
45 #define AH_BANK_FLAGS_SEPA_PREFER_SINGLE_TRANSFER  0x00000010
46 /** Prefer single debit notes over multi debit notes for this account (SEPA) */
47 #define AH_BANK_FLAGS_SEPA_PREFER_SINGLE_DEBITNOTE 0x00000020
48 /** prefer download of transactions as CAMT 052.001.02 (as opposed to SWIFT MT94x) */
49 #define AH_BANK_FLAGS_PREFER_CAMT_DOWNLOAD         0x00000040
50 
51 
52 #define AH_BANK_FLAGS_DEFAULT 0
53 
54 /*@}*/
55 
56 
57 
58 AQHBCI_API AB_ACCOUNT *AH_Account_new(AB_PROVIDER *pro);
59 
60 /** @name Flag Manipulation Functions
61  *
62  * See @ref AH_BANK_FLAGS_PREFER_SINGLE_TRANSFER and following.
63  */
64 /*@{*/
65 AQHBCI_API
66 void AH_Account_Flags_toDb(GWEN_DB_NODE *db, const char *name,
67                            uint32_t flags);
68 
69 AQHBCI_API
70 uint32_t AH_Account_Flags_fromDb(GWEN_DB_NODE *db, const char *name);
71 
72 AQHBCI_API
73 uint32_t AH_Account_GetFlags(const AB_ACCOUNT *a);
74 
75 AQHBCI_API
76 void AH_Account_SetFlags(AB_ACCOUNT *a, uint32_t flags);
77 
78 AQHBCI_API
79 void AH_Account_AddFlags(AB_ACCOUNT *a, uint32_t flags);
80 
81 AQHBCI_API
82 void AH_Account_SubFlags(AB_ACCOUNT *a, uint32_t flags);
83 
84 /*@}*/
85 
86 
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 
92 
93 
94 /*@}*/ /* defgroup */
95 
96 
97 #endif /* AH_ACCOUNT_H */
98 
99 
100