summaryrefslogtreecommitdiffstats
path: root/kmymoney2/mymoney/mymoneysecurity.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-07-04 22:38:03 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-07-04 22:38:03 +0000
commitdadc34655c3ab961b0b0b94a10eaaba710f0b5e8 (patch)
tree99e72842fe687baea16376a147619b6048d7e441 /kmymoney2/mymoney/mymoneysecurity.h
downloadkmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.tar.gz
kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.zip
Added kmymoney
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmymoney2/mymoney/mymoneysecurity.h')
-rw-r--r--kmymoney2/mymoney/mymoneysecurity.h150
1 files changed, 150 insertions, 0 deletions
diff --git a/kmymoney2/mymoney/mymoneysecurity.h b/kmymoney2/mymoney/mymoneysecurity.h
new file mode 100644
index 0000000..666398e
--- /dev/null
+++ b/kmymoney2/mymoney/mymoneysecurity.h
@@ -0,0 +1,150 @@
+/***************************************************************************
+ mymoneysecurity.h - description
+ -------------------
+ begin : Tue Jan 29 2002
+ copyright : (C) 2000-2002 by Michael Edwardes
+ email : mte@users.sourceforge.net
+ Javier Campos Morales <javi_c@users.sourceforge.net>
+ Felix Rodriguez <frodriguez@users.sourceforge.net>
+ John C <thetacoturtle@users.sourceforge.net>
+ Thomas Baumgart <ipwizard@users.sourceforge.net>
+ Kevin Tambascio <ktambascio@users.sourceforge.net>
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef MYMONEYSECURITY_H
+#define MYMONEYSECURITY_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// ----------------------------------------------------------------------------
+// QT Includes
+
+#include <qdatetime.h>
+#include <qmap.h>
+
+// ----------------------------------------------------------------------------
+// KDE Includes
+
+// ----------------------------------------------------------------------------
+// Project Includes
+
+#include <kmymoney/export.h>
+#include <kmymoney/mymoneymoney.h>
+#include <kmymoney/mymoneyutils.h>
+#include <kmymoney/mymoneyobject.h>
+#include <kmymoney/mymoneykeyvaluecontainer.h>
+
+/**
+ * Class that holds all the required information about a security that the user
+ * has entered information about. A security can be a stock, a mutual fund, a bond
+ * or a currency.
+ *
+ * @author Kevin Tambascio
+ * @author Thomas Baumgart
+ */
+class KMYMONEY_EXPORT MyMoneySecurity : public MyMoneyObject, public MyMoneyKeyValueContainer
+{
+public:
+ MyMoneySecurity();
+ MyMoneySecurity(const QString& id, const MyMoneySecurity& equity);
+ MyMoneySecurity(const QString& id, const QString& name, const QString& symbol = QString(), const int partsPerUnit = 100, const int smallestCashFraction = 100, const int smallestAccountFraction = 0);
+ MyMoneySecurity(const QDomElement& node);
+ virtual ~MyMoneySecurity();
+
+ bool operator < (const MyMoneySecurity&) const;
+
+ /**
+ * This operator tests for equality of two MyMoneySecurity objects
+ */
+ bool operator == (const MyMoneySecurity&) const;
+
+ /**
+ * This operator tests for inequality of this MyMoneySecurity object
+ * and the one passed by @p r
+ *
+ * @param r the right side of the comparison
+ */
+ bool operator != (const MyMoneySecurity& r) const { return !(*this == r); }
+
+public:
+ typedef enum {
+ SECURITY_STOCK,
+ SECURITY_MUTUALFUND,
+ SECURITY_BOND,
+ SECURITY_CURRENCY,
+ SECURITY_NONE
+ } eSECURITYTYPE;
+
+ const QString& name() const { return m_name; }
+ void setName(const String& str) { m_name = str; }
+
+ const QString& tradingSymbol() const { return m_tradingSymbol; }
+ void setTradingSymbol(const String& str) { m_tradingSymbol = str; }
+
+ eSECURITYTYPE securityType() const { return m_securityType; }
+ void setSecurityType(const eSECURITYTYPE& s) { m_securityType = s; }
+ bool isCurrency(void) const { return m_securityType == SECURITY_CURRENCY; };
+
+ const QString& tradingMarket() const { return m_tradingMarket; }
+ void setTradingMarket(const QString& str) { m_tradingMarket = str; }
+
+ const QString& tradingCurrency(void) const { return m_tradingCurrency; };
+ void setTradingCurrency(const QString& str) { m_tradingCurrency = str; };
+
+ int smallestAccountFraction(void) const { return m_smallestAccountFraction; };
+ void setSmallestAccountFraction(const int sf) { m_smallestAccountFraction = sf; };
+
+ int partsPerUnit(void) const { return m_partsPerUnit; };
+ int smallestCashFraction(void) const { return m_smallestCashFraction; };
+
+ void setPartsPerUnit(const int ppu) { m_partsPerUnit = ppu; };
+ void setSmallestCashFraction(const int sf) { m_smallestCashFraction = sf; };
+
+ void writeXML(QDomDocument& document, QDomElement& parent) const;
+
+ /**
+ * This method checks if a reference to the given object exists. It returns,
+ * a @p true if the object is referencing the one requested by the
+ * parameter @p id. If it does not, this method returns @p false.
+ *
+ * @param id id of the object to be checked for references
+ * @retval true This object references object with id @p id.
+ * @retval false This object does not reference the object with id @p id.
+ */
+ bool hasReferenceTo(const QString& id) const;
+
+ /**
+ * This method is used to convert the internal representation of
+ * an security type into a human readable format
+ *
+ * @param securityType enumerated representation of the security type.
+ * For possible values, see MyMoneySecurity::eSECURITYTYPE
+ *
+ * @return QString representing the human readable form
+ */
+ static QString securityTypeToString(const MyMoneySecurity::eSECURITYTYPE securityType);
+
+
+protected:
+ QString m_name;
+ QString m_tradingSymbol;
+ QString m_tradingMarket;
+ QString m_tradingCurrency;
+ eSECURITYTYPE m_securityType;
+ int m_smallestAccountFraction;
+ int m_smallestCashFraction;
+ int m_partsPerUnit;
+};
+
+#endif