| Line 12... |
Line 12... |
| 12 |
from dtr.utils.utils import fetchResponseUsingProxy
|
12 |
from dtr.utils.utils import fetchResponseUsingProxy
|
| 13 |
from pymongo.mongo_client import MongoClient
|
13 |
from pymongo.mongo_client import MongoClient
|
| 14 |
from datetime import datetime, timedelta
|
14 |
from datetime import datetime, timedelta
|
| 15 |
import json
|
15 |
import json
|
| 16 |
import traceback
|
16 |
import traceback
|
| - |
|
17 |
from elixir import *
|
| - |
|
18 |
|
| - |
|
19 |
from dtr.storage.DataService import paytm_coupon_usages
|
| 17 |
|
20 |
|
| 18 |
class Store(MStore):
|
21 |
class Store(MStore):
|
| 19 |
OrderStatusMap = {
|
22 |
OrderStatusMap = {
|
| 20 |
main.Store.ORDER_PLACED : ['in process', 'ready to be shipped', 'order recieved', 'order received'],
|
23 |
main.Store.ORDER_PLACED : ['in process', 'ready to be shipped', 'order recieved', 'order received'],
|
| 21 |
main.Store.ORDER_DELIVERED : ['delivered'],
|
24 |
main.Store.ORDER_DELIVERED : ['delivered'],
|
| Line 102... |
Line 105... |
| 102 |
order.requireDetail = False
|
105 |
order.requireDetail = False
|
| 103 |
order.status = 'success'
|
106 |
order.status = 'success'
|
| 104 |
order.totalAmount = ordermap.get("subtotal")
|
107 |
order.totalAmount = ordermap.get("subtotal")
|
| 105 |
subOrders = []
|
108 |
subOrders = []
|
| 106 |
order.subOrders = subOrders
|
109 |
order.subOrders = subOrders
|
| - |
|
110 |
coupon_code = None
|
| - |
|
111 |
total_cashback = 0
|
| 107 |
for item in ordermap.get("items"):
|
112 |
for item in ordermap.get("items"):
|
| 108 |
product = item.get("product")
|
113 |
product = item.get("product")
|
| 109 |
shareUrl = product.get("seourl").replace("catalog.paytm.com/v1", "paytm.com/shop")
|
114 |
shareUrl = product.get("seourl").replace("catalog.paytm.com/v1", "paytm.com/shop")
|
| 110 |
paytmcashback = 0
|
115 |
paytmcashback = 0
|
| - |
|
116 |
if item.get("promo_code"):
|
| - |
|
117 |
coupon_code = item.get("promo_code")
|
| 111 |
for s in item.get("promo_text").split():
|
118 |
for s in item.get("promo_text").split():
|
| 112 |
if s.isdigit():
|
119 |
if s.isdigit():
|
| 113 |
paytmcashback = int(s)
|
120 |
paytmcashback = int(s)
|
| - |
|
121 |
total_cashback += paytmcashback
|
| 114 |
break
|
122 |
break
|
| 115 |
amountPaid = item.get("subtotal") - paytmcashback
|
123 |
amountPaid = item.get("subtotal") - paytmcashback
|
| 116 |
detailedStatus = item.get("status_text")
|
124 |
detailedStatus = item.get("status_text")
|
| 117 |
status = self._getStatusFromDetailedStatus(detailedStatus)
|
125 |
status = self._getStatusFromDetailedStatus(detailedStatus)
|
| 118 |
subOrder = SubOrder(item.get("title"), item.get("product").get(""), ordermap.get("date"), amountPaid, status, item.get("quantity"))
|
126 |
subOrder = SubOrder(item.get("title"), item.get("product").get(""), ordermap.get("date"), amountPaid, status, item.get("quantity"))
|
| 119 |
subOrder.imgUrl = product.get("thumbnail")
|
127 |
subOrder.imgUrl = product.get("thumbnail")
|
| Line 124... |
Line 132... |
| 124 |
subOrder.estimatedDeliveryDate = datetime.strftime(getISTDate(item.get("status_flow")[1].get("date")), "%d %b")
|
132 |
subOrder.estimatedDeliveryDate = datetime.strftime(getISTDate(item.get("status_flow")[1].get("date")), "%d %b")
|
| 125 |
subOrder.estimatedShippingDate = datetime.strftime(getISTDate(item.get("status_flow")[2].get("date")), "%d %b")
|
133 |
subOrder.estimatedShippingDate = datetime.strftime(getISTDate(item.get("status_flow")[2].get("date")), "%d %b")
|
| 126 |
else:
|
134 |
else:
|
| 127 |
subOrder.closed = False
|
135 |
subOrder.closed = False
|
| 128 |
subOrders.append(subOrder)
|
136 |
subOrders.append(subOrder)
|
| - |
|
137 |
if coupon_code:
|
| - |
|
138 |
usage = paytm_coupon_usages()
|
| - |
|
139 |
usage.cashback = total_cashback
|
| - |
|
140 |
usage.coupon = coupon_code
|
| - |
|
141 |
usage.user_id = userId
|
| - |
|
142 |
usage.order_id = orderId
|
| - |
|
143 |
session.commit()
|
| 129 |
self.populateDerivedFields(order)
|
144 |
self.populateDerivedFields(order)
|
| 130 |
if self._saveToOrder(todict(order)):
|
145 |
if self._saveToOrder(todict(order)):
|
| 131 |
resp['result'] = 'ORDER_CREATED'
|
146 |
resp['result'] = 'ORDER_CREATED'
|
| 132 |
else:
|
147 |
else:
|
| 133 |
resp['result'] = 'ORDER_ALREADY_CREATED_IGNORED'
|
148 |
resp['result'] = 'ORDER_ALREADY_CREATED_IGNORED'
|