declare @producttypeid bigint; declare @qtyship int; declare @qtybo int; SELECT @producttypeid = producttypeid FROM product_info WHERE (productid=@productid); SELECT CASE WHEN @producttypeid = 1 THEN -- it's a raw product, so get stock from semi-manufactured SELECT @qtyavailable = qtysemimanufactured FROM product_info WHERE (productid=@productid) WHEN @producttypeid IN (2,3,4,5) THEN -- it's a finished product, so get stock from finished SELECT @qtyavailable = qtyfinished FROM product_info WHERE productid=@productid) END -- calculate ship quantity and backorder quantity from stock available vs qty sold IF @qtyavailable > @quantity THEN SELECT @qtyship = @quantity ELSE SELECT @qtybo = @quantity - @qtyavailable END IF -- add the product item INSERT INTO salesitem_info (salesid, productid, quantity, price, qtyship, qtybackorder) VALUES (@salesid, @productid, @quantity, @price, @qtyship, @qtybo)