| Line 217... |
Line 217... |
| 217 |
self.db.merchantOrder.update(searchMap, { '$set': updateMap }, multi=True)
|
217 |
self.db.merchantOrder.update(searchMap, { '$set': updateMap }, multi=True)
|
| 218 |
|
218 |
|
| 219 |
def _getActiveOrders(self, searchMap={}, collectionMap={}):
|
219 |
def _getActiveOrders(self, searchMap={}, collectionMap={}):
|
| 220 |
collection = self.db.merchantOrder
|
220 |
collection = self.db.merchantOrder
|
| 221 |
searchMap = dict(searchMap.items()+ {"subOrders.closed": False, "storeId" : self.store_id}.items())
|
221 |
searchMap = dict(searchMap.items()+ {"subOrders.closed": False, "storeId" : self.store_id}.items())
|
| 222 |
collectionMap = dict(collectionMap.items() + {"orderSuccessUrl":1, "orderId":1,"subOrders":1, "placedOn":1}.items())
|
222 |
#collectionMap = dict(collectionMap.items() + {"orderSuccessUrl":1, "orderId":1,"subOrders":1, "placedOn":1, "orderTracking"}.items())
|
| 223 |
stores = collection.find(searchMap, collectionMap)
|
223 |
stores = collection.find(searchMap)
|
| 224 |
return [store for store in stores]
|
224 |
return [store for store in stores]
|
| 225 |
|
225 |
|
| 226 |
def _getMissingOrders(self,searchMap={}):
|
226 |
def _getMissingOrders(self,searchMap={}):
|
| 227 |
collection = self.db.merchantOrder
|
227 |
collection = self.db.merchantOrder
|
| 228 |
searchMap = dict(searchMap.items()+ {"requireDetail":True, "storeId":self.store_id}.items())
|
228 |
searchMap = dict(searchMap.items()+ {"requireDetail":True, "storeId":self.store_id}.items())
|
| Line 237... |
Line 237... |
| 237 |
for subOrder in subOrders:
|
237 |
for subOrder in subOrders:
|
| 238 |
if merchantSubOrderId == subOrder.get("merchantSubOrderId"):
|
238 |
if merchantSubOrderId == subOrder.get("merchantSubOrderId"):
|
| 239 |
return subOrder
|
239 |
return subOrder
|
| 240 |
return None
|
240 |
return None
|
| 241 |
|
241 |
|
| 242 |
def populateDerivedFields(self, order):
|
242 |
def populateDerivedFields(self, order, update=False):
|
| 243 |
closed=True
|
243 |
closed=True
|
| 244 |
for subOrder in order.subOrders:
|
244 |
for subOrder in order.subOrders:
|
| 245 |
if subOrder.closed:
|
245 |
if subOrder.closed:
|
| 246 |
continue
|
246 |
continue
|
| - |
|
247 |
if not update:
|
| 247 |
amount = subOrder.amount if hasattr(subOrder, 'amount') else subOrder.amountPaid
|
248 |
amount = subOrder.amount if hasattr(subOrder, 'amount') else subOrder.amountPaid
|
| 248 |
cashbackAmount, cashbackPercent = self.getCashbackAmount(subOrder.productCode, amount)
|
249 |
cashbackAmount, cashbackPercent = self.getCashbackAmount(subOrder.productCode, amount)
|
| 249 |
cashbackStatus = Store.CB_PENDING
|
250 |
cashbackStatus = Store.CB_PENDING
|
| 250 |
if cashbackAmount <= 0:
|
251 |
if cashbackAmount <= 0:
|
| 251 |
cashbackStatus = Store.CB_NA
|
252 |
cashbackStatus = Store.CB_NA
|
| 252 |
subOrder.cashBackAmount = cashbackAmount
|
253 |
subOrder.cashBackAmount = cashbackAmount
|
| 253 |
subOrder.cashBackPercentage = cashbackPercent
|
254 |
subOrder.cashBackPercentage = cashbackPercent
|
| 254 |
subOrder.cashBackStatus = cashbackStatus
|
255 |
subOrder.cashBackStatus = cashbackStatus
|
| - |
|
256 |
dealRank = getDealRank(subOrder.productCode, self.store_id, order.userId)
|
| - |
|
257 |
subOrder.dealRank = dealRank.get('rank')
|
| - |
|
258 |
subOrder.rankDesc = dealRank.get('description')
|
| - |
|
259 |
subOrder.maxNlc = dealRank.get('maxNlc')
|
| - |
|
260 |
subOrder.minNlc = dealRank.get('minNlc')
|
| - |
|
261 |
subOrder.db = dealRank.get('dp')
|
| - |
|
262 |
subOrder.itemStatus = dealRank.get('status')
|
| 255 |
subOrder.closed = subOrder.status in [self.ORDER_CANCELLED, self.ORDER_DELIVERED]
|
263 |
subOrder.closed = subOrder.status in [Store.ORDER_CANCELLED, Store.ORDER_DELIVERED]
|
| 256 |
closed = closed and subOrder.closed
|
264 |
closed = closed and subOrder.closed
|
| 257 |
dealRank = getDealRank(subOrder.productCode, self.store_id, order.userId)
|
- |
|
| 258 |
subOrder.dealRank = dealRank.get('rank')
|
265 |
if subOrder.cashBackStatus!=Store.CB_NA:
|
| 259 |
subOrder.rankDesc = dealRank.get('description')
|
266 |
subOrder.cashBackStatus = Store.CB_PENDING
|
| 260 |
subOrder.maxNlc = dealRank.get('maxNlc')
|
267 |
if subOrder.status == self.ORDER_CANCELLED:
|
| 261 |
subOrder.minNlc = dealRank.get('minNlc')
|
268 |
subOrder.cashBackStatus = Store.CB_CANCELLED
|
| 262 |
subOrder.db = dealRank.get('dp')
|
269 |
elif subOrder.status == self.ORDER_DELIVERED:
|
| 263 |
subOrder.itemStatus = dealRank.get('status')
|
270 |
subOrder.cashBackStatus = Store.CB_APPROVED
|
| 264 |
order.closed = closed
|
271 |
order.closed = closed
|
| 265 |
|
272 |
|
| 266 |
def settlePayBack(runtype='dry'):
|
273 |
def settlePayBack(runtype='dry'):
|
| 267 |
userAmountMap = {}
|
274 |
userAmountMap = {}
|
| 268 |
searchMapList = []
|
275 |
searchMapList = []
|