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'
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'
def thoroughbred_mismatch(order_id, qstring): order_data = salesapi.sale(order_id) # for now assume only ever one fulfill wh_fulfill = WarehouseFulfill.objects \ .filter(savor_order_id=order_id) \ .values('warehouse_pack_id')[0] req_fulfill = Fulfillment.objects \ .filter(order_id=order_id) \ .values('id')[0] req_record = fulfillment(req_fulfill['id']) req_record['shipping_zip'] = order_data['shipping_zip'] req_record['shipping_name'] = order_data['shipping_name'] whouse_record = warehousefulfill(wh_fulfill['warehouse_pack_id']) output = [] flds = ['shipping_name', 'shipping_zip', 'skus'] def get_row(fld): return {'field': fld, 'savor': str(req_record.get(fld, '')), 'thoroughbred': str(whouse_record.get(fld, '')), 'mismatch': req_record.get(fld, '') != whouse_record.get(fld, '')} for fld in flds: output.append(get_row(fld)) return output