Subversion Repositories SmartDukaan

Rev

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

Rev 13662 Rev 13677
Line 17... Line 17...
17
            'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      
17
            'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      
18
            'Accept-Language' : 'en-US,en;q=0.8',                     
18
            'Accept-Language' : 'en-US,en;q=0.8',                     
19
            'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
19
            'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
20
        }
20
        }
21
CASHBACK_URL = 'http://api.profittill.com/cashbacks/index/%s/%s'
21
CASHBACK_URL = 'http://api.profittill.com/cashbacks/index/%s/%s'
-
 
22
USER_LOOKUP_URL = 'http://api.profittill.com/user_account/saholic/%s'
-
 
23
WALLET_CREDIT_URL = 'http://www.shop2020.in:8080/mobileapi/wallet?userId=%s&isLoggedIn=true'
22
 
24
 
23
def getStore(source_id):
25
def getStore(source_id):
24
    #module = sourceMap[source_id]
26
    #module = sourceMap[source_id]
25
    store = Store(source_id)
27
    store = Store(source_id)
26
    try:
28
    try:
Line 53... Line 55...
53
 
55
 
54
    def __init__(self, expr, msg):
56
    def __init__(self, expr, msg):
55
        self.expr = expr
57
        self.expr = expr
56
        self.msg = msg
58
        self.msg = msg
57
 
59
 
-
 
60
client = MongoClient('mongodb://localhost:27017/') 
-
 
61
 
58
class Store(object):
62
class Store(object):
59
    
63
    
60
    ORDER_PLACED = 'Order Placed'
64
    ORDER_PLACED = 'Order Placed'
61
    ORDER_DELIVERED = 'Delivered'
65
    ORDER_DELIVERED = 'Delivered'
62
    ORDER_SHIPPED = 'Shipped' #Lets see if we can make use of it
66
    ORDER_SHIPPED = 'Shipped' #Lets see if we can make use of it
Line 71... Line 75...
71
    
75
    
72
    CONF_CB_SELLING_PRICE = 0
76
    CONF_CB_SELLING_PRICE = 0
73
    CONF_CB_DISCOUNTED_PRICE = 1
77
    CONF_CB_DISCOUNTED_PRICE = 1
74
    
78
    
75
    def __init__(self, store_id):
79
    def __init__(self, store_id):
76
        client = MongoClient('mongodb://localhost:27017/')
-
 
77
        self.db = client.Dtr
80
        self.db = client.Dtr
78
        self.store_id = store_id
81
        self.store_id = store_id
79
        self.store_name = sourceMap[store_id]
82
        self.store_name = sourceMap[store_id]
80
    
83
    
81
    '''
84
    '''
82
    To Settle payback for respective stores.
85
    To Settle payback for respective stores.
83
    Also ensures that settlement happens only for approved orders
86
    Also ensures that settlement happens only for approved orders
84
    '''
87
    '''
85
    def settlePayBack(self):
-
 
86
        orders = self.db.merchantOrder.find({'subOrders.cashBackStatus':Store.CB_APPROVED}, {'userId':1, 'subOrders.cashBackAmount':1})
-
 
87
        #for 
-
 
88
        
-
 
89
            
-
 
90
    
88
    
91
    def getName(self):
89
    def getName(self):
92
        raise NotImplementedError
90
        raise NotImplementedError
93
    
91
    
94
    def scrapeAffiliate(self, startDate=None, endDate=None):
92
    def scrapeAffiliate(self, startDate=None, endDate=None):
Line 101... Line 99...
101
        raise NotImplementedError
99
        raise NotImplementedError
102
    
100
    
103
    
101
    
104
    def getCashbackAmount(self, productCode, amount):
102
    def getCashbackAmount(self, productCode, amount):
105
        alagvar = CASHBACK_URL % (self.store_id,productCode)
103
        alagvar = CASHBACK_URL % (self.store_id,productCode)
106
        print alagvar
-
 
107
        filehandle = urllib2.Request(alagvar,headers=headers)
104
        filehandle = urllib2.Request(alagvar,headers=headers)
108
        x= urllib2.urlopen(filehandle)
105
        x= urllib2.urlopen(filehandle)
109
        map = json.loads(x.read())
106
        map = json.loads(x.read())
110
        if map['cashback']==0:
107
        if map['cashback']==0:
111
            return 0
108
            return 0
Line 134... Line 131...
134
    def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
131
    def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
135
        
132
        
136
        pass
133
        pass
137
    
134
    
138
def main():
135
def main():
139
    store = getStore(3)
136
    #store = getStore(3)
140
    print store.getCashbackAmount('864683341', 100)
137
    #print store.getCashbackAmount('864683341', 100)
-
 
138
    data = urllib.urlencode({'orderId':6000, 'amount':200})
-
 
139
    request = urllib2.Request(WALLET_CREDIT_URL % (483649), headers=headers)
-
 
140
    response = urllib2.urlopen(request, data)
-
 
141
    print response.read()
141
        
142
        
142
if __name__ == '__main__':
143
if __name__ == '__main__':
143
    main()
144
    main()
144
 
145
 
145
 
146
 
-
 
147
def settlePayBack():
-
 
148
        orders = client.Dtr.merchantOrder.find({'subOrders.cashBackStatus':Store.CB_APPROVED}, {'userId':1, 'orderId': 1, 'subOrders.cashBackAmount':1, 'subOrders.merchantSubOrderId':1})
-
 
149
        for order in orders:
-
 
150
            print order
-
 
151
            for subOrder in order.get('subOrders'):
-
 
152
                if subOrder.get('cashBackAmount') is not None:
-
 
153
                    if __refundToWallet(order['userId'], order['orderId'], subOrder.get('cashBackAmount')):
-
 
154
                        client.Dtr.merchantOrder.update({'orderId':order['orderId'], 'subOrders.merchantSubOrderId':subOrder['merchantSubOrderId']},{'subOrders.$.cashBackStatus':Store.CB_CREDITED})
-
 
155
                        print "Settled order-", order['orderId'], "Sub Order-", subOrder['merchantSubOrderId'], "for amount", subOrder['cashBackAmount']
-
 
156
        
-
 
157
def __refundToWallet(self, userId, orderId, amount):
-
 
158
    userLookupRequest = urllib2.Request(USER_LOOKUP_URL %(userId), headers=headers)
-
 
159
    response = urllib2.urlopen(userLookupRequest).read()
-
 
160
    saholicUserId = json.loads(response)['account_id']
-
 
161
    
-
 
162
    request = urllib2.Request(WALLET_CREDIT_URL % (saholicUserId), headers=headers)
-
 
163
    data = urllib.urlencode({'orderId':orderId, 'amount':amount})
-
 
164
    response = urllib2.urlopen(request, data)
-
 
165
    
-
 
166
    return json.loads(response.read())['credited']
-
 
167
 
146
def getBrowserObject():
168
def getBrowserObject():
147
    import cookielib
169
    import cookielib
148
    br = mechanize.Browser(factory=mechanize.RobustFactory())
170
    br = mechanize.Browser(factory=mechanize.RobustFactory())
149
    cj = cookielib.LWPCookieJar()
171
    cj = cookielib.LWPCookieJar()
150
    br.set_cookiejar(cj)
172
    br.set_cookiejar(cj)
Line 161... Line 183...
161
    br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'),
183
    br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'),
162
                     ('Accept', 'text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8'),
184
                     ('Accept', 'text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8'),
163
                     ('Accept-Encoding', 'gzip,deflate,sdch'),                  
185
                     ('Accept-Encoding', 'gzip,deflate,sdch'),                  
164
                     ('Accept-Language', 'en-US,en;q=0.8'),                     
186
                     ('Accept-Language', 'en-US,en;q=0.8'),                     
165
                     ('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.3')]
187
                     ('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.3')]
166
    return br
-
 
167
188
    return br
-
 
189
 
-
 
190