1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[reception]
-- Paramètres de la procédure
@ID_stock int
, @codearticle varchar(50)
, @num_lot varchar(50)
, @IDpers nchar(10)
, @qte float
, @empl varchar(50)
--Test sur la capacité de l'emplacement choisi
AS IF EXISTS (SELECT Code_emplacement FROM Emplacement WHERE Code_emplacement=@empl AND Emplacement.capacite >= @qte)
--1er Cas : la quantité à stocker peut être placé dans l'emplacement choisi.
BEGIN
SET NOCOUNT ON;
INSERT INTO Stock (
ID_stock
, Code_article
, Num_lot
, Code_emplacement
, quantite
, ID_personne)
VALUES (@ID_stock,@codearticle,@num_lot,@empl,@qte,@IDpers)
--mise à jour de la capacité de l'emplacement.
UPDATE Emplacement
SET Capacite=Capacite-@qte WHERE Emplacement.Code_emplacement=@empl
END
--2ème cas : capacité de l'emplacement choisi trop petite pour accueillir la quantité voulue.
ELSE
BEGIN
RAISERROR ('choisir un autre emplacement',11,1)
END |
Partager