示例#1
0
def create_fulfill_request(warehouse, order_id):
    warehouse_labels = [w['label'] for w in inventory_api.warehouse({})]
    unfulfilled_items = fulfill_api.unfulfilled(str(order_id), {})['unfulfilled_items']
    inv_items = dict((i['label'], i['id']) for i in products_api.inventoryitem({}))
    order = sales_api.sale(order_id, {})

    if unfulfilled_items is None:
        return 'FULFILL_ALREADY_REQUESTED'
    elif warehouse not in warehouse_labels:
        return 'WAREHOUSE_NOT_RECOGNISED'
    else:
        # now create a fulfillment request
        today = get_today()
        warehouse = Warehouse.objects.get(label=warehouse)

        fulfill_info = {}
        fulfill_info['request_date'] = today
        fulfill_info['warehouse_id'] = warehouse.id
        fulfill_info['order_id'] = str(order_id)
        fulfill_info['status'] = 'requested'
        fulfill_obj = Fulfillment(**fulfill_info)
        fulfill_obj.save()

        for label, quantity in unfulfilled_items.iteritems():
            inv_id = inv_items[label]
            fline_info = {}
            fline_info['inventory_item_id'] = inv_id
            fline_info['quantity'] = quantity
            fline_info['fulfillment_id'] = fulfill_obj.id
            fline_obj = FulfillLine(**fline_info)
            fline_obj.save()

        return 'FULFILL_REQUESTED'
示例#2
0
def create_backorder(order_id):
    # check that it has not been requested already
    unfulfilled_items = fulfill_api.unfulfilled(str(order_id), {})['unfulfilled_items']
    inv_items = dict((i['label'], i['id']) for i in products_api.inventoryitem({}))
    order = sales_api.sale(order_id, {})
    
    if unfulfilled_items is None:
        return 'FULFILL_ALREADY_REQUESTED'
    else:
        # now create a fulfillment request
        today = get_today()

        fulfill_info = {}
        fulfill_info['request_date'] = today
        fulfill_info['order_id'] = str(order_id)
        fulfill_info['status'] = 'back-ordered'
        fulfill_obj = Fulfillment(**fulfill_info)
        fulfill_obj.save()

        for label, quantity in unfulfilled_items.iteritems():
            inv_id = inv_items[label]
            fline_info = {}
            fline_info['inventory_item_id'] = inv_id
            fline_info['quantity'] = quantity
            fline_info['fulfillment_id'] = fulfill_obj.id
            fline_obj = FulfillLine(**fline_info)
            fline_obj.save()

    return 'FULFILL_BACKORDERED'