56 lines
1.4 KiB
SQL
56 lines
1.4 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticketClon`(vTicketFk INT, vNewShipped DATE)
|
|
BEGIN
|
|
|
|
DECLARE done INT DEFAULT FALSE;
|
|
DECLARE vNewTicketFk INT;
|
|
DECLARE vOldSaleFk INT;
|
|
DECLARE vNewSaleFk INT;
|
|
|
|
DECLARE cur1 CURSOR FOR
|
|
SELECT id
|
|
FROM vn.sale
|
|
WHERE ticketFk = vTicketFk;
|
|
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
|
|
|
SET vNewShipped = IFNULL(vNewShipped, util.VN_CURDATE());
|
|
|
|
CALL vn.ticket_Clone(vTicketFk, vNewTicketFk);
|
|
|
|
UPDATE vn.ticket
|
|
SET landed = TIMESTAMPADD(DAY, DATEDIFF(vNewShipped, shipped), landed),
|
|
shipped = vNewShipped
|
|
WHERE id = vNewTicketFk;
|
|
|
|
OPEN cur1;
|
|
|
|
read_loop: LOOP
|
|
|
|
FETCH cur1 INTO vOldSaleFk;
|
|
|
|
IF done THEN
|
|
LEAVE read_loop;
|
|
END IF;
|
|
|
|
INSERT INTO vn.sale(ticketFk, itemFk, quantity, concept, price, discount, priceFixed, isPriceFixed)
|
|
SELECT vNewTicketFk, itemFk, quantity, concept, price, discount, priceFixed, isPriceFixed
|
|
FROM vn.sale
|
|
WHERE id = vOldSaleFk;
|
|
|
|
SELECT max(id) INTO vNewSaleFk
|
|
FROM vn.sale
|
|
WHERE ticketFk = vNewTicketFk;
|
|
|
|
INSERT INTO vn.saleComponent(saleFk, componentFk, value, isGreuge)
|
|
SELECT vNewSaleFk, componentFk, value, isGreuge
|
|
FROM vn.saleComponent
|
|
WHERE saleFk = vOldSaleFk;
|
|
|
|
END LOOP;
|
|
|
|
CLOSE cur1;
|
|
|
|
END$$
|
|
DELIMITER ;
|