Untitled
unknown
plain_text
2 years ago
1.6 kB
5
Indexable
CREATE DEFINER=`root`@`localhost` PROCEDURE `place_order_customer`( IN p_OrderCustomerId INT, IN p_CustomerId INT, IN p_SKU VARCHAR(10), IN p_Quantity INT, IN p_Price DOUBLE, IN p_LastName VARCHAR(50), IN p_FristName VARCHAR(50), IN p_Phone VARCHAR(20), IN p_Address VARCHAR(255) ) BEGIN DECLARE v_Inventory INT; DECLARE v_OrderId INT; DECLARE v_Status VARCHAR(50) DEFAULT 'Pending'; START TRANSACTION; SELECT Toy.InventoryNumber INTO v_Inventory FROM productwithprice Toy WHERE Toy.SKU = p_SKU; -- Kiểm tra xem có đủ hàng trong kho không IF v_Inventory >= p_Quantity THEN -- Trừ số lượng hàng đã bán khỏi số lượng hàng tồn kho UPDATE Toy SET InventoryNumber = InventoryNumber - p_Quantity WHERE SKU = p_SKU; ELSE ROLLBACK; END IF; IF (p_OrderCustomerId IS NULL) THEN -- Thêm đơn hàng vào bảng CustomerOrder INSERT INTO CustomerOrder (Status, OrderDate, FristName, LastName, Phone, Address, CustomerId) VALUES (v_Status, NOW(), p_FristName, p_LastName, p_Phone, p_Address, p_CustomerId); -- Lấy ID của đơn hàng vừa được thêm vào SELECT LAST_INSERT_ID() INTO v_OrderId; ELSE SELECT p_OrderCustomerId INTO v_OrderId; END IF; -- Thêm chi tiết đơn hàng vào bảng CustomerOrderDetail INSERT INTO CustomerOrderDetail (CustomerOrderId, SKU, Quantity, Price) VALUES (v_OrderId, p_SKU, p_Quantity, p_Price); SELECT v_OrderId as OrderId; commit; END
Editor is loading...