[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