| Line 216... |
Line 216... |
| 216 |
return None
|
216 |
return None
|
| 217 |
|
217 |
|
| 218 |
def settlePayBack(runtype='dry'):
|
218 |
def settlePayBack(runtype='dry'):
|
| 219 |
userAmountMap = {}
|
219 |
userAmountMap = {}
|
| 220 |
searchMapList = []
|
220 |
searchMapList = []
|
| 221 |
for mo in client.Dtr.merchantOrder.find({"subOrders.cashBackStatus":Store.CB_APPROVED}):
|
221 |
for mo in client.Dtr.merchantOrder.find({"subOrders.batchId":1427744078}):
|
| 222 |
userId = mo.get("userId")
|
222 |
userId = mo.get("userId")
|
| 223 |
if mo.get('subOrders') is not None:
|
223 |
if mo.get('subOrders') is not None:
|
| 224 |
for so in mo['subOrders']:
|
224 |
for so in mo['subOrders']:
|
| 225 |
if so.get('cashBackStatus') == Store.CB_APPROVED:
|
225 |
if so.get('batchId') == 1427744078:
|
| 226 |
searchMapList.append({"orderId":mo.get("orderId"), "subOrders.merchantSubOrderId":so.get("merchantSubOrderId")})
|
226 |
searchMapList.append({"orderId":mo.get("orderId"), "subOrders.merchantSubOrderId":so.get("merchantSubOrderId")})
|
| 227 |
if not userAmountMap.has_key(userId):
|
227 |
if not userAmountMap.has_key(userId):
|
| 228 |
userAmountMap[userId] = so.get('cashBackAmount')
|
228 |
userAmountMap[userId] = so.get('cashBackAmount')
|
| 229 |
else:
|
229 |
else:
|
| 230 |
userAmountMap[userId] += so.get('cashBackAmount')
|
230 |
userAmountMap[userId] += so.get('cashBackAmount')
|
| Line 234... |
Line 234... |
| 234 |
for searchMap in searchMapList:
|
234 |
for searchMap in searchMapList:
|
| 235 |
print "%s\t%s"%(searchMap.get('orderId'),searchMap.get('subOrders.merchantSubOrderId'))
|
235 |
print "%s\t%s"%(searchMap.get('orderId'),searchMap.get('subOrders.merchantSubOrderId'))
|
| 236 |
for key,val in userAmountMap.iteritems():
|
236 |
for key,val in userAmountMap.iteritems():
|
| 237 |
print "%s\t%s"%(key,val)
|
237 |
print "%s\t%s"%(key,val)
|
| 238 |
if (runtype=='live'):
|
238 |
if (runtype=='live'):
|
| 239 |
bulk = client.Dtr.merchantOrder.initialize_ordered_bulk_op()
|
239 |
#bulk = client.Dtr.merchantOrder.initialize_ordered_bulk_op()
|
| 240 |
if len(searchMapList) == 0:
|
240 |
if len(searchMapList) == 0:
|
| 241 |
return
|
241 |
return
|
| 242 |
for searchMap in searchMapList:
|
242 |
#for searchMap in searchMapList:
|
| 243 |
bulk.find(searchMap).update({'$set' : {'subOrders.$.cashBackStatus':Store.CB_CREDIT_IN_PROCESS}})
|
243 |
# bulk.find(searchMap).update({'$set' : {'subOrders.$.cashBackStatus':Store.CB_CREDIT_IN_PROCESS}})
|
| 244 |
bulk.execute()
|
244 |
#bulk.execute()
|
| 245 |
|
245 |
|
| 246 |
datetimeNow = datetime.now()
|
246 |
datetimeNow = datetime.now()
|
| 247 |
batchId = int(time.mktime(datetimeNow.timetuple()))
|
247 |
batchId = int(time.mktime(datetimeNow.timetuple()))
|
| 248 |
if refundToWallet(batchId, userAmountMap):
|
248 |
if refundToWallet(batchId, userAmountMap):
|
| 249 |
bulk = client.Dtr.merchantOrder.initialize_ordered_bulk_op()
|
249 |
#bulk = client.Dtr.merchantOrder.initialize_ordered_bulk_op()
|
| 250 |
for searchMap in searchMapList:
|
250 |
#for searchMap in searchMapList:
|
| 251 |
bulk.find(searchMap).update({'$set' : {'subOrders.$.cashBackStatus':Store.CB_CREDITED, "subOrders.$.batchId":batchId}})
|
251 |
# bulk.find(searchMap).update({'$set' : {'subOrders.$.cashBackStatus':Store.CB_CREDITED, "subOrders.$.batchId":batchId}})
|
| 252 |
print bulk.execute()
|
252 |
#print bulk.execute()
|
| 253 |
for key, value in userAmountMap.iteritems():
|
253 |
#for key, value in userAmountMap.iteritems():
|
| 254 |
client.Dtr.refund.insert({"userId": key, "batch":batchId, "userAmount":value, "timestamp":datetime.strftime(datetimeNow,"%Y-%m-%d %H:%M:%S")})
|
254 |
# client.Dtr.refund.insert({"userId": key, "batch":batchId, "userAmount":value, "timestamp":datetime.strftime(datetimeNow,"%Y-%m-%d %H:%M:%S")})
|
| 255 |
client.Dtr.user.update({"userId":key}, {'$inc': { "credited": value}}, upsert=True)
|
255 |
# client.Dtr.user.update({"userId":key}, {'$inc': { "credited": value}}, upsert=True)
|
| 256 |
tprint("PayBack Settled")
|
256 |
tprint("PayBack Settled")
|
| 257 |
else:
|
257 |
#else:
|
| 258 |
tprint("Error Occurred while running batch. Rolling Back")
|
258 |
#tprint("Error Occurred while running batch. Rolling Back")
|
| 259 |
bulk = client.Dtr.merchantOrder.initialize_ordered_bulk_op()
|
259 |
#bulk = client.Dtr.merchantOrder.initialize_ordered_bulk_op()
|
| 260 |
for searchMap in searchMapList:
|
260 |
#for searchMap in searchMapList:
|
| 261 |
bulk.find(searchMap).update({'$set' : {'subOrders.$.cashBackStatus':Store.CB_APPROVED}})
|
261 |
# bulk.find(searchMap).update({'$set' : {'subOrders.$.cashBackStatus':Store.CB_APPROVED}})
|
| 262 |
bulk.execute()
|
262 |
#bulk.execute()
|
| 263 |
|
263 |
|
| 264 |
|
264 |
|
| 265 |
def settlePayBack1(runtype='dry'):
|
265 |
def settlePayBack1(runtype='dry'):
|
| 266 |
approvedUserMap = {}
|
266 |
approvedUserMap = {}
|
| 267 |
pendingUserMap = {}
|
267 |
pendingUserMap = {}
|
| Line 275... |
Line 275... |
| 275 |
for refund in client.Dtr.refund.find():
|
275 |
for refund in client.Dtr.refund.find():
|
| 276 |
print "%s\t%s\t%s\t%s"%(refund.get("userId") ,refund.get("timestamp") ,refund.get("userAmount"), refund.get("batch"))
|
276 |
print "%s\t%s\t%s\t%s"%(refund.get("userId") ,refund.get("timestamp") ,refund.get("userAmount"), refund.get("batch"))
|
| 277 |
|
277 |
|
| 278 |
|
278 |
|
| 279 |
def refundToWallet(batchId, userAmountMap):
|
279 |
def refundToWallet(batchId, userAmountMap):
|
| 280 |
return True
|
- |
|
| 281 |
base64string = base64.encodestring('%s:%s' % ("dtr", "dtr18Feb2015")).replace('\n', '')
|
280 |
base64string = base64.encodestring('%s:%s' % ("dtr", "dtr18Feb2015")).replace('\n', '')
|
| 282 |
batchUpdateMap = {}
|
281 |
batchUpdateMap = {}
|
| 283 |
try :
|
282 |
try :
|
| 284 |
saholicUserAmountMap = {}
|
283 |
saholicUserAmountMap = {}
|
| 285 |
for key, value in userAmountMap.iteritems():
|
284 |
for key, value in userAmountMap.iteritems():
|