From dcb9ed61af00d79393e472bdf7357b7387295915 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <gua@adhisimon.org>
Date: Sat, 12 Mar 2016 13:47:48 +0700
Subject: [PATCH] perkenalkan: NEED_CHECK_BALANCE

---
 main.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/main.py b/main.py
index 23d80e4..5caa362 100755
--- a/main.py
+++ b/main.py
@@ -36,6 +36,8 @@ SLEEP_BETWEEN_BALANCE_N_TOPUP = config.getint('globals', 'SLEEP_BETWEEN_BALANCE_
 TOPUP_USSD_TIMEOUT = config.getint('globals', 'TOPUP_USSD_TIMEOUT')
 SLEEP_AFTER_USSD_ERROR = 180
 
+NEED_CHECK_BALANCE = False
+
 MIN_SIGNAL_STRENGTH = 0
 try:
     MIN_SIGNAL_STRENGTH = config.getint('globals', 'MIN_SIGNAL_STRENGTH')
@@ -97,6 +99,7 @@ def handleSms(sms):
     global LAST_PRODUCT
     global LAST_REQUEST_ID
     global LAST_SN
+    global NEED_CHECK_BALANCE
     
     try:
         logger.info(u'Incoming SMS from: {0}; Time: {1}; Message: {2}'.format(sms.number, sms.time, sms.text))
@@ -164,7 +167,7 @@ def handleSms(sms):
     if sms.text.find('Anda terima uang XLTunai') >= 0:
         LAST_SN = xltunai.getSNFromReceiveTransferMessage(sms.text)
         logger.info('Override LAST_SN: {0}'.format(LAST_SN))
-        checkBalance(modem)
+        NEED_CHECK_BALANCE = True
         return
     
     if sms.text.find('Kirim uang ke ') == 0:
@@ -588,11 +591,16 @@ def  publishMessageToRedis():
 
 def pullLoop(modem):
     global TERMINATING
+    global NEED_CHECK_BALANCE
     
     while True:
         signalStrength = modem.signalStrength
         saveSignalStrengthToRedis(signalStrength)
-    
+            
+        if NEED_CHECK_BALANCE:
+            checkBalance(modem)
+            NEED_CHECK_BALANCE = False
+            
         if TERMINATING:
             logger.info('Terminated by request signal')
             sys.exit(0)
-- 
1.9.0