Subversion Repositories SmartDukaan

Rev

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

Rev 13927 Rev 13930
Line 162... Line 162...
162
            if merchantSubOrderId == subOrder.get("merchantSubOrderId"):
162
            if merchantSubOrderId == subOrder.get("merchantSubOrderId"):
163
                return subOrder
163
                return subOrder
164
        return None
164
        return None
165
 
165
 
166
def settlePayBack():
166
def settlePayBack():
167
        client.Dtr.merchantOrder.update({'subOrders.cashBackStatus':Store.CB_APPROVED},{'subOrders.$.cashBackStatus':Store.CB_CREDIT_IN_PROCESS}, multi=True)    
167
        client.Dtr.merchantOrder.update({'subOrders.cashBackStatus':Store.CB_APPROVED},{'$set':{'subOrders.$.cashBackStatus':Store.CB_CREDIT_IN_PROCESS}}, multi=True)    
168
        result = client.Dtr.merchantOrder\
168
        result = client.Dtr.merchantOrder\
169
            .aggregate([
169
            .aggregate([
170
                        {'$match':{'subOrders.cashBackStatus':Store.CB_CREDIT_IN_PROCESS}},
170
                        {'$match':{'subOrders.cashBackStatus':Store.CB_CREDIT_IN_PROCESS}},
171
                        {'$unwind':"$subOrders"},
171
                        {'$unwind':"$subOrders"},
172
                        { 
172
                        { 
Line 181... Line 181...
181
        for res in result:
181
        for res in result:
182
            userAmountMap[res['_id']] = res['amount']
182
            userAmountMap[res['_id']] = res['amount']
183
        datetimeNow = datetime.now() 
183
        datetimeNow = datetime.now() 
184
        batchId = int(time.mktime(datetimeNow.timetuple()))
184
        batchId = int(time.mktime(datetimeNow.timetuple()))
185
        if refundToWallet(batchId, userAmountMap):
185
        if refundToWallet(batchId, userAmountMap):
186
            client.Dtr.merchantOrder.update({'subOrders.cashBackStatus':Store.CB_CREDIT_IN_PROCESS},{'subOrders.$.cashBackStatus':Store.CB_CREDITED, 'subOrders.$.batchId':batchId}, multi=True)
186
            client.Dtr.merchantOrder.update({'subOrders.cashBackStatus':Store.CB_CREDIT_IN_PROCESS},{'$set':{'subOrders.$.cashBackStatus':Store.CB_CREDITED, 'subOrders.$.batchId':batchId}}, multi=True)
187
            for key, value in userAmountMap:
187
            for key, value in userAmountMap:
188
                client.Dtr.refund.insert({"userId": key, "batch":batchId, "userAmount":value, "timestamp":datetime.strftime(datetimeNow,"%Y-%m-%d %H:%M:%S")})
188
                client.Dtr.refund.insert({"userId": key, "batch":batchId, "userAmount":value, "timestamp":datetime.strftime(datetimeNow,"%Y-%m-%d %H:%M:%S")})
189
                client.Dtr.user.update({"userId":key}, {'$inc': { "credited": value}}, upsert=True)
189
                client.Dtr.user.update({"userId":key}, {'$inc': { "credited": value}}, upsert=True)
190
        else:
190
        else:
191
            tprint("Error Occurred while running batch.. Rolling Back")
191
            tprint("Error Occurred while running batch.. Rolling Back")
192
            client.Dtr.merchantOrder.update({'subOrders.cashBackStatus':Store.CB_CREDIT_IN_PROCESS},{'subOrders.$.cashBackStatus':Store.CB_APPROVED}, multi=True)    
192
            client.Dtr.merchantOrder.update({'subOrders.cashBackStatus':Store.CB_CREDIT_IN_PROCESS},{'$set':{'subOrders.$.cashBackStatus':Store.CB_APPROVED}}, multi=True)    
193
    
193
    
194
def refundToWallet(batchId, userAmountMap):
194
def refundToWallet(batchId, userAmountMap):
195
    batchUpdateMap = {}
195
    batchUpdateMap = {}
196
    try :
196
    try :
197
        saholicUserAmountMap = {}
197
        saholicUserAmountMap = {}