| Line 1120... |
Line 1120... |
| 1120 |
alert_client.scheduleAlert(monitoredEntity)
|
1120 |
alert_client.scheduleAlert(monitoredEntity)
|
| 1121 |
except Exception as e:
|
1121 |
except Exception as e:
|
| 1122 |
print "Exception in scheduling alert in ShippedFromWarehouse method"
|
1122 |
print "Exception in scheduling alert in ShippedFromWarehouse method"
|
| 1123 |
print e
|
1123 |
print e
|
| 1124 |
session.commit()
|
1124 |
session.commit()
|
| - |
|
1125 |
|
| 1125 |
|
1126 |
|
| 1126 |
try:
|
1127 |
try:
|
| 1127 |
enqueue_shipping_confirmation_email(orders)
|
1128 |
for order in orders:
|
| 1128 |
except Exception as e:
|
1129 |
if order.pickupStoreId:
|
| 1129 |
print e
|
1130 |
send_mails_to_bdms(order)
|
| 1130 |
|
- |
|
| 1131 |
try:
|
1131 |
else:
|
| 1132 |
send_mails_to_bdms(orders)
|
1132 |
enqueue_shipping_confirmation_email(order)
|
| 1133 |
except Exception as e:
|
1133 |
except Exception as e:
|
| 1134 |
print e
|
1134 |
print e
|
| 1135 |
|
1135 |
|
| 1136 |
return True
|
1136 |
return True
|
| 1137 |
except:
|
1137 |
except:
|
| 1138 |
return False
|
1138 |
return False
|
| 1139 |
|
1139 |
|
| 1140 |
def send_mails_to_bdms(orders):
|
1140 |
def send_mails_to_bdms(order):
|
| 1141 |
logistics_client = LogisticsClient().get_client()
|
1141 |
logistics_client = LogisticsClient().get_client()
|
| 1142 |
from_user = 'cnc.center@shop2020.in'
|
1142 |
from_user = 'cnc.center@shop2020.in'
|
| 1143 |
from_pwd = '5h0p2o2o'
|
1143 |
from_pwd = '5h0p2o2o'
|
| 1144 |
for order in orders:
|
- |
|
| 1145 |
if order.pickupStoreId:
|
- |
|
| 1146 |
store = logistics_client.getPickupStore(order.pickupStoreId)
|
1144 |
store = logistics_client.getPickupStore(order.pickupStoreId)
|
| 1147 |
provider = logistics_client.getProvider(order.logistics_provider_id)
|
1145 |
provider = logistics_client.getProvider(order.logistics_provider_id)
|
| 1148 |
subject = "Saholic order " + str(order.id) +" shipped to store"
|
1146 |
subject = "Saholic order " + str(order.id) +" shipped to store"
|
| 1149 |
raw_message = '''
|
1147 |
raw_message = '''
|
| 1150 |
Dear Sir,
|
1148 |
Dear Sir,
|
| 1151 |
|
1149 |
|
| 1152 |
Order mentioned below is being shipped to your store. Customer will pick it from your store.
|
1150 |
Order mentioned below is being shipped to your store. Customer will pick it from your store.
|
| 1153 |
|
1151 |
|
| 1154 |
Store Id: %(store_id)s
|
1152 |
Store Id: %(store_id)s
|
| 1155 |
Order Id: %(order_id)s
|
1153 |
Order Id: %(order_id)s
|
| 1156 |
Product: %(product)s
|
1154 |
Product: %(product)s
|
| 1157 |
Delivery By: %(provider)s
|
1155 |
Delivery By: %(provider)s
|
| 1158 |
|
1156 |
|
| 1159 |
Thanks and Regards
|
1157 |
Thanks and Regards
|
| 1160 |
Sandeep Sachdeva
|
1158 |
Sandeep Sachdeva
|
| 1161 |
'''
|
1159 |
'''
|
| 1162 |
|
1160 |
|
| 1163 |
message = dedent(raw_message) % { 'order_id' : str(order.id),
|
1161 |
message = dedent(raw_message) % { 'order_id' : str(order.id),
|
| 1164 |
'store_id' : str(store.hotspotId),
|
1162 |
'store_id' : str(store.hotspotId),
|
| 1165 |
'provider' : provider.name,
|
1163 |
'provider' : provider.name,
|
| 1166 |
'product' : str(order.lineitems[0])
|
1164 |
'product' : str(order.lineitems[0])
|
| 1167 |
}
|
1165 |
}
|
| 1168 |
to_addresses = [store.bdmEmail, 'sandeep.sachdeva@shop2020.in']
|
1166 |
to_addresses = [store.bdmEmail, 'sandeep.sachdeva@shop2020.in']
|
| - |
|
1167 |
|
| - |
|
1168 |
mail(from_user, from_pwd, to_addresses, subject, message)
|
| 1169 |
|
1169 |
|
| 1170 |
mail(from_user, from_pwd, to_addresses, subject, message)
|
- |
|
| 1171 |
|
- |
|
| 1172 |
def mark_orders_as_returned_from_store(providerId, orderIds, awbs):
|
1170 |
def mark_orders_as_returned_from_store(providerId, orderIds, awbs):
|
| 1173 |
try:
|
1171 |
try:
|
| 1174 |
current_timestamp = datetime.datetime.now()
|
1172 |
current_timestamp = datetime.datetime.now()
|
| 1175 |
orders = Order.query.filter(Order.id.in_(orderIds)).filter_by(logistics_provider_id = providerId, status = OrderStatus.RET_PICKUP_REQUEST_RAISED).all()
|
1173 |
orders = Order.query.filter(Order.id.in_(orderIds)).filter_by(logistics_provider_id = providerId, status = OrderStatus.RET_PICKUP_REQUEST_RAISED).all()
|
| 1176 |
for order in orders:
|
1174 |
for order in orders:
|
| Line 3193... |
Line 3191... |
| 3193 |
new_expected_delivery_timestamp = datetime.datetime.now() + timedelta(adjust_delivery_time(datetime.datetime.now(), (order.promised_delivery_time - order.promised_shipping_time).days))
|
3191 |
new_expected_delivery_timestamp = datetime.datetime.now() + timedelta(adjust_delivery_time(datetime.datetime.now(), (order.promised_delivery_time - order.promised_shipping_time).days))
|
| 3194 |
new_expected_delivery_date = new_expected_delivery_timestamp.strftime("%A, %d %B %Y")
|
3192 |
new_expected_delivery_date = new_expected_delivery_timestamp.strftime("%A, %d %B %Y")
|
| 3195 |
info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date, courier_name = provider_name, courier_phone = provider_phone)
|
3193 |
info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date, courier_name = provider_name, courier_phone = provider_phone)
|
| 3196 |
return Template(html).substitute(info)
|
3194 |
return Template(html).substitute(info)
|
| 3197 |
|
3195 |
|
| 3198 |
def enqueue_shipping_confirmation_email(orders):
|
3196 |
def enqueue_shipping_confirmation_email(order):
|
| 3199 |
# Calling helper service on production
|
3197 |
# Calling helper service on production
|
| 3200 |
helperClient = HelperClient(host_key = "helper_service_server_host_prod").get_client()
|
3198 |
helperClient = HelperClient(host_key = "helper_service_server_host_prod").get_client()
|
| 3201 |
|
- |
|
| 3202 |
for order in orders:
|
- |
|
| 3203 |
try:
|
3199 |
try:
|
| 3204 |
emailSubject = 'Shipping Details for Order ID: ' + str(order.id)
|
3200 |
emailSubject = 'Shipping Details for Order ID: ' + str(order.id)
|
| 3205 |
emailBody = get_shipping_confirmation_email_body(order)
|
3201 |
emailBody = get_shipping_confirmation_email_body(order)
|
| 3206 |
helperClient.saveUserEmailForSending(order.customer_email, None, emailSubject, emailBody, str(order.id), 'ShippingConfirmation')
|
3202 |
helperClient.saveUserEmailForSending(order.customer_email, None, emailSubject, emailBody, str(order.id), 'ShippingConfirmation')
|
| 3207 |
except Exception as e:
|
3203 |
except Exception as e:
|
| 3208 |
print e
|
3204 |
print e
|
| 3209 |
|
3205 |
|
| 3210 |
def get_order_distribution_by_status(start_date, end_date):
|
3206 |
def get_order_distribution_by_status(start_date, end_date):
|
| 3211 |
query = session.query(Order.status, func.count(Order.id)).group_by(Order.status)
|
3207 |
query = session.query(Order.status, func.count(Order.id)).group_by(Order.status)
|
| 3212 |
query = query.filter(Order.created_timestamp >= start_date)
|
3208 |
query = query.filter(Order.created_timestamp >= start_date)
|
| 3213 |
query = query.filter(Order.created_timestamp <= end_date)
|
3209 |
query = query.filter(Order.created_timestamp <= end_date)
|