aqbanking 5.0.14
|
00001 /*************************************************************************** 00002 begin : Mon Mar 01 2004 00003 copyright : (C) 2004-2010 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * This file is part of the project "AqBanking". * 00008 * Please see toplevel file COPYING of that project for license details. * 00009 ***************************************************************************/ 00010 00011 00012 #ifndef AQBANKING_IMEXPORTER_H 00013 #define AQBANKING_IMEXPORTER_H 00014 00015 #include <gwenhywfar/inherit.h> 00016 #include <gwenhywfar/syncio.h> 00017 #include <gwenhywfar/db.h> 00018 #include <gwenhywfar/types.h> 00019 #include <gwenhywfar/dialog.h> 00020 00021 #include <aqbanking/error.h> 00022 #include <aqbanking/accstatus.h> 00023 00024 00043 00044 00045 00050 00052 #define AB_IMEXPORTER_FLAGS_GETPROFILEEDITOR_SUPPORTED 0x00000001 00053 00054 00059 #ifdef __cplusplus 00060 extern "C" { 00061 #endif 00062 00063 typedef struct AB_IMEXPORTER AB_IMEXPORTER; 00064 GWEN_INHERIT_FUNCTION_LIB_DEFS(AB_IMEXPORTER, AQBANKING_API) 00065 00066 typedef struct AB_IMEXPORTER_CONTEXT AB_IMEXPORTER_CONTEXT; 00067 typedef struct AB_IMEXPORTER_ACCOUNTINFO AB_IMEXPORTER_ACCOUNTINFO; 00068 #ifdef __cplusplus 00069 } 00070 #endif 00071 00072 00073 #include <aqbanking/banking.h> 00074 #include <aqbanking/account.h> 00075 #include <aqbanking/transaction.h> 00076 #include <aqbanking/security.h> 00077 #include <aqbanking/message.h> 00078 00079 00080 #ifdef __cplusplus 00081 extern "C" { 00082 #endif 00083 00084 00089 00100 AQBANKING_API 00101 int AB_ImExporter_Import(AB_IMEXPORTER *ie, 00102 AB_IMEXPORTER_CONTEXT *ctx, 00103 GWEN_SYNCIO *sio, 00104 GWEN_DB_NODE *dbProfile); 00105 00115 AQBANKING_API 00116 int AB_ImExporter_Export(AB_IMEXPORTER *ie, 00117 AB_IMEXPORTER_CONTEXT *ctx, 00118 GWEN_SYNCIO *sio, 00119 GWEN_DB_NODE *dbProfile); 00120 00138 AQBANKING_API 00139 int AB_ImExporter_GetEditProfileDialog(AB_IMEXPORTER *ie, 00140 GWEN_DB_NODE *dbProfile, 00141 const char *testFileName, 00142 GWEN_DIALOG **pDlg); 00143 00144 00148 AQBANKING_API 00149 int AB_ImExporter_ImportFile(AB_IMEXPORTER *ie, 00150 AB_IMEXPORTER_CONTEXT *ctx, 00151 const char *fname, 00152 GWEN_DB_NODE *dbProfile); 00153 00154 AQBANKING_API 00155 int AB_ImExporter_ImportBuffer(AB_IMEXPORTER *ie, 00156 AB_IMEXPORTER_CONTEXT *ctx, 00157 GWEN_BUFFER *buf, 00158 GWEN_DB_NODE *dbProfile); 00159 00160 AQBANKING_API 00161 int AB_ImExporter_ExportToBuffer(AB_IMEXPORTER *ie, 00162 AB_IMEXPORTER_CONTEXT *ctx, 00163 GWEN_BUFFER *buf, 00164 GWEN_DB_NODE *dbProfile); 00165 00166 AQBANKING_API 00167 int AB_ImExporter_ExportToFile(AB_IMEXPORTER *ie, 00168 AB_IMEXPORTER_CONTEXT *ctx, 00169 const char *fname, 00170 GWEN_DB_NODE *dbProfile); 00171 00175 AQBANKING_API 00176 int AB_ImExporter_CheckFile(AB_IMEXPORTER *ie, 00177 const char *fname); 00178 00185 AQBANKING_API 00186 AB_BANKING *AB_ImExporter_GetBanking(const AB_IMEXPORTER *ie); 00187 00191 AQBANKING_API 00192 const char *AB_ImExporter_GetName(const AB_IMEXPORTER *ie); 00193 00194 00199 AQBANKING_API 00200 uint32_t AB_ImExporter_GetFlags(const AB_IMEXPORTER *ie); 00201 00202 /* defgroup */ 00204 00205 00206 00216 AQBANKING_API 00217 AB_IMEXPORTER_CONTEXT *AB_ImExporterContext_new(void); 00218 00219 AQBANKING_API 00220 void AB_ImExporterContext_free(AB_IMEXPORTER_CONTEXT *iec); 00221 00226 AQBANKING_API 00227 void AB_ImExporterContext_Clear(AB_IMEXPORTER_CONTEXT *iec); 00228 00232 AQBANKING_API 00233 int AB_ImExporterContext_toDb(const AB_IMEXPORTER_CONTEXT *iec, 00234 GWEN_DB_NODE *db); 00235 00239 AQBANKING_API 00240 AB_IMEXPORTER_CONTEXT *AB_ImExporterContext_fromDb(GWEN_DB_NODE *db); 00241 00242 00243 AQBANKING_API 00244 int AB_ImExporterContext_ReadDb(AB_IMEXPORTER_CONTEXT *iec, 00245 GWEN_DB_NODE *db); 00246 00247 00252 AQBANKING_API 00253 void AB_ImExporterContext_AddContext(AB_IMEXPORTER_CONTEXT *iec, 00254 AB_IMEXPORTER_CONTEXT *toAdd); 00255 00259 AQBANKING_API 00260 void AB_ImExporterContext_AddAccountInfo(AB_IMEXPORTER_CONTEXT *iec, 00261 AB_IMEXPORTER_ACCOUNTINFO *iea); 00262 00267 AQBANKING_API 00268 AB_IMEXPORTER_ACCOUNTINFO* 00269 AB_ImExporterContext_GetFirstAccountInfo(AB_IMEXPORTER_CONTEXT *iec); 00270 00275 AQBANKING_API 00276 AB_IMEXPORTER_ACCOUNTINFO* 00277 AB_ImExporterContext_GetNextAccountInfo(AB_IMEXPORTER_CONTEXT *iec); 00278 00284 typedef AB_IMEXPORTER_ACCOUNTINFO * 00285 (AB_IMEXPORTER_ACCOUNTINFO_LIST2_FOREACH)(AB_IMEXPORTER_ACCOUNTINFO *element, 00286 void *user_data); 00287 00308 AQBANKING_API 00309 AB_IMEXPORTER_ACCOUNTINFO * 00310 AB_ImExporterContext_AccountInfoForEach(AB_IMEXPORTER_CONTEXT *iec, 00311 AB_IMEXPORTER_ACCOUNTINFO_LIST2_FOREACH func, 00312 void* user_data); 00313 00319 AQBANKING_API 00320 AB_IMEXPORTER_ACCOUNTINFO* 00321 AB_ImExporterContext_FindAccountInfo(AB_IMEXPORTER_CONTEXT *iec, 00322 const char *bankCode, 00323 const char *accountNumber); 00324 00330 AQBANKING_API 00331 AB_IMEXPORTER_ACCOUNTINFO* 00332 AB_ImExporterContext_GetAccountInfo(AB_IMEXPORTER_CONTEXT *iec, 00333 const char *bankCode, 00334 const char *accountNumber); 00335 00336 AQBANKING_API 00337 int AB_ImExporterContext_GetAccountInfoCount(const AB_IMEXPORTER_CONTEXT *iec); 00338 00350 AQBANKING_API 00351 void AB_ImExporterContext_AddTransaction(AB_IMEXPORTER_CONTEXT *iec, 00352 AB_TRANSACTION *t); 00353 00354 00366 AQBANKING_API 00367 void AB_ImExporterContext_AddTransfer(AB_IMEXPORTER_CONTEXT *iec, 00368 AB_TRANSACTION *t); 00369 00370 00371 AQBANKING_API 00372 void AB_ImExporterContext_AddStandingOrder(AB_IMEXPORTER_CONTEXT *iec, 00373 AB_TRANSACTION *t); 00374 00375 00376 AQBANKING_API 00377 void AB_ImExporterContext_AddDatedTransfer(AB_IMEXPORTER_CONTEXT *iec, 00378 AB_TRANSACTION *t); 00379 00380 00381 00387 AQBANKING_API 00388 void AB_ImExporterContext_AddSecurity(AB_IMEXPORTER_CONTEXT *iec, 00389 AB_SECURITY *sec); 00390 00391 AQBANKING_API 00392 AB_SECURITY* 00393 AB_ImExporterContext_GetFirstSecurity(AB_IMEXPORTER_CONTEXT *iec); 00394 00395 AQBANKING_API 00396 AB_SECURITY* 00397 AB_ImExporterContext_GetNextSecurity(AB_IMEXPORTER_CONTEXT *iec); 00398 00399 AQBANKING_API 00400 AB_SECURITY* 00401 AB_ImExporterContext_FindSecurity(AB_IMEXPORTER_CONTEXT *iec, 00402 const char *nameSpace, 00403 const char *id); 00404 00414 AQBANKING_API 00415 void AB_ImExporterContext_AddMessage(AB_IMEXPORTER_CONTEXT *iec, 00416 AB_MESSAGE *msg); 00417 00418 AQBANKING_API 00419 AB_MESSAGE* 00420 AB_ImExporterContext_GetFirstMessage(AB_IMEXPORTER_CONTEXT *iec); 00421 00422 AQBANKING_API 00423 AB_MESSAGE* 00424 AB_ImExporterContext_GetNextMessage(AB_IMEXPORTER_CONTEXT *iec); 00425 00435 AQBANKING_API 00436 void AB_ImExporterContext_AddLog(AB_IMEXPORTER_CONTEXT *iec, 00437 const char *s); 00438 00439 AQBANKING_API 00440 const char *AB_ImExporterContext_GetLog(const AB_IMEXPORTER_CONTEXT *iec); 00441 00442 AQBANKING_API 00443 void AB_ImExporterContext_ClearLog(AB_IMEXPORTER_CONTEXT *iec); 00444 00447 /* defgroup */ 00448 00449 00450 00451 00459 00464 AQBANKING_API 00465 AB_IMEXPORTER_ACCOUNTINFO *AB_ImExporterAccountInfo_new(void); 00466 AQBANKING_API 00467 void AB_ImExporterAccountInfo_free(AB_IMEXPORTER_ACCOUNTINFO *iea); 00468 00469 AQBANKING_API 00470 void AB_ImExporterAccountInfo_FillFromAccount(AB_IMEXPORTER_ACCOUNTINFO *iea, 00471 const AB_ACCOUNT *a); 00472 00479 AQBANKING_API 00480 AB_IMEXPORTER_ACCOUNTINFO* 00481 AB_ImExporterAccountInfo_dup(const AB_IMEXPORTER_ACCOUNTINFO *oldiea); 00492 AQBANKING_API 00493 const char* 00494 AB_ImExporterAccountInfo_GetBankCode(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00495 AQBANKING_API 00496 void AB_ImExporterAccountInfo_SetBankCode(AB_IMEXPORTER_ACCOUNTINFO *iea, 00497 const char *s); 00498 00502 AQBANKING_API 00503 const char* 00504 AB_ImExporterAccountInfo_GetBankName(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00505 AQBANKING_API 00506 void AB_ImExporterAccountInfo_SetBankName(AB_IMEXPORTER_ACCOUNTINFO *iea, 00507 const char *s); 00508 00513 AQBANKING_API 00514 const char* 00515 AB_ImExporterAccountInfo_GetAccountNumber(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00516 AQBANKING_API 00517 void AB_ImExporterAccountInfo_SetAccountNumber(AB_IMEXPORTER_ACCOUNTINFO *iea, 00518 const char *s); 00519 00524 AQBANKING_API 00525 const char* 00526 AB_ImExporterAccountInfo_GetAccountName(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00527 AQBANKING_API 00528 void AB_ImExporterAccountInfo_SetAccountName(AB_IMEXPORTER_ACCOUNTINFO *iea, 00529 const char *s); 00530 00534 AQBANKING_API 00535 const char* 00536 AB_ImExporterAccountInfo_GetIban(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00537 AQBANKING_API 00538 void AB_ImExporterAccountInfo_SetIban(AB_IMEXPORTER_ACCOUNTINFO *iea, 00539 const char *s); 00540 00541 00545 AQBANKING_API 00546 const char* 00547 AB_ImExporterAccountInfo_GetBic(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00548 AQBANKING_API 00549 void AB_ImExporterAccountInfo_SetBic(AB_IMEXPORTER_ACCOUNTINFO *iea, 00550 const char *s); 00551 00555 AQBANKING_API 00556 const char* 00557 AB_ImExporterAccountInfo_GetCurrency(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00558 00559 AQBANKING_API 00560 void AB_ImExporterAccountInfo_SetCurrency(AB_IMEXPORTER_ACCOUNTINFO *iea, 00561 const char *s); 00562 00563 00568 AQBANKING_API 00569 const char* 00570 AB_ImExporterAccountInfo_GetOwner(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00571 AQBANKING_API 00572 void AB_ImExporterAccountInfo_SetOwner(AB_IMEXPORTER_ACCOUNTINFO *iea, 00573 const char *s); 00574 00575 AQBANKING_API 00576 AB_ACCOUNT_TYPE 00577 AB_ImExporterAccountInfo_GetType(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00578 AQBANKING_API 00579 void AB_ImExporterAccountInfo_SetType(AB_IMEXPORTER_ACCOUNTINFO *iea, 00580 AB_ACCOUNT_TYPE t); 00581 00582 AQBANKING_API 00583 const char* 00584 AB_ImExporterAccountInfo_GetDescription(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00585 AQBANKING_API 00586 void AB_ImExporterAccountInfo_SetDescription(AB_IMEXPORTER_ACCOUNTINFO *iea, 00587 const char *s); 00588 00592 AQBANKING_API 00593 uint32_t AB_ImExporterAccountInfo_GetAccountId(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00594 00595 AQBANKING_API 00596 void AB_ImExporterAccountInfo_SetAccountId(AB_IMEXPORTER_ACCOUNTINFO *iea, uint32_t id); 00597 00609 AQBANKING_API 00610 void AB_ImExporterAccountInfo_AddTransaction(AB_IMEXPORTER_ACCOUNTINFO *iea, 00611 AB_TRANSACTION *t); 00616 AQBANKING_API 00617 AB_TRANSACTION* 00618 AB_ImExporterAccountInfo_GetFirstTransaction(AB_IMEXPORTER_ACCOUNTINFO *iea); 00619 00624 AQBANKING_API 00625 AB_TRANSACTION* 00626 AB_ImExporterAccountInfo_GetNextTransaction(AB_IMEXPORTER_ACCOUNTINFO *iea); 00627 00638 typedef const AB_TRANSACTION * 00639 (AB_TRANSACTION_CONSTLIST2_FOREACH)(const AB_TRANSACTION *element, 00640 void *user_data); 00641 00666 AQBANKING_API 00667 const AB_TRANSACTION* 00668 AB_ImExporterAccountInfo_TransactionsForEach(AB_IMEXPORTER_ACCOUNTINFO *iea, 00669 AB_TRANSACTION_CONSTLIST2_FOREACH func, 00670 void* user_data); 00671 00672 AQBANKING_API 00673 int AB_ImExporterAccountInfo_GetTransactionCount(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00674 00678 AQBANKING_API 00679 void AB_ImExporterAccountInfo_ClearTransactions(AB_IMEXPORTER_ACCOUNTINFO *iea); 00680 00691 AQBANKING_API 00692 void AB_ImExporterAccountInfo_AddAccountStatus(AB_IMEXPORTER_ACCOUNTINFO *iea, 00693 AB_ACCOUNT_STATUS *st); 00694 00700 AQBANKING_API 00701 AB_ACCOUNT_STATUS* 00702 AB_ImExporterAccountInfo_GetFirstAccountStatus(AB_IMEXPORTER_ACCOUNTINFO *iea); 00703 00708 AQBANKING_API 00709 AB_ACCOUNT_STATUS* 00710 AB_ImExporterAccountInfo_GetNextAccountStatus(AB_IMEXPORTER_ACCOUNTINFO *iea); 00718 00731 AQBANKING_API 00732 void AB_ImExporterAccountInfo_AddStandingOrder(AB_IMEXPORTER_ACCOUNTINFO *iea, 00733 AB_TRANSACTION *t); 00747 AQBANKING_API 00748 AB_TRANSACTION* 00749 AB_ImExporterAccountInfo_GetFirstStandingOrder(AB_IMEXPORTER_ACCOUNTINFO *iea); 00750 00764 AQBANKING_API 00765 AB_TRANSACTION* 00766 AB_ImExporterAccountInfo_GetNextStandingOrder(AB_IMEXPORTER_ACCOUNTINFO *iea); 00767 00768 AQBANKING_API 00769 int AB_ImExporterAccountInfo_GetStandingOrderCount(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00770 00794 AQBANKING_API 00795 void AB_ImExporterAccountInfo_AddTransfer(AB_IMEXPORTER_ACCOUNTINFO *iea, 00796 AB_TRANSACTION *t); 00812 AQBANKING_API 00813 AB_TRANSACTION* 00814 AB_ImExporterAccountInfo_GetFirstTransfer(AB_IMEXPORTER_ACCOUNTINFO *iea); 00815 00831 AQBANKING_API 00832 AB_TRANSACTION* 00833 AB_ImExporterAccountInfo_GetNextTransfer(AB_IMEXPORTER_ACCOUNTINFO *iea); 00834 00835 AQBANKING_API 00836 int AB_ImExporterAccountInfo_GetTransferCount(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00837 00858 AQBANKING_API 00859 void AB_ImExporterAccountInfo_AddDatedTransfer(AB_IMEXPORTER_ACCOUNTINFO *iea, 00860 AB_TRANSACTION *t); 00874 AQBANKING_API 00875 AB_TRANSACTION* 00876 AB_ImExporterAccountInfo_GetFirstDatedTransfer(AB_IMEXPORTER_ACCOUNTINFO *iea); 00877 00891 AQBANKING_API 00892 AB_TRANSACTION* 00893 AB_ImExporterAccountInfo_GetNextDatedTransfer(AB_IMEXPORTER_ACCOUNTINFO *iea); 00894 00895 AQBANKING_API 00896 int AB_ImExporterAccountInfo_GetDatedTransferCount(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00897 00917 AQBANKING_API 00918 void AB_ImExporterAccountInfo_AddNotedTransaction(AB_IMEXPORTER_ACCOUNTINFO *iea, 00919 AB_TRANSACTION *t); 00933 AQBANKING_API 00934 AB_TRANSACTION* 00935 AB_ImExporterAccountInfo_GetFirstNotedTransaction(AB_IMEXPORTER_ACCOUNTINFO *iea); 00936 00950 AQBANKING_API 00951 AB_TRANSACTION* 00952 AB_ImExporterAccountInfo_GetNextNotedTransaction(AB_IMEXPORTER_ACCOUNTINFO *iea); 00953 00954 AQBANKING_API 00955 int AB_ImExporterAccountInfo_GetNotedTransactionCount(const AB_IMEXPORTER_ACCOUNTINFO *iea); 00956 00961 /* defgroup */ 00962 00963 00973 AQBANKING_API 00974 void AB_ImExporter_Utf8ToDta(const char *p, int size, GWEN_BUFFER *buf); 00975 00979 AQBANKING_API 00980 void AB_ImExporter_DtaToUtf8(const char *p, int size, GWEN_BUFFER *buf); 00981 00982 AQBANKING_API 00983 void AB_ImExporter_Iso8859_1ToUtf8(const char *p, 00984 int size, 00985 GWEN_BUFFER *buf); 00986 00987 AQBANKING_DEPRECATED AQBANKING_API 00988 int AH_ImExporter_DbFromIso8859_1ToUtf8(GWEN_DB_NODE *db); 00989 00994 AQBANKING_API 00995 int AB_ImExporter_DbFromIso8859_1ToUtf8(GWEN_DB_NODE *db); 00996 00997 AQBANKING_API 00998 GWEN_TIME *AB_ImExporter_DateFromString(const char *p, 00999 const char *tmpl, 01000 int inUtc); 01001 01002 01007 #ifdef __cplusplus 01008 } 01009 #endif 01010 01011 01012 01013 01014 #endif /* AQBANKING_IMEXPORTER_H */ 01015 01016