Subversion Repositories SmartDukaan

Rev

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

Rev 12960 Rev 12961
Line 306... Line 306...
306
def read_dao_return_pickup_orders(orders_tobe_picked_up):
306
def read_dao_return_pickup_orders(orders_tobe_picked_up):
307
    picked_up_orders = {}
307
    picked_up_orders = {}
308
    list_of_order = []
308
    list_of_order = []
309
    for order in orders_tobe_picked_up:
309
    for order in orders_tobe_picked_up:
310
        list_of_order.append(str(order.pickupRequestNo))
310
        list_of_order.append(str(order.pickupRequestNo))
-
 
311
        
-
 
312
    parentAwbList = [list_of_order[x:x+10] for x in xrange(0, len(list_of_order), 10)]
311
    
313
    
-
 
314
    for awbList in parentAwbList:     
312
    try:
315
        try:
313
        uri = Delhivery_URL + 'ref_nos=' + ','.join(list_of_order)
316
            uri = Delhivery_URL + 'ref_nos=' + ','.join(awbList)
314
        root = parse(urllib2.urlopen(uri)).getroot()
317
            root = parse(urllib2.urlopen(uri)).getroot()
315
        shipments = root.findall('Shipment')
318
            shipments = root.findall('Shipment')
316
        for shipment in shipments:
319
            for shipment in shipments:
317
            nodes = shipment.findall('Scans/ScanDetail')
320
                nodes = shipment.findall('Scans/ScanDetail')
318
            for element in nodes:
321
                for element in nodes:
319
                delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
322
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
320
                picked_up_orders[shipment.findtext('ReferenceNo', '')] = str(delivery_date)
323
                    picked_up_orders[shipment.findtext('ReferenceNo', '')] = str(delivery_date)
321
                break
324
                    break
322
    except:
325
        except:
323
        pass
326
            pass
324
    
327
    
325
    print "Picked up Orders:"
328
    print "Picked up Orders:"
326
    print picked_up_orders
329
    print picked_up_orders
327
    return picked_up_orders
330
    return picked_up_orders
328
 
331
 
329
def read_pickup_orders(orders_tobe_picked_up):
332
def read_pickup_orders(orders_tobe_picked_up):
330
    picked_up_orders = {}
333
    picked_up_orders = {}
331
    list_of_order = []
334
    list_of_order = []
332
    for order in orders_tobe_picked_up:
335
    for order in orders_tobe_picked_up:
333
        list_of_order.append(str(order.airwaybill_no))
336
        list_of_order.append(str(order.airwaybill_no))
-
 
337
        
-
 
338
    parentAwbList = [list_of_order[x:x+10] for x in xrange(0, len(list_of_order), 10)]
334
    
339
    
-
 
340
    for awbList in parentAwbList:    
335
    try:
341
        try:
336
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
342
            uri = Delhivery_URL + 'waybill=' + ','.join(awbList)
337
        root = parse(urllib2.urlopen(uri)).getroot()
343
            root = parse(urllib2.urlopen(uri)).getroot()
338
        shipments = root.findall('Shipment')
344
            shipments = root.findall('Shipment')
339
        for shipment in shipments:
345
            for shipment in shipments:
340
            nodes = shipment.findall('Scans/ScanDetail')
346
                nodes = shipment.findall('Scans/ScanDetail')
341
            for element in nodes:
347
                for element in nodes:
342
                delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
348
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
343
                picked_up_orders[shipment.findtext('AWB', '')] = str(delivery_date)
349
                    picked_up_orders[shipment.findtext('AWB', '')] = str(delivery_date)
344
                break
350
                    break
345
    except:
351
        except:
346
        pass
352
            pass
347
    
353
    
348
    print "Picked up Orders:"
354
    print "Picked up Orders:"
349
    print picked_up_orders
355
    print picked_up_orders
350
    return picked_up_orders
356
    return picked_up_orders
351
 
357
 
Line 353... Line 359...
353
    local_connected_orders = {}
359
    local_connected_orders = {}
354
    list_of_order = []
360
    list_of_order = []
355
    for order in orders_tobe_local_connected:
361
    for order in orders_tobe_local_connected:
356
        list_of_order.append(str(order.airwaybill_no))
362
        list_of_order.append(str(order.airwaybill_no))
357
    
363
    
-
 
364
    parentAwbList = [list_of_order[x:x+10] for x in xrange(0, len(list_of_order), 10)]
-
 
365
    
-
 
366
    for awbList in parentAwbList:    
358
    try:
367
        try:
359
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
368
            uri = Delhivery_URL + 'waybill=' + ','.join(awbList)
360
        root = parse(urllib2.urlopen(uri)).getroot()
369
            root = parse(urllib2.urlopen(uri)).getroot()
361
        shipments = root.findall('Shipment')
370
            shipments = root.findall('Shipment')
362
        for shipment in shipments:
371
            for shipment in shipments:
363
            nodes = shipment.findall('Scans/ScanDetail')
372
                nodes = shipment.findall('Scans/ScanDetail')
364
            for element in nodes:
373
                for element in nodes:
365
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('In Transit'):
374
                    if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('In Transit'):
366
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
375
                        delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
367
                    local_connected_orders[shipment.findtext('AWB', '')] = str(delivery_date)
376
                        local_connected_orders[shipment.findtext('AWB', '')] = str(delivery_date)
368
                    break
377
                        break
369
    except:
378
        except:
370
        pass
379
            pass
371
    
380
    
372
    print "Local Connected Orders"
381
    print "Local Connected Orders"
373
    print local_connected_orders
382
    print local_connected_orders
374
    
383
    
375
    return local_connected_orders
384
    return local_connected_orders
Line 378... Line 387...
378
    destination_city_reached_orders = {}
387
    destination_city_reached_orders = {}
379
    list_of_order = []
388
    list_of_order = []
380
    for order in orders_tobe_reached_destination_city:
389
    for order in orders_tobe_reached_destination_city:
381
        list_of_order.append(str(order.airwaybill_no))
390
        list_of_order.append(str(order.airwaybill_no))
382
    
391
    
-
 
392
    parentAwbList = [list_of_order[x:x+10] for x in xrange(0, len(list_of_order), 10)]
-
 
393
    
-
 
394
    for awbList in parentAwbList:
383
    try:
395
        try:
384
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
396
            uri = Delhivery_URL + 'waybill=' + ','.join(awbList)
385
        root = parse(urllib2.urlopen(uri)).getroot()
397
            root = parse(urllib2.urlopen(uri)).getroot()
386
        shipments = root.findall('Shipment')
398
            shipments = root.findall('Shipment')
387
        for shipment in shipments:
399
            for shipment in shipments:
388
            nodes = shipment.findall('Scans/ScanDetail')
400
                nodes = shipment.findall('Scans/ScanDetail')
389
            for element in nodes:
401
                for element in nodes:
390
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Pending'):
402
                    if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Pending'):
391
                    delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
403
                        delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
392
                    destination_city_reached_orders[shipment.findtext('AWB', '')] = str(delivery_date)
404
                        destination_city_reached_orders[shipment.findtext('AWB', '')] = str(delivery_date)
393
                    break
405
                        break
394
    except:
406
        except:
395
        pass
407
            pass
396
    
408
    
397
    print "Destination City Reached Orders"
409
    print "Destination City Reached Orders"
398
    print destination_city_reached_orders
410
    print destination_city_reached_orders
399
    
411
    
400
    return destination_city_reached_orders
412
    return destination_city_reached_orders
Line 402... Line 414...
402
def read_first_delivery_attempt_orders(orders_tobe_first_delivery_attempted):
414
def read_first_delivery_attempt_orders(orders_tobe_first_delivery_attempted):
403
    first_atdl_orders = {}
415
    first_atdl_orders = {}
404
    list_of_order = []
416
    list_of_order = []
405
    for order in orders_tobe_first_delivery_attempted:
417
    for order in orders_tobe_first_delivery_attempted:
406
        list_of_order.append(str(order.airwaybill_no))
418
        list_of_order.append(str(order.airwaybill_no))
-
 
419
        
-
 
420
    parentAwbList = [list_of_order[x:x+10] for x in xrange(0, len(list_of_order), 10)]
407
    
421
    
-
 
422
    for awbList in parentAwbList:
408
    try:
423
        try:
409
        uri = Delhivery_URL + 'waybill=' + ','.join(list_of_order)
424
            uri = Delhivery_URL + 'waybill=' + ','.join(awbList)
410
        root = parse(urllib2.urlopen(uri)).getroot()
425
            root = parse(urllib2.urlopen(uri)).getroot()
411
        shipments = root.findall('Shipment')
426
            shipments = root.findall('Shipment')
412
        for shipment in shipments:
427
            for shipment in shipments:
413
            nodes = shipment.findall('Scans/ScanDetail')
428
                nodes = shipment.findall('Scans/ScanDetail')
414
            node_number = 0
429
                node_number = 0
415
            for element in nodes:
430
                for element in nodes:
416
                if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Dispatched'):
431
                    if element.findtext('ScanType', '') == 'UD' and getTrimedString(element.findtext('Scan', '')) == getTrimedString('Dispatched'):
417
                    if node_number != len(nodes)-1 and nodes[node_number+1].findtext('ScanType', '') == 'UD':
432
                        if node_number != len(nodes)-1 and nodes[node_number+1].findtext('ScanType', '') == 'UD':
418
                        element = nodes[node_number+1]
433
                            element = nodes[node_number+1]
419
                        delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
434
                            delivery_date = get_py_datetime(element.findtext('ScanDateTime', ''))
420
                        reason_for_nondelivery = element.findtext('Instructions', '')
435
                            reason_for_nondelivery = element.findtext('Instructions', '')
421
                        first_atdl_orders[shipment.findtext('AWB', '')] = str(delivery_date) + "|" + reason_for_nondelivery
436
                            first_atdl_orders[shipment.findtext('AWB', '')] = str(delivery_date) + "|" + reason_for_nondelivery
422
                        break
437
                            break
423
                node_number = node_number + 1
438
                    node_number = node_number + 1
424
    except:
439
        except:
425
        pass
440
            pass
426
    
441
    
427
    print "FIRST DELIVERY ATTEMPT MADE Orders"
442
    print "FIRST DELIVERY ATTEMPT MADE Orders"
428
    print first_atdl_orders
443
    print first_atdl_orders
429
    
444
    
430
    return first_atdl_orders
445
    return first_atdl_orders
Line 435... Line 450...
435
    undelivered_orders = {}
450
    undelivered_orders = {}
436
    list_of_order = []
451
    list_of_order = []
437
    for order in orders_tobe_delivered:
452
    for order in orders_tobe_delivered:
438
        list_of_order.append(str(order.airwaybill_no))
453
        list_of_order.append(str(order.airwaybill_no))
439
    
454
    
440
    awbCount = 0
-
 
441
    subList = []
-
 
442
    parentAwbList = []
-
 
443
    for awb in list_of_order:
455
    parentAwbList = [list_of_order[x:x+10] for x in xrange(0, len(list_of_order), 10)]
444
        awbCount = awbCount + 1
-
 
445
        if awbCount == 10:
-
 
446
            parentAwbList.append(subList)
-
 
447
            subList = []
-
 
448
            awbCount = 0
-
 
449
        else:
-
 
450
            subList.append(awb)
-
 
451
    
456
    
452
    for awbList in parentAwbList:        
457
    for awbList in parentAwbList:        
453
        try:
458
        try:
454
            uri = Delhivery_URL + 'waybill=' + ','.join(awbList)
459
            uri = Delhivery_URL + 'waybill=' + ','.join(awbList)
455
            data = urllib2.urlopen(uri)
460
            data = urllib2.urlopen(uri)
Line 757... Line 762...
757
    if options.delivery_report:
762
    if options.delivery_report:
758
        process_local_connection_orders(provider)
763
        process_local_connection_orders(provider)
759
        process_reached_destination_city_orders(provider)
764
        process_reached_destination_city_orders(provider)
760
        process_first_delivery_attempt_orders(provider)
765
        process_first_delivery_attempt_orders(provider)
761
        process_delivery_report(provider)
766
        process_delivery_report(provider)
762
        #create_crm_tickets_for_delivey_attempted_orders(provider)
767
        create_crm_tickets_for_delivey_attempted_orders(provider)
763
        auto_close_crm_tickets_created()
768
        auto_close_crm_tickets_created()
764
    if options.gen_reports:
769
    if options.gen_reports:
765
        generate_reports(provider)
770
        generate_reports(provider)
766
 
771
 
767
if __name__ == '__main__':
772
if __name__ == '__main__':