Subversion Repositories SmartDukaan

Rev

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

Rev 8836 Rev 8838
Line 103... Line 103...
103
            description = element.findtext('ServiceEvent', '')
103
            description = element.findtext('ServiceEvent', '')
104
            results.append(datestring+"~!~"+timestring+"~!~"+description)
104
            results.append(datestring+"~!~"+timestring+"~!~"+description)
105
    return results
105
    return results
106
 
106
 
107
def get_track_updates(awb_numbers):
107
def get_track_updates(awb_numbers):
-
 
108
    track_data_list=[]
-
 
109
    if len(awb_numbers)>0:
108
    req_args = json.dumps({'password':password,
110
        req_args = json.dumps({'password':password,
109
                           'trackingIdType':'REFERENCENO',
111
                               'trackingIdType':'REFERENCENO',
110
                           'trackingLevel':'ALL_DETAILS',
112
                               'trackingLevel':'ALL_DETAILS',
111
                           'userId':username,
113
                               'userId':username,
112
                           'waybillNo': awb_numbers 
114
                               'waybillNo': awb_numbers 
113
                           })
115
                               })
114
    request = urllib2.Request(RED_EXPRESS_TRACKING_URL, req_args, headers)
116
        request = urllib2.Request(RED_EXPRESS_TRACKING_URL, req_args, headers)
115
    response = urllib2.urlopen(request)
117
        response = urllib2.urlopen(request)
116
 
-
 
117
    encoding = response.info().get("Content-Encoding")    
-
 
118
    if encoding in ('gzip', 'x-gzip', 'deflate'):
-
 
119
        content = response.read()
-
 
120
        if encoding == 'deflate':
-
 
121
            track_data_decoded = StringIO.StringIO(zlib.decompress(content))
-
 
122
        else:
-
 
123
            track_data_decoded = gzip.GzipFile('', 'rb', 9, StringIO.StringIO(content))
-
 
124
    track_data_readable = track_data_decoded.read()
-
 
125
    
118
    
-
 
119
        encoding = response.info().get("Content-Encoding")    
-
 
120
        if encoding in ('gzip', 'x-gzip', 'deflate'):
-
 
121
            content = response.read()
-
 
122
            if encoding == 'deflate':
-
 
123
                track_data_decoded = StringIO.StringIO(zlib.decompress(content))
-
 
124
            else:
-
 
125
                track_data_decoded = gzip.GzipFile('', 'rb', 9, StringIO.StringIO(content))
-
 
126
        track_data_readable = track_data_decoded.read()
-
 
127
        
126
    conv_dict = xmltodict.parse(track_data_readable)
128
        conv_dict = xmltodict.parse(track_data_readable)
127
    track_data_json= json.dumps(conv_dict)
129
        track_data_json= json.dumps(conv_dict)
128
    if track_data_json.find('null') > 0:
130
        if track_data_json.find('null') > 0:
129
        track_data_json = track_data_json.replace('null','\"No Description Available\"');
131
            track_data_json = track_data_json.replace('null','\"No Description Available\"');
130
    if len(awb_numbers) > 0:
-
 
131
        track_data_dict = ast.literal_eval(track_data_json)
132
        track_data_dict = ast.literal_eval(track_data_json)
132
 
133
    
133
    if len(awb_numbers)==1:
134
        if len(awb_numbers)==1:
134
        track_data_list=[]
135
            track_data_list=[]
135
        track_data_list.append(track_data_dict['BulkTrackingResponse']['BulkResponse']['TrackingResponse'])
136
            track_data_list.append(track_data_dict['BulkTrackingResponse']['BulkResponse']['TrackingResponse'])
136
        track_data_list.append('DUMMY')
137
            track_data_list.append('DUMMY')
137
    elif len(awb_numbers)==0:
-
 
138
        track_data_list=[]
-
 
139
    else:
138
        else:
140
        track_data_list = track_data_dict['BulkTrackingResponse']['BulkResponse']['TrackingResponse']    
139
            track_data_list = track_data_dict['BulkTrackingResponse']['BulkResponse']['TrackingResponse']    
141
    
140
    
142
    return track_data_list
141
    return track_data_list
143
    
142
    
144
    
143
    
145
def process_dao_pickup_orders(provider):
144
def process_dao_pickup_orders(provider):