Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Gộp bàn trong phần mềm quản lí cafe

15:28 23-06-2017 877 lượt xem 3 bình luận 10:07 24-06-2017

Mọi người xem giúp mình proc này sai ở đâu mà sao khi mình gộp 2 bàn với nhau thì bill bàn 2 vẫn chuyển qua được bàn 1 nhưng status bàn 2 vẫn không nhảy về " Trống "

CREATE PROC USP_GroupTable
@idtable1 INT, @idtable2 INT
AS
BEGIN
	DECLARE @idfirstBill INT
	DECLARE @idsecondBill INT

	DECLARE @isfirstTableEmpty INT =1
	DECLARE @issecondTableEmpty INT =1

	SELECT @idfirstBill=id FROM dbo.Bill WHERE idTable = @idtable1 AND statusBill = 0
	SELECT @idsecondBill=id FROM dbo.Bill WHERE idTable = @idtable2 AND statusBill = 0

	IF(@idfirstBill IS NULL)
	BEGIN
		INSERT dbo.Bill
		        ( DateCheckin ,
		          DateCheckout ,
		          idTable ,
		          statusBill ,
		          Discout ,
		          TotalPrice
		        )
		VALUES  ( GETDATE() , -- DateCheckin - date
		          NULL , -- DateCheckout - date
		          @idtable1, -- idTable - int
		          0 , -- statusBill - int
		          0 , -- Discout - int
		          0.0  -- TotalPrice - float
		        )
		SELECT @idfirstBill=MAX(id) FROM dbo.Bill WHERE idTable =@idtable1 AND statusBill = 0
	END
	 SELECT @isfirstTableEmpty = COUNT(*) FROM dbo.Billinfo WHERE idBill = @idfirstBill
	IF(@idsecondBill IS NULL)
	BEGIN
		INSERT dbo.Bill
		        ( DateCheckin ,
		          DateCheckout ,
		          idTable ,
		          statusBill ,
		          Discout ,
		          TotalPrice
		        )
		VALUES  ( GETDATE() , -- DateCheckin - date
		          NULL , -- DateCheckout - date
		          @idtable2 , -- idTable - int
		          0 , -- statusBill - int
		          0 , -- Discout - int
		          0.0  -- TotalPrice - float
		        )
		SELECT @idsecondBill=MAX(id) FROM dbo.Bill WHERE idTable =@idtable2 AND statusBill = 0
    END
	SELECT @issecondTableEmpty =COUNT(*) FROM dbo.Billinfo WHERE idBill = @idsecondBill
    
    UPDATE dbo.Billinfo SET idBill=@idfirstBill WHERE idBill = @idfirstBill
	UPDATE dbo.Billinfo SET idBill =@idfirstBill WHERE idBill = @idsecondBill

	IF(@isfirstTableEmpty = 0)
		UPDATE dbo.TableFood SET statusfood = N'Trống' WHERE id = @idtable2
	IF(@issecondTableEmpty = 0)
		UPDATE dbo.TableFood SET statusfood = N'Trống' WHERE id = @idtable1
END	
GO

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Bien Nguyen đã bình luận 08:28 24-06-2017
SELECT @issecondTableEmpty =COUNT(*) FROM dbo.Billinfo WHERE idBill = @idsecondBill

Bạn thử đem cái này xuống dưới Update và trên If.

Câu hỏi mới nhất