Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

#!/usr/bin/python

import optparse
import sys
from elixir import session

if __name__ == '__main__' and __package__ is None:
    import os
    sys.path.insert(0, os.getcwd())

from shop2020.clients.LogisticsClient import LogisticsClient
from shop2020.thriftpy.logistics.ttypes import DeliveryType

from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException
from shop2020.model.v1.order.impl import DataService
from shop2020.model.v1.order.impl.DataAccessors import close_session, get_orders_in_batch

def update_awb(order):
    logistics_client = LogisticsClient().get_client()
    item_id = order.lineitems[0].item_id
    logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.COD)
    print order.id,  "OLD AWB: " + order.airwaybill_no  + "  NEW AWB"+ logistics_info.airway_billno
    order.airwaybill_no = logistics_info.airway_billno
    order.tracking_id = order.airwaybill_no
    session.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_no
            if 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_no
            update_awb(order)
            #print order.airwaybill_no
    except TransactionServiceException as tsex:
        print tsex.message
    finally:
        close_session()
    
if __name__ == '__main__':
    main()