| Line 83... |
Line 83... |
| 83 |
def _getLastSaleDate(self,):
|
83 |
def _getLastSaleDate(self,):
|
| 84 |
lastDaySaleObj = self.db.lastDaySale.find_one({"storeId":self.store_id})
|
84 |
lastDaySaleObj = self.db.lastDaySale.find_one({"storeId":self.store_id})
|
| 85 |
if lastDaySaleObj is None:
|
85 |
if lastDaySaleObj is None:
|
| 86 |
return datetime.min
|
86 |
return datetime.min
|
| 87 |
|
87 |
|
| - |
|
88 |
def _parse(self, orderId, subTagId, userId, page, orderSuccessUrl):
|
| 88 |
|
89 |
|
| - |
|
90 |
#page=page.decode("utf-8")
|
| - |
|
91 |
soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
|
| - |
|
92 |
#orderHead = soup.find(name, attrs, recursive, text)
|
| - |
|
93 |
sections = soup.findAll("section")
|
| - |
|
94 |
|
| - |
|
95 |
#print sections
|
| - |
|
96 |
|
| - |
|
97 |
order = sections[1]
|
| - |
|
98 |
orderTrs = order.findAll("tr")
|
| - |
|
99 |
|
| - |
|
100 |
placedOn = str(orderTrs[0].findAll("td")[1].text)
|
| - |
|
101 |
|
| - |
|
102 |
#Pop two section elements
|
| - |
|
103 |
sections.pop(0)
|
| - |
|
104 |
sections.pop(0)
|
| - |
|
105 |
subOrders = sections
|
| - |
|
106 |
|
| - |
|
107 |
|
| - |
|
108 |
merchantSubOrders = []
|
| - |
|
109 |
|
| - |
|
110 |
merchantOrder = Order(orderId, userId, subTagId, self.store_id, orderSuccessUrl)
|
| - |
|
111 |
merchantOrder.merchantOderId = re.findall(r'\d+', str(soup.find("div", {"class":"deals_heading"})))[1]
|
| - |
|
112 |
for orderTr in orderTrs:
|
| - |
|
113 |
orderTrString = str(orderTr)
|
| - |
|
114 |
if "Total Amount" in orderTrString:
|
| - |
|
115 |
merchantOrder.totalAmount = re.findall(r'\d+', orderTrString)[0]
|
| - |
|
116 |
elif "Delivery Charges" in orderTrString:
|
| - |
|
117 |
merchantOrder.deliveryCharges = re.findall(r'\d+', orderTrString)[0]
|
| - |
|
118 |
elif "Discount Applied" in orderTrString:
|
| - |
|
119 |
merchantOrder.discountApplied = re.findall(r'\d+', orderTrString)[0]
|
| - |
|
120 |
elif "Paid Amount" in orderTrString:
|
| - |
|
121 |
merchantOrder.paidAmount = re.findall(r'\d+', orderTrString)[0]
|
| - |
|
122 |
|
| - |
|
123 |
for subOrderElement in subOrders:
|
| - |
|
124 |
subOrder = self.parseSubOrder(subOrderElement, placedOn)
|
| - |
|
125 |
merchantSubOrders.append(subOrder)
|
| - |
|
126 |
|
| - |
|
127 |
merchantOrder.subOrders = merchantSubOrders
|
| - |
|
128 |
return merchantOrder
|
| - |
|
129 |
|
| - |
|
130 |
def parseSubOrder(self, subOrderElement, placedOn):
|
| - |
|
131 |
productUrl = str(subOrderElement.find("a")['href'])
|
| - |
|
132 |
subTable = subOrderElement.find("table", {"class":"lrPad"})
|
| - |
|
133 |
subTrs = subTable.findAll("tr")
|
| - |
|
134 |
unitPrice=None
|
| - |
|
135 |
offerDiscount = None
|
| - |
|
136 |
deliveryCharges = None
|
| - |
|
137 |
amountPaid = None
|
| - |
|
138 |
for subTr in subTrs:
|
| - |
|
139 |
subTrString = str(subTr)
|
| - |
|
140 |
if "Unit Price" in subTrString:
|
| - |
|
141 |
unitPrice = re.findall(r'\d+', subTrString)[0]
|
| - |
|
142 |
if "Quantity" in subTrString:
|
| - |
|
143 |
qty = re.findall(r'\d+', subTrString)[0]
|
| - |
|
144 |
elif "Offer Discount" in subTrString:
|
| - |
|
145 |
offerDiscount = re.findall(r'\d+', subTrString)[0]
|
| - |
|
146 |
elif "Delivery Charges" in subTrString:
|
| - |
|
147 |
deliveryCharges = re.findall(r'\d+', subTrString)[0]
|
| - |
|
148 |
elif "Subtotal" in subTrString:
|
| - |
|
149 |
if int(qty) > 0:
|
| - |
|
150 |
amountPaid = str(int(re.findall(r'\d+', subTrString)[0])/int(qty))
|
| - |
|
151 |
else:
|
| - |
|
152 |
amountPaid = "0"
|
| - |
|
153 |
if self.CONF_CB_AMOUNT == MStore.CONF_CB_SELLING_PRICE or offerDiscount is None:
|
| - |
|
154 |
amount = int(unitPrice)
|
| - |
|
155 |
else:
|
| - |
|
156 |
amount = int(unitPrice) - int(offerDiscount)
|
| - |
|
157 |
|
| - |
|
158 |
divs = subOrderElement.findAll("div", {"class": "blk lrPad subordrs"})
|
| - |
|
159 |
if len(divs)<=0:
|
| - |
|
160 |
raise ParseException("subOrder", "Could not Parse suborders for Snapdeal")
|
| - |
|
161 |
|
| - |
|
162 |
for div in divs:
|
| - |
|
163 |
productTitle = str(subOrderElement.find("a").text)
|
| - |
|
164 |
productUrl = "http://m.snapdeal.com/" + productUrl
|
| - |
|
165 |
subOrder = SubOrder(productTitle, productUrl, placedOn, amountPaid)
|
| - |
|
166 |
|
| - |
|
167 |
subOrder.amountPaid = amountPaid
|
| - |
|
168 |
subOrder.deliveryCharges = deliveryCharges
|
| - |
|
169 |
subOrder.offerDiscount = offerDiscount
|
| - |
|
170 |
subOrder.unitPrice = unitPrice
|
| - |
|
171 |
subOrder.productCode = re.findall(r'\d+$', productUrl)[0]
|
| - |
|
172 |
(cashbackAmount, percentage) = self.getCashbackAmount(subOrder.productCode, amount)
|
| - |
|
173 |
cashbackStatus = Store.CB_INIT
|
| - |
|
174 |
if cashbackAmount <= 0:
|
| - |
|
175 |
cashbackStatus = Store.CB_NA
|
| - |
|
176 |
subOrder.cashBackStatus = cashbackStatus
|
| - |
|
177 |
subOrder.cashBackAmount = cashbackAmount
|
| - |
|
178 |
if percentage > 0:
|
| - |
|
179 |
subOrder.cashBackPercentage = percentage
|
| - |
|
180 |
|
| - |
|
181 |
|
| - |
|
182 |
trackAnchor = div.find("a")
|
| - |
|
183 |
if trackAnchor is not None:
|
| - |
|
184 |
subOrder.tracingkUrl = str(trackAnchor['href'])
|
| - |
|
185 |
|
| - |
|
186 |
divStr = str(div)
|
| - |
|
187 |
divStr = divStr.replace("\n","").replace("\t", "")
|
| - |
|
188 |
|
| - |
|
189 |
for line in divStr.split("<br />"):
|
| - |
|
190 |
if "Suborder ID" in line:
|
| - |
|
191 |
subOrder.merchantSubOrderId = re.findall(r'\d+', line)[0]
|
| - |
|
192 |
elif "Status" in line:
|
| - |
|
193 |
subOrder.detailedStatus = re.findall('>(.*?)</span>', line, re.IGNORECASE)[0]
|
| - |
|
194 |
elif "Est. Shipping Date" in line:
|
| - |
|
195 |
subOrder.estimatedShippingDate = line.split(":")[1].strip()
|
| - |
|
196 |
elif "Est. Delivery Date" in line:
|
| - |
|
197 |
subOrder.estimatedDeliveryDate = line.split(":")[1].strip()
|
| - |
|
198 |
elif "Courier Name" in line:
|
| - |
|
199 |
subOrder.courierName = line.split(":")[1].strip()
|
| - |
|
200 |
elif "Tracking No" in line:
|
| - |
|
201 |
subOrder.trackingNumber = line.split(":")[1].strip()
|
| - |
|
202 |
return subOrder
|
| - |
|
203 |
|
| 89 |
def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
|
204 |
def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
|
| - |
|
205 |
#print merchantOrder
|
| 90 |
try:
|
206 |
try:
|
| 91 |
br = getBrowserObject()
|
207 |
br = getBrowserObject()
|
| 92 |
url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', orderSuccessUrl,re.IGNORECASE)[0]
|
208 |
url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', orderSuccessUrl,re.IGNORECASE)[0]
|
| 93 |
response = br.open(url)
|
209 |
response = br.open(url)
|
| 94 |
page = ungzipResponse(response)
|
210 |
page = ungzipResponse(response)
|
| 95 |
#page=page.decode("utf-8")
|
- |
|
| 96 |
soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
|
- |
|
| 97 |
#orderHead = soup.find(name, attrs, recursive, text)
|
- |
|
| 98 |
sections = soup.findAll("section")
|
- |
|
| 99 |
|
- |
|
| 100 |
#print sections
|
- |
|
| 101 |
|
- |
|
| 102 |
order = sections[1]
|
- |
|
| 103 |
orderTrs = order.findAll("tr")
|
- |
|
| 104 |
|
- |
|
| 105 |
placedOn = str(orderTrs[0].findAll("td")[1].text)
|
- |
|
| 106 |
|
- |
|
| 107 |
#Pop two section elements
|
- |
|
| 108 |
sections.pop(0)
|
- |
|
| 109 |
sections.pop(0)
|
- |
|
| 110 |
subOrders = sections
|
- |
|
| 111 |
|
- |
|
| 112 |
|
- |
|
| 113 |
merchantSubOrders = []
|
- |
|
| 114 |
|
- |
|
| 115 |
merchantOrder = Order(orderId, userId, subTagId, self.store_id, orderSuccessUrl)
|
211 |
merchantOrder = self._parse(orderId, subTagId, userId, page, orderSuccessUrl)
|
| 116 |
merchantOrder.merchantOderId = re.findall(r'\d+', str(soup.find("div", {"class":"deals_heading"})))[1]
|
- |
|
| 117 |
for orderTr in orderTrs:
|
- |
|
| 118 |
orderTrString = str(orderTr)
|
- |
|
| 119 |
if "Total Amount" in orderTrString:
|
- |
|
| 120 |
merchantOrder.totalAmount = re.findall(r'\d+', orderTrString)[0]
|
- |
|
| 121 |
elif "Delivery Charges" in orderTrString:
|
- |
|
| 122 |
merchantOrder.deliveryCharges = re.findall(r'\d+', orderTrString)[0]
|
- |
|
| 123 |
elif "Discount Applied" in orderTrString:
|
- |
|
| 124 |
merchantOrder.discountApplied = re.findall(r'\d+', orderTrString)[0]
|
- |
|
| 125 |
elif "Paid Amount" in orderTrString:
|
- |
|
| 126 |
merchantOrder.paidAmount = re.findall(r'\d+', orderTrString)[0]
|
- |
|
| 127 |
|
- |
|
| 128 |
for subOrderElement in subOrders:
|
- |
|
| 129 |
productUrl = str(subOrderElement.find("a")['href'])
|
- |
|
| 130 |
subTable = subOrderElement.find("table", {"class":"lrPad"})
|
- |
|
| 131 |
subTrs = subTable.findAll("tr")
|
- |
|
| 132 |
unitPrice=None
|
- |
|
| 133 |
offerDiscount = None
|
- |
|
| 134 |
deliveryCharges = None
|
- |
|
| 135 |
amountPaid = None
|
- |
|
| 136 |
for subTr in subTrs:
|
- |
|
| 137 |
subTrString = str(subTr)
|
- |
|
| 138 |
if "Unit Price" in subTrString:
|
- |
|
| 139 |
unitPrice = re.findall(r'\d+', subTrString)[0]
|
- |
|
| 140 |
if "Quantity" in subTrString:
|
- |
|
| 141 |
qty = re.findall(r'\d+', subTrString)[0]
|
- |
|
| 142 |
elif "Offer Discount" in subTrString:
|
- |
|
| 143 |
offerDiscount = re.findall(r'\d+', subTrString)[0]
|
- |
|
| 144 |
elif "Delivery Charges" in subTrString:
|
- |
|
| 145 |
deliveryCharges = re.findall(r'\d+', subTrString)[0]
|
- |
|
| 146 |
elif "Subtotal" in subTrString:
|
- |
|
| 147 |
if int(qty) > 0:
|
- |
|
| 148 |
amountPaid = str(int(re.findall(r'\d+', subTrString)[0])/int(qty))
|
- |
|
| 149 |
else:
|
- |
|
| 150 |
amountPaid = "0"
|
- |
|
| 151 |
if self.CONF_CB_AMOUNT == MStore.CONF_CB_SELLING_PRICE or offerDiscount is None:
|
- |
|
| 152 |
amount = int(unitPrice)
|
- |
|
| 153 |
else:
|
- |
|
| 154 |
amount = int(unitPrice) - int(offerDiscount)
|
- |
|
| 155 |
|
- |
|
| 156 |
divs = subOrderElement.findAll("div", {"class": "blk lrPad subordrs"})
|
- |
|
| 157 |
if len(divs)<=0:
|
- |
|
| 158 |
raise ParseException("subOrder", "Could not Parse suborders for Snapdeal")
|
- |
|
| 159 |
|
- |
|
| 160 |
for div in divs:
|
- |
|
| 161 |
productTitle = str(subOrderElement.find("a").text)
|
- |
|
| 162 |
productUrl = "http://m.snapdeal.com/" + productUrl
|
- |
|
| 163 |
subOrder = SubOrder(productTitle, productUrl, placedOn, amountPaid)
|
- |
|
| 164 |
|
- |
|
| 165 |
subOrder.amountPaid = amountPaid
|
- |
|
| 166 |
subOrder.deliveryCharges = deliveryCharges
|
- |
|
| 167 |
subOrder.offerDiscount = offerDiscount
|
- |
|
| 168 |
subOrder.unitPrice = unitPrice
|
- |
|
| 169 |
subOrder.productCode = re.findall(r'\d+$', productUrl)[0]
|
- |
|
| 170 |
(cashbackAmount, percentage) = self.getCashbackAmount(subOrder.productCode, amount)
|
- |
|
| 171 |
cashbackStatus = Store.CB_INIT
|
- |
|
| 172 |
if cashbackAmount <= 0:
|
- |
|
| 173 |
cashbackStatus = Store.CB_NA
|
- |
|
| 174 |
subOrder.cashBackStatus = cashbackStatus
|
- |
|
| 175 |
subOrder.cashBackAmount = cashbackAmount
|
- |
|
| 176 |
if percentage > 0:
|
- |
|
| 177 |
subOrder.cashBackPercentage = percentage
|
- |
|
| 178 |
|
- |
|
| 179 |
|
- |
|
| 180 |
trackAnchor = div.find("a")
|
- |
|
| 181 |
if trackAnchor is not None:
|
- |
|
| 182 |
subOrder.tracingkUrl = str(trackAnchor['href'])
|
- |
|
| 183 |
|
- |
|
| 184 |
divStr = str(div)
|
- |
|
| 185 |
divStr = divStr.replace("\n","").replace("\t", "")
|
- |
|
| 186 |
|
- |
|
| 187 |
for line in divStr.split("<br />"):
|
- |
|
| 188 |
if "Suborder ID" in line:
|
- |
|
| 189 |
subOrder.merchantSubOrderId = re.findall(r'\d+', line)[0]
|
- |
|
| 190 |
elif "Status" in line:
|
- |
|
| 191 |
subOrder.detailedStatus = re.findall('>(.*?)</span>', line, re.IGNORECASE)[0]
|
- |
|
| 192 |
elif "Est. Shipping Date" in line:
|
- |
|
| 193 |
subOrder.estimatedShippingDate = line.split(":")[1].strip()
|
- |
|
| 194 |
elif "Est. Delivery Date" in line:
|
- |
|
| 195 |
subOrder.estimatedDeliveryDate = line.split(":")[1].strip()
|
- |
|
| 196 |
elif "Courier Name" in line:
|
- |
|
| 197 |
subOrder.courierName = line.split(":")[1].strip()
|
- |
|
| 198 |
elif "Tracking No" in line:
|
- |
|
| 199 |
subOrder.trackingNumber = line.split(":")[1].strip()
|
- |
|
| 200 |
|
- |
|
| 201 |
merchantSubOrders.append(subOrder)
|
- |
|
| 202 |
|
- |
|
| 203 |
merchantOrder.subOrders = merchantSubOrders
|
- |
|
| 204 |
#print merchantOrder
|
- |
|
| 205 |
|
- |
|
| 206 |
self._saveToOrder(todict(merchantOrder))
|
212 |
self._saveToOrder(todict(merchantOrder))
|
| 207 |
return True
|
213 |
return True
|
| 208 |
except:
|
214 |
except:
|
| 209 |
print "Error occurred"
|
215 |
print "Error occurred"
|
| 210 |
traceback.print_exc()
|
216 |
traceback.print_exc()
|
| Line 220... |
Line 226... |
| 220 |
print "Detailed Status need to be mapped"
|
226 |
print "Detailed Status need to be mapped"
|
| 221 |
raise ParseException("_getStatusFromDetailedStatus", "Found new order status" + detailedStatus)
|
227 |
raise ParseException("_getStatusFromDetailedStatus", "Found new order status" + detailedStatus)
|
| 222 |
|
228 |
|
| 223 |
|
229 |
|
| 224 |
def scrapeStoreOrders(self,):
|
230 |
def scrapeStoreOrders(self,):
|
| - |
|
231 |
#collectionMap = {'palcedOn':1}
|
| 225 |
orders = self._getActiveOrders()
|
232 |
orders = self._getActiveOrders()
|
| 226 |
print "Found orders", orders
|
233 |
print "Found orders", orders
|
| 227 |
br = getBrowserObject()
|
234 |
br = getBrowserObject()
|
| 228 |
for order in orders:
|
235 |
for order in orders:
|
| 229 |
url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', order['orderSuccessUrl'],re.IGNORECASE)[0]
|
236 |
url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', order['orderSuccessUrl'],re.IGNORECASE)[0]
|
| 230 |
response = br.open(url)
|
237 |
response = br.open(url)
|
| 231 |
page = ungzipResponse(response)
|
238 |
page = ungzipResponse(response)
|
| 232 |
#page=page.decode("utf-8")
|
239 |
#page=page.decode("utf-8")
|
| 233 |
soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
|
240 |
soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
|
| 234 |
sections = soup.findAll("section")
|
241 |
sections = soup.findAll("section")
|
| - |
|
242 |
orderEl = sections[1]
|
| - |
|
243 |
orderTrs = orderEl.findAll("tr")
|
| - |
|
244 |
|
| - |
|
245 |
placedOn = str(orderTrs[0].findAll("td")[1].text)
|
| 235 |
sections.pop(0)
|
246 |
sections.pop(0)
|
| 236 |
sections.pop(0)
|
247 |
sections.pop(0)
|
| 237 |
|
248 |
|
| 238 |
subOrders = sections
|
249 |
subOrders = sections
|
| 239 |
bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
|
250 |
bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
|
| Line 241... |
Line 252... |
| 241 |
closed = True
|
252 |
closed = True
|
| 242 |
divs = subOrderElement.findAll("div", {"class": "blk lrPad subordrs"})
|
253 |
divs = subOrderElement.findAll("div", {"class": "blk lrPad subordrs"})
|
| 243 |
if len(divs)<=0:
|
254 |
if len(divs)<=0:
|
| 244 |
raise ParseException("subOrder", "Could not Parse suborders for Snapdeal")
|
255 |
raise ParseException("subOrder", "Could not Parse suborders for Snapdeal")
|
| 245 |
subOrder = None
|
256 |
subOrder = None
|
| - |
|
257 |
breakFlag = False
|
| 246 |
for div in divs:
|
258 |
for div in divs:
|
| 247 |
divStr = str(div)
|
259 |
divStr = str(div)
|
| 248 |
divStr = divStr.replace("\n","").replace("\t", "")
|
260 |
divStr = divStr.replace("\n","").replace("\t", "")
|
| 249 |
updateMap = {}
|
261 |
updateMap = {}
|
| 250 |
for line in divStr.split("<br />"):
|
262 |
for line in divStr.split("<br />"):
|
| 251 |
if "Suborder ID" in line:
|
263 |
if "Suborder ID" in line:
|
| 252 |
merchantSubOrderId = re.findall(r'\d+', line)[0]
|
264 |
merchantSubOrderId = re.findall(r'\d+', line)[0]
|
| 253 |
#break if suborder is inactive
|
265 |
#break if suborder is inactive
|
| 254 |
findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
|
- |
|
| 255 |
subOrder = self._isSubOrderActive(order, merchantSubOrderId)
|
266 |
subOrder = self._isSubOrderActive(order, merchantSubOrderId)
|
| 256 |
if subOrder is None:
|
267 |
if subOrder is None:
|
| - |
|
268 |
subOrder = self.parseSubOrder(subOrderElement, placedOn)
|
| - |
|
269 |
self.db.merchantOrder.update({"orderId":order['orderId']},{'$push':{"subOrders":todict(subOrder)}})
|
| - |
|
270 |
print "Added new suborder with subOrder Id:", subOrder.merchantSubOrderId
|
| - |
|
271 |
closed = False
|
| - |
|
272 |
return
|
| - |
|
273 |
elif subOrder['closed']:
|
| - |
|
274 |
breakFlag = True
|
| 257 |
break
|
275 |
break
|
| - |
|
276 |
else:
|
| - |
|
277 |
findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
|
| 258 |
elif "Status" in line:
|
278 |
elif "Status" in line:
|
| 259 |
detailedStatus = re.findall('>(.*?)</span>', line, re.IGNORECASE)[0]
|
279 |
detailedStatus = re.findall('>(.*?)</span>', line, re.IGNORECASE)[0]
|
| 260 |
detailedStatus = re.findall('>(.*?)</span>', line, re.IGNORECASE)[0]
|
- |
|
| 261 |
updateMap["subOrders.$.detailedStatus"] = detailedStatus
|
280 |
updateMap["subOrders.$.detailedStatus"] = detailedStatus
|
| 262 |
status = self._getStatusFromDetailedStatus(detailedStatus)
|
281 |
status = self._getStatusFromDetailedStatus(detailedStatus)
|
| 263 |
closedStatus = status in [Store.ORDER_DELIVERED, Store.ORDER_CANCELLED]
|
282 |
closedStatus = status in [Store.ORDER_DELIVERED, Store.ORDER_CANCELLED]
|
| - |
|
283 |
updateMap["subOrders.$.status"] = status
|
| - |
|
284 |
if detailedStatus == 'Closed For Vendor Reallocation':
|
| - |
|
285 |
#if it is more than 6hours mark closed assuming it would be relocated in 6 hours.
|
| - |
|
286 |
closeAt = subOrder.get("closeAt")
|
| - |
|
287 |
if closeAt is None:
|
| - |
|
288 |
closeAt = datetime.now() + timedelta(hours=6)
|
| - |
|
289 |
updateMap["subOrders.$.closeAt"] = closeAt
|
| - |
|
290 |
else:
|
| - |
|
291 |
if datetime.now() > closeAt:
|
| - |
|
292 |
closedStatus = True
|
| - |
|
293 |
|
| - |
|
294 |
|
| 264 |
if closedStatus:
|
295 |
if closedStatus:
|
| 265 |
#if status is closed then change the paybackStatus accordingly
|
296 |
#if status is closed then change the paybackStatus accordingly
|
| - |
|
297 |
updateMap["subOrders.$.closed"] = True
|
| 266 |
if closedStatus == Store.ORDER_DELIVERED:
|
298 |
if status == Store.ORDER_DELIVERED:
|
| 267 |
if subOrder.get("cashBackStatus") == Store.CB_PENDING:
|
299 |
if subOrder.get("cashBackStatus") == Store.CB_PENDING:
|
| 268 |
updateMap["subOrders.$.cashBackStatus"] = Store.CB_APPROVED
|
300 |
updateMap["subOrders.$.cashBackStatus"] = Store.CB_APPROVED
|
| 269 |
elif closedStatus == Store.ORDER_CANCELLED:
|
301 |
elif status == Store.ORDER_CANCELLED:
|
| 270 |
if subOrder.get("cashBackStatus") == Store.CB_PENDING:
|
302 |
if subOrder.get("cashBackStatus") == Store.CB_PENDING:
|
| 271 |
updateMap["subOrders.$.cashBackStatus"] = Store.CB_CANCELLED
|
303 |
updateMap["subOrders.$.cashBackStatus"] = Store.CB_CANCELLED
|
| 272 |
|
304 |
|
| 273 |
else:
|
305 |
else:
|
| 274 |
closed = False
|
306 |
closed = False
|
| Line 282... |
Line 314... |
| 282 |
courierName = line.split(":")[1].strip()
|
314 |
courierName = line.split(":")[1].strip()
|
| 283 |
updateMap["subOrders.$.courierName"] = courierName
|
315 |
updateMap["subOrders.$.courierName"] = courierName
|
| 284 |
elif "Tracking No" in line:
|
316 |
elif "Tracking No" in line:
|
| 285 |
trackingNumber = line.split(":")[1].strip()
|
317 |
trackingNumber = line.split(":")[1].strip()
|
| 286 |
updateMap["subOrders.$.trackingNumber"] = trackingNumber
|
318 |
updateMap["subOrders.$.trackingNumber"] = trackingNumber
|
| - |
|
319 |
|
| - |
|
320 |
if breakFlag:
|
| - |
|
321 |
break
|
| 287 |
|
322 |
|
| 288 |
bulk.find(findMap).update({'$set' : updateMap})
|
323 |
bulk.find(findMap).update({'$set' : updateMap})
|
| 289 |
bulk.find({'orderId': order['orderId']}).update({'$set':{'closed': closed}})
|
324 |
bulk.find({'orderId': order['orderId']}).update({'$set':{'closed': closed}})
|
| 290 |
result = bulk.execute()
|
325 |
result = bulk.execute()
|
| 291 |
pprint(result)
|
326 |
pprint(result)
|
| Line 355... |
Line 390... |
| 355 |
return urllib.urlencode(parameters)
|
390 |
return urllib.urlencode(parameters)
|
| 356 |
|
391 |
|
| 357 |
def main():
|
392 |
def main():
|
| 358 |
|
393 |
|
| 359 |
store = getStore(3)
|
394 |
store = getStore(3)
|
| - |
|
395 |
store.scrapeStoreOrders()
|
| 360 |
#store._isSubOrderActive(8, "5970688907")
|
396 |
#store._isSubOrderActive(8, "5970688907")
|
| 361 |
store.scrapeAffiliate()
|
397 |
#store.scrapeAffiliate()
|
| 362 |
#store.parseOrderRawHtml(12345, "subtagId", 122323, "html", 'https://m.snapdeal.com/purchaseMobileComplete?code=1f4166d13ea799b65aa9dea68b3e9e70&order=4509499363')
|
398 |
#store.parseOrderRawHtml(12345, "subtagId", 122323, "html", 'https://m.snapdeal.com/purchaseMobileComplete?code=1f4166d13ea799b65aa9dea68b3e9e70&order=4509499363')
|
| 363 |
|
399 |
|
| 364 |
|
400 |
|
| 365 |
if __name__ == '__main__':
|
401 |
if __name__ == '__main__':
|
| 366 |
main()
|
402 |
main()
|