Subversion Repositories SmartDukaan

Rev

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

Rev 13796 Rev 13809
Line 8... Line 8...
8
from bs4 import BeautifulSoup
8
from bs4 import BeautifulSoup
9
from dtr.dao import Order, SubOrder
9
from dtr.dao import Order, SubOrder
10
from dtr.main import getStore, Store as MStore
10
from dtr.main import getStore, Store as MStore
11
from dtr.sources.flipkart import todict
11
from dtr.sources.flipkart import todict
12
import re
12
import re
-
 
13
import traceback
13
 
14
 
14
ORDER_REDIRECT_URL = 'https://www.amazon.in/gp/css/summary/edit.html?orderID=%s'
15
ORDER_REDIRECT_URL = 'https://www.amazon.in/gp/css/summary/edit.html?orderID=%s'
15
ORDER_SUCCESS_URL = 'https://www.amazon.in/gp/buy/spc/handlers/static-submit-decoupled.html/ref=ox_spc_place_order?ie=UTF8&fromAnywhere=1&hasWorkingJavascript='
16
ORDER_SUCCESS_URL = 'https://www.amazon.in/gp/buy/spc/handlers/static-submit-decoupled.html/ref=ox_spc_place_order?ie=UTF8&fromAnywhere=1&hasWorkingJavascript='
16
THANKYOU_URL = ''
17
THANKYOU_URL = ''
17
class Store(MStore):
18
class Store(MStore):
Line 50... Line 51...
50
                    if "Order Placed" in str(boldElement):
51
                    if "Order Placed" in str(boldElement):
51
                        merchantOrder.placedOn = boldElement.next_sibling.strip()
52
                        merchantOrder.placedOn = boldElement.next_sibling.strip()
52
                    if "order number" in str(boldElement):
53
                    if "order number" in str(boldElement):
53
                        merchantOrder.merchantOderId = boldElement.next_sibling.strip()
54
                        merchantOrder.merchantOderId = boldElement.next_sibling.strip()
54
                    if "Order Total" in str(boldElement):
55
                    if "Order Total" in str(boldElement):
55
                        merchantOrder.paidAmount = boldElement.next_sibling.strip()
56
                        merchantOrder.paidAmount = int(float(boldElement.find('span').contents[-1].replace(',','')))
56
                        print merchantOrder.paidAmount
-
 
57
                anchors = table.tr.td.findAll("a", recursive=False)
57
                anchors = table.tr.td.findAll("a", recursive=False)
58
                anchors.pop(-1)
58
                anchors.pop(-1)
59
                
59
                
60
                count = 1
60
                count = 0
61
                subOrders = []
61
                subOrders = []
62
                merchantOrder.subOrders = subOrders
62
                merchantOrder.subOrders = subOrders
63
                for anchor in anchors:
63
                for anchor in anchors:
64
                    
64
                    count += 1
65
                    tab = anchor.next_sibling
65
                    tab = anchor.next_sibling
66
                    status = MStore.ORDER_PLACED
66
                    status = MStore.ORDER_PLACED
67
                    subStr = "Delivery #" + str(count) + ":"
67
                    subStr = "Delivery #" + str(count) + ":"
68
                    if subStr in  tab.find("b").text:
68
                    if subStr in  tab.find("b").text:
69
                        detailedStatus = tab.find("b").text.replace(subStr, '').strip()
69
                        detailedStatus = tab.find("b").text.replace(subStr, '').strip()
Line 77... Line 77...
77
                    i = -1
77
                    i = -1
78
                    for orderItemTr in orderItemTrs:
78
                    for orderItemTr in orderItemTrs:
79
                        i += 1
79
                        i += 1
80
                        if i%2 == 0:
80
                        if i%2 == 0:
81
                            continue
81
                            continue
82
                        merchantSubOrderId = orderItemTr.find("input")["name"]
82
                        quantity =  int(re.findall(r'\d+', orderItemTr.td.contents[0])[0])
83
                        
83
                        
84
                    
84
                        productUrl = orderItemTr.td.contents[1].a["href"]
85
                    
85
                        productTitle = orderItemTr.td.contents[1].a.text
86
                        
86
                        
-
 
87
                        unitPrice = int(float(orderItemTr.findAll('td')[1].span.text.replace('Rs. ','').replace(',','')))
-
 
88
                        
-
 
89
                    
-
 
90
                        subOrder = SubOrder(productTitle, productUrl, merchantOrder.placedOn, unitPrice*quantity, status, quantity)
-
 
91
                        subOrder.merchantSubOrderId = orderItemTr.find("input")["name"]
-
 
92
                        subOrder.estimatedDeliveryDate = estimatedDelivery
-
 
93
                        subOrder.productCode = productUrl.split('/')[5]
-
 
94
                        subOrder.detailedStatus = detailedStatus
-
 
95
                        (cashbackAmount, percentage) = self.getCashbackAmount(subOrder.productCode, unitPrice*quantity)
-
 
96
                        cashbackStatus = Store.CB_PENDING
-
 
97
                        if cashbackAmount <= 0:
-
 
98
                            cashbackStatus = Store.CB_NA
-
 
99
                        subOrder.cashBackStatus = cashbackStatus
-
 
100
                        subOrder.cashBackAmount = cashbackAmount
-
 
101
                        if percentage > 0:
-
 
102
                            subOrder.cashBackPercentage = percentage
-
 
103
                        subOrders.append(subOrder)
87
                
104
                
88
                
105
                self._saveToOrder(todict(merchantOrder))
89
                resp['result'] = 'ORDER_CREATED'
106
                resp['result'] = 'ORDER_CREATED'
90
                return resp    
107
                return resp    
91
                        #subOrder = SubOrder(productTitle, productUrl, merchantOrder.placedOn, amountPaid, status, quantity)
-
 
92
            except:
108
            except:
-
 
109
                print "Error occurred"
-
 
110
                traceback.print_exc()
93
                resp['result'] = 'PARSE_ERROR'
111
                resp['result'] = 'PARSE_ERROR'
94
                return resp    
112
                return resp    
95
                    
113
                    
96
        
114
        
97
 
115
 
Line 3252... Line 3270...
3252
 
3270
 
3253
 
3271
 
3254
 
3272
 
3255
        '''
3273
        '''
3256
 
3274
 
3257
    store.parseOrderRawHtml(1, 'saad', '212321', htmlstr, '')
3275
    store.parseOrderRawHtml(1, 'saad', '212321', htmlstr, 'https://www.amazon.in/gp/css/summary/edit.html?orderID=12212')
3258
 
3276
 
3259
if __name__ == '__main__':
3277
if __name__ == '__main__':
3260
        main()
3278
        main()
3261
        
3279
        
3262
        
3280
        
3263
3281