Subversion Repositories SmartDukaan

Rev

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

Rev 14863 Rev 14864
Line 475... Line 475...
475
        bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
475
        bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
476
        closed = True
476
        closed = True
477
        for subOrderElement in subOrders:
477
        for subOrderElement in subOrders:
478
            prodDivs = subOrderElement.findAll('div', recursive=False)
478
            prodDivs = subOrderElement.findAll('div', recursive=False)
479
            merchantSubOrderId = prodDivs[0].text.split(':')[1].strip()
479
            merchantSubOrderId = prodDivs[0].text.split(':')[1].strip()
480
            prodDetailDiv = prodDivs[1].findAll('div', recursive=False)
-
 
481
            imgDiv = prodDetailDiv[0]
-
 
482
            otherDiv = prodDetailDiv[1]
-
 
483
            
-
 
484
            subOrder = None
480
            subOrder = None
485
            breakFlag = False
-
 
486
            subOrder =  self._isSubOrderActive(order, merchantSubOrderId)
481
            subOrder =  self._isSubOrderActive(order, merchantSubOrderId)
487
            if subOrder is None:
482
            if subOrder is None:
-
 
483
                try:
488
                subOrders = self.parseSubOrderB(subOrderElement, placedOn)
484
                    subOrders = self.parseSubOrderB(subOrderElement, placedOn)
489
                self.db.merchantOrder.update({"orderId":order['orderId']},{'$push':{"subOrders":{"$each":todict([subOrders])}}})
485
                    self.db.merchantOrder.update({"orderId":order['orderId']},{'$push':{"subOrders":{"$each":todict([subOrders])}}})
490
                print "Added new suborders to Order id - ", order['orderId']
486
                    print "Added new suborders to Order id - ", order['orderId']
491
                closed = False
487
                    closed = False
-
 
488
                except:
-
 
489
                    pass
492
                continue
490
                continue
493
            elif subOrder['closed']:
491
            elif subOrder['closed']:
494
                continue
492
                continue
495
            else: 
493
            else: 
496
                findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
-
 
497
                updateMap = {}
-
 
498
                prodDivs = subOrderElement.findAll('div', recursive=False)
-
 
499
                prodDetailDiv = prodDivs[1].findAll('div', recursive=False)
494
                prodDetailDiv = prodDivs[1].findAll('div', recursive=False)
500
                otherDiv = prodDetailDiv[1]
495
                otherDiv = prodDetailDiv[1]
-
 
496
                trackBlock = subOrderElement.find('div',{'class':'trackingDetailsBlock'})
-
 
497
                findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
-
 
498
                updateMap = {}
501
                detailedStatus = otherDiv.find('div',{'class':'orderStatus'}).span.text.strip()
499
                detailedStatus = otherDiv.find('div',{'class':'orderStatus'}).span.text.strip()
502
                updateMap["subOrders.$.detailedStatus"] = detailedStatus
500
                updateMap["subOrders.$.detailedStatus"] = detailedStatus
503
                status = self._getStatusFromDetailedStatus(detailedStatus) 
501
                status = self._getStatusFromDetailedStatus(detailedStatus) 
504
                closedStatus = status in [Store.ORDER_DELIVERED, Store.ORDER_CANCELLED]
502
                closedStatus = status in [Store.ORDER_DELIVERED, Store.ORDER_CANCELLED]
505
                if status is not None:
503
                if status is not None:
506
                    updateMap["subOrders.$.status"] = status
504
                    updateMap["subOrders.$.status"] = status
507
                if detailedStatus == 'Closed For Vendor Reallocation':
505
                if 'A New Order Placed With A Different Seller' in str(trackBlock):
508
                    #if it is more than 6hours mark closed.
506
                    #if it is more than 6hours mark closed.
509
                    closeAt = subOrder.get("closeAt") 
507
                    closeAt = subOrder.get("closeAt") 
510
                    if closeAt is None:
508
                    if closeAt is None:
511
                        closeAt = datetime.now() + timedelta(hours=6)
509
                        closeAt = datetime.now() + timedelta(hours=6)
512
                        updateMap["subOrders.$.closeAt"] = datetime.strftime(closeAt,"%Y-%m-%d %H:%M:%S")
510
                        updateMap["subOrders.$.closeAt"] = datetime.strftime(closeAt,"%Y-%m-%d %H:%M:%S")
513
                    else:
511
                    else:
514
                        closeAt = datetime.strptime(closeAt,"%Y-%m-%d %H:%M:%S")
512
                        closeAt = datetime.strptime(closeAt,"%Y-%m-%d %H:%M:%S")
515
                        if datetime.now() > closeAt:
513
                        if datetime.now() > closeAt:
516
                            closedStatus = True
514
                            closedStatus = True
-
 
515
                            updateMap["subOrders.$.status"] = Store.ORDER_CANCELLED
517
                        
516
                        
518
                        
517
                        
519
                if closedStatus:
518
                if closedStatus:
520
                    #if status is closed then change the paybackStatus accordingly
519
                    #if status is closed then change the paybackStatus accordingly
521
                    updateMap["subOrders.$.closed"] = True
520
                    updateMap["subOrders.$.closed"] = True