[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/office/skrooge
From: Stephane Mankowski <stephane () mankowski ! fr>
Date: 2011-02-06 17:03:08
Message-ID: 20110206170308.A8C12AC8D0 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1219161 by smankowski:
feature: Possibility to merge payees by using massive update on name of payees
M +2 -11 skgbankgui/skgobjectmodel.cpp
M +18 -0 skgbankmodeler/skgpayeeobject.cpp
M +8 -0 skgbankmodeler/skgpayeeobject.h
U skrooge_bank/skgbankpluginwidget.cpp
M +23 -0 skrooge_payee/skgpayeepluginwidget.cpp
--- trunk/extragear/office/skrooge/skgbankgui/skgobjectmodel.cpp #1219160:1219161
@@ -806,7 +806,7 @@
QStringList newItems;
if(parent.isValid()) {
- SKGBEGINTRANSACTION(*getDocument(), i18nc("Noun, name of the user \
action", "Merge payee"), err); + SKGBEGINTRANSACTION(*getDocument(), \
i18nc("Noun, name of the user action", "Merge payees"), err); SKGPayeeObject \
parentPayee = getObject(parent); while(!stream.atEnd() && err.isSucceeded()) {
int o_id;
@@ -816,18 +816,9 @@
SKGPayeeObject child(getDocument(), o_id);
err = child.load();
- SKGObjectBase::SKGListSKGObjectBase ops;
- if(err.isSucceeded()) err = child.getOperations(ops);
- int nb = ops.count();
- for(int i = 0; err.isSucceeded() && i < nb; ++i) {
- SKGOperationObject op = ops.at(i);
- err = op.setPayee(parentPayee);
- if(err.isSucceeded()) err = op.save(true, false);
+ if(err.isSucceeded()) err = parentPayee.merge(child);
}
-
- if(err.isSucceeded()) err = child.remove();
}
- }
} else if(data->hasFormat("application/skg.account.ids")) {
QByteArray encodedData = data->data("application/skg.account.ids");
QDataStream stream(&encodedData, QIODevice::ReadOnly);
--- trunk/extragear/office/skrooge/skgbankmodeler/skgpayeeobject.cpp #1219160:1219161
@@ -22,6 +22,7 @@
#include "skgpayeeobject.h"
#include "skgdocumentbank.h"
#include "skgtraces.h"
+#include "skgoperationobject.h"
#include <klocale.h>
@@ -105,4 +106,21 @@
return SKGServices::stringToDouble(getAttribute("f_CURRENTAMOUNT"));
}
+SKGError SKGPayeeObject::merge(const SKGPayeeObject& iPayee)
+{
+ SKGError err;
+
+ SKGObjectBase::SKGListSKGObjectBase ops;
+ if(err.isSucceeded()) err = iPayee.getOperations(ops);
+ int nb = ops.count();
+ for(int i = 0; err.isSucceeded() && i < nb; ++i) {
+ SKGOperationObject op = ops.at(i);
+ err = op.setPayee(*this);
+ if(err.isSucceeded()) err = op.save(true, false);
+ }
+
+ if(err.isSucceeded()) err = iPayee.remove();
+ return err;
+}
+
#include "skgpayeeobject.moc"
--- trunk/extragear/office/skrooge/skgbankmodeler/skgpayeeobject.h #1219160:1219161
@@ -104,6 +104,14 @@
* @return the current amount
*/
virtual double getCurrentAmount() const;
+
+ /**
+ * Merge iPayee in current payee
+ * @param iPayee the payee. All operations will be transferred into this payee. \
The payee will be removed + * @return an object managing the error
+ * @see SKGError
+ */
+ virtual SKGError merge(const SKGPayeeObject& iPayee);
};
/**
* Declare the class
--- trunk/extragear/office/skrooge/skrooge_payee/skgpayeepluginwidget.cpp \
#1219160:1219161 @@ -28,6 +28,7 @@
#include "skgtransactionmng.h"
#include <KAction>
+#include <kmessagebox.h>
#include <QDomDocument>
#include <QKeyEvent>
@@ -177,6 +178,28 @@
SKGObjectBase::SKGListSKGObjectBase selection = getSelectedObjects();
int nb = selection.count();
+
+ //Is it a massive modification of payees to merge them ?
+ if(nb > 1 && ui.kNameInput->text() != NOUPDATE && \
!ui.kNameInput->text().startsWith(QLatin1String("="))) { + \
QApplication::setOverrideCursor(QCursor(Qt::ArrowCursor)); + int code = \
KMessageBox::questionYesNo(this, i18nc("Question", "You are trying to modify all \
names of selected payees.\nDo you want to merge them?")); + \
QApplication::restoreOverrideCursor(); + if(code == KMessageBox::Yes) {
+ //Do the merge
+ SKGBEGINTRANSACTION(*getDocument(), i18nc("Noun, name of the user \
action", "Merge payees"), err); + SKGPayeeObject payeeObj1 = selection[0];
+ for(int i = 1; err.isSucceeded() && i < nb; ++i) {
+ SKGPayeeObject payeeObj = selection[i];
+ err = payeeObj1.merge(payeeObj);
+ }
+
+ //Change selection for the rest of the operation
+ selection.clear();
+ selection.push_back(payeeObj1);
+ nb = 1;
+ }
+ }
+
{
SKGBEGINPROGRESSTRANSACTION(*getDocument(), i18nc("Noun, name of the user \
action", "Payee update") , err, nb); for(int i = 0; err.isSucceeded() && i < nb; \
++i) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic