aqbanking  5.0.22
imexporter.h
Go to the documentation of this file.
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