Blame | Last modification | View Log | RSS feed
#!/usr/bin/pythonimport optparseimport sysfrom elixir import sessionif __name__ == '__main__' and __package__ is None:import ossys.path.insert(0, os.getcwd())from shop2020.clients.LogisticsClient import LogisticsClientfrom shop2020.thriftpy.logistics.ttypes import DeliveryTypefrom shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceExceptionfrom shop2020.model.v1.order.impl import DataServicefrom shop2020.model.v1.order.impl.DataAccessors import close_session, get_orders_in_batchdef update_awb(order):logistics_client = LogisticsClient().get_client()item_id = order.lineitems[0].item_idlogistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.COD)print order.id, "OLD AWB: " + order.airwaybill_no + " NEW AWB"+ logistics_info.airway_billnoorder.airwaybill_no = logistics_info.airway_billnoorder.tracking_id = order.airwaybill_nosession.commit()def main():parser = optparse.OptionParser()parser.add_option("-H", "--host", dest="hostname",default="localhost",type="string", help="The HOST where the DB server is running",metavar="HOST")(options, args) = parser.parse_args()if len(args) != 0:parser.error("You've supplied extra arguments. Are you sure you want to run this program?")DataService.initialize(db_hostname=options.hostname, echoOn=False)try:orders = get_orders_in_batch([2,3,5,35,36,37,38,39], 0, 0, 0)for order in orders:#print order.cod, order.logistics_provider_id, order.airwaybill_noif not (order.cod == 1 and order.logistics_provider_id == 1 and order.id < 132904):continue#print order.id, order.cod, order.logistics_provider_id, order.airwaybill_noupdate_awb(order)#print order.airwaybill_noexcept TransactionServiceException as tsex:print tsex.messagefinally:close_session()if __name__ == '__main__':main()