Attached Files | diffErrorWhileImportingRetail.diff [^] (19,605 bytes) 2015-03-31 11:00 [Show Content] [Hide Content]diff --git a/src-db/database/model/tables/OBPOS_ERRORS.xml b/src-db/database/model/tables/OBPOS_ERRORS.xml
--- a/src-db/database/model/tables/OBPOS_ERRORS.xml
+++ b/src-db/database/model/tables/OBPOS_ERRORS.xml
@@ -61,6 +61,10 @@
<default/>
<onCreateDefault/>
</column>
+ <column name="ATTEMPTS" primaryKey="false" required="false" type="DECIMAL" size="3,0" autoIncrement="false">
+ <default><![CDATA[0]]></default>
+ <onCreateDefault/>
+ </column>
<foreign-key foreignTable="AD_CLIENT" name="OBPOS_ERRORS_CLIENT">
<reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
</foreign-key>
diff --git a/src-db/database/sourcedata/AD_COLUMN.xml b/src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml
+++ b/src-db/database/sourcedata/AD_COLUMN.xml
@@ -2615,6 +2615,40 @@
<!--35EBF89A71054EDC840346811D362285--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
<!--35EBF89A71054EDC840346811D362285--></AD_COLUMN>
+<!--36F400E6BA974C828E1A6708ED16ED0F--><AD_COLUMN>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_COLUMN_ID><![CDATA[36F400E6BA974C828E1A6708ED16ED0F]]></AD_COLUMN_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <NAME><![CDATA[Attempts]]></NAME>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <COLUMNNAME><![CDATA[Attempts]]></COLUMNNAME>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_TABLE_ID><![CDATA[0469743705E3458299DF4293C1019E4F]]></AD_TABLE_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_REFERENCE_ID><![CDATA[11]]></AD_REFERENCE_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <FIELDLENGTH><![CDATA[12]]></FIELDLENGTH>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <DEFAULTVALUE><![CDATA[0]]></DEFAULTVALUE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISKEY><![CDATA[N]]></ISKEY>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <SEQNO><![CDATA[170]]></SEQNO>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_ELEMENT_ID><![CDATA[06C48C7618644260BA0DBE9ADB9037B2]]></AD_ELEMENT_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <POSITION><![CDATA[16]]></POSITION>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--36F400E6BA974C828E1A6708ED16ED0F--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--></AD_COLUMN>
+
<!--373512FBB92943EC8EC0D6B4EAC6CF81--><AD_COLUMN>
<!--373512FBB92943EC8EC0D6B4EAC6CF81--> <AD_COLUMN_ID><![CDATA[373512FBB92943EC8EC0D6B4EAC6CF81]]></AD_COLUMN_ID>
<!--373512FBB92943EC8EC0D6B4EAC6CF81--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_ELEMENT.xml b/src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml
@@ -14,6 +14,19 @@
<!--04E35B3219FA457FAB7D3F898E74842B--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
<!--04E35B3219FA457FAB7D3F898E74842B--></AD_ELEMENT>
+<!--06C48C7618644260BA0DBE9ADB9037B2--><AD_ELEMENT>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <AD_ELEMENT_ID><![CDATA[06C48C7618644260BA0DBE9ADB9037B2]]></AD_ELEMENT_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <COLUMNNAME><![CDATA[Attempts]]></COLUMNNAME>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <NAME><![CDATA[Attempts]]></NAME>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <PRINTNAME><![CDATA[Attempts]]></PRINTNAME>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <HELP><![CDATA[Number of attempts that this record has been tried to sync]]></HELP>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2--> <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--06C48C7618644260BA0DBE9ADB9037B2--></AD_ELEMENT>
+
<!--0A061048930248768E023FE3189AE376--><AD_ELEMENT>
<!--0A061048930248768E023FE3189AE376--> <AD_ELEMENT_ID><![CDATA[0A061048930248768E023FE3189AE376]]></AD_ELEMENT_ID>
<!--0A061048930248768E023FE3189AE376--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_FIELD.xml b/src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml
+++ b/src-db/database/sourcedata/AD_FIELD.xml
@@ -2565,6 +2565,32 @@
<!--5B028B8B13CE467594812BB94CCC25D8--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
<!--5B028B8B13CE467594812BB94CCC25D8--></AD_FIELD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--><AD_FIELD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <AD_FIELD_ID><![CDATA[5B86FC88EC244CC78A5E8FDD2A2C4EB6]]></AD_FIELD_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <NAME><![CDATA[Attempts]]></NAME>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <AD_TAB_ID><![CDATA[EC4D45180BCB4EB5A78FA8E8F319FD1C]]></AD_TAB_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <AD_COLUMN_ID><![CDATA[36F400E6BA974C828E1A6708ED16ED0F]]></AD_COLUMN_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <DISPLAYLENGTH><![CDATA[12]]></DISPLAYLENGTH>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <SEQNO><![CDATA[100]]></SEQNO>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--> <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--></AD_FIELD>
+
<!--5C1AD6BD30FB4A699C69D22DFDD5FE6E--><AD_FIELD>
<!--5C1AD6BD30FB4A699C69D22DFDD5FE6E--> <AD_FIELD_ID><![CDATA[5C1AD6BD30FB4A699C69D22DFDD5FE6E]]></AD_FIELD_ID>
<!--5C1AD6BD30FB4A699C69D22DFDD5FE6E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_PROCESS.xml b/src-db/database/sourcedata/AD_PROCESS.xml
--- a/src-db/database/sourcedata/AD_PROCESS.xml
+++ b/src-db/database/sourcedata/AD_PROCESS.xml
@@ -46,4 +46,26 @@
<!--6E03EABD3B4E4E71897B6B826D522157--> <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
<!--6E03EABD3B4E4E71897B6B826D522157--></AD_PROCESS>
+<!--7C8EF159C8144D5CABD19113989388DD--><AD_PROCESS>
+<!--7C8EF159C8144D5CABD19113989388DD--> <AD_PROCESS_ID><![CDATA[7C8EF159C8144D5CABD19113989388DD]]></AD_PROCESS_ID>
+<!--7C8EF159C8144D5CABD19113989388DD--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7C8EF159C8144D5CABD19113989388DD--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7C8EF159C8144D5CABD19113989388DD--> <VALUE><![CDATA[syncAllErrors]]></VALUE>
+<!--7C8EF159C8144D5CABD19113989388DD--> <NAME><![CDATA[Sync All Errors While Importing]]></NAME>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ACCESSLEVEL><![CDATA[3]]></ACCESSLEVEL>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISUSERSTARTABLE><![CDATA[N]]></ISUSERSTARTABLE>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISREPORT><![CDATA[N]]></ISREPORT>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT>
+<!--7C8EF159C8144D5CABD19113989388DD--> <CLASSNAME><![CDATA[org.openbravo.retail.posterminal.SyncAllErrorsWhileImporting]]></CLASSNAME>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISBACKGROUND><![CDATA[Y]]></ISBACKGROUND>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISJASPER><![CDATA[N]]></ISJASPER>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE>
+<!--7C8EF159C8144D5CABD19113989388DD--> <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--7C8EF159C8144D5CABD19113989388DD--> <UIPATTERN><![CDATA[M]]></UIPATTERN>
+<!--7C8EF159C8144D5CABD19113989388DD--> <ISADVANCEDFEATURE><![CDATA[N]]></ISADVANCEDFEATURE>
+<!--7C8EF159C8144D5CABD19113989388DD--> <PREVENTCONCURRENT><![CDATA[N]]></PREVENTCONCURRENT>
+<!--7C8EF159C8144D5CABD19113989388DD--> <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
+<!--7C8EF159C8144D5CABD19113989388DD--></AD_PROCESS>
+
</data>
diff --git a/src/org/openbravo/retail/posterminal/ErrorComparator.java b/src/org/openbravo/retail/posterminal/ErrorComparator.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/retail/posterminal/ErrorComparator.java
@@ -0,0 +1,46 @@
+package org.openbravo.retail.posterminal;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.model.ad.domain.Reference;
+
+public class ErrorComparator implements Comparator<OBPOSErrors> {
+ private static String TYPES_REFERENCE = "20A228A295C844C68B4451622057A893";
+ private Map<String, Long> sequenceNumbers = new HashMap<String, Long>();
+
+ public ErrorComparator() {
+ super();
+ OBContext.setAdminMode(false);
+ try {
+ Reference ref = OBDal.getInstance().get(Reference.class, TYPES_REFERENCE);
+ for (org.openbravo.model.ad.domain.List listRef : ref.getADListList()) {
+ if (listRef.getSequenceNumber() != null) {
+ sequenceNumbers.put(listRef.getSearchKey(), listRef.getSequenceNumber());
+ }
+ }
+ } finally {
+ OBContext.restorePreviousMode();
+ }
+
+ }
+
+ @Override
+ public int compare(OBPOSErrors error1, OBPOSErrors error2) {
+ Long l1 = sequenceNumbers.get(error1.getTypeofdata());
+ Long l2 = sequenceNumbers.get(error2.getTypeofdata());
+ if (l1 == null && l2 == null) {
+ return 0;
+ } else if (l1 == null && l2 != null) {
+ return -1;
+ } else if (l1 != null && l2 == null) {
+ return 1;
+ } else {
+ return l1.compareTo(l2);
+ }
+ }
+
+}
diff --git a/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java b/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
--- a/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
+++ b/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
@@ -10,8 +10,6 @@
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -30,7 +28,6 @@
import org.openbravo.dal.service.OBDal;
import org.openbravo.erpCommon.utility.Utility;
import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.model.ad.domain.Reference;
import org.openbravo.service.db.DalConnectionProvider;
import org.openbravo.service.json.JsonConstants;
@@ -116,40 +113,3 @@
return null;
}
}
-
-class ErrorComparator implements Comparator<OBPOSErrors> {
- private static String TYPES_REFERENCE = "20A228A295C844C68B4451622057A893";
- private Map<String, Long> sequenceNumbers = new HashMap<String, Long>();
-
- public ErrorComparator() {
- super();
- OBContext.setAdminMode(false);
- try {
- Reference ref = OBDal.getInstance().get(Reference.class, TYPES_REFERENCE);
- for (org.openbravo.model.ad.domain.List listRef : ref.getADListList()) {
- if (listRef.getSequenceNumber() != null) {
- sequenceNumbers.put(listRef.getSearchKey(), listRef.getSequenceNumber());
- }
- }
- } finally {
- OBContext.restorePreviousMode();
- }
-
- }
-
- @Override
- public int compare(OBPOSErrors error1, OBPOSErrors error2) {
- Long l1 = sequenceNumbers.get(error1.getTypeofdata());
- Long l2 = sequenceNumbers.get(error2.getTypeofdata());
- if (l1 == null && l2 == null) {
- return 0;
- } else if (l1 == null && l2 != null) {
- return -1;
- } else if (l1 != null && l2 == null) {
- return 1;
- } else {
- return l1.compareTo(l2);
- }
- }
-
-}
diff --git a/src/org/openbravo/retail/posterminal/SyncAllErrorsWhileImporting.java b/src/org/openbravo/retail/posterminal/SyncAllErrorsWhileImporting.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/retail/posterminal/SyncAllErrorsWhileImporting.java
@@ -0,0 +1,112 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo Public License
+ * Version 1.0 (the "License"), being the Mozilla Public License
+ * Version 1.1 with a permitted attribution clause; you may not use this
+ * file except in compliance with the License. You may obtain a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2015 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s): ______________________________________.
+ *************************************************************************
+ */
+package org.openbravo.retail.posterminal;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import javax.enterprise.inject.Any;
+import javax.enterprise.inject.Instance;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.inject.Inject;
+
+import org.apache.log4j.Logger;
+import org.codehaus.jettison.json.JSONObject;
+import org.hibernate.criterion.Restrictions;
+import org.openbravo.base.weld.WeldUtils;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
+import org.openbravo.mobile.core.process.DataSynchronizationProcess;
+import org.openbravo.scheduling.ProcessBundle;
+import org.openbravo.scheduling.ProcessLogger;
+import org.openbravo.service.db.DalBaseProcess;
+import org.openbravo.service.json.JsonConstants;
+
+/**
+ * @author malsasua
+ *
+ */
+public class SyncAllErrorsWhileImporting extends DalBaseProcess {
+ private static final Logger log4j = Logger.getLogger(SyncAllErrorsWhileImporting.class);
+ private ProcessLogger logger;
+
+ @Inject
+ @Any
+ private Instance<POSDataSynchronizationProcess> syncProcesses;
+
+ @Override
+ protected void doExecute(ProcessBundle bundle) throws Exception {
+ logger = bundle.getLogger();
+ try {
+ OBCriteria<OBPOSErrors> queryListErrors = OBDal.getInstance().createCriteria(
+ OBPOSErrors.class);
+ queryListErrors.add(Restrictions.eq(OBPOSErrors.PROPERTY_ORDERSTATUS, "N"));
+ queryListErrors.add(Restrictions.le(OBPOSErrors.PROPERTY_ATTEMPTS, new Long("3")));
+ queryListErrors.addOrderBy(OBPOSErrors.PROPERTY_CREATIONDATE, true);
+
+ List<OBPOSErrors> listErrors = queryListErrors.list();
+ Collections.sort(listErrors, new ErrorComparator());
+
+ for (OBPOSErrors error : listErrors) {
+ String errorId = error.getId();
+ String type = error.getTypeofdata();
+
+ // RequestContext.get().setSessionAttribute("#AD_ORG_ID", "1000000");
+ POSDataSynchronizationProcess syncProcess = null;
+ BeanManager beanManager = WeldUtils.getStaticInstanceBeanManager();
+ Set<Bean<?>> beans = beanManager.getBeans(POSDataSynchronizationProcess.class,
+ new DataSynchronizationProcess.Selector(type));
+
+ for (Bean<?> bean : beans) {
+ syncProcess = (POSDataSynchronizationProcess) beanManager.getReference(bean,
+ POSDataSynchronizationProcess.class, beanManager.createCreationalContext(bean));
+ }
+ JSONObject record = new JSONObject(error.getJsoninfo());
+ record.put("posErrorId", errorId);
+ JSONObject data = new JSONObject();
+ data.put("data", record);
+ JSONObject result = syncProcess.exec(data, true);
+ try {
+ OBContext.setAdminMode(true);
+ error = OBDal.getInstance().get(OBPOSErrors.class, errorId);
+ if (result.get(JsonConstants.RESPONSE_STATUS).equals(
+ JsonConstants.RPCREQUEST_STATUS_FAILURE)) {
+ logger.logln("Record has not been synced: " + error.getIdentifier());
+ } else {
+ error.setOrderstatus("Y");
+ logger.logln("Record has been synced successfully: " + error.getIdentifier());
+ }
+ error.setAttempts(error.getAttempts() + 1);
+ OBDal.getInstance().save(error);
+ OBDal.getInstance().flush();
+ OBDal.getInstance().commitAndClose();
+ } finally {
+ OBContext.restorePreviousMode();
+ }
+ }
+ logger.logln(OBMessageUtils.messageBD("Success"));
+ } catch (Exception e) {// won't' happen
+ logger.logln(OBMessageUtils.messageBD("Error"));
+ }
+ }
+}
diffErrorWhileImportingMobileCore.diff [^] (2,078 bytes) 2015-03-31 11:01 [Show Content] [Hide Content]diff --git a/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java b/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java
--- a/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java
+++ b/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java
@@ -31,7 +31,6 @@
import org.openbravo.base.model.ModelProvider;
import org.openbravo.base.structure.BaseOBObject;
import org.openbravo.client.kernel.ComponentProvider;
-import org.openbravo.client.kernel.RequestContext;
import org.openbravo.dal.core.OBContext;
import org.openbravo.dal.core.TriggerHandler;
import org.openbravo.dal.service.OBDal;
@@ -93,15 +92,18 @@
throws JSONException {
boolean error = false;
List<String> errorIds = new ArrayList<String>();
- String originalOrg = (String) RequestContext.get().getSession().getAttribute("#AD_ORG_ID");
- String originalUser = (String) RequestContext.get().getSession().getAttribute("#AD_USER_ID");
- String originalRole = (String) RequestContext.get().getSession().getAttribute("#AD_ROLE_ID");
+
+ OBContext cnx = OBContext.getOBContext();
+ String originalUser = cnx.getUser().getId();
+ String originalOrg = cnx.getCurrentOrganization().getId();
+ String originalRole = cnx.getRole().getId();
+
OBContext.setAdminMode(false);
try {
for (int i = 0; i < jsonarray.length(); i++) {
- String currentOrg = (String) RequestContext.get().getSession().getAttribute("#AD_ORG_ID");
- String currentUser = (String) RequestContext.get().getSession().getAttribute("#AD_USER_ID");
- String currentRole = (String) RequestContext.get().getSession().getAttribute("#AD_ROLE_ID");
+ String currentUser = cnx.getUser().getId();
+ String currentOrg = cnx.getCurrentOrganization().getId();
+ String currentRole = cnx.getRole().getId();
long t1 = System.currentTimeMillis();
JSONObject jsonRecord = jsonarray.getJSONObject(i);
String userId = jsonRecord.has("createdBy") ? jsonRecord.getString("createdBy")
|