/*************************************************************************** mymoneyinstitution.cpp ------------------- copyright : (C) 2001 by Michael Edwardes, 2002-2005 by Thomas Baumgart email : mte@users.sourceforge.net, ipwizard@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. * * * ***************************************************************************/ // ---------------------------------------------------------------------------- // QT Includes // ---------------------------------------------------------------------------- // KDE Includes #include #include // ---------------------------------------------------------------------------- // Project Includes #include "mymoneyinstitution.h" #include MyMoneyInstitution::MyMoneyInstitution() { } MyMoneyInstitution::MyMoneyInstitution(const TQString& id, const MyMoneyInstitution& right) : MyMoneyObject(id) { *this = right; m_id = id; } MyMoneyInstitution::MyMoneyInstitution(const TQString& name, const TQString& town, const TQString& street, const TQString& postcode, const TQString& telephone, const TQString& manager, const TQString& sortcode) { clearId(); m_name = name; m_town = town; m_street = street; m_postcode = postcode; m_telephone = telephone; m_manager = manager; m_sortcode = sortcode; } MyMoneyInstitution::MyMoneyInstitution(const TQDomElement& node) : MyMoneyObject(node), MyMoneyKeyValueContainer(node.elementsByTagName("KEYVALUEPAIRS").item(0).toElement()) { if("INSTITUTION" != node.tagName()) throw new MYMONEYEXCEPTION("Node was not INSTITUTION"); m_sortcode = node.attribute("sortcode"); m_name = node.attribute("name"); m_manager = node.attribute("manager"); TQDomNodeList nodeList = node.elementsByTagName("ADDRESS"); if(nodeList.count() == 0) { TQString msg = TQString("No ADDRESS in institution %1").arg(m_name); throw new MYMONEYEXCEPTION(msg); } TQDomElement addrNode = nodeList.item(0).toElement(); m_street = addrNode.attribute("street"); m_town = addrNode.attribute("city"); m_postcode = addrNode.attribute("zip"); m_telephone = addrNode.attribute("telephone"); m_accountList.clear(); nodeList = node.elementsByTagName("ACCOUNTIDS"); if(nodeList.count() > 0) { nodeList = nodeList.item(0).toElement().elementsByTagName("ACCOUNTID"); for(unsigned int i = 0; i < nodeList.count(); ++i) { m_accountList << nodeList.item(i).toElement().attribute("id"); } } } MyMoneyInstitution::~MyMoneyInstitution() { } void MyMoneyInstitution::addAccountId(const TQString& account) { // only add this account if it is not yet presently in the list if(m_accountList.contains(account) == 0) m_accountList.append(account); } TQString MyMoneyInstitution::removeAccountId(const TQString& account) { TQStringList::Iterator pos; TQString rc; pos = m_accountList.find(account); if(pos != m_accountList.end()) { m_accountList.remove(pos); rc = account; } return rc; } bool MyMoneyInstitution::operator < (const MyMoneyInstitution& right) const { return m_name < right.m_name; } bool MyMoneyInstitution::operator == (const MyMoneyInstitution& right) const { if (MyMoneyObject::operator==(right) && ((m_name.length() == 0 && right.m_name.length() == 0) || (m_name == right.m_name)) && ((m_town.length() == 0 && right.m_town.length() == 0) || (m_town == right.m_town)) && ((m_street.length() == 0 && right.m_street.length() == 0) || (m_street == right.m_street)) && ((m_postcode.length() == 0 && right.m_postcode.length() == 0) || (m_postcode == right.m_postcode)) && ((m_telephone.length() == 0 && right.m_telephone.length() == 0) || (m_telephone == right.m_telephone)) && ((m_sortcode.length() == 0 && right.m_sortcode.length() == 0) || (m_sortcode == right.m_sortcode)) && ((m_manager.length() == 0 && right.m_manager.length() == 0) || (m_manager == right.m_manager)) && (m_accountList == right.m_accountList) ) { return true; } else return false; } void MyMoneyInstitution::writeXML(TQDomDocument& document, TQDomElement& parent) const { TQDomElement el = document.createElement("INSTITUTION"); writeBaseXML(document, el); el.setAttribute("name", m_name); el.setAttribute("manager", m_manager); el.setAttribute("sortcode", m_sortcode); TQDomElement address = document.createElement("ADDRESS"); address.setAttribute("street", m_street); address.setAttribute("city", m_town); address.setAttribute("zip", m_postcode); address.setAttribute("telephone", m_telephone); el.appendChild(address); TQDomElement accounts = document.createElement("ACCOUNTIDS"); for(TQStringList::ConstIterator it = accountList().begin(); it != accountList().end(); ++it){ TQDomElement temp = document.createElement("ACCOUNTID"); temp.setAttribute("id", (*it)); accounts.appendChild(temp); } el.appendChild(accounts); //Add in Key-Value Pairs for institutions. MyMoneyKeyValueContainer::writeXML(document, el); parent.appendChild(el); } bool MyMoneyInstitution::hasReferenceTo(const TQString& /* id */) const { bool rc = false; return rc; } TQPixmap MyMoneyInstitution::pixmap() const { return TQPixmap(TDEGlobal::dirs()->findResource("appdata",TQString( "icons/hicolor/22x22/actions/%1.png").arg("bank"))); }