| Line 12... |
Line 12... |
| 12 |
from optparse import OptionParser
|
12 |
from optparse import OptionParser
|
| 13 |
from textwrap import dedent
|
13 |
from textwrap import dedent
|
| 14 |
import traceback
|
14 |
import traceback
|
| 15 |
from shop2020.clients.TransactionClient import TransactionClient
|
15 |
from shop2020.clients.TransactionClient import TransactionClient
|
| 16 |
from mx.DateTime.DateTime import TimeDelta
|
16 |
from mx.DateTime.DateTime import TimeDelta
|
| - |
|
17 |
from elixir import session
|
| 17 |
|
18 |
|
| 18 |
if __name__ == '__main__' and __package__ is None:
|
19 |
if __name__ == '__main__' and __package__ is None:
|
| 19 |
import sys
|
20 |
import sys
|
| 20 |
import os
|
21 |
import os
|
| 21 |
sys.path.insert(0, os.getcwd())
|
22 |
sys.path.insert(0, os.getcwd())
|
| Line 93... |
Line 94... |
| 93 |
traceback.print_exc()
|
94 |
traceback.print_exc()
|
| 94 |
|
95 |
|
| 95 |
|
96 |
|
| 96 |
def process_pickup_store_returns():
|
97 |
def process_pickup_store_returns():
|
| 97 |
DataService.initialize(db_hostname="192.168.190.114", echoOn=True)
|
98 |
DataService.initialize(db_hostname="192.168.190.114", echoOn=True)
|
| 98 |
DataService.initialize(db_hostname="localhost", echoOn=True)
|
- |
|
| 99 |
to_date = datetime.datetime.today() + datetime.timedelta(days = -3)
|
99 |
to_date = datetime.datetime.today() + datetime.timedelta(days = -3)
|
| 100 |
orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).all()
|
100 |
orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).all()
|
| 101 |
for order in orders:
|
101 |
for order in orders:
|
| 102 |
createCrmTicket(order)
|
102 |
createCrmTicket(order)
|
| 103 |
|
103 |
|
| 104 |
to_date = datetime.datetime.today() + datetime.timedelta(days = -5)
|
104 |
to_date = datetime.datetime.today() + datetime.timedelta(days = -5)
|
| 105 |
logistics_store_order_mapping = {}
|
105 |
logistics_store_order_mapping = {}
|
| 106 |
orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).order_by(Order.pickupStoreId).order_by(Order.logistics_provider_id).order_by(Order.warehouse_id).all()
|
106 |
orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).order_by(Order.pickupStoreId).order_by(Order.logistics_provider_id).order_by(Order.warehouse_id).all()
|
| 107 |
for order in orders:
|
107 |
for order in orders:
|
| 108 |
attribute = Attribute.query.filter(Attribute.orderId == order.id).filter(Attribute.name == "pickupExtension").first()
|
108 |
attribute = Attribute.query.filter(Attribute.orderId == order.id).filter(Attribute.name == "pickupExtension").first()
|
| 109 |
expiry = order.delivery_timestamp + datetime.timedelta(days = 5) + datetime.timedelta(days = int(attribute.value))
|
109 |
expiry = order.delivery_timestamp + datetime.timedelta(days = 5)
|
| - |
|
110 |
if attribute:
|
| - |
|
111 |
expiry = expiry + datetime.timedelta(days = int(attribute.value))
|
| 110 |
if expiry > datetime.datetime.today() :
|
112 |
if expiry > datetime.datetime.today() :
|
| 111 |
continue
|
113 |
continue
|
| 112 |
if logistics_store_order_mapping.has_key(order.pickupStoreId, order.logistics_provider_id, order.warehouse_id):
|
114 |
if logistics_store_order_mapping.has_key((order.pickupStoreId, order.logistics_provider_id, order.warehouse_id)):
|
| 113 |
logistics_store_order_mapping.get(order.pickupStoreId, order.logistics_provider_id, order.warehouse_id).append(order.id)
|
115 |
logistics_store_order_mapping.get((order.pickupStoreId, order.logistics_provider_id, order.warehouse_id)).append(order.id)
|
| 114 |
else:
|
116 |
else:
|
| 115 |
logistics_store_order_mapping[order.pickupStoreId, order.logistics_provider_id, order.warehouse_id] = [order.id]
|
117 |
logistics_store_order_mapping[order.pickupStoreId, order.logistics_provider_id, order.warehouse_id] = [order.id]
|
| 116 |
order.status = OrderStatus.RET_PICKUP_REQUEST_RAISED
|
118 |
order.status = OrderStatus.RET_PICKUP_REQUEST_RAISED
|
| 117 |
order.statusDescription = "Return request raised"
|
119 |
order.statusDescription = "Return request raised"
|
| 118 |
session.commit()
|
120 |
session.commit()
|
| Line 128... |
Line 130... |
| 128 |
raw_message = '''
|
130 |
raw_message = '''
|
| 129 |
Dear Sir/Madam,
|
131 |
Dear Sir/Madam,
|
| 130 |
|
132 |
|
| 131 |
Kindly arrange a pickup today from %(customer_city)s. Pickup and delivery addresses are mentioned below.
|
133 |
Kindly arrange a pickup today from %(customer_city)s. Pickup and delivery addresses are mentioned below.
|
| 132 |
|
134 |
|
| 133 |
Pickup Order Ids: %(order_ids)
|
135 |
Pickup Order Ids: %(order_ids)s
|
| 134 |
|
136 |
|
| 135 |
Pickup CODE: %(provider_code)s
|
137 |
Pickup CODE: %(provider_code)s
|
| 136 |
|
138 |
|
| 137 |
Pickup Address:
|
139 |
Pickup Address:
|
| 138 |
|
140 |
|
| Line 159... |
Line 161... |
| 159 |
address = address + pickupStore.city + "\n"
|
161 |
address = address + pickupStore.city + "\n"
|
| 160 |
address = address + pickupStore.state + "\n"
|
162 |
address = address + pickupStore.state + "\n"
|
| 161 |
address = address + "PIN " + pickupStore.pin + "\n"
|
163 |
address = address + "PIN " + pickupStore.pin + "\n"
|
| 162 |
address = address + "Phone: " + pickupStore.phone
|
164 |
address = address + "Phone: " + pickupStore.phone
|
| 163 |
|
165 |
|
| 164 |
order_ids = ""
|
166 |
order_ids= ""
|
| 165 |
order_ids.join(logistics_store_order_mapping.get(key))
|
167 |
for order_id in logistics_store_order_mapping.get(key):
|
| - |
|
168 |
order_ids = order_ids + ' ' + str(order_id)
|
| 166 |
|
169 |
|
| 167 |
message = dedent(raw_message) % { 'customer_city' : pickupStore.city,
|
170 |
message = dedent(raw_message) % { 'customer_city' : pickupStore.city,
|
| 168 |
'provider_code' : provider.details[DeliveryType.PREPAID].accountNo,
|
171 |
'provider_code' : provider.details[DeliveryType.PREPAID].accountNo,
|
| 169 |
'order_weight' : str(0.5),
|
172 |
'order_weight' : str(0.5),
|
| 170 |
'customer_address' : address,
|
173 |
'customer_address' : address,
|