From a4839c05c4dc86449d4e831903f3a1a1cbee2abd Mon Sep 17 00:00:00 2001
From: Rafael Queralta <rafaelcuba81@gmail.com>
Date: Tue, 16 Feb 2021 13:28:00 -0500
Subject: [PATCH] Fixed BUG-45833: To avoid create a new sessions if a previous
 session was created in offline mode, we introduce a flag to check it before
 create a new session

---
 .../js/components/BusinessDateModel.js                       | 5 ++++-
 .../js/components/BusinessDateWindowView.js                  | 5 ++++-
 .../js/countcash/countcash-model.js                          | 5 ++++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/web/org.openbravo.retail.sessions/js/components/BusinessDateModel.js b/web/org.openbravo.retail.sessions/js/components/BusinessDateModel.js
index 1f3e7a3..e829845 100644
--- a/web/org.openbravo.retail.sessions/js/components/BusinessDateModel.js
+++ b/web/org.openbravo.retail.sessions/js/components/BusinessDateModel.js
@@ -70,7 +70,10 @@
             hasCashPaymentWithCountCash = true;
           }
         });
-        if (
+        if (OB.UTIL.localStorage.getItem('sessionOpened')) {
+          OB.UTIL.localStorage.setItem('sessionOpened', false);
+          OB.POS.navigate('retail.pointofsale');
+        } else if (
           !OB.POS.modelterminal.get('terminal').poss_session &&
           OB.MobileApp.model.get('payments').length &&
           hasCashPaymentWithCountCash
diff --git a/web/org.openbravo.retail.sessions/js/components/BusinessDateWindowView.js b/web/org.openbravo.retail.sessions/js/components/BusinessDateWindowView.js
index e894797..5b8c8e5 100644
--- a/web/org.openbravo.retail.sessions/js/components/BusinessDateWindowView.js
+++ b/web/org.openbravo.retail.sessions/js/components/BusinessDateWindowView.js
@@ -172,7 +172,10 @@
     ],
     initComponents: function() {
       this.inherited(arguments);
-      if (OB.MobileApp.model.get('connectedToERP')) {
+      if (
+        OB.MobileApp.model.get('connectedToERP') &&
+        !OB.UTIL.localStorage.getItem('sessionOpened')
+      ) {
         OB.MobileApp.model.get('terminal').poss_session = false;
         OB.UTIL.localStorage.setItem(
           'poss_sessionactive',
diff --git a/web/org.openbravo.retail.sessions/js/countcash/countcash-model.js b/web/org.openbravo.retail.sessions/js/countcash/countcash-model.js
index 1edfbc6..a79e65e 100644
--- a/web/org.openbravo.retail.sessions/js/countcash/countcash-model.js
+++ b/web/org.openbravo.retail.sessions/js/countcash/countcash-model.js
@@ -593,6 +593,7 @@ OB.OBPOSSession.CountCash.Model.CashUp = OB.Model.TerminalWindowModel.extend({
               me.addToPendingSessions(objToSend);
             } else {
               me.set('cashcountSent', false);
+              OB.UTIL.localStorage.setItem('sessionOpened', true);
             }
             OB.UTIL.showLoading(false);
             me.set('finished', true);
@@ -656,8 +657,10 @@ OB.OBPOSSession.CountCash.Model.CashUp = OB.Model.TerminalWindowModel.extend({
       if (
         me.get('finished') ||
         me.get('finishedWrongly') ||
-        OB.UTIL.isNullOrUndefined(initialCountPayment)
+        OB.UTIL.isNullOrUndefined(initialCountPayment) ||
+        OB.UTIL.localStorage.getItem('sessionOpened')
       ) {
+        OB.UTIL.localStorage.setItem('sessionOpened', false);
         return; // Do not execute the process again if finished.
       }
 
-- 
2.25.1

