| Line 18... |
Line 18... |
| 18 |
from reportlab.lib.units import inch, mm
|
18 |
from reportlab.lib.units import inch, mm
|
| 19 |
from reportlab.pdfgen.canvas import Canvas
|
19 |
from reportlab.pdfgen.canvas import Canvas
|
| 20 |
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, \
|
20 |
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, \
|
| 21 |
BaseDocTemplate, Frame, PageTemplate, Table, TableStyle
|
21 |
BaseDocTemplate, Frame, PageTemplate, Table, TableStyle
|
| 22 |
from reportlab.rl_config import defaultPageSize
|
22 |
from reportlab.rl_config import defaultPageSize
|
| 23 |
from shop2020.clients.AlertClient import AlertClient
|
- |
|
| 24 |
from shop2020.clients.CRMClient import CRMClient
|
23 |
from shop2020.clients.CRMClient import CRMClient
|
| 25 |
from shop2020.clients.CatalogClient import CatalogClient
|
24 |
from shop2020.clients.CatalogClient import CatalogClient
|
| 26 |
from shop2020.clients.HelperClient import HelperClient
|
25 |
from shop2020.clients.HelperClient import HelperClient
|
| 27 |
from shop2020.clients.InventoryClient import InventoryClient
|
26 |
from shop2020.clients.InventoryClient import InventoryClient
|
| 28 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
27 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
| Line 66... |
Line 65... |
| 66 |
from shop2020.model.v1.order.impl.model.TelecomCircle import TelecomCircle
|
65 |
from shop2020.model.v1.order.impl.model.TelecomCircle import TelecomCircle
|
| 67 |
from shop2020.model.v1.order.impl.model.UserWallet import UserWallet
|
66 |
from shop2020.model.v1.order.impl.model.UserWallet import UserWallet
|
| 68 |
from shop2020.model.v1.order.impl.model.UserWalletHistory import \
|
67 |
from shop2020.model.v1.order.impl.model.UserWalletHistory import \
|
| 69 |
UserWalletHistory
|
68 |
UserWalletHistory
|
| 70 |
from shop2020.model.v1.user.impl.Converters import to_t_address
|
69 |
from shop2020.model.v1.user.impl.Converters import to_t_address
|
| 71 |
from shop2020.thriftpy.alert.ttypes import MonitoredEntity, EntityType
|
- |
|
| 72 |
from shop2020.thriftpy.crm.ttypes import *
|
70 |
from shop2020.thriftpy.crm.ttypes import *
|
| 73 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType, PickUpType
|
71 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType, PickUpType
|
| 74 |
from shop2020.thriftpy.model.v1.catalog.ttypes import ItemType, ItemCondition
|
72 |
from shop2020.thriftpy.model.v1.catalog.ttypes import ItemType, ItemCondition
|
| 75 |
from shop2020.thriftpy.model.v1.inventory.ttypes import BillingType, \
|
73 |
from shop2020.thriftpy.model.v1.inventory.ttypes import BillingType, \
|
| 76 |
InventoryServiceException, WarehouseType, InventoryType, VatType, ItemInventory, \
|
74 |
InventoryServiceException, WarehouseType, InventoryType, VatType, ItemInventory, \
|
| Line 1398... |
Line 1396... |
| 1398 |
if order == None or order.status not in [OrderStatus.SHIPPED_FROM_WH, OrderStatus.DELIVERED_AT_STORE, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE, OrderStatus.DELIVERY_SUCCESS]:
|
1396 |
if order == None or order.status not in [OrderStatus.SHIPPED_FROM_WH, OrderStatus.DELIVERED_AT_STORE, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE, OrderStatus.DELIVERY_SUCCESS]:
|
| 1399 |
return False
|
1397 |
return False
|
| 1400 |
order.status = OrderStatus.RTO_IN_TRANSIT
|
1398 |
order.status = OrderStatus.RTO_IN_TRANSIT
|
| 1401 |
order.delivery_timestamp = datetime.datetime.now()
|
1399 |
order.delivery_timestamp = datetime.datetime.now()
|
| 1402 |
order.statusDescription = "Order Returned to Origin"
|
1400 |
order.statusDescription = "Order Returned to Origin"
|
| 1403 |
try:
|
- |
|
| 1404 |
alert_client = AlertClient().get_client()
|
- |
|
| 1405 |
alert_client.endMonitoringEntity(EntityType.COURIER, "orderId = " + str(order.id))
|
- |
|
| 1406 |
except Exception as e:
|
- |
|
| 1407 |
print "Exception in ending alert in MarkOrderAsRTO method"
|
- |
|
| 1408 |
print e
|
- |
|
| 1409 |
update_trust_level(orders[0])
|
1401 |
update_trust_level(orders[0])
|
| 1410 |
session.commit()
|
1402 |
session.commit()
|
| 1411 |
else:
|
1403 |
else:
|
| 1412 |
if selectedOrder == None or selectedOrder.status not in [OrderStatus.SHIPPED_FROM_WH, OrderStatus.DELIVERED_AT_STORE, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE, OrderStatus.DELIVERY_SUCCESS]:
|
1404 |
if selectedOrder == None or selectedOrder.status not in [OrderStatus.SHIPPED_FROM_WH, OrderStatus.DELIVERED_AT_STORE, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE, OrderStatus.DELIVERY_SUCCESS]:
|
| 1413 |
return False
|
1405 |
return False
|
| 1414 |
selectedOrder.status = OrderStatus.RTO_IN_TRANSIT
|
1406 |
selectedOrder.status = OrderStatus.RTO_IN_TRANSIT
|
| 1415 |
selectedOrder.delivery_timestamp = datetime.datetime.now()
|
1407 |
selectedOrder.delivery_timestamp = datetime.datetime.now()
|
| 1416 |
selectedOrder.statusDescription = "Order Returned to Origin"
|
1408 |
selectedOrder.statusDescription = "Order Returned to Origin"
|
| 1417 |
update_trust_level(selectedOrder)
|
1409 |
update_trust_level(selectedOrder)
|
| 1418 |
session.commit()
|
1410 |
session.commit()
|
| 1419 |
try:
|
- |
|
| 1420 |
alert_client = AlertClient().get_client()
|
- |
|
| 1421 |
alert_client.endMonitoringEntity(EntityType.COURIER, "orderId = " + str(selectedOrder.id))
|
- |
|
| 1422 |
except Exception as e:
|
- |
|
| 1423 |
print "Exception in ending alert in MarkOrderAsRTO method"
|
- |
|
| 1424 |
print e
|
- |
|
| 1425 |
return True
|
1411 |
return True
|
| 1426 |
|
1412 |
|
| 1427 |
def get_order(order_id):
|
1413 |
def get_order(order_id):
|
| 1428 |
order = Order.get_by(id=order_id)
|
1414 |
order = Order.get_by(id=order_id)
|
| 1429 |
if not order:
|
1415 |
if not order:
|
| Line 2058... |
Line 2044... |
| 2058 |
orders = Order.query.filter(Order.id.in_(orderIds)).filter_by(warehouse_id = warehouseId, logistics_provider_id = providerId, status = OrderStatus.BILLED).all()
|
2044 |
orders = Order.query.filter(Order.id.in_(orderIds)).filter_by(warehouse_id = warehouseId, logistics_provider_id = providerId, status = OrderStatus.BILLED).all()
|
| 2059 |
for order in orders:
|
2045 |
for order in orders:
|
| 2060 |
order.status = OrderStatus.SHIPPED_FROM_WH
|
2046 |
order.status = OrderStatus.SHIPPED_FROM_WH
|
| 2061 |
order.statusDescription = "Order shipped from warehouse"
|
2047 |
order.statusDescription = "Order shipped from warehouse"
|
| 2062 |
order.shipping_timestamp = current_timestamp
|
2048 |
order.shipping_timestamp = current_timestamp
|
| 2063 |
'''
|
- |
|
| 2064 |
try:
|
- |
|
| 2065 |
print "Trying to schedule alert"
|
- |
|
| 2066 |
monitoredEntity = MonitoredEntity();
|
- |
|
| 2067 |
monitoredEntity.entityType=EntityType.COURIER;
|
- |
|
| 2068 |
monitoredEntity.eventType=OrderStatus.SHIPPED_FROM_WH;
|
- |
|
| 2069 |
monitoredEntity.entityIdentifier="orderId = " + str(order.id);
|
- |
|
| 2070 |
adjustedDeliveryDays = adjust_delivery_time(datetime.datetime.now(), 1);
|
- |
|
| 2071 |
sec = datetime.datetime.now()
|
- |
|
| 2072 |
#Warn alert time is taken as 16 hrs
|
- |
|
| 2073 |
warn_time = (sec + timedelta(days=(adjustedDeliveryDays-1)) + timedelta(hours=16))
|
- |
|
| 2074 |
#Critical alert time is taken as 26 hrs
|
- |
|
| 2075 |
critical_time = (sec + timedelta(days=(adjustedDeliveryDays-1)) + timedelta(hours=26))
|
- |
|
| 2076 |
monitoredEntity.warnExpiryTime = int(warn_time.strftime("%s"))*1000
|
- |
|
| 2077 |
monitoredEntity.criticalExpiryTime = int(critical_time.strftime("%s"))*1000
|
- |
|
| 2078 |
monitoredEntity.description="warehouseId = " + str(warehouseId) + " providerId = " + str(providerId) + " orderId = " + str(order.id);
|
- |
|
| 2079 |
alert_client = AlertClient().get_client()
|
- |
|
| 2080 |
alert_client.scheduleAlert(monitoredEntity)
|
- |
|
| 2081 |
except Exception as e:
|
- |
|
| 2082 |
print "Exception in scheduling alert in ShippedFromWarehouse method"
|
- |
|
| 2083 |
print e
|
- |
|
| 2084 |
'''
|
- |
|
| 2085 |
session.commit()
|
2049 |
session.commit()
|
| 2086 |
logisticsTxnIdOrdersMap = {}
|
2050 |
logisticsTxnIdOrdersMap = {}
|
| 2087 |
for order in orders:
|
2051 |
for order in orders:
|
| 2088 |
if order.logisticsTransactionId:
|
2052 |
if order.logisticsTransactionId:
|
| 2089 |
if logisticsTxnIdOrdersMap.has_key(order.logisticsTransactionId):
|
2053 |
if logisticsTxnIdOrdersMap.has_key(order.logisticsTransactionId):
|
| Line 2195... |
Line 2159... |
| 2195 |
if order.status != OrderStatus.SHIPPED_FROM_WH:
|
2159 |
if order.status != OrderStatus.SHIPPED_FROM_WH:
|
| 2196 |
continue
|
2160 |
continue
|
| 2197 |
order.status = OrderStatus.SHIPPED_TO_LOGST
|
2161 |
order.status = OrderStatus.SHIPPED_TO_LOGST
|
| 2198 |
order.statusDescription = "Order picked up by Courier Company"
|
2162 |
order.statusDescription = "Order picked up by Courier Company"
|
| 2199 |
order.pickup_timestamp = pickup_timestamp
|
2163 |
order.pickup_timestamp = pickup_timestamp
|
| 2200 |
|
- |
|
| 2201 |
try:
|
- |
|
| 2202 |
monitoredEntity = MonitoredEntity();
|
- |
|
| 2203 |
monitoredEntity.entityType=EntityType.COURIER;
|
- |
|
| 2204 |
monitoredEntity.eventType=OrderStatus.SHIPPED_TO_LOGST
|
- |
|
| 2205 |
monitoredEntity.entityIdentifier="orderId = " + str(order.id);
|
- |
|
| 2206 |
adjustedDeliveryDays = adjust_delivery_time(datetime.datetime.now(), 2);
|
- |
|
| 2207 |
sec = datetime.datetime.now()
|
- |
|
| 2208 |
#Warn alert time is taken as 26 hrs
|
- |
|
| 2209 |
warn_time = (sec + timedelta(days=(adjustedDeliveryDays-2)) + timedelta(hours=26))
|
- |
|
| 2210 |
#Critical alert time is taken as 36 hrs
|
- |
|
| 2211 |
critical_time = (sec + timedelta(days=(adjustedDeliveryDays-1)) + timedelta(hours=36))
|
- |
|
| 2212 |
monitoredEntity.warnExpiryTime = int(warn_time.strftime("%s"))*1000
|
- |
|
| 2213 |
monitoredEntity.criticalExpiryTime = int(critical_time.strftime("%s"))*1000
|
- |
|
| 2214 |
monitoredEntity.description="providerId = " + str(provider_id)
|
- |
|
| 2215 |
alert_client = AlertClient().get_client()
|
- |
|
| 2216 |
alert_client.updateMonitoredObject(monitoredEntity)
|
- |
|
| 2217 |
except Exception as e:
|
- |
|
| 2218 |
print "Exception in updating alert in MarkOrdersAsPickedUp method"
|
- |
|
| 2219 |
print e
|
- |
|
| 2220 |
session.commit()
|
2164 |
session.commit()
|
| 2221 |
|
2165 |
|
| 2222 |
def get_orders_not_picked_up(provider_id):
|
2166 |
def get_orders_not_picked_up(provider_id):
|
| 2223 |
current_time = datetime.datetime.now()
|
2167 |
current_time = datetime.datetime.now()
|
| 2224 |
to_datetime = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
2168 |
to_datetime = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
| Line 2254... |
Line 2198... |
| 2254 |
order.first_dlvyatmp_timestamp = order.delivery_timestamp
|
2198 |
order.first_dlvyatmp_timestamp = order.delivery_timestamp
|
| 2255 |
order.receiver = receiver
|
2199 |
order.receiver = receiver
|
| 2256 |
if order.pickupStoreId:
|
2200 |
if order.pickupStoreId:
|
| 2257 |
order.status = OrderStatus.DELIVERED_AT_STORE
|
2201 |
order.status = OrderStatus.DELIVERED_AT_STORE
|
| 2258 |
order.statusDescription = "Order delivered At Store"
|
2202 |
order.statusDescription = "Order delivered At Store"
|
| 2259 |
try:
|
- |
|
| 2260 |
monitoredEntity = MonitoredEntity();
|
- |
|
| 2261 |
monitoredEntity.entityType=EntityType.COURIER;
|
- |
|
| 2262 |
monitoredEntity.eventType=OrderStatus.DELIVERED_AT_STORE;
|
- |
|
| 2263 |
monitoredEntity.entityIdentifier="orderId = " + str(order.id);
|
- |
|
| 2264 |
#adjustedDeliveryDays = adjust_delivery_time(datetime.datetime.now(), 1);
|
- |
|
| 2265 |
sec = datetime.datetime.now()
|
- |
|
| 2266 |
#Critical alert time is taken as 26 hrs
|
- |
|
| 2267 |
critical_time = (sec + timedelta(hours=4))
|
- |
|
| 2268 |
monitoredEntity.criticalExpiryTime = int(critical_time.strftime("%s"))*1000
|
- |
|
| 2269 |
monitoredEntity.description="deliveryTimeAtStore = " + str(order.delivery_timestamp) + " orderId = " + str(order.id);
|
- |
|
| 2270 |
alert_client = AlertClient().get_client()
|
- |
|
| 2271 |
alert_client.updateMonitoredObject(monitoredEntity)
|
- |
|
| 2272 |
except Exception as e:
|
- |
|
| 2273 |
print e
|
- |
|
| 2274 |
else:
|
2203 |
else:
|
| 2275 |
order.status = OrderStatus.DELIVERY_SUCCESS
|
2204 |
order.status = OrderStatus.DELIVERY_SUCCESS
|
| 2276 |
order.statusDescription = "Order delivered"
|
2205 |
order.statusDescription = "Order delivered"
|
| 2277 |
if order.insuranceDetails:
|
2206 |
if order.insuranceDetails:
|
| 2278 |
try:
|
2207 |
try:
|
| Line 2283... |
Line 2212... |
| 2283 |
return
|
2212 |
return
|
| 2284 |
|
2213 |
|
| 2285 |
if order.dataInsuranceDetails:
|
2214 |
if order.dataInsuranceDetails:
|
| 2286 |
order.dataInsuranceDetails[0].startDate = order.delivery_timestamp
|
2215 |
order.dataInsuranceDetails[0].startDate = order.delivery_timestamp
|
| 2287 |
order.dataInsuranceDetails[0].expiryDate = order.delivery_timestamp + timedelta(days = 90)
|
2216 |
order.dataInsuranceDetails[0].expiryDate = order.delivery_timestamp + timedelta(days = 90)
|
| 2288 |
|
- |
|
| 2289 |
try:
|
- |
|
| 2290 |
alert_client = AlertClient().get_client()
|
- |
|
| 2291 |
alert_client.endMonitoringEntity(EntityType.COURIER, "orderId = " + str(order.id))
|
- |
|
| 2292 |
except Exception as e:
|
- |
|
| 2293 |
print "Exception in scheduling alert in ShippedFromWarehouse method"
|
- |
|
| 2294 |
print e
|
- |
|
| 2295 |
|
2217 |
|
| 2296 |
|
2218 |
|
| 2297 |
for logisticsTxnId, ordersList in logisticsTxnIdOrdersMap.iteritems():
|
2219 |
for logisticsTxnId, ordersList in logisticsTxnIdOrdersMap.iteritems():
|
| 2298 |
if enqueue_delivery_success_mail(logisticsTxnId, ordersList) :
|
2220 |
if enqueue_delivery_success_mail(logisticsTxnId, ordersList) :
|
| 2299 |
order = ordersList[0]
|
2221 |
order = ordersList[0]
|
| Line 2417... |
Line 2339... |
| 2417 |
# payment_client = PaymentClient().get_client()
|
2339 |
# payment_client = PaymentClient().get_client()
|
| 2418 |
# payment_client.partiallyCapturePayment(order.transaction.id, order.total_amount, xferBy, xferTxnId, now())
|
2340 |
# payment_client.partiallyCapturePayment(order.transaction.id, order.total_amount, xferBy, xferTxnId, now())
|
| 2419 |
# order.cod_reconciliation_timestamp = datetime.datetime.now()
|
2341 |
# order.cod_reconciliation_timestamp = datetime.datetime.now()
|
| 2420 |
# session.commit()
|
2342 |
# session.commit()
|
| 2421 |
|
2343 |
|
| 2422 |
try:
|
- |
|
| 2423 |
alert_client = AlertClient().get_client()
|
- |
|
| 2424 |
alert_client.endMonitoringEntity(EntityType.COURIER, "orderId = " + str(order.id))
|
- |
|
| 2425 |
except Exception as e:
|
- |
|
| 2426 |
print "Exception in ending alert in MarkOrderAsDelivered method"
|
- |
|
| 2427 |
print e
|
- |
|
| 2428 |
|
- |
|
| 2429 |
update_trust_level(grouppedOrdersList[0])
|
2344 |
update_trust_level(grouppedOrdersList[0])
|
| 2430 |
session.commit()
|
2345 |
session.commit()
|
| 2431 |
|
2346 |
|
| 2432 |
|
2347 |
|
| 2433 |
def mark_order_as_received_at_store(orderId, deliveryTimestamp):
|
2348 |
def mark_order_as_received_at_store(orderId, deliveryTimestamp):
|
| Line 2436... |
Line 2351... |
| 2436 |
order.status = OrderStatus.RECEIVED_AT_STORE
|
2351 |
order.status = OrderStatus.RECEIVED_AT_STORE
|
| 2437 |
order.statusDescription = "Order received at store"
|
2352 |
order.statusDescription = "Order received at store"
|
| 2438 |
order.delivery_timestamp = deliveryTimestamp
|
2353 |
order.delivery_timestamp = deliveryTimestamp
|
| 2439 |
session.commit()
|
2354 |
session.commit()
|
| 2440 |
try:
|
2355 |
try:
|
| 2441 |
alert_client = AlertClient().get_client()
|
- |
|
| 2442 |
alert_client.endMonitoringEntity(EntityType.COURIER, "orderId = " + str(order.id))
|
- |
|
| 2443 |
except Exception as e:
|
- |
|
| 2444 |
print e
|
- |
|
| 2445 |
|
- |
|
| 2446 |
try:
|
- |
|
| 2447 |
enqueue_received_at_store_email(order)
|
2356 |
enqueue_received_at_store_email(order)
|
| 2448 |
except Exception as e:
|
2357 |
except Exception as e:
|
| 2449 |
print e
|
2358 |
print e
|
| 2450 |
|
2359 |
|
| 2451 |
|
2360 |
|
| Line 2462... |
Line 2371... |
| 2462 |
continue
|
2371 |
continue
|
| 2463 |
#raise TransactionServiceException(103, "No order found for the awb:" + awb)
|
2372 |
#raise TransactionServiceException(103, "No order found for the awb:" + awb)
|
| 2464 |
order.status = OrderStatus.RTO_IN_TRANSIT
|
2373 |
order.status = OrderStatus.RTO_IN_TRANSIT
|
| 2465 |
order.delivery_timestamp, reason = detail.split('|')
|
2374 |
order.delivery_timestamp, reason = detail.split('|')
|
| 2466 |
order.statusDescription = "Order Returned to Origin:" + reason
|
2375 |
order.statusDescription = "Order Returned to Origin:" + reason
|
| 2467 |
try:
|
- |
|
| 2468 |
alert_client = AlertClient().get_client()
|
- |
|
| 2469 |
alert_client.endMonitoringEntity(EntityType.COURIER, "orderId = " + str(order.id))
|
- |
|
| 2470 |
except Exception as e:
|
- |
|
| 2471 |
print "Exception in ending alert in MarkOrderAsRTO method"
|
- |
|
| 2472 |
print e
|
- |
|
| 2473 |
|
2376 |
|
| 2474 |
update_trust_level(orders[0])
|
2377 |
update_trust_level(orders[0])
|
| 2475 |
session.commit()
|
2378 |
session.commit()
|
| 2476 |
|
2379 |
|
| 2477 |
def get_rto_orders(provider_id):
|
2380 |
def get_rto_orders(provider_id):
|
| 2478 |
current_time = datetime.datetime.now()
|
2381 |
current_time = datetime.datetime.now()
|
| Line 2530... |
Line 2433... |
| 2530 |
continue
|
2433 |
continue
|
| 2531 |
order.status = OrderStatus.SHIPPED_TO_DESTINATION_CITY
|
2434 |
order.status = OrderStatus.SHIPPED_TO_DESTINATION_CITY
|
| 2532 |
order.statusDescription = "Left Out of Origin City"
|
2435 |
order.statusDescription = "Left Out of Origin City"
|
| 2533 |
current_time = datetime.datetime.now()
|
2436 |
current_time = datetime.datetime.now()
|
| 2534 |
order.local_connected_timestamp = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
2437 |
order.local_connected_timestamp = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
| 2535 |
try:
|
- |
|
| 2536 |
monitoredEntity = MonitoredEntity();
|
- |
|
| 2537 |
monitoredEntity.entityType=EntityType.COURIER;
|
- |
|
| 2538 |
monitoredEntity.eventType=OrderStatus.SHIPPED_TO_DESTINATION_CITY
|
- |
|
| 2539 |
monitoredEntity.entityIdentifier="orderId = " + str(order.id);
|
- |
|
| 2540 |
|
- |
|
| 2541 |
sec = datetime.datetime.now()
|
- |
|
| 2542 |
#Warn alert time is taken as 14 hrs less than expected delivery time
|
- |
|
| 2543 |
warn_time1 = (order.expected_delivery_time-timedelta(hours = 14))
|
- |
|
| 2544 |
warn_time2 = sec + timedelta(order.expected_delivery_time - order.expected_shipping_timestamp) - timedelta(sec - order.shipping_time)
|
- |
|
| 2545 |
warn_time = max(warn_time1, warn_time2)
|
- |
|
| 2546 |
|
- |
|
| 2547 |
#Critical alert time is taken as 13 hrs less than promised delivery time
|
- |
|
| 2548 |
critical_time1 = (order.expected_delivery_time-timedelta(hours = 10))
|
- |
|
| 2549 |
critical_time2 = sec + timedelta(order.expected_delivery_time - order.expected_shipping_timestamp) - timedelta(sec - order.shipping_time) + timedelta(hours = 5)
|
- |
|
| 2550 |
critical_time = max(critical_time1, critical_time2)
|
- |
|
| 2551 |
|
- |
|
| 2552 |
monitoredEntity.warnExpiryTime = int(warn_time.strftime("%s"))*1000
|
- |
|
| 2553 |
monitoredEntity.criticalExpiryTime = int(critical_time.strftime("%s"))*1000
|
- |
|
| 2554 |
monitoredEntity.description="providerId = " + str(provider_id) + " destination city " + order.customer_city
|
- |
|
| 2555 |
alert_client = AlertClient().get_client()
|
- |
|
| 2556 |
alert_client.updateMonitoredObject(monitoredEntity)
|
- |
|
| 2557 |
except Exception as e:
|
- |
|
| 2558 |
print "Exception in updating alert in MarkOrderAsLocalConnected method"
|
- |
|
| 2559 |
print e
|
- |
|
| 2560 |
session.commit()
|
2438 |
session.commit()
|
| 2561 |
|
2439 |
|
| 2562 |
def get_orders_not_local_connected(provider_id):
|
2440 |
def get_orders_not_local_connected(provider_id):
|
| 2563 |
current_time = datetime.datetime.now()
|
2441 |
current_time = datetime.datetime.now()
|
| 2564 |
to_datetime = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
2442 |
to_datetime = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
| Line 2578... |
Line 2456... |
| 2578 |
continue
|
2456 |
continue
|
| 2579 |
#raise TransactionServiceException(103, "No order found for the awb:" + awb)
|
2457 |
#raise TransactionServiceException(103, "No order found for the awb:" + awb)
|
| 2580 |
order.status = OrderStatus.REACHED_DESTINATION_CITY
|
2458 |
order.status = OrderStatus.REACHED_DESTINATION_CITY
|
| 2581 |
order.statusDescription = "Reached Destination City"
|
2459 |
order.statusDescription = "Reached Destination City"
|
| 2582 |
order.reached_destination_timestamp = timestamp
|
2460 |
order.reached_destination_timestamp = timestamp
|
| 2583 |
try:
|
- |
|
| 2584 |
monitoredEntity = MonitoredEntity();
|
- |
|
| 2585 |
monitoredEntity.entityType=EntityType.COURIER;
|
- |
|
| 2586 |
monitoredEntity.eventType=OrderStatus.REACHED_DESTINATION_CITY
|
- |
|
| 2587 |
monitoredEntity.entityIdentifier="orderId = " + str(order.id);
|
- |
|
| 2588 |
|
- |
|
| 2589 |
sec = datetime.datetime.now()
|
- |
|
| 2590 |
#Warn alert time is taken as expected delivery time
|
- |
|
| 2591 |
warn_time1 = (order.expected_delivery_time)
|
- |
|
| 2592 |
warn_time2 = sec + timedelta(order.expected_delivery_time - order.expected_shipping_time) - timedelta(sec - order.shipping_time)
|
- |
|
| 2593 |
warn_time = max(warn_time1, warn_time2)
|
- |
|
| 2594 |
|
- |
|
| 2595 |
#Critical alert time is taken as 13 hrs less than promised delivery time
|
- |
|
| 2596 |
critical_time1 = (order.expected_delivery_time + timedelta(hours = 5))
|
- |
|
| 2597 |
critical_time2 = sec + timedelta(order.expected_delivery_time - order.expected_shipping_time) - timedelta(sec - order.shipping_time) + timedelta(hours = 5)
|
- |
|
| 2598 |
critical_time = max(critical_time1, critical_time2)
|
- |
|
| 2599 |
|
- |
|
| 2600 |
monitoredEntity.warnExpiryTime = int(warn_time.strftime("%s"))*1000
|
- |
|
| 2601 |
monitoredEntity.criticalExpiryTime = int(critical_time.strftime("%s"))*1000
|
- |
|
| 2602 |
monitoredEntity.description="providerId = " + str(provider_id) + " destination city " + order.customer_city
|
- |
|
| 2603 |
alert_client = AlertClient().get_client()
|
- |
|
| 2604 |
alert_client.updateMonitoredObject(monitoredEntity)
|
- |
|
| 2605 |
except Exception as e:
|
- |
|
| 2606 |
print "Exception in updating alert in MarkOrderAsDestCityReached method"
|
- |
|
| 2607 |
print e
|
- |
|
| 2608 |
session.commit()
|
2461 |
session.commit()
|
| 2609 |
|
2462 |
|
| 2610 |
def mark_orders_as_firstDeliveryAttempted(provider_id, first_atdl_orders):
|
2463 |
def mark_orders_as_firstDeliveryAttempted(provider_id, first_atdl_orders):
|
| 2611 |
for awb, detail in first_atdl_orders.iteritems():
|
2464 |
for awb, detail in first_atdl_orders.iteritems():
|
| 2612 |
orders = None
|
2465 |
orders = None
|
| Line 2620... |
Line 2473... |
| 2620 |
continue
|
2473 |
continue
|
| 2621 |
#raise TransactionServiceException(103, "No order found for the awb:" + awb)
|
2474 |
#raise TransactionServiceException(103, "No order found for the awb:" + awb)
|
| 2622 |
order.status = OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE
|
2475 |
order.status = OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE
|
| 2623 |
order.first_dlvyatmp_timestamp, reason = detail.split('|')
|
2476 |
order.first_dlvyatmp_timestamp, reason = detail.split('|')
|
| 2624 |
order.statusDescription = reason
|
2477 |
order.statusDescription = reason
|
| 2625 |
try:
|
- |
|
| 2626 |
monitoredEntity = MonitoredEntity();
|
- |
|
| 2627 |
monitoredEntity.entityType=EntityType.COURIER;
|
- |
|
| 2628 |
monitoredEntity.eventType=OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE
|
- |
|
| 2629 |
monitoredEntity.entityIdentifier="orderId = " + str(order.id);
|
- |
|
| 2630 |
adjustedDeliveryDaysfor1day = adjust_delivery_time(datetime.datetime.now(), 1);
|
- |
|
| 2631 |
adjustedDeliveryDaysfor2days = adjust_delivery_time(datetime.datetime.now(), 2);
|
- |
|
| 2632 |
sec = datetime.datetime.now()
|
- |
|
| 2633 |
#Warn alert time is taken as 16 hrs
|
- |
|
| 2634 |
warn_time = (sec + timedelta(days=(adjustedDeliveryDaysfor1day-1)) + timedelta(hours=24))
|
- |
|
| 2635 |
#Critical alert time is taken as 26 hrs
|
- |
|
| 2636 |
critical_time = (sec + timedelta(days=(adjustedDeliveryDaysfor2days-2)) + timedelta(hours=48))
|
- |
|
| 2637 |
monitoredEntity.warnExpiryTime = int(warn_time.strftime("%s"))*1000
|
- |
|
| 2638 |
monitoredEntity.criticalExpiryTime = int(critical_time.strftime("%s"))*1000
|
- |
|
| 2639 |
monitoredEntity.description="providerId = " + str(provider_id) + " first attempt timestamp" + order.first_dlvyatmp_timestamp
|
- |
|
| 2640 |
alert_client = AlertClient().get_client()
|
- |
|
| 2641 |
alert_client.updateMonitoredObject(monitoredEntity)
|
- |
|
| 2642 |
except Exception as e:
|
- |
|
| 2643 |
print "Exception in updating alert in MarkOrdersAsFirstDeliveryAttempted method"
|
- |
|
| 2644 |
print e
|
- |
|
| 2645 |
session.commit()
|
2478 |
session.commit()
|
| 2646 |
|
2479 |
|
| 2647 |
def get_orders_not_met_expected_delivery_date():
|
2480 |
def get_orders_not_met_expected_delivery_date():
|
| 2648 |
current_time = datetime.datetime.now()
|
2481 |
current_time = datetime.datetime.now()
|
| 2649 |
today_datetime = datetime.datetime(current_time.year, current_time.month, current_time.day)
|
2482 |
today_datetime = datetime.datetime(current_time.year, current_time.month, current_time.day)
|