Subversion Repositories SmartDukaan

Rev

Rev 14664 | Rev 14666 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 14664 Rev 14665
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():