diff --git a/www/pages/gutschrift.php b/www/pages/gutschrift.php
index b77715e7..3545b9d2 100644
--- a/www/pages/gutschrift.php
+++ b/www/pages/gutschrift.php
@@ -1397,24 +1397,7 @@ class Gutschrift extends GenGutschrift
   {
     $this->app->Tpl->Set('UEBERSCHRIFT', 'Gutschriften');
 
-    $this->app->DB->Update("UPDATE gutschrift SET zahlungsstatus='offen' WHERE zahlungsstatus=''");
-
-    // First refresh all open items
-    $openids = $this->app->DB->SelectArr("SELECT id, waehrung from gutschrift WHERE zahlungsstatus != 'bezahlt'");
-
-    foreach ($openids as $openid) {
-        $saldo = $this->app->erp->GetSaldoDokument($openid['id'],'gutschrift');
-
-        if (!empty($saldo)) {
-            if ($saldo['waehrung'] == $openid['waehrung']) {
-                $sql = "UPDATE gutschrift SET ist = soll-'".$saldo['betrag']."' WHERE id=".$openid['id'];
-                $result = $this->app->DB->Update($sql);
-            } 
-        }
-        else {
-            $this->app->DB->Update("UPDATE gutschrift SET ist = null WHERE id=".$openid['id']);
-        }
-    }
+    $this->app->DB->Update("UPDATE gutschrift SET zahlungsstatus='offen' WHERE zahlungsstatus=''"); 
 
     if($this->app->Secure->GetPOST('ausfuehren') && $this->app->erp->RechteVorhanden('gutschrift', 'edit')) {
       $drucker = $this->app->Secure->GetPOST('seldrucker');
@@ -1659,6 +1642,28 @@ class Gutschrift extends GenGutschrift
       }      
     }
 
+   // refresh all open items
+    $openids = $this->app->DB->SelectArr("SELECT id, waehrung from gutschrift WHERE zahlungsstatus != 'bezahlt'");
+
+    foreach ($openids as $openid) {
+        $saldo = $this->app->erp->GetSaldoDokument($openid['id'],'gutschrift');
+
+        if (!empty($saldo)) {            
+            if ($saldo['waehrung'] == $openid['waehrung']) {
+                $sql = "UPDATE 
+                            gutschrift
+                        SET
+                            ist = ".$saldo['betrag']."+soll,
+                            zahlungsstatus = IF(".$saldo['betrag']." = 0,'bezahlt','offen')
+                        WHERE id=".$openid['id'];
+                $this->app->DB->Update($sql);
+            } 
+        }
+        else {
+            $this->app->DB->Update("UPDATE gutschrift SET ist = null WHERE id=".$openid['id']);
+        }
+    }
+
     $backurl = $this->app->Secure->GetGET('backurl');
     $backurl = $this->app->erp->base64_url_decode($backurl);
 
diff --git a/www/pages/rechnung.php b/www/pages/rechnung.php
index c68ae2ed..bace78c6 100644
--- a/www/pages/rechnung.php
+++ b/www/pages/rechnung.php
@@ -2063,24 +2063,7 @@ class Rechnung extends GenRechnung
   public function RechnungList()
   {
 
-    $this->app->DB->Update("UPDATE rechnung SET zahlungsstatus='offen' WHERE zahlungsstatus=''");
-
-    // First refresh all open items
-    $openids = $this->app->DB->SelectArr("SELECT id, waehrung from rechnung WHERE zahlungsstatus = 'offen'");
-
-    foreach ($openids as $openid) {
-        $saldo = $this->app->erp->GetSaldoDokument($openid['id'],'rechnung');
-
-        if (!empty($saldo)) {
-            if ($saldo['waehrung'] == $openid['waehrung']) {
-                $sql = "UPDATE rechnung SET ist = ".$saldo['betrag']."+soll WHERE id=".$openid['id'];
-                $this->app->DB->Update($sql);
-            } 
-        }
-        else {
-            $this->app->DB->Update("UPDATE rechnung SET ist = null WHERE id=".$openid['id']);        
-        }
-    }  
+    $this->app->DB->Update("UPDATE rechnung SET zahlungsstatus='offen' WHERE zahlungsstatus=''");    
 
     if($this->app->Secure->GetPOST('ausfuehren') && $this->app->erp->RechteVorhanden('rechnung', 'edit'))
     {
@@ -2262,6 +2245,28 @@ class Rechnung extends GenRechnung
       }      
     }
     
+    // refresh all open items
+    $openids = $this->app->DB->SelectArr("SELECT id, waehrung from rechnung WHERE zahlungsstatus = 'offen'");
+
+    foreach ($openids as $openid) {
+        $saldo = $this->app->erp->GetSaldoDokument($openid['id'],'rechnung');
+
+        if (!empty($saldo)) {
+            if ($saldo['waehrung'] == $openid['waehrung']) {
+                $sql = "UPDATE 
+                            rechnung
+                        SET
+                            ist = ".$saldo['betrag']."+soll,
+                            zahlungsstatus = IF(".$saldo['betrag']." = 0,'bezahlt','offen')
+                        WHERE id=".$openid['id'];
+                $this->app->DB->Update($sql);
+            } 
+        }
+        else {
+            $this->app->DB->Update("UPDATE rechnung SET ist = null WHERE id=".$openid['id']);        
+        }
+    }  
+
     $this->app->Tpl->Set('UEBERSCHRIFT','Rechnungen');
 
     $backurl = $this->app->Secure->GetGET('backurl');