Пример #1
0
    def create_order(cls,
                     id=None,
                     buyer_id='877673433',
                     item_list=['92399069', '83768385'],
                     mobile='',
                     **kwargs):
        # if not order_id:
        #     order_id = get_order_id()
        # o = cls(order_id=order_id, buyer_id=buyer_id, state=Order_State_Machine.get_initial_state())
        # o.save()

        # for item_id in item_list:
        #     ocr = Order_Item_Rel(order=o, item_id=item_id)
        #     ocr.save()
        # #TODO:change the state directly?
        # o.goto_next('B', 'create order')

        #TODO:improve below
        items_json = kwargs.get('items_json', '')
        if items_json:
            item_list = json.loads(items_json)
            #pdb.set_trace()
            #item_list = items_dict['items']
            #order_id = item_list.get('order_id', None)
            #TODO:default
            #buyer_id = items_dict.get('buyer_id', '') #TODO:php pass buyer_username?
            #mobile =  item_list.get('mobile', '')
        if not buyer_id:
            buyer_id = kwargs.get('buyer_id', '877673433')
        if not mobile:
            mobile = kwargs.get('mobile', '')
        if not id:
            id = kwargs.get('id', None)
        if not id:
            id = get_order_id()
        o = Service_Order(id=id,
                          buyer_id=buyer_id,
                          state=cls.get_state_machine().get_initial_state(),
                          mobile=mobile)
        #pdb.set_trace()
        o.save()
        for it in item_list:

            if type(it) == str:  #not passing snapshot by json
                item_id = it
            else:
                item_id = it['commodity_id']

            ocr = Order_Item_Rel(order=o, item_id=item_id)
            ocr.save()
        o.goto_next('B', 'create order')

        #save the snapshot
        save_snapshot(
            id,
            item_list,
            default_snapshot_class=settings.SERVICE_COMMODITY_SNAPSHOT_CLASS,
            **kwargs)

        return id
Пример #2
0
    def create_order(cls, id=None, buyer_id="877673433", item_list=["92399069", "83768385"], **kwargs):
        items_json = kwargs.get("items_json", "")
        if items_json:
            item_list = json.loads(items_json)
        if not buyer_id:
            buyer_id = kwargs.get("buyer_id", "877673433")
        if not id:
            id = kwargs.get("id", None)
        if not id:
            id = get_order_id()
        o = Product_Order(id=id, buyer_id=buyer_id, state=cls.get_state_machine().get_initial_state())
        # pdb.set_trace()
        o.save()
        # pdb.set_trace()
        o.goto_next("B", "create order")

        for it in item_list:
            if type(it) == str:  # not passing snapshot by json
                item_id = it
            else:
                item_id = it["commodity_id"]
            ocr = Order_Item_Rel(order=o, item_id=item_id)
            ocr.save()

        save_snapshot(id, item_list, default_snapshot_class=settings.PRODUCT_COMMODITY_SNAPSHOT_CLASS, **kwargs)

        return o.id
Пример #3
0
    def create_order(cls, id=None, buyer_id='877673433', item_list=['92399069', '83768385'], mobile='', **kwargs):
        # if not order_id:
        #     order_id = get_order_id()        
        # o = cls(order_id=order_id, buyer_id=buyer_id, state=Order_State_Machine.get_initial_state()) 
        # o.save()
       
        # for item_id in item_list:
        #     ocr = Order_Item_Rel(order=o, item_id=item_id)
        #     ocr.save()    
        # #TODO:change the state directly?
        # o.goto_next('B', 'create order') 

        #TODO:improve below
        items_json = kwargs.get('items_json', '')
        if items_json:
            item_list = json.loads(items_json)
            #pdb.set_trace()
            #item_list = items_dict['items']
            #order_id = item_list.get('order_id', None)
            #TODO:default
            #buyer_id = items_dict.get('buyer_id', '') #TODO:php pass buyer_username?  
            #mobile =  item_list.get('mobile', '')        
        if not buyer_id:
            buyer_id = kwargs.get('buyer_id', '877673433')
        if not mobile:
            mobile = kwargs.get('mobile', '')
        if not id:
            id = kwargs.get('id', None) 
        if not id:
            id = get_order_id()        
        o = Service_Order(id=id, buyer_id=buyer_id, state=cls.get_state_machine().get_initial_state(), mobile=mobile) 
        #pdb.set_trace()
        o.save()        
        for it in item_list:
            
            if type(it) == str: #not passing snapshot by json
                item_id = it
            else:
                item_id = it['commodity_id']  

            ocr = Order_Item_Rel(order=o, item_id=item_id)
            ocr.save()  
        o.goto_next('B', 'create order')         

        #save the snapshot
        save_snapshot(id, item_list, 
            default_snapshot_class=settings.SERVICE_COMMODITY_SNAPSHOT_CLASS, **kwargs)

        return id