File indexing completed on 2024-05-19 05:07:26

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 #ifndef ONLINEJOB_P_H
0007 #define ONLINEJOB_P_H
0008 
0009 #include "onlinejob.h"
0010 
0011 #include <QDateTime>
0012 #include <QHash>
0013 #include <QMap>
0014 
0015 #include "mymoneyenums.h"
0016 #include "mymoneyobject_p.h"
0017 #include "onlinejobmessage.h"
0018 #include "tasks/onlinetask.h"
0019 
0020 namespace eMyMoney {
0021 namespace OnlineJob {
0022 enum class sendingState;
0023 }
0024 }
0025 
0026 class onlineJobPrivate : public MyMoneyObjectPrivate
0027 {
0028 public:
0029     onlineJobPrivate(onlineJob* qq)
0030         : MyMoneyObjectPrivate()
0031         , q(qq)
0032         , m_jobBankAnswerState(eMyMoney::OnlineJob::sendingState::noBankAnswer)
0033         , m_locked(false)
0034     {
0035     }
0036 
0037     onlineJobPrivate(onlineJob* qq, const onlineJobPrivate& dd)
0038         : MyMoneyObjectPrivate(dd)
0039         , q(qq)
0040         , m_jobSend(dd.m_jobSend)
0041         , m_jobBankAnswerDate(dd.m_jobBankAnswerDate)
0042         , m_jobBankAnswerState(dd.m_jobBankAnswerState)
0043         , m_messageList(dd.m_messageList)
0044         , m_locked(dd.m_locked)
0045     {
0046     }
0047 
0048     void collectReferencedObjects() override
0049     {
0050         // this looks strange but triggers to
0051         // collect the referenced objects
0052         q->setTask(q->task());
0053     }
0054 
0055     onlineJob* q;
0056 
0057     /**
0058      * @brief Date-time the job was sent to the bank
0059      *
0060      * This does not mean an answer was given by the bank
0061      */
0062     QDateTime m_jobSend;
0063 
0064     /**
0065      * @brief Date-time of confirmation/rejection of the bank
0066      *
0067      * which state this timestamp belongs to is stored in m_jobBankAnswerState
0068      */
0069     QDateTime m_jobBankAnswerDate;
0070 
0071     /**
0072      * @brief Answer of the bank
0073      *
0074      * combined with m_jobBankAnswerDate
0075      */
0076     eMyMoney::OnlineJob::sendingState m_jobBankAnswerState;
0077 
0078     /**
0079      * @brief Validation result status
0080      */
0081     QList<onlineJobMessage> m_messageList;
0082 
0083     /**
0084      * @brief Locking state
0085      */
0086     bool m_locked;
0087 };
0088 
0089 #endif