File indexing completed on 2024-05-26 05:09:14

0001 /*
0002     SPDX-FileCopyrightText: 2013-2015 Christian Dávid <christian-david@web.de>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 /**
0007  * @file Helper functions for using aqbanking with KMyMoney
0008  *
0009  * These functions are similar to the ones in aqbanking. They are meant as glue between aqbanking and KMyMoney.
0010  *
0011  */
0012 #ifndef AQBANKINGKMMOPERATORS_H
0013 #define AQBANKINGKMMOPERATORS_H
0014 
0015 #include <QSharedPointer>
0016 
0017 #include "onlinetasks/interfaces/tasks/ionlinetasksettings.h"
0018 #include "onlinetasks/sepa/sepaonlinetransfer.h"
0019 
0020 struct AB_ACCOUNT_SPEC;
0021 struct AB_TRANSACTION_LIMITS;
0022 struct AB_TRANSACTION;
0023 struct AB_VALUE;
0024 
0025 namespace payeeIdentifiers
0026 {
0027 class ibanBic;
0028 class nationalAccount;
0029 }
0030 
0031 /**
0032  * @brief AB_TransactionLimits_toSepaOnlineTaskSettings
0033  * @param aqlimits IN
0034  */
0035 QSharedPointer<sepaOnlineTransfer::settings> AB_TransactionLimits_toSepaOnlineTaskSettings(const AB_TRANSACTION_LIMITS* aqlimits);
0036 
0037 /**
0038  * @brief AB_Transaction_SetRemoteAccount
0039  * @param transaction
0040  * @param ident
0041  */
0042 void AB_Transaction_SetRemoteAccount(AB_TRANSACTION* transaction, const payeeIdentifiers::ibanBic& ident);
0043 
0044 void AB_Transaction_SetRemoteAccount(AB_TRANSACTION* transaction, const payeeIdentifiers::nationalAccount& ident);
0045 
0046 /**
0047  * @brief Set local account of transaction by aqBanking account ptr
0048  */
0049 void AB_Transaction_SetLocalAccount(AB_TRANSACTION* transaction, const AB_ACCOUNT_SPEC* account);
0050 
0051 /**
0052  * @brief AB_Transaction_SetLocalAccount
0053  * @param transaction
0054  * @param ident
0055  */
0056 void AB_Transaction_SetLocalAccount(AB_TRANSACTION* transaction, const payeeIdentifiers::nationalAccount& ident);
0057 
0058 /**
0059  * @brief Set local account of transaction from list
0060  *
0061  * Will check if an element of accountNumbers is valid and if it is payeeIdentifiers::ibanBic or payeeIdentifiers::natinalAccount.
0062  * If such a payeeIdentifier is found, it is set as local account for @c transaction
0063  *
0064  * @return true if a valid payeeIdentifiers::natinalAccount was set
0065  */
0066 bool AB_Transaction_SetLocalAccount(AB_TRANSACTION* transaction, const QList<payeeIdentifier>& accountNumbers);
0067 
0068 /**
0069  * @brief Create AB_VALUE from MyMoneyMoney
0070  *
0071  * @return caller gains ownership
0072  */
0073 AB_VALUE* AB_Value_fromMyMoneyMoney(const MyMoneyMoney& input);
0074 
0075 /**
0076  * @brief Convert AB_VALUE to MyMoneyMoney
0077  */
0078 MyMoneyMoney AB_Value_toMyMoneyMoney(const AB_VALUE *const value);
0079 
0080 #endif // AQBANKINGKMMOPERATORS_H