Subversion Repositories SmartDukaan

Rev

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

Rev 14665 Rev 14666
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.batchId":1427744078}):
221
    for mo in client.Dtr.merchantOrder.find({"subOrders.cashBackStatus":Store.CB_APPROVED}):
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('batchId') == 1427744078:
225
                if so.get('cashBackStatus') == Store.CB_APPROVED:
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 = {}