133 lines
3.4 KiB
SQL
133 lines
3.4 KiB
SQL
DROP procedure IF EXISTS `vn`.`clonTravelComplete`;
|
|
|
|
DELIMITER $$
|
|
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`clonTravelComplete`(IN `vTravelFk` INT, IN `vDateStart` DATE, IN `vDateEnd` DATE, IN `vRef` VARCHAR(255))
|
|
BEGIN
|
|
|
|
DECLARE vTravelNew INT;
|
|
DECLARE vEntryNew INT;
|
|
DECLARE vDone BIT DEFAULT 0;
|
|
DECLARE vAuxEntryFk INT;
|
|
DECLARE vRsEntry CURSOR FOR
|
|
SELECT e.id
|
|
FROM entry e
|
|
JOIN travel t
|
|
ON t.id = e.travelFk
|
|
WHERE e.travelFk = vTravelFk;
|
|
|
|
DECLARE vRsBuy CURSOR FOR
|
|
SELECT b.*
|
|
FROM buy b
|
|
JOIN entry e
|
|
ON b.entryFk = e.id
|
|
WHERE e.travelFk = vTravelNew and b.entryFk=entryNew
|
|
ORDER BY e.id;
|
|
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1;
|
|
|
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
BEGIN
|
|
ROLLBACK;
|
|
RESIGNAL;
|
|
END;
|
|
|
|
START TRANSACTION;
|
|
|
|
INSERT INTO travel (shipped,landed, warehouseInFk, warehouseOutFk, agencyFk, ref, isDelivered, isReceived, m3, kg)
|
|
SELECT vDateStart, vDateEnd,warehouseInFk, warehouseOutFk, agencyFk, vRef, isDelivered, isReceived, m3, kg
|
|
FROM travel
|
|
WHERE id = vTravelFk;
|
|
|
|
SET vTravelNew = LAST_INSERT_ID();
|
|
SET vDone = 0;
|
|
OPEN vRsEntry ;
|
|
FETCH vRsEntry INTO vAuxEntryFk;
|
|
|
|
WHILE NOT vDone DO
|
|
INSERT INTO entry (supplierFk,
|
|
ref,
|
|
isInventory,
|
|
isConfirmed,
|
|
isOrdered,
|
|
isRaid,
|
|
commission,
|
|
created,
|
|
evaNotes,
|
|
travelFk,
|
|
currencyFk,
|
|
companyFk,
|
|
gestDocFk,
|
|
invoiceInFk)
|
|
SELECT supplierFk,
|
|
ref,
|
|
isInventory,
|
|
isConfirmed,
|
|
isOrdered,
|
|
isRaid,
|
|
commission,
|
|
created,
|
|
evaNotes,
|
|
vTravelNew,
|
|
currencyFk,
|
|
companyFk,
|
|
gestDocFk,
|
|
invoiceInFk
|
|
FROM entry
|
|
WHERE id = vAuxEntryFk;
|
|
|
|
SET vEntryNew = LAST_INSERT_ID();
|
|
|
|
|
|
INSERT INTO buy (entryFk,
|
|
itemFk,
|
|
quantity,
|
|
buyingValue,
|
|
packageFk,
|
|
stickers,
|
|
freightValue,
|
|
packageValue,
|
|
comissionValue,
|
|
packing,
|
|
`grouping`,
|
|
groupingMode,
|
|
location,
|
|
price1,
|
|
price2,
|
|
price3,
|
|
minPrice,
|
|
producer,
|
|
printedStickers,
|
|
isChecked)
|
|
SELECT vEntryNew,
|
|
itemFk,
|
|
quantity,
|
|
buyingValue,
|
|
packageFk,
|
|
stickers,
|
|
freightValue,
|
|
packageValue,
|
|
comissionValue,
|
|
packing,
|
|
`grouping`,
|
|
groupingMode,
|
|
location,
|
|
price1,
|
|
price2,
|
|
price3,
|
|
minPrice,
|
|
producer,
|
|
printedStickers,
|
|
isChecked
|
|
FROM buy
|
|
WHERE entryFk = vAuxEntryFk;
|
|
|
|
|
|
FETCH vRsEntry INTO vAuxEntryFk;
|
|
END WHILE;
|
|
CLOSE vRsEntry;
|
|
COMMIT;
|
|
END$$
|
|
|
|
DELIMITER ;
|
|
|