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)