diff --git a/web/org.openbravo.mobile.core/source/data/ob-dal.js b/web/org.openbravo.mobile.core/source/data/ob-dal.js
--- a/web/org.openbravo.mobile.core/source/data/ob-dal.js
+++ b/web/org.openbravo.mobile.core/source/data/ob-dal.js
@@ -885,93 +885,42 @@
       }
 
       if (currentTransaction) {
-        if (updateToBeChecked) {
-          OB.Dal.getInTransaction(currentTransaction, modelDefinition, model.get('id'), function (result) {
-            if (result) {
-              if (result.get('hasbeenpaid') === 'Y') {
-                OB.error('[checkBlocked][transaction][hasbeenpaid_is_yes] Wrong write in c_order avoided [' + result.get('id') + '][' + result.get('documentNo') + '] - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
+        try {
+          if (updateToBeChecked) {
+            currentTransaction.executeSql(sql + " AND hasbeenpaid = 'N'", params, function (trx, result) {
+              if (result.rowsAffected !== 1) {
+                OB.error('[checkBlocked][transaction]The order does not exists or is frozen. Wrong write in c_order avoided [' + model.get('id') + '][' + model.get('documentNo') + '] - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
+              }
+              if (successFunction) {
+                successFunction();
+              }
+            }, processError);
+
+          } else {
+            currentTransaction.executeSql(sql, params, silentFunction(successFunction), processError);
+          }
+        } catch (e) {
+          executeSqlErrorHandler('error', "OB.Dal.save: table", tableName, null, e, callerInfo);
+        }
+      } else {
+        OB.Data.localDB.transaction(function (tx) {
+          try {
+            if (updateToBeChecked) {
+              tx.executeSql(sql + " AND hasbeenpaid = 'N'", params, function (trx, result) {
+                if (result.rowsAffected !== 1) {
+                  OB.error('[checkBlocked][transaction]The order does not exists or is frozen. Wrong write in c_order avoided [' + model.get('id') + '][' + model.get('documentNo') + '] - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
+                }
                 if (successFunction) {
                   successFunction();
                 }
-              } else {
-                try {
-                  currentTransaction.executeSql(sql, params, silentFunction(successFunction), processError);
-                } catch (e) {
-                  executeSqlErrorHandler('error', "OB.Dal.save: table", tableName, null, e, callerInfo);
-                }
-              }
+              }, processError);
             } else {
-              //no results
-              OB.warn('[checkBlocked][transaction] No result after getInTransaction for [' + model.get('id') + '][' + model.get('documentNo') + ']. This update doesnt make sense - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
-              if (successFunction) {
-                successFunction();
-              }
+              tx.executeSql(sql, params, silentFunction(successFunction), processError);
             }
-          }, function () {
-            OB.error('[checkBlocked][transaction] Error for [' + model.get('id') + '][' + model.get('documentNo') + '] - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
-            if (error) {
-              error();
-            }
-          }, function () {
-            //no results
-            OB.warn('[checkBlocked][transaction] No result after getInTransaction for [' + model.get('id') + '][' + model.get('documentNo') + ']. This update doesnt make sense - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
-            if (successFunction) {
-              successFunction();
-            }
-          });
-        } else {
-          try {
-            currentTransaction.executeSql(sql, params, silentFunction(successFunction), processError);
           } catch (e) {
             executeSqlErrorHandler('error', "OB.Dal.save: table", tableName, null, e, callerInfo);
           }
-        }
-      } else {
-        if (updateToBeChecked) {
-          OB.Data.localDB.transaction(function (tx) {
-            OB.Dal.getInTransaction(tx, modelDefinition, model.get('id'), function (result) {
-              if (result) {
-                if (result.get('hasbeenpaid') === 'Y') {
-                  OB.error('[checkBlocked][no-transaction][hasbeenpaid_is_yes] Wrong write in c_order avoided [' + result.get('id') + '][' + result.get('documentNo') + '] - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
-                  if (successFunction) {
-                    successFunction();
-                  }
-                } else {
-                  try {
-                    tx.executeSql(sql, params, silentFunction(successFunction), processError);
-                  } catch (e) {
-                    executeSqlErrorHandler('error', "OB.Dal.save: table", tableName, null, e, callerInfo);
-                  }
-                }
-              } else {
-                //no results
-                OB.warn('[checkBlocked][no-transaction] No result after getInTransaction for [' + model.get('id') + '][' + model.get('documentNo') + ']. This update doesnt make sense - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
-                if (successFunction) {
-                  successFunction();
-                }
-              }
-            }, function () {
-              OB.error('[checkBlocked][no-transaction] Error for [' + model.get('id') + '][' + model.get('documentNo') + ']');
-              if (error) {
-                error();
-              }
-            }, function () {
-              //no results
-              OB.warn('[checkBlocked][no-transaction] No result after getInTransaction for [' + model.get('id') + '][' + model.get('documentNo') + ']. This update doesnt make sense - Caller: ' + caller + ' - callerInfo: ' + callerInfo);
-              if (successFunction) {
-                successFunction();
-              }
-            });
-          });
-        } else {
-          OB.Data.localDB.transaction(function (tx) {
-            try {
-              tx.executeSql(sql, params, silentFunction(successFunction), processError);
-            } catch (e) {
-              executeSqlErrorHandler('error', "OB.Dal.save: table", tableName, null, e, callerInfo);
-            }
-          });
-        }
+        });
       }
     } else {
       this.missingLocalStorageLogic();
