| 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 = {}
|