Subversion Repositories SmartDukaan

Rev

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

Rev 23250 Rev 23251
Line 317... Line 317...
317
 
317
 
318
def get_provider_by_name(provider_name):
318
def get_provider_by_name(provider_name):
319
    logistics_client = LogisticsClient().get_client()
319
    logistics_client = LogisticsClient().get_client()
320
    provider = None
320
    provider = None
321
    providers = logistics_client.getAllProviders()
321
    providers = logistics_client.getAllProviders()
-
 
322
    print "Providers", providers
322
    for p in providers:
323
    for p in providers:
323
        if p.name == provider_name:
324
        if p.name == provider_name:
324
            provider=p
325
            provider=p
325
            break
326
            break
326
    if provider == None:
327
    if provider == None:
Line 372... Line 373...
372
            print responseString 
373
            print responseString 
373
            root = fromstring(responseString)
374
            root = fromstring(responseString)
374
            print root.tag
375
            print root.tag
375
            awbs = []
376
            awbs = []
376
            for awbEle in root:
377
            for awbEle in root:
-
 
378
                
377
                awbNumber = awbEle.findall("field/[@name='awb_number']")[0].text
379
                awbNumber = __findElementByAttr(awbEle, 'name', 'awb_number').text  
378
                reasonCode = awbEle.findall("field/[@name='reason_code_number']")[0].text
380
                reasonCode = __findElementByAttr(awbEle, 'name', 'reason_code_number').text
379
                deliveryDate = awbEle.findall("field/[@name='delivery_date']")[0].text
381
                deliveryDate =  __findElementByAttr(awbEle, 'name', 'delivery_date').text
380
                lastUpdateDate = awbEle.findall("field/[@name='last_update_date']")[0].text
382
                lastUpdateDate = __findElementByAttr(awbEle, 'name', 'last_update_date').text
381
                xmlScans = awbEle.findall("field/object/[@model='scan_stages']")
383
                xmlScans = __findElementByAttr(awbEle.findall("field")[0], 'model', 'scan_stages')
382
                awbStatuses[awbNumber] = {'awbNumber': awbNumber, 'reasonCode': reasonCode, 'deliveryDate':deliveryDate, 'lastUpdateDate':lastUpdateDate, 'scans': xmlScans}
384
                awbStatuses[awbNumber] = {'awbNumber': awbNumber, 'reasonCode': reasonCode, 'deliveryDate':deliveryDate, 'lastUpdateDate':lastUpdateDate, 'scans': xmlScans}
383
            
385
            
384
        doneAwbs += batchSize
386
        doneAwbs += batchSize
385
        print awbStatuses
387
        print awbStatuses
386
        
388
        
Line 396... Line 398...
396
        self.statusDate = statusDate
398
        self.statusDate = statusDate
397
 
399
 
398
def __get_scan_by_code(xmlScans, codes):
400
def __get_scan_by_code(xmlScans, codes):
399
    awbStatusObj = None
401
    awbStatusObj = None
400
    for xmlScan in xmlScans:
402
    for xmlScan in xmlScans:
401
        reasonCodeNumber = xmlScan.findall("[@name='reason_code_number']")[0].text
403
        reasonCodeNumber = __findElementByAttr(xmlScan, 'name', 'reason_code_number').text
402
        if reasonCodeNumber in codes:
404
        if reasonCodeNumber in codes:
403
            statusDescription = xmlScan.findall("[@name='status']")[0].text
405
            statusDescription = __findElementByAttr(xmlScan, 'name', 'status').text
404
            statusDate = get_py_datetime(xmlScan.findall("[@name='updated_on']")[0].text)
406
            statusDate = get_py_datetime(__findElementByAttr(xmlScan, 'name', 'updated_on').text)
405
            awbStatusObj = __AWBStatusObj(None, reasonCodeNumber, statusDescription, statusDate)
407
            awbStatusObj = __AWBStatusObj(None, reasonCodeNumber, statusDescription, statusDate)
406
        
408
            print awbStatusObj
407
    return awbStatusObj
409
    return awbStatusObj
-
 
410
 
-
 
411
def __findElementByAttr(xmlElement, name, value=None):
-
 
412
        for innerElement in xmlElement:
-
 
413
            if innerElement.attrib.has_key(name):
-
 
414
                if value and innerElement.attrib[name]==value:
-
 
415
                    return innerElement
-
 
416
                else:
-
 
417
                    return None
-
 
418
        
-
 
419
        return None
-
 
420
        
408
    
421
    
409
def read_pickup_orders(orders_tobe_picked_up):
422
def read_pickup_orders(orders_tobe_picked_up):
410
    picked_up_orders = {}
423
    picked_up_orders = {}
411
    awbs = [order.airwaybill_no for order in orders_tobe_picked_up]
424
    awbs = [order.airwaybill_no for order in orders_tobe_picked_up]
412
    
425