diff --git a/src/org/openbravo/retail/posterminal/importprocess/CashManagementImportEntryProcessor.java b/src/org/openbravo/retail/posterminal/importprocess/CashManagementImportEntryProcessor.java
--- a/src/org/openbravo/retail/posterminal/importprocess/CashManagementImportEntryProcessor.java
+++ b/src/org/openbravo/retail/posterminal/importprocess/CashManagementImportEntryProcessor.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2015 Openbravo S.L.U.
+ * Copyright (C) 2015-2016 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -10,14 +10,13 @@
 
 import javax.enterprise.context.ApplicationScoped;
 
-import org.hibernate.Query;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable;
+import org.openbravo.mobile.core.process.SerializedByTermImportEntryProcessorRunnable;
 import org.openbravo.retail.posterminal.ProcessCashMgmt;
 import org.openbravo.service.importprocess.ImportEntry;
 import org.openbravo.service.importprocess.ImportEntryManager.ImportEntryQualifier;
@@ -44,7 +43,7 @@
     return (String) DalUtil.getId(importEntry.getOrganization());
   }
 
-  private static class CashManagementRunnable extends MobileImportEntryProcessorRunnable {
+  private static class CashManagementRunnable extends SerializedByTermImportEntryProcessorRunnable {
     protected Class<? extends DataSynchronizationProcess> getDataSynchronizationClass() {
       return ProcessCashMgmt.class;
     }
@@ -72,36 +71,18 @@
       try {
         OBContext.setAdminMode(false);
 
-        if (0 < countEntries("Error", importEntry)) {
+        if (0 < super.countEntries("Error", importEntry)) {
           // if there are related error entries before this one then this is an error
           // throw an exception to move this entry also to error status
           throw new OBException("There are error records before this record " + importEntry
               + ", moving this entry also to error status.");
         }
 
-        return 0 < countEntries("Initial", importEntry);
+        return 0 < super.countEntries("Initial", importEntry);
       } finally {
         OBContext.restorePreviousMode();
       }
     }
-
-    private int countEntries(String importStatus, ImportEntry importEntry) {
-      final String whereClause = ImportEntry.PROPERTY_IMPORTSTATUS + "='" + importStatus
-          + "' and (" + ImportEntry.PROPERTY_TYPEOFDATA + "='Order' or "
-          + ImportEntry.PROPERTY_TYPEOFDATA + "='FIN_Finacc_Transaction') and "
-          + ImportEntry.PROPERTY_CREATIONDATE + "<=:creationDate and "
-          + ImportEntry.PROPERTY_CREATEDTIMESTAMP + "<:createdtimestamp and "
-          + ImportEntry.PROPERTY_OBPOSPOSTERMINAL + "=:terminal and id!=:id";
-      final Query qry = OBDal.getInstance().getSession()
-          .createQuery("select count(*) from " + ImportEntry.ENTITY_NAME + " where " + whereClause);
-      qry.setParameter("id", importEntry.getId());
-      qry.setTimestamp("creationDate", importEntry.getCreationDate());
-      qry.setParameter("terminal", importEntry.getOBPOSPOSTerminal());
-      qry.setParameter("createdtimestamp", importEntry.getCreatedtimestamp());
-
-      return ((Number) qry.uniqueResult()).intValue();
-    }
-
   }
 
 }
diff --git a/src/org/openbravo/retail/posterminal/importprocess/CashUpImportEntryProcessor.java b/src/org/openbravo/retail/posterminal/importprocess/CashUpImportEntryProcessor.java
--- a/src/org/openbravo/retail/posterminal/importprocess/CashUpImportEntryProcessor.java
+++ b/src/org/openbravo/retail/posterminal/importprocess/CashUpImportEntryProcessor.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2015 Openbravo S.L.U.
+ * Copyright (C) 2015-2016 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -11,14 +11,13 @@
 import javax.enterprise.context.ApplicationScoped;
 
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.Query;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable;
+import org.openbravo.mobile.core.process.SerializedByTermImportEntryProcessorRunnable;
 import org.openbravo.retail.posterminal.ProcessCashClose;
 import org.openbravo.service.importprocess.ImportEntry;
 import org.openbravo.service.importprocess.ImportEntryManager.ImportEntryQualifier;
@@ -46,7 +45,7 @@
     return (String) DalUtil.getId(importEntry.getOrganization());
   }
 
-  private static class CashUpRunnable extends MobileImportEntryProcessorRunnable {
+  private static class CashUpRunnable extends SerializedByTermImportEntryProcessorRunnable {
     protected Class<? extends DataSynchronizationProcess> getDataSynchronizationClass() {
       return ProcessCashClose.class;
     }
@@ -79,36 +78,18 @@
       try {
         OBContext.setAdminMode(false);
 
-        if (0 < countEntries("Error", importEntry)) {
+        if (0 < super.countEntries("Error", importEntry)) {
           // if there are related error entries before this one then this is an error
           // throw an exception to move this entry also to error status
           throw new OBException("There are error records before this record " + importEntry
               + ", moving this entry also to error status.");
         }
 
-        return 0 < countEntries("Initial", importEntry);
+        return 0 < super.countEntries("Initial", importEntry);
       } finally {
         OBContext.restorePreviousMode();
       }
     }
-
-    private int countEntries(String importStatus, ImportEntry importEntry) {
-      final String whereClause = ImportEntry.PROPERTY_IMPORTSTATUS + "='" + importStatus
-          + "' and (" + ImportEntry.PROPERTY_TYPEOFDATA + "='Order' or "
-          + ImportEntry.PROPERTY_TYPEOFDATA + "='FIN_Finacc_Transaction'  or "
-          + ImportEntry.PROPERTY_TYPEOFDATA + "='OBPOS_App_Cashup') and "
-          + ImportEntry.PROPERTY_CREATIONDATE + "<=:creationDate and "
-          + ImportEntry.PROPERTY_CREATEDTIMESTAMP + "<:createdtimestamp and "
-          + ImportEntry.PROPERTY_OBPOSPOSTERMINAL + "=:terminal and id!=:id";
-      final Query qry = OBDal.getInstance().getSession()
-          .createQuery("select count(*) from " + ImportEntry.ENTITY_NAME + " where " + whereClause);
-      qry.setParameter("id", importEntry.getId());
-      qry.setTimestamp("creationDate", importEntry.getCreationDate());
-      qry.setParameter("terminal", importEntry.getOBPOSPOSTerminal());
-      qry.setParameter("createdtimestamp", importEntry.getCreatedtimestamp());
-
-      return ((Number) qry.uniqueResult()).intValue();
-    }
   }
 
 }
diff --git a/src/org/openbravo/retail/posterminal/importprocess/OrderImportEntryProcessor.java b/src/org/openbravo/retail/posterminal/importprocess/OrderImportEntryProcessor.java
--- a/src/org/openbravo/retail/posterminal/importprocess/OrderImportEntryProcessor.java
+++ b/src/org/openbravo/retail/posterminal/importprocess/OrderImportEntryProcessor.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2015 Openbravo S.L.U.
+ * Copyright (C) 2015-2016 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -10,14 +10,13 @@
 
 import javax.enterprise.context.ApplicationScoped;
 
-import org.hibernate.Query;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable;
+import org.openbravo.mobile.core.process.SerializedByTermImportEntryProcessorRunnable;
 import org.openbravo.retail.posterminal.OrderLoader;
 import org.openbravo.service.importprocess.ImportEntry;
 import org.openbravo.service.importprocess.ImportEntryManager.ImportEntryQualifier;
@@ -44,7 +43,7 @@
     return (String) DalUtil.getId(importEntry.getOrganization());
   }
 
-  private static class OrderLoaderRunnable extends MobileImportEntryProcessorRunnable {
+  private static class OrderLoaderRunnable extends SerializedByTermImportEntryProcessorRunnable {
     protected Class<? extends DataSynchronizationProcess> getDataSynchronizationClass() {
       return OrderLoader.class;
     }
@@ -63,35 +62,19 @@
       try {
         OBContext.setAdminMode(false);
 
-        if (0 < countEntries("Error", importEntry)) {
+        if (0 < super.countEntries("Error", importEntry)) {
           // if there are related error entries before this one then this is an error
           // throw an exception to move this entry also to error status
           throw new OBException("There are error records before this record " + importEntry
               + ", moving this entry also to error status.");
         }
 
-        return 0 < countEntries("Initial", importEntry);
+        return 0 < super.countEntries("Initial", importEntry);
       } finally {
         OBContext.restorePreviousMode();
       }
     }
 
-    private int countEntries(String importStatus, ImportEntry importEntry) {
-      final String whereClause = ImportEntry.PROPERTY_IMPORTSTATUS + "='" + importStatus
-          + "' and (" + ImportEntry.PROPERTY_TYPEOFDATA + "='BusinessPartner' or "
-          + ImportEntry.PROPERTY_TYPEOFDATA + "='BusinessPartnerLocation') and "
-          + ImportEntry.PROPERTY_CREATIONDATE + "<=:creationDate and "
-          + ImportEntry.PROPERTY_CREATEDTIMESTAMP + "<:createdtimestamp and "
-          + ImportEntry.PROPERTY_OBPOSPOSTERMINAL + "=:terminal and id!=:id";
-      final Query qry = OBDal.getInstance().getSession()
-          .createQuery("select count(*) from " + ImportEntry.ENTITY_NAME + " where " + whereClause);
-      qry.setParameter("id", importEntry.getId());
-      qry.setTimestamp("creationDate", importEntry.getCreationDate());
-      qry.setParameter("terminal", importEntry.getOBPOSPOSTerminal());
-      qry.setParameter("createdtimestamp", importEntry.getCreatedtimestamp());
-
-      return ((Number) qry.uniqueResult()).intValue();
-    }
   }
 
 }
diff --git a/src/org/openbravo/retail/posterminal/importprocess/QuotationsRejectEntryProcessor.java b/src/org/openbravo/retail/posterminal/importprocess/QuotationsRejectEntryProcessor.java
--- a/src/org/openbravo/retail/posterminal/importprocess/QuotationsRejectEntryProcessor.java
+++ b/src/org/openbravo/retail/posterminal/importprocess/QuotationsRejectEntryProcessor.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2015 Openbravo S.L.U.
+ * Copyright (C) 2015-2016 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -11,14 +11,13 @@
 import javax.enterprise.context.ApplicationScoped;
 
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.Query;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable;
+import org.openbravo.mobile.core.process.SerializedByTermImportEntryProcessorRunnable;
 import org.openbravo.retail.posterminal.QuotationsReject;
 import org.openbravo.service.importprocess.ImportEntry;
 import org.openbravo.service.importprocess.ImportEntryManager.ImportEntryQualifier;
@@ -45,7 +44,8 @@
     return (String) DalUtil.getId(importEntry.getOrganization());
   }
 
-  private static class QuotationsRejectRunnable extends MobileImportEntryProcessorRunnable {
+  private static class QuotationsRejectRunnable
+      extends SerializedByTermImportEntryProcessorRunnable {
     protected Class<? extends DataSynchronizationProcess> getDataSynchronizationClass() {
       return QuotationsReject.class;
     }
@@ -75,32 +75,18 @@
       try {
         OBContext.setAdminMode(false);
 
-        if (0 < countEntries("Error", importEntry)) {
+        if (0 < super.countEntries("Error", importEntry)) {
           // if there are related error entries before this one then this is an error
           // throw an exception to move this entry also to error status
           throw new OBException("There are error records before this record " + importEntry
               + ", moving this entry also to error status.");
         }
 
-        return 0 < countEntries("Initial", importEntry);
+        return 0 < super.countEntries("Initial", importEntry);
       } finally {
         OBContext.restorePreviousMode();
       }
     }
-
-    private int countEntries(String importStatus, ImportEntry importEntry) {
-      final String whereClause = ImportEntry.PROPERTY_IMPORTSTATUS + "='" + importStatus + "' and "
-          + ImportEntry.PROPERTY_TYPEOFDATA + "='Order' and " + ImportEntry.PROPERTY_CREATIONDATE
-          + "<:creationDate and " + ImportEntry.PROPERTY_OBPOSPOSTERMINAL
-          + "=:terminal and id!=:id";
-      final Query qry = OBDal.getInstance().getSession()
-          .createQuery("select count(*) from " + ImportEntry.ENTITY_NAME + " where " + whereClause);
-      qry.setParameter("id", importEntry.getId());
-      qry.setTimestamp("creationDate", importEntry.getCreationDate());
-      qry.setParameter("terminal", importEntry.getOBPOSPOSTerminal());
-
-      return ((Number) qry.uniqueResult()).intValue();
-    }
   }
 
 }
diff --git a/src/org/openbravo/retail/posterminal/importprocess/VoidLayawayEntryProcessor.java b/src/org/openbravo/retail/posterminal/importprocess/VoidLayawayEntryProcessor.java
--- a/src/org/openbravo/retail/posterminal/importprocess/VoidLayawayEntryProcessor.java
+++ b/src/org/openbravo/retail/posterminal/importprocess/VoidLayawayEntryProcessor.java
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2015 Openbravo S.L.U.
+ * Copyright (C) 2015-2016 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -11,14 +11,13 @@
 import javax.enterprise.context.ApplicationScoped;
 
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.Query;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable;
+import org.openbravo.mobile.core.process.SerializedByTermImportEntryProcessorRunnable;
 import org.openbravo.retail.posterminal.ProcessVoidLayaway;
 import org.openbravo.service.importprocess.ImportEntry;
 import org.openbravo.service.importprocess.ImportEntryManager.ImportEntryQualifier;
@@ -45,7 +44,7 @@
     return (String) DalUtil.getId(importEntry.getOrganization());
   }
 
-  private static class VoidLayawayRunnable extends MobileImportEntryProcessorRunnable {
+  private static class VoidLayawayRunnable extends SerializedByTermImportEntryProcessorRunnable {
     protected Class<? extends DataSynchronizationProcess> getDataSynchronizationClass() {
       return ProcessVoidLayaway.class;
     }
@@ -75,34 +74,18 @@
       try {
         OBContext.setAdminMode(false);
 
-        if (0 < countEntries("Error", importEntry)) {
+        if (0 < super.countEntries("Error", importEntry)) {
           // if there are related error entries before this one then this is an error
           // throw an exception to move this entry also to error status
           throw new OBException("There are error records before this record " + importEntry
               + ", moving this entry also to error status.");
         }
 
-        return 0 < countEntries("Initial", importEntry);
+        return 0 < super.countEntries("Initial", importEntry);
       } finally {
         OBContext.restorePreviousMode();
       }
     }
-
-    private int countEntries(String importStatus, ImportEntry importEntry) {
-      final String whereClause = ImportEntry.PROPERTY_IMPORTSTATUS + "='" + importStatus + "' and "
-          + ImportEntry.PROPERTY_TYPEOFDATA + "='Order' and " + ImportEntry.PROPERTY_CREATIONDATE
-          + "<=:creationDate and " + ImportEntry.PROPERTY_CREATEDTIMESTAMP
-          + "<:createdtimestamp and " + ImportEntry.PROPERTY_OBPOSPOSTERMINAL
-          + "=:terminal and id!=:id";
-      final Query qry = OBDal.getInstance().getSession()
-          .createQuery("select count(*) from " + ImportEntry.ENTITY_NAME + " where " + whereClause);
-      qry.setParameter("id", importEntry.getId());
-      qry.setTimestamp("creationDate", importEntry.getCreationDate());
-      qry.setParameter("terminal", importEntry.getOBPOSPOSTerminal());
-      qry.setParameter("createdtimestamp", importEntry.getCreatedtimestamp());
-
-      return ((Number) qry.uniqueResult()).intValue();
-    }
   }
 
 }
