Subversion Repositories SmartDukaan

Rev

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

Rev 20421 Rev 20422
Line 119... Line 119...
119
                
119
                
120
                bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
120
                bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
121
                #fetching suborders details
121
                #fetching suborders details
122
                for subOrder in fkSubOrders:
122
                for subOrder in fkSubOrders:
123
                    updateMap = {}
123
                    updateMap = {}
124
                    y = subOrder.find("header").findAll("span")
-
 
125
                    for suborderId in y:
-
 
126
                        if "value emp" in str(suborderId):
-
 
127
                            merchantSubOrderId = suborderId.text
-
 
128
                            break
-
 
129
                    ul = subOrder.find("ul")
124
                    ul = subOrder.find("ul")
130
                    if ul is None:
125
                    if ul is None:
131
                        ul = subOrder.findAll("div", recursive=False)[0].div.div
126
                        ul = subOrder.findAll("div", recursive=False)[0].div.div
132
                    orderItems = ul.findAll("div", recursive=False)
127
                    orderItems = ul.findAll("div", recursive=False)
133
                    i=0
-
 
134
                    for orderItem in orderItems:
128
                    for orderItem in orderItems:
135
                        closedStatus = False
129
                        closedStatus = False
-
 
130
                        divs = orderItem.findAll('div', recursive=False)
-
 
131
                        orderTracking = divs[2]
136
                        merchantSubOrderId = merchantSubOrderId + str(i)
132
                        merchantSubOrderId = divs[3].get('id')
137
                        subOrder =  self._isSubOrderActive(order, merchantSubOrderId)
133
                        subOrder =  self._isSubOrderActive(order, merchantSubOrderId)
138
                        if subOrder is None:
134
                        if subOrder is None:
139
                            break
135
                            break
140
                        elif subOrder['closed']:
136
                        elif subOrder['closed']:
141
                            break
137
                            break
142
                        findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
138
                        findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
143
                        divs = orderItem.findAll('div', recursive=False)
-
 
144
                        orderTracking = divs[2]
-
 
145
                        orderTrackingDetDiv = divs[3].find('div',{'class':'c-tabs-content m-top active'})
139
                        orderTrackingDetDiv = divs[3].find('div',{'class':'c-tabs-content m-top active'})
-
 
140
                        cashbackStatus = subOrder.get("cashBackStatus")
146
                        if orderTrackingDetDiv is not None:
141
                        if orderTrackingDetDiv is not None:
147
                            orderTrackingDet = str(orderTrackingDetDiv.find("div", "tracking-remark").text)
142
                            orderTrackingDet = str(orderTrackingDetDiv.find("div", "tracking-remark").text)
148
                            updateMap["subOrders.$.detailedStatus"] = orderTrackingDet
143
                            updateMap["subOrders.$.detailedStatus"] = orderTrackingDet
149
                            '''status = self._getStatusFromDetailedStatus(orderTrackingDet)'''
-
 
150
                            tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
144
                            tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
151
                            cashbackStatus = subOrder.get("cashBackStatus")
-
 
152
                            
145
                            
153
                            tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
146
                            tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
154
    
147
    
155
                            if "approveDetails-ongoing" in str(tr) or "processingDetails-ongoing" in str(tr):
148
                            if "approveDetails-ongoing" in str(tr) or "processingDetails-ongoing" in str(tr):
156
                                status=MStore.ORDER_PLACED
149
                                status=MStore.ORDER_PLACED
Line 318... Line 311...
318
            #remove unwanted list
311
            #remove unwanted list
319
            fkSubOrders.pop(-1)
312
            fkSubOrders.pop(-1)
320
            subOrders = []
313
            subOrders = []
321
            merchantOrder.subOrders = subOrders
314
            merchantOrder.subOrders = subOrders
322
    
315
    
323
            #fetching suborders details
-
 
324
            for subOrder in fkSubOrders:
316
            for subOrder in fkSubOrders:
325
                y = subOrder.find("header").findAll("span")
-
 
326
                for suborderId in y:
-
 
327
                    if "value emp" in str(suborderId):
-
 
328
                        merchantSubOrderId = suborderId.text
-
 
329
                        break
-
 
330
                orderItems = subOrder.findAll("div", "product-list-item", recursive=True)
317
                orderItems = subOrder.findAll("div", "product-list-item", recursive=True)
331
                i=0
-
 
332
                for orderItem in orderItems:
318
                for orderItem in orderItems:
333
                    merchantOrder.placedOn
319
                    if not orderItem.has_key("id"):
334
                    merchantSubOrderId = merchantSubOrderId + str(i)
320
                        continue
335
                    divs = orderItem.findAll('div', recursive=False)
321
                    divs = orderItem.findAll('div', recursive=False)
336
                    content = divs[0]
322
                    content = divs[0]
337
                    orderTracking = divs[2]
323
                    orderTracking = divs[2]
338
                    orderTrackingDet = divs[3]
324
                    merchantSubOrderId = divs[3].get('id')
339
                    
-
 
340
                    
-
 
341
                    imgUrl = content.find('img')['src']
325
                    imgUrl = content.find('img')['src']
342
                    lineDet = content.find("div",{"class":"product-info"})
326
                    lineDet = content.find("div",{"class":"product-info"})
343
                    productTitle = lineDet.find("a",{"class":"product-title"}).text
327
                    productTitle = lineDet.find("a",{"class":"product-title"}).text
344
                    productUrl =  str(lineDet.find("a")['href'])
328
                    productUrl =  str(lineDet.find("a")['href'])
345
    
329
    
Line 372... Line 356...
372
                    if cashbackAmount <= 0:
356
                    if cashbackAmount <= 0:
373
                        cashbackStatus = Store.CB_NA
357
                        cashbackStatus = Store.CB_NA
374
                    merchantsubOrder.cashBackAmount = cashbackAmount
358
                    merchantsubOrder.cashBackAmount = cashbackAmount
375
                    merchantsubOrder.cashBackStatus = cashbackStatus      
359
                    merchantsubOrder.cashBackStatus = cashbackStatus      
376
                    merchantsubOrder.cashBackPercentage = cashbackPercent
360
                    merchantsubOrder.cashBackPercentage = cashbackPercent
-
 
361
                    activePart = orderItem.find("div", "c-tabs-content m-top active")
-
 
362
                    if activePart is not None:
377
                    merchantsubOrder.detailedStatus = str(orderItem.find("div", "c-tabs-content m-top active").find("div", "tracking-remark").text)   
363
                        merchantsubOrder.detailedStatus = str(activePart.find("div", "tracking-remark").text)   
378
                    
364
                    
379
                    #To track shipping details         
365
                    #To track shipping details         
380
                    status=ORDER_PLACED
366
                    status=ORDER_PLACED
381
                    tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
367
                    tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
382
                    if "approveDetails-ongoing" in str(tr) or "processingDetails-ongoing" in str(tr):
368
                    if "approveDetails-ongoing" in str(tr) or "processingDetails-ongoing" in str(tr):
Line 386... Line 372...
386
                    elif "delivery-complete" in str(tr):
372
                    elif "delivery-complete" in str(tr):
387
                        status = MStore.ORDER_DELIVERED
373
                        status = MStore.ORDER_DELIVERED
388
                        merchantsubOrder.cashBackStatus = MStore.CB_APPROVED
374
                        merchantsubOrder.cashBackStatus = MStore.CB_APPROVED
389
                        merchantsubOrder.closed = True
375
                        merchantsubOrder.closed = True
390
                    if "dead" in str(tr) or "shippingDetails-returnOngoing" in str(tr) or "shippingDetails-return" in str(tr):
376
                    if "dead" in str(tr) or "shippingDetails-returnOngoing" in str(tr) or "shippingDetails-return" in str(tr):
391
                        status = MStore.ORDER_CANCELLED    
377
                        status = MStore.ORDER_CANCELLED
-
 
378
                        if merchantsubOrder.cashBackStatus != MStore.CB_NA:    
392
                        merchantsubOrder.cashBackStatus = MStore.CB_CANCELLED
379
                            merchantsubOrder.cashBackStatus = MStore.CB_CANCELLED
393
                        merchantsubOrder.closed = True
380
                        merchantsubOrder.closed = True
394
                    print "Sub Order Status " + str(status)
381
                    print "Sub Order Status " + str(status)
395
                    merchantsubOrder.status=status
382
                    merchantsubOrder.status=status
396
                    if merchantOrder.closed:
383
                    if merchantOrder.closed:
397
                        merchantOrder.closed = merchantsubOrder.closed 
384
                        merchantOrder.closed = merchantsubOrder.closed 
Line 425... Line 412...
425
    m = hashlib.md5()
412
    m = hashlib.md5()
426
    print(m.digest())
413
    print(m.digest())
427
 
414
 
428
def main():
415
def main():
429
    store = getStore(2)
416
    store = getStore(2)
430
    #store.parseOrderRawHtml(1, '123', 14, '', 'https://www.flipkart.com/rv/orderConfirmation/orderresponse?reference_id=OD4072085355271530&token=c8a726cb1495232e00338fb0eecb4f40')
417
    #store.parseOrderRawHtml(1, '123', 14, '', '    https://www.flipkart.com/rv/orderConfirmation/orderresponse?reference_id=OD4072085355271530&token=c8a726cb1495232e00338fb0eecb4f40')
431
    store.scrapeStoreOrders()
418
    store.scrapeStoreOrders()
432
 
419
 
433
if __name__ == '__main__':
420
if __name__ == '__main__':
434
        main()
421
        main()
435
    
422
    
436
423