File indexing completed on 2024-04-28 16:30:08

0001 /***************************************************************************
0002  * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr
0003  * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  ***************************************************************************/
0006 /** @file
0007  * This file implements classes SKGBankObject.
0008  *
0009  * @author Stephane MANKOWSKI / Guillaume DE BURE
0010  */
0011 #include "skgbankobject.h"
0012 
0013 #include <klocalizedstring.h>
0014 
0015 #include "skgaccountobject.h"
0016 #include "skgdocumentbank.h"
0017 
0018 SKGBankObject::SKGBankObject(): SKGBankObject(nullptr)
0019 {}
0020 
0021 SKGBankObject::SKGBankObject(SKGDocument* iDocument, int iID): SKGNamedObject(iDocument, QStringLiteral("v_bank"), iID)
0022 {}
0023 
0024 SKGBankObject::~SKGBankObject()
0025     = default;
0026 
0027 SKGBankObject::SKGBankObject(const SKGBankObject& iObject)
0028     = default;
0029 
0030 SKGBankObject::SKGBankObject(const SKGNamedObject& iObject)
0031 {
0032     if (iObject.getRealTable() == QStringLiteral("bank")) {
0033         copyFrom(iObject);
0034     } else {
0035         *this = SKGNamedObject(iObject.getDocument(), QStringLiteral("v_bank"), iObject.getID());
0036     }
0037 }
0038 
0039 SKGBankObject::SKGBankObject(const SKGObjectBase& iObject)
0040 {
0041     if (iObject.getRealTable() == QStringLiteral("bank")) {
0042         copyFrom(iObject);
0043     } else {
0044         *this = SKGNamedObject(iObject.getDocument(), QStringLiteral("v_bank"), iObject.getID());
0045     }
0046 }
0047 
0048 SKGBankObject& SKGBankObject::operator= (const SKGObjectBase& iObject)
0049 {
0050     copyFrom(iObject);
0051     return *this;
0052 }
0053 
0054 SKGBankObject& SKGBankObject::operator= (const SKGBankObject& iObject)
0055 {
0056     copyFrom(iObject);
0057     return *this;
0058 }
0059 
0060 SKGError SKGBankObject::addAccount(SKGAccountObject& oAccount)
0061 {
0062     SKGError err;
0063     if (getID() == 0) {
0064         err = SKGError(ERR_FAIL, i18nc("Error message", "%1 failed because linked object is not yet saved in the database.", QStringLiteral("SKGBankObject::addAccount")));
0065     } else {
0066         oAccount = SKGAccountObject(qobject_cast<SKGDocumentBank*>(getDocument()));
0067         err = oAccount.setAttribute(QStringLiteral("rd_bank_id"), SKGServices::intToString(getID()));
0068     }
0069     return err;
0070 }
0071 
0072 SKGError SKGBankObject::getAccounts(SKGListSKGObjectBase& oAccountList) const
0073 {
0074     SKGError err = getDocument()->getObjects(QStringLiteral("v_account"),
0075                    "rd_bank_id=" % SKGServices::intToString(getID()),
0076                    oAccountList);
0077     return err;
0078 }
0079 
0080 SKGError SKGBankObject::setNumber(const QString& iNumber)
0081 {
0082     return setAttribute(QStringLiteral("t_bank_number"), iNumber);
0083 }
0084 
0085 QString SKGBankObject::getNumber() const
0086 {
0087     return getAttribute(QStringLiteral("t_bank_number"));
0088 }
0089 
0090 SKGError SKGBankObject::setIcon(const QString& iIcon)
0091 {
0092     return setAttribute(QStringLiteral("t_icon"), iIcon);
0093 }
0094 
0095 QString SKGBankObject::getIcon() const
0096 {
0097     return getAttribute(QStringLiteral("t_icon"));
0098 }
0099 
0100 double SKGBankObject::getCurrentAmount() const
0101 {
0102     return SKGServices::stringToDouble(getAttributeFromView(QStringLiteral("v_bank_amount"), QStringLiteral("f_CURRENTAMOUNT")));
0103 }
0104