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ạn thử đem cái này xuống dưới Update và trên If.