| Line 111... |
Line 111... |
| 111 |
update_local_connected_orders(provider.id, local_connected_orders)
|
111 |
update_local_connected_orders(provider.id, local_connected_orders)
|
| 112 |
except:
|
112 |
except:
|
| 113 |
print "Some issue while processing the orders for local connection status"
|
113 |
print "Some issue while processing the orders for local connection status"
|
| 114 |
traceback.print_exc()
|
114 |
traceback.print_exc()
|
| 115 |
|
115 |
|
| 116 |
def process_reached_destination_city_orders(provider):
|
- |
|
| 117 |
try:
|
- |
|
| 118 |
orders_tobe_reached_destination_city = fetch_data(provider.id, [OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY])
|
- |
|
| 119 |
destination_city_reached_orders = read_reached_destination_orders(orders_tobe_reached_destination_city)
|
- |
|
| 120 |
if destination_city_reached_orders:
|
- |
|
| 121 |
update_destination_city_reached_orders(provider.id, destination_city_reached_orders)
|
- |
|
| 122 |
except:
|
- |
|
| 123 |
print "Some issue while processing the orders for Reached Destination City status"
|
- |
|
| 124 |
traceback.print_exc()
|
- |
|
| 125 |
|
- |
|
| 126 |
def process_first_delivery_attempt_orders(provider):
|
116 |
def process_first_delivery_attempt_orders(provider):
|
| 127 |
try:
|
117 |
try:
|
| 128 |
orders_tobe_first_delivery_attempted = fetch_data(provider.id, [OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY])
|
118 |
orders_tobe_first_delivery_attempted = fetch_data(provider.id, [OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY])
|
| 129 |
first_atdl_orders = read_first_delivery_attempt_orders(orders_tobe_first_delivery_attempted)
|
119 |
first_atdl_orders = read_first_delivery_attempt_orders(orders_tobe_first_delivery_attempted)
|
| 130 |
if first_atdl_orders:
|
120 |
if first_atdl_orders:
|
| 131 |
update_first_atdl_orders(provider.id, first_atdl_orders)
|
121 |
update_first_atdl_orders(provider.id, first_atdl_orders)
|
| 132 |
except:
|
122 |
except:
|
| 133 |
print "Some issue while processing the orders for First delivery attempt status"
|
123 |
print "Some issue while processing the orders for First delivery attempt status"
|
| 134 |
traceback.print_exc()
|
124 |
traceback.print_exc()
|
| 135 |
|
125 |
|
| - |
|
126 |
def process_reached_destination_city_orders(provider):
|
| - |
|
127 |
try:
|
| - |
|
128 |
orders_tobe_reached_destination_city = fetch_data(provider.id, [OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY])
|
| - |
|
129 |
destination_city_reached_orders = read_reached_destination_orders(orders_tobe_reached_destination_city)
|
| - |
|
130 |
if destination_city_reached_orders:
|
| - |
|
131 |
update_destination_city_reached_orders(provider.id, destination_city_reached_orders)
|
| - |
|
132 |
except:
|
| - |
|
133 |
print "Some issue while processing the orders for Reached Destination City status"
|
| - |
|
134 |
traceback.print_exc()
|
| - |
|
135 |
|
| 136 |
def process_delivery_report(provider):
|
136 |
def process_delivery_report(provider):
|
| 137 |
try:
|
137 |
try:
|
| 138 |
orders_tobe_delivered = fetch_data(provider.id, [OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE])
|
138 |
orders_tobe_delivered = fetch_data(provider.id, [OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE])
|
| 139 |
delivered_orders, returned_orders, undelivered_orders = read_delivery_orders(orders_tobe_delivered)
|
139 |
delivered_orders, returned_orders, undelivered_orders = read_delivery_orders(orders_tobe_delivered)
|
| 140 |
if delivered_orders:
|
140 |
if delivered_orders:
|
| Line 366... |
Line 366... |
| 366 |
root = fromstring(str(get_updates(order.airwaybill_no)))
|
366 |
root = fromstring(str(get_updates(order.airwaybill_no)))
|
| 367 |
children = root.getchildren()
|
367 |
children = root.getchildren()
|
| 368 |
for child in children:
|
368 |
for child in children:
|
| 369 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
369 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
| 370 |
for element in reversed(nodes):
|
370 |
for element in reversed(nodes):
|
| 371 |
if (getTrimedString(element.findtext('ServiceEvent', '')).find(getTrimedString('Reached at OKHLA SDC')) != -1):
|
371 |
if element.findtext('TrackingCode', '') == 'PRO':
|
| 372 |
datestring = element.findtext('Date', '')
|
372 |
datestring = element.findtext('Date', '')
|
| 373 |
timestring = element.findtext('Time', '')
|
373 |
timestring = element.findtext('Time', '')
|
| 374 |
delivery_date = get_py_datetime(datestring, timestring)
|
374 |
delivery_date = get_py_datetime(datestring, timestring)
|
| 375 |
local_connected_orders[order.airwaybill_no] = str(delivery_date)
|
375 |
local_connected_orders[order.airwaybill_no] = str(delivery_date)
|
| 376 |
break
|
376 |
break
|
| 377 |
break
|
377 |
break
|
| 378 |
except:
|
378 |
except:
|
| 379 |
pass
|
379 |
pass
|
| 380 |
|
380 |
|
| 381 |
print "Local Connected Orders"
|
381 |
print "Local Connected Orders"
|
| 382 |
print local_connected_orders
|
382 |
print local_connected_orders
|
| 383 |
|
383 |
|
| 384 |
return local_connected_orders
|
384 |
return local_connected_orders
|
| 385 |
|
385 |
|
| Line 391... |
Line 391... |
| 391 |
children = root.getchildren()
|
391 |
children = root.getchildren()
|
| 392 |
child_number = 0
|
392 |
child_number = 0
|
| 393 |
for child in children:
|
393 |
for child in children:
|
| 394 |
child_number = child_number + 1
|
394 |
child_number = child_number + 1
|
| 395 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
395 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
| 396 |
orderstatus = None
|
- |
|
| 397 |
for element in nodes:
|
396 |
for element in nodes:
|
| 398 |
if element.findtext('ScanType', '') == 'UD' and (getTrimedString(element.findtext('Scan', '')) == getTrimedString('Shipment Inscan') or getTrimedString(element.findtext('Scan', '')) == getTrimedString('Shipment-Autoscan')) and element.findtext('ScannedLocation', '') == child.findtext('Destination', ''):
|
397 |
if element.findtext('TrackingCode', '') == 'RDB':
|
| 399 |
datestring = element.findtext('Date', '')
|
398 |
datestring = element.findtext('Date', '')
|
| 400 |
timestring = element.findtext('Time', '')
|
399 |
timestring = element.findtext('Time', '')
|
| 401 |
delivery_date = get_py_datetime(datestring, timestring)
|
400 |
delivery_date = get_py_datetime(datestring, timestring)
|
| 402 |
destination_city_reached_orders[order.airwaybill_no] = str(delivery_date)
|
401 |
destination_city_reached_orders[order.airwaybill_no] = str(delivery_date)
|
| 403 |
orderstatus = 'UD'
|
- |
|
| 404 |
break
|
402 |
break
|
| 405 |
elif element.findtext('ScanType', '') == 'RD':
|
- |
|
| 406 |
if child_number < len(children):
|
- |
|
| 407 |
orderstatus = 'RD'
|
- |
|
| 408 |
break
|
- |
|
| 409 |
if orderstatus != 'RD':
|
- |
|
| 410 |
break
|
- |
|
| 411 |
except:
|
403 |
except:
|
| 412 |
pass
|
404 |
pass
|
| 413 |
|
405 |
|
| 414 |
print "Destination City Reached Orders"
|
406 |
print "Destination City Reached Orders"
|
| 415 |
print destination_city_reached_orders
|
407 |
print destination_city_reached_orders
|
| Line 420... |
Line 412... |
| 420 |
first_atdl_orders = {}
|
412 |
first_atdl_orders = {}
|
| 421 |
for order in orders_tobe_first_delivery_attempted:
|
413 |
for order in orders_tobe_first_delivery_attempted:
|
| 422 |
try:
|
414 |
try:
|
| 423 |
root = fromstring(str(get_updates(order.airwaybill_no)))
|
415 |
root = fromstring(str(get_updates(order.airwaybill_no)))
|
| 424 |
children = root.getchildren()
|
416 |
children = root.getchildren()
|
| 425 |
children = root.getchildren()
|
- |
|
| 426 |
child_number = 0
|
- |
|
| 427 |
for child in children:
|
417 |
for child in children:
|
| 428 |
child_number = child_number + 1
|
- |
|
| 429 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
418 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
| 430 |
orderstatus = None
|
- |
|
| 431 |
node_number = len(nodes)-1
|
- |
|
| 432 |
for element in reversed(nodes):
|
419 |
for element in reversed(nodes):
|
| 433 |
if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Shipment Outscan'):
|
- |
|
| 434 |
if node_number != 0 and nodes[node_number-1].findtext('ScanType', '') == 'UD':
|
- |
|
| 435 |
element = nodes[node_number-1]
|
- |
|
| 436 |
datestring = element.findtext('ScanDate', '')
|
- |
|
| 437 |
timestring = element.findtext('ScanTime', '')
|
420 |
if element.findtext('TrackingCode', '') == 'OFD':
|
| 438 |
delivery_date = get_py_datetime(datestring, timestring)
|
- |
|
| 439 |
reason_for_nondelivery = element.findtext('Scan', '')
|
- |
|
| 440 |
first_atdl_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_nondelivery
|
- |
|
| 441 |
orderstatus = 'UD'
|
- |
|
| 442 |
break
|
- |
|
| 443 |
elif element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString("Shpt Held At Destination As Per Shipper's Request"):
|
- |
|
| 444 |
datestring = element.findtext('ScanDate', '')
|
421 |
datestring = element.findtext('Date', '')
|
| 445 |
timestring = element.findtext('ScanTime', '')
|
422 |
timestring = element.findtext('Time', '')
|
| 446 |
delivery_date = get_py_datetime(datestring, timestring)
|
423 |
delivery_date = get_py_datetime(datestring, timestring)
|
| 447 |
reason_for_nondelivery = element.findtext('Scan', '')
|
- |
|
| 448 |
first_atdl_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_nondelivery
|
424 |
first_atdl_orders[order.airwaybill_no] = str(delivery_date)
|
| 449 |
orderstatus = 'UD'
|
- |
|
| 450 |
break
|
425 |
break
|
| 451 |
elif element.findtext('ScanType', '') == 'RD':
|
- |
|
| 452 |
if child_number < len(children):
|
- |
|
| 453 |
orderstatus = 'RD'
|
- |
|
| 454 |
break
|
- |
|
| 455 |
node_number = node_number - 1
|
- |
|
| 456 |
if orderstatus != 'RD':
|
- |
|
| 457 |
break
|
426 |
break
|
| 458 |
except:
|
427 |
except:
|
| 459 |
pass
|
428 |
pass
|
| 460 |
|
429 |
|
| 461 |
print "FIRST DELIVERY ATTEMPT MADE Orders"
|
430 |
print "FIRST DELIVERY ATTEMPT MADE Orders"
|
| 462 |
print first_atdl_orders
|
431 |
print first_atdl_orders
|
| Line 476... |
Line 445... |
| 476 |
child_number = child_number + 1
|
445 |
child_number = child_number + 1
|
| 477 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
446 |
nodes = child.findall('ShipmentInfo/ShipmentEvent')
|
| 478 |
if len(nodes):
|
447 |
if len(nodes):
|
| 479 |
node_number = len(nodes)-1
|
448 |
node_number = len(nodes)-1
|
| 480 |
for element in reversed(nodes):
|
449 |
for element in reversed(nodes):
|
| 481 |
if element.findtext('StatusCode', '') == 'Delivered':
|
450 |
if element.findtext('TrackingCode', '') == 'DLVD':
|
| 482 |
datestring = element.findtext('Date', '')
|
451 |
datestring = element.findtext('Date', '')
|
| 483 |
timestring = element.findtext('Time', '')
|
452 |
timestring = element.findtext('Time', '')
|
| 484 |
delivery_date = get_py_datetime(datestring, timestring)
|
453 |
delivery_date = get_py_datetime(datestring, timestring)
|
| - |
|
454 |
element1 = child.findall('ShipmentInfo/Consignee')[0]
|
| 485 |
receiver = 'Receiver'
|
455 |
receiver = element1.findtext('Name', '')
|
| 486 |
delivered_orders[order.airwaybill_no] = str(delivery_date) + "|" + receiver
|
456 |
delivered_orders[order.airwaybill_no] = str(delivery_date) + "|" + receiver
|
| 487 |
break
|
457 |
break
|
| 488 |
elif element.findtext('StatusCode', '') == 'RTO':
|
458 |
elif element.findtext('TrackingCode', '') == 'RTO':
|
| 489 |
datestring = element.findtext('Date', '')
|
459 |
datestring = element.findtext('Date', '')
|
| 490 |
timestring = element.findtext('Time', '')
|
460 |
timestring = element.findtext('Time', '')
|
| 491 |
delivery_date = get_py_datetime(datestring, timestring)
|
461 |
delivery_date = get_py_datetime(datestring, timestring)
|
| 492 |
if node_number < len(nodes)-1:
|
462 |
if node_number < len(nodes)-1:
|
| 493 |
reason_for_return = nodes[node_number+1].findtext('ServiceEvent', '')
|
463 |
reason_for_return = nodes[node_number+1].findtext('ServiceEvent', '')
|
| 494 |
else:
|
464 |
else:
|
| 495 |
reason_for_return = element.findtext('ServiceEvent', '')
|
465 |
reason_for_return = element.findtext('ServiceEvent', '')
|
| 496 |
returned_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_return
|
466 |
returned_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_return
|
| 497 |
break
|
467 |
break
|
| - |
|
468 |
elif element.findtext('TrackingCode', '') == 'UDLD':
|
| - |
|
469 |
datestring = element.findtext('Date', '')
|
| - |
|
470 |
timestring = element.findtext('Time', '')
|
| - |
|
471 |
delivery_date = get_py_datetime(datestring, timestring)
|
| - |
|
472 |
if node_number < len(nodes)-1:
|
| - |
|
473 |
reason_for_return = nodes[node_number+1].findtext('ServiceEvent', '')
|
| - |
|
474 |
else:
|
| - |
|
475 |
reason_for_return = element.findtext('ServiceEvent', '')
|
| - |
|
476 |
undelivered_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_return
|
| - |
|
477 |
break
|
| 498 |
node_number = node_number - 1
|
478 |
node_number = node_number - 1
|
| 499 |
except:
|
479 |
except:
|
| 500 |
pass
|
480 |
pass
|
| 501 |
|
481 |
|
| 502 |
print "Delivered Orders:"
|
482 |
print "Delivered Orders:"
|
| Line 776... |
Line 756... |
| 776 |
process_pickup_records(provider)
|
756 |
process_pickup_records(provider)
|
| 777 |
#process_dao_pickup_orders(provider)
|
757 |
#process_dao_pickup_orders(provider)
|
| 778 |
#process_return_pickup_orders(provider)
|
758 |
#process_return_pickup_orders(provider)
|
| 779 |
if options.delivery_report:
|
759 |
if options.delivery_report:
|
| 780 |
process_local_connection_orders(provider)
|
760 |
process_local_connection_orders(provider)
|
| 781 |
#process_reached_destination_city_orders(provider)
|
761 |
process_reached_destination_city_orders(provider)
|
| 782 |
#process_first_delivery_attempt_orders(provider)
|
762 |
process_first_delivery_attempt_orders(provider)
|
| 783 |
process_delivery_report(provider)
|
763 |
process_delivery_report(provider)
|
| 784 |
#create_crm_tickets_for_delivey_attempted_orders(provider)
|
764 |
create_crm_tickets_for_delivey_attempted_orders(provider)
|
| 785 |
#auto_close_crm_tickets_created()
|
765 |
auto_close_crm_tickets_created()
|
| 786 |
if options.gen_reports:
|
766 |
if options.gen_reports:
|
| 787 |
generate_reports(provider)
|
767 |
generate_reports(provider)
|
| 788 |
|
768 |
|
| 789 |
if __name__ == '__main__':
|
769 |
if __name__ == '__main__':
|
| 790 |
main()
|
770 |
main()
|