salix/db/routines/vn/procedures/parking_algemesi.sql

63 lines
1.4 KiB
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`parking_algemesi`(vFromRow INT, vToRow INT, vSectorFk INT, vLetter VARCHAR(1), vPickingOrder INT, vTrolleysByLine INT)
BEGIN
DECLARE vRow INT;
DECLARE vCode VARCHAR(8);
DECLARE i INT;
IF vToRow < vFromRow THEN
SET vRow = vFromRow;
WHILE vRow >= vToRow DO
SET i = 1;
WHILE i <= vTrolleysByLine DO
SET vCode = CONCAT(vLetter,'-', LPAD(vRow,2,'0'),'-', i);
INSERT IGNORE INTO vn.parking( sectorFk, `code`, pickingOrder)
VALUES (vSectorFk, vCode, vPickingOrder + (i * 10))
ON DUPLICATE KEY UPDATE `code` = vCode;
SET i = i + 1;
END WHILE;
SET vRow = vRow - 1;
END WHILE;
ELSE
SET vRow = vFromRow;
WHILE vRow <= vToRow DO
SET i = 1;
WHILE i <= vTrolleysByLine DO
SET vCode = CONCAT(vLetter,'-', LPAD(vRow,2,'0'),'-', i);
INSERT IGNORE INTO vn.parking( sectorFk, `code`, pickingOrder)
VALUES (vSectorFk, vCode, vPickingOrder + (i * 10) )
ON DUPLICATE KEY UPDATE `code` = vCode;
SET i = i + 1;
END WHILE;
SET vRow = vRow + 1;
END WHILE;
END IF;
END$$
DELIMITER ;