Subversion Repositories SmartDukaan

Rev

Rev 5262 | Rev 5520 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5262 Rev 5325
Line 300... Line 300...
300
    except TransactionServiceException as tex:
300
    except TransactionServiceException as tex:
301
        print tex.message
301
        print tex.message
302
 
302
 
303
def read_dao_return_pickup_orders(orders_tobe_picked_up):
303
def read_dao_return_pickup_orders(orders_tobe_picked_up):
304
    picked_up_orders = {}
304
    picked_up_orders = {}
-
 
305
    list_of_order = []
305
    for order in orders_tobe_picked_up:
306
    for order in orders_tobe_picked_up:
-
 
307
        list_of_order.append(str(order.pickupRequestNo))
-
 
308
    
306
        try:
309
    try:
307
            uri = Delhivery_URL + 'ref_nos=' + str(order.pickupRequestNo)
310
        uri = Delhivery_URL + 'ref_nos=' + ','.join(list_of_order)
308
            root = parse(urllib2.urlopen(uri)).getroot()
311
        root = parse(urllib2.urlopen(uri)).getroot()
-
 
312
        shipments = root.findall('Shipment')
-
 
313
        for shipment in shipments:
309
            nodes = root.findall('Shipment/Scans/ScanDetail')
314
            nodes = shipment.findall('Scans/ScanDetail')
310
            for element in nodes:
315
            for element in nodes:
311
                delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
316
                delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
312
                picked_up_orders[order.pickupRequestNo] = str(delivery_date)
317
                picked_up_orders[shipment.findtext('ReferenceNo', '')] = str(delivery_date)
313
                break
318
                break
314
        except:
319
    except:
315
            pass
320
        pass
316
    
321
    
317
    print "Picked up Orders:"
322
    print "Picked up Orders:"
318
    print picked_up_orders
323
    print picked_up_orders
319
    return picked_up_orders
324
    return picked_up_orders
320
 
325
 
321
def read_pickup_orders(orders_tobe_picked_up):
326
def read_pickup_orders(orders_tobe_picked_up):
322
    picked_up_orders = {}
327
    picked_up_orders = {}
-
 
328
    list_of_order = []
323
    for order in orders_tobe_picked_up:
329
    for order in orders_tobe_picked_up:
-
 
330
        list_of_order.append(str(order.airwaybill_no))
-
 
331
    
324
        try:
332
    try:
325
            uri = Delhivery_URL + 'waybill=' + order.airwaybill_no
333
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
326
            root = parse(urllib2.urlopen(uri)).getroot()
334
        root = parse(urllib2.urlopen(uri)).getroot()
-
 
335
        shipments = root.findall('Shipment')
-
 
336
        for shipment in shipments:
327
            nodes = root.findall('Shipment/Scans/ScanDetail')
337
            nodes = shipment.findall('Scans/ScanDetail')
328
            for element in nodes:
338
            for element in nodes:
329
                delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
339
                delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
330
                picked_up_orders[order.airwaybill_no] = str(delivery_date)
340
                picked_up_orders[shipment.findtext('AWB', '')] = str(delivery_date)
331
                break
341
                break
332
        except:
342
    except:
333
            pass
343
        pass
334
    
344
    
335
    print "Picked up Orders:"
345
    print "Picked up Orders:"
336
    print picked_up_orders
346
    print picked_up_orders
337
    return picked_up_orders
347
    return picked_up_orders
338
 
348
 
339
def read_local_connection_orders(orders_tobe_local_connected):
349
def read_local_connection_orders(orders_tobe_local_connected):
340
    local_connected_orders = {}
350
    local_connected_orders = {}
-
 
351
    list_of_order = []
341
    for order in orders_tobe_local_connected:
352
    for order in orders_tobe_local_connected:
-
 
353
        list_of_order.append(str(order.airwaybill_no))
-
 
354
    
342
        try:
355
    try:
343
            uri = Delhivery_URL + 'waybill=' + order.airwaybill_no
356
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
344
            root = parse(urllib2.urlopen(uri)).getroot()
357
        root = parse(urllib2.urlopen(uri)).getroot()
-
 
358
        shipments = root.findall('Shipment')
-
 
359
        for shipment in shipments:
345
            nodes = root.findall('Shipment/Scans/ScanDetail')
360
            nodes = shipment.findall('Scans/ScanDetail')
346
            for element in nodes:
361
            for element in nodes:
347
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('In Transit'):
362
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('In Transit'):
348
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
363
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
349
                    local_connected_orders[order.airwaybill_no] = str(delivery_date)
364
                    local_connected_orders[shipment.findtext('AWB', '')] = str(delivery_date)
350
                    break
365
                    break
351
        except:
366
    except:
352
            pass
367
        pass
353
    
368
    
354
    print "Local Connected Orders"
369
    print "Local Connected Orders"
355
    print local_connected_orders
370
    print local_connected_orders
356
    
371
    
357
    return local_connected_orders
372
    return local_connected_orders
358
 
373
 
359
def read_reached_destination_orders(orders_tobe_reached_destination_city):
374
def read_reached_destination_orders(orders_tobe_reached_destination_city):
360
    destination_city_reached_orders = {}
375
    destination_city_reached_orders = {}
-
 
376
    list_of_order = []
361
    for order in orders_tobe_reached_destination_city:
377
    for order in orders_tobe_reached_destination_city:
-
 
378
        list_of_order.append(str(order.airwaybill_no))
-
 
379
    
362
        try:
380
    try:
363
            uri = Delhivery_URL + 'waybill=' + order.airwaybill_no
381
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
364
            root = parse(urllib2.urlopen(uri)).getroot()
382
        root = parse(urllib2.urlopen(uri)).getroot()
-
 
383
        shipments = root.findall('Shipment')
-
 
384
        for shipment in shipments:
365
            nodes = root.findall('Shipment/Scans/ScanDetail')
385
            nodes = shipment.findall('Scans/ScanDetail')
366
            for element in nodes:
386
            for element in nodes:
367
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Pending'):
387
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Pending'):
368
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
388
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
369
                    destination_city_reached_orders[order.airwaybill_no] = str(delivery_date)
389
                    destination_city_reached_orders[shipment.findtext('AWB', '')] = str(delivery_date)
370
                    break
390
                    break
371
        except:
391
    except:
372
            pass
392
        pass
373
    
393
    
374
    print "Destination City Reached Orders"
394
    print "Destination City Reached Orders"
375
    print destination_city_reached_orders
395
    print destination_city_reached_orders
376
    
396
    
377
    return destination_city_reached_orders
397
    return destination_city_reached_orders
378
 
398
 
379
def read_first_delivery_attempt_orders(orders_tobe_first_delivery_attempted):
399
def read_first_delivery_attempt_orders(orders_tobe_first_delivery_attempted):
380
    first_atdl_orders = {}
400
    first_atdl_orders = {}
-
 
401
    list_of_order = []
381
    for order in orders_tobe_first_delivery_attempted:
402
    for order in orders_tobe_first_delivery_attempted:
-
 
403
        list_of_order.append(str(order.airwaybill_no))
-
 
404
    
382
        try:
405
    try:
383
            uri = Delhivery_URL + 'waybill=' + order.airwaybill_no
406
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
384
            root = parse(urllib2.urlopen(uri)).getroot()
407
        root = parse(urllib2.urlopen(uri)).getroot()
-
 
408
        shipments = root.findall('Shipment')
-
 
409
        for shipment in shipments:
385
            nodes = root.findall('Shipment/Scans/ScanDetail')
410
            nodes = shipment.findall('Scans/ScanDetail')
386
            node_number = 0
411
            node_number = 0
387
            for element in nodes:
412
            for element in nodes:
388
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Dispatched'):
413
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Dispatched'):
389
                    if node_number != len(nodes)-1 and nodes[node_number+1].findtext('ScanType', '') == 'UD':
414
                    if node_number != len(nodes)-1 and nodes[node_number+1].findtext('ScanType', '') == 'UD':
390
                        element = nodes[node_number+1]
415
                        element = nodes[node_number+1]
391
                        delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
416
                        delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
392
                        reason_for_nondelivery = element.findtext('Instructions', '')
417
                        reason_for_nondelivery = element.findtext('Instructions', '')
393
                        first_atdl_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_nondelivery
418
                        first_atdl_orders[shipment.findtext('AWB', '')] = str(delivery_date) + "|" + reason_for_nondelivery
394
                        break
419
                        break
395
                node_number = node_number + 1
420
                node_number = node_number + 1
396
        except:
421
    except:
397
            pass
422
        pass
398
    
423
    
399
    print "FIRST DELIVERY ATTEMPT MADE Orders"
424
    print "FIRST DELIVERY ATTEMPT MADE Orders"
400
    print first_atdl_orders
425
    print first_atdl_orders
401
    
426
    
402
    return first_atdl_orders
427
    return first_atdl_orders
403
 
428
 
404
def read_delivery_orders(orders_tobe_delivered):
429
def read_delivery_orders(orders_tobe_delivered):
405
    delivered_orders = {}
430
    delivered_orders = {}
406
    returned_orders = {}
431
    returned_orders = {}
407
    undelivered_orders = {}
432
    undelivered_orders = {}
-
 
433
    list_of_order = []
408
    for order in orders_tobe_delivered:
434
    for order in orders_tobe_delivered:
-
 
435
        list_of_order.append(str(order.airwaybill_no))
-
 
436
    
409
        try:
437
    try:
410
            uri = Delhivery_URL + 'waybill=' + order.airwaybill_no
438
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
411
            root = parse(urllib2.urlopen(uri)).getroot()
439
        root = parse(urllib2.urlopen(uri)).getroot()
-
 
440
        shipments = root.findall('Shipment')
-
 
441
        for shipment in shipments:
412
            nodes = root.findall('Shipment/Scans/ScanDetail')
442
            nodes = shipment.findall('Scans/ScanDetail')
413
            node_number = 0
443
            node_number = 0
414
            for element in nodes:
444
            for element in nodes:
415
                if element.findtext('ScanType', '') == 'DL' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Delivered'):
445
                if element.findtext('ScanType', '') == 'DL' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Delivered'):
416
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
446
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
417
                    receiver = root.findtext('Shipment/Status/RecievedBy', '')
447
                    receiver = shipment.findtext('Status/RecievedBy', '')
418
                    delivered_orders[order.airwaybill_no] = str(delivery_date) + "|" +  receiver
448
                    delivered_orders[shipment.findtext('AWB', '')] = str(delivery_date) + "|" +  receiver
419
                    break
449
                    break
420
                elif element.findtext('ScanType', '') == 'RT' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Returned'):
450
                elif element.findtext('ScanType', '') == 'RT' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Returned'):
421
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
451
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
422
                    reason_for_return = element.findtext('Instructions', '')
452
                    reason_for_return = element.findtext('Instructions', '')
423
                    returned_orders[order.airwaybill_no] = str(delivery_date) + "|" + reason_for_return
453
                    returned_orders[shipment.findtext('AWB', '')] = str(delivery_date) + "|" + reason_for_return
424
                    break
454
                    break
425
                elif node_number == len(nodes)-1:
455
                elif node_number == len(nodes)-1:
426
                    reason = element.findtext('Instructions', '')
456
                    reason = element.findtext('Instructions', '')
427
                    undelivered_orders[order.airwaybill_no] = reason
457
                    undelivered_orders[shipment.findtext('AWB', '')] = reason
428
                    break
458
                    break
429
                node_number = node_number + 1
459
                node_number = node_number + 1
430
        except:
460
    except:
431
            pass
461
        pass
432
    
462
    
433
    print "Delivered Orders:"
463
    print "Delivered Orders:"
434
    print delivered_orders
464
    print delivered_orders
435
    
465
    
436
    print "Returned Orders:"
466
    print "Returned Orders:"