helo all...,
i want to make procedure like:
example
i have table:
item (itemid,itemname,stock)
orderdetail(no_order,itemid,quantity)
itemmoment(itemid,itemname,stock)
item table
itemid    itemname    stock
  c1        coconut         2
  p1         peanut          2
orderdetail table
no_order        itemid        quantity
   1                  c1                5
itemmoment table
itemid    itemname    stock
  c1       coconut          0
  p1       peanut            0
 
when customer paid, his quantity in orderdetail decrease stock in item table..
so stock in item table became:
itemid        itemname    stock
  c1            coconut         -3
  p1            peanut           2
it's not good, because stock may not minus...
so i want to move -3 to itemmoment table..
so stock in item table became:
itemid        itemname    stock
  c1            coconut          0
  p1            peanut           2
and in itemmoment table became:
itemid        itemname    stock
  c1             coconut        3
  p1             peanut          0
my store procedure like:
ALTER PROCEDURE [dbo].[orders]
(
    @.no_order as integer,
    @.itemid AS varchar(50),
    @.quantity AS INT
)
AS
BEGIN
    BEGIN TRANSACTION
    
        DECLARE @.currentStock AS INT
        
        SET @.currentStock = (SELECT [Stok] FROM [item] WHERE [itemid] = @.itemid)
        UPDATE [item]
        SET
            [Stock] = @.currentStock - @.quantity
        WHERE
            [itemid] = @.itemid
    COMMIT TRANSACTION
END
it's only decrease stock with quantity. i want move stock minus from item to itemmoment..
can anyone add code to my store procedure?
plss.. helpp.
thxx...
Here's how you would tackle the issue.
Declare @.AvailableQtySelect @.AvailableQty =Count(*)FROM ItemWhere ItemId = @.ItemIdIF @.AvailableQty >= @.QuantityBegin-- We have enough quantityUpdate ItemSet Stock = Stock - @.QuantityWhere ItemId = @.ItemIdEndElseBegin-- We have less quantityUpdate ItemSet Stock = 0Where ItemId = @.ItemIdInsert into ItemMoment (itemid,itemname, stock )Select @.ItemId, ItemName, (@.Quantity - @.AvailableQty )From ItemWhere Itemid = @.ItemIdEnd|||
thx ndinakar...
it's one problem in ur store procedure, but i have fix it.
Select @.AvailableQty =Count(*)FROM ItemWhere ItemId = @.ItemId
change to
set @.AvailableQty = (select stock FROM item Where itemid = @.itemid)
 it have working...
ok, thx...
 
No comments:
Post a Comment