| Line 2... |
Line 2... |
| 2 |
from datetime import datetime, timedelta
|
2 |
from datetime import datetime, timedelta
|
| 3 |
from dtr.config import PythonPropertyReader
|
3 |
from dtr.config import PythonPropertyReader
|
| 4 |
from dtr.dao import FeaturedDeals, AppTransactions
|
4 |
from dtr.dao import FeaturedDeals, AppTransactions
|
| 5 |
from dtr.storage import DataService
|
5 |
from dtr.storage import DataService
|
| 6 |
from dtr.storage.DataService import price_preferences, brand_preferences, \
|
6 |
from dtr.storage.DataService import price_preferences, brand_preferences, \
|
| 7 |
user_actions, Brands, app_offers
|
7 |
user_actions, Brands, app_offers, approved_app_transactions, user_app_cashbacks, user_app_installs
|
| 8 |
from dtr.storage.MemCache import MemCache
|
8 |
from dtr.storage.MemCache import MemCache
|
| 9 |
from dtr.utils.FetchLivePrices import returnLatestPrice
|
9 |
from dtr.utils.FetchLivePrices import returnLatestPrice
|
| 10 |
from dtr.utils.utils import to_java_date, CB_PENDING, CB_APPROVED, CB_INIT
|
10 |
from dtr.utils.utils import to_java_date, CB_PENDING, CB_APPROVED, CB_INIT, to_py_date
|
| 11 |
from elixir import *
|
11 |
from elixir import *
|
| 12 |
from operator import itemgetter
|
12 |
from operator import itemgetter
|
| 13 |
import pymongo
|
13 |
import pymongo
|
| 14 |
import random
|
14 |
import random
|
| 15 |
import re
|
15 |
import re
|
| 16 |
import traceback
|
16 |
import traceback
|
| - |
|
17 |
import time
|
| 17 |
|
18 |
|
| 18 |
con = None
|
19 |
con = None
|
| 19 |
|
20 |
|
| 20 |
DataService.initialize(db_hostname="localhost")
|
21 |
DataService.initialize(db_hostname="localhost")
|
| 21 |
mc = MemCache("127.0.0.1")
|
22 |
mc = MemCache("127.0.0.1")
|
| Line 1417... |
Line 1418... |
| 1417 |
try:
|
1418 |
try:
|
| 1418 |
transaction = list(get_mongo_connection().AppOrder.AppTransaction.find({'_id':ObjectId(transaction_id)}))
|
1419 |
transaction = list(get_mongo_connection().AppOrder.AppTransaction.find({'_id':ObjectId(transaction_id)}))
|
| 1419 |
if len(transaction) > 0:
|
1420 |
if len(transaction) > 0:
|
| 1420 |
if (transaction[0])['payout_status'] ==1:
|
1421 |
if (transaction[0])['payout_status'] ==1:
|
| 1421 |
get_mongo_connection().AppOrder.AppTransaction.update({'_id':ObjectId(transaction_id)},{"$set":{'payout_amount':float(payout), 'payout_description': CB_APPROVED,'payout_status':2}})
|
1422 |
get_mongo_connection().AppOrder.AppTransaction.update({'_id':ObjectId(transaction_id)},{"$set":{'payout_amount':float(payout), 'payout_description': CB_APPROVED,'payout_status':2}})
|
| - |
|
1423 |
|
| - |
|
1424 |
approvedAppTransaction = approved_app_transactions()
|
| - |
|
1425 |
approvedAppTransaction.app_id = transaction[0]['app_id']
|
| - |
|
1426 |
approvedAppTransaction.cash_back_description = transaction[0]['cash_back_description']
|
| - |
|
1427 |
approvedAppTransaction.retailer_id = transaction[0]['retailer_id']
|
| - |
|
1428 |
approvedAppTransaction.transaction_id = transaction_id
|
| - |
|
1429 |
approvedAppTransaction.transaction_time = to_py_date(long(transaction[0]['transaction_time']))
|
| - |
|
1430 |
approvedAppTransaction.redirect_url = transaction[0]['redirect_url']
|
| - |
|
1431 |
approvedAppTransaction.payout_status = long(transaction[0]['payout_status'])
|
| - |
|
1432 |
approvedAppTransaction.payout_description = transaction[0]['payout_description']
|
| - |
|
1433 |
approvedAppTransaction.cashback_status = long(transaction[0]['cashback_status'])
|
| - |
|
1434 |
approvedAppTransaction.payout_amount = long(payout)
|
| - |
|
1435 |
approvedAppTransaction.payout_time = datetime.now()
|
| - |
|
1436 |
approvedAppTransaction.offer_price = long(transaction[0]['offer_price'])
|
| - |
|
1437 |
approvedAppTransaction.overridenCashBack = transaction[0]['overridenCashBack']
|
| - |
|
1438 |
if str(transaction[0]['isCashBackOverriden']) == 'false' or str(transaction[0]['isCashBackOverriden']) == 'False':
|
| - |
|
1439 |
approvedAppTransaction.isCashBackOverriden = False
|
| - |
|
1440 |
else:
|
| - |
|
1441 |
approvedAppTransaction.isCashBackOverriden = True
|
| - |
|
1442 |
approvedAppTransaction.user_payout = transaction[0]['user_payout']
|
| - |
|
1443 |
approvedAppTransaction.cashBackConsidered = False
|
| - |
|
1444 |
session.commit()
|
| - |
|
1445 |
|
| - |
|
1446 |
updateResult = _updateApprovedCashbackToUser(approvedAppTransaction.id)
|
| 1422 |
return {'status':'ok','message':'Payout updated'}
|
1447 |
return {'status':'ok','message':'Payout updated'}
|
| 1423 |
elif (transaction[0])['payout_status'] ==2:
|
1448 |
elif (transaction[0])['payout_status'] ==2:
|
| 1424 |
return {'status':'ok','message':'Payout already processed'}
|
1449 |
return {'status':'ok','message':'Payout already processed'}
|
| 1425 |
else:
|
1450 |
else:
|
| 1426 |
return {'status':'fail','message':'Something is wrong'}
|
1451 |
return {'status':'fail','message':'Something is wrong'}
|
| 1427 |
else:
|
1452 |
else:
|
| 1428 |
return {'status':'fail','message':'transaction_id not found'}
|
1453 |
return {'status':'fail','message':'transaction_id not found'}
|
| 1429 |
except:
|
1454 |
except:
|
| - |
|
1455 |
try:
|
| - |
|
1456 |
get_mongo_connection().AppOrder.AppTransaction.update({'_id':ObjectId(transaction_id)},{"$set":{'payout_amount':None, 'payout_description': CB_INIT,'payout_status':1}})
|
| - |
|
1457 |
except:
|
| - |
|
1458 |
print 'Data Inconsistency in Cashback Process'
|
| - |
|
1459 |
traceback.print_exc()
|
| 1430 |
return {'status':'fail','message':'Something is wrong'}
|
1460 |
return {'status':'fail','message':'Something is wrong'}
|
| 1431 |
|
1461 |
|
| - |
|
1462 |
def _updateApprovedCashbackToUser(approvedAppTransactionId):
|
| - |
|
1463 |
approvedAppTransaction = approved_app_transactions.get_by(id=approvedAppTransactionId)
|
| - |
|
1464 |
currentMonth = datetime.today().month
|
| - |
|
1465 |
currentDay = datetime.today().day
|
| - |
|
1466 |
currentYear = datetime.today().year
|
| - |
|
1467 |
fortNight = (currentMonth - 1)*2 + (currentDay/15)
|
| - |
|
1468 |
if currentDay == 30 or currentDay ==31:
|
| - |
|
1469 |
fortNight = fortNight-1
|
| - |
|
1470 |
userAppCashbackObj = user_app_cashbacks.query.filter(user_app_cashbacks.yearVal==currentYear).filter(user_app_cashbacks.user_id==approvedAppTransaction.retailer_id).filter(user_app_cashbacks.fortnightOfYear==fortNight).filter(user_app_cashbacks.status=='Approved').first()
|
| - |
|
1471 |
userAppInstallObj = user_app_installs.query.filter(user_app_installs.user_id==approvedAppTransaction.retailer_id).filter(user_app_installs.app_id==approvedAppTransaction.app_id).filter(user_app_installs.transaction_date==datetime(currentYear, currentMonth, currentDay, 0, 0, 0, 0).date()).first()
|
| - |
|
1472 |
try:
|
| - |
|
1473 |
if userAppCashbackObj is None:
|
| - |
|
1474 |
userAppCashbackObj = user_app_cashbacks()
|
| - |
|
1475 |
userAppCashbackObj.user_id = approvedAppTransaction.retailer_id
|
| - |
|
1476 |
userAppCashbackObj.status = 'Approved'
|
| - |
|
1477 |
userAppCashbackObj.amount = approvedAppTransaction.user_payout
|
| - |
|
1478 |
userAppCashbackObj.fortnightOfYear = fortNight
|
| - |
|
1479 |
userAppCashbackObj.yearVal = currentYear
|
| - |
|
1480 |
else:
|
| - |
|
1481 |
userAppCashbackObj.amount = userAppCashbackObj.amount + approvedAppTransaction.user_payout
|
| - |
|
1482 |
|
| - |
|
1483 |
if userAppInstallObj is None:
|
| - |
|
1484 |
app_offer = app_offers.get_by(id=approvedAppTransaction.app_id)
|
| - |
|
1485 |
userAppInstallObj = user_app_installs()
|
| - |
|
1486 |
userAppInstallObj.user_id = approvedAppTransaction.retailer_id
|
| - |
|
1487 |
userAppInstallObj.fortnightOfYear = fortNight
|
| - |
|
1488 |
userAppInstallObj.transaction_date = datetime(currentYear, currentMonth, currentDay, 0, 0, 0, 0).date()
|
| - |
|
1489 |
userAppInstallObj.app_id = approvedAppTransaction.app_id
|
| - |
|
1490 |
userAppInstallObj.app_name = app_offer.app_name
|
| - |
|
1491 |
userAppInstallObj.installCount = 1
|
| - |
|
1492 |
userAppInstallObj.payoutAmount = approvedAppTransaction.user_payout
|
| - |
|
1493 |
else:
|
| - |
|
1494 |
userAppInstallObj.installCount = userAppInstallObj.installCount + 1
|
| - |
|
1495 |
userAppInstallObj.payoutAmount = userAppInstallObj.payoutAmount +approvedAppTransaction.user_payout
|
| - |
|
1496 |
|
| - |
|
1497 |
approvedAppTransaction.cashBackConsidered = True
|
| - |
|
1498 |
session.commit()
|
| - |
|
1499 |
return True
|
| - |
|
1500 |
except:
|
| - |
|
1501 |
session.rollback()
|
| - |
|
1502 |
traceback.print_exc()
|
| - |
|
1503 |
return False
|
| - |
|
1504 |
|
| 1432 |
|
1505 |
|
| 1433 |
|
1506 |
|
| 1434 |
|
1507 |
|
| 1435 |
def main():
|
1508 |
def main():
|
| 1436 |
#generateRedirectUrl(101,1
|
1509 |
#generateRedirectUrl(101,1
|