refs #5651 packingSiteAdvanced #1615
|
@ -12,7 +12,7 @@ INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `pri
|
||||||
VALUES
|
VALUES
|
||||||
('PackingSiteAdvanced', '*', '*', 'ALLOW', 'ROLE', 'production');
|
('PackingSiteAdvanced', '*', '*', 'ALLOW', 'ROLE', 'production');
|
||||||
|
|
||||||
DROP PROCEDURE IF EXISTS `vn`.`packingSite_startCollection`;
|
DROP PROCEDURE IF EXISTS `vn`.`packingSite_startCollection`;
|
||||||
|
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
$$
|
$$
|
||||||
|
@ -22,40 +22,48 @@ proc: BEGIN
|
||||||
* @param vSelf packingSite id
|
* @param vSelf packingSite id
|
||||||
* @param vTicketFk A ticket id from the collection to start
|
* @param vTicketFk A ticket id from the collection to start
|
||||||
*/
|
*/
|
||||||
DECLARE vNewCollectionFk INT;
|
DECLARE vExists BOOL;
|
||||||
DECLARE vIsAdvanced BOOL;
|
DECLARE vIsAdvanced BOOL;
|
||||||
DECLARE vOldCollectionFk INT;
|
DECLARE vNewCollectionFk INT;
|
||||||
DECLARE vIsPackingByOther BOOL;
|
DECLARE vOldCollectionFk INT;
|
||||||
|
DECLARE vIsPackingByOther BOOL;
|
||||||
|
|
||||||
SELECT COUNT(*) > 0
|
SELECT id, collectionFk
|
||||||
INTO vIsAdvanced
|
INTO vExists, vOldCollectionFk
|
||||||
FROM packingSiteAdvanced
|
FROM packingSite
|
||||||
WHERE ticketFk = vTicketFk;
|
WHERE id = vSelf;
|
||||||
|
|
||||||
IF vIsAdvanced THEN
|
IF NOT vExists THEN
|
||||||
LEAVE proc;
|
CALL util.throw('packingSiteNotExists');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SELECT collectionFk INTO vNewCollectionFk
|
SELECT COUNT(*) > 0
|
||||||
FROM ticketCollection WHERE ticketFk = vTicketFk;
|
INTO vIsAdvanced
|
||||||
|
FROM packingSiteAdvanced
|
||||||
|
WHERE ticketFk = vTicketFk;
|
||||||
|
|
||||||
SELECT collectionFk INTO vOldCollectionFk
|
IF vIsAdvanced THEN
|
||||||
FROM packingSite WHERE id = vSelf;
|
LEAVE proc;
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF NOT (vOldCollectionFk <=> vNewCollectionFk) THEN
|
SELECT collectionFk INTO vNewCollectionFk
|
||||||
SELECT COUNT(*) > 0
|
FROM ticketCollection WHERE ticketFk = vTicketFk;
|
||||||
|
|||||||
INTO vIsPackingByOther
|
|
||||||
FROM packingSite
|
|
||||||
WHERE id <> vSelf
|
|
||||||
AND collectionFk = vOldCollectionFk;
|
|
||||||
|
|
||||||
IF NOT vIsPackingByOther AND NOT collection_isPacked(vOldCollectionFk) AND vSelf IS NOT NULL THEN
|
IF vOldCollectionFk IS NOT NULL
|
||||||
CALL util.throw('cannotChangeCollection');
|
AND vOldCollectionFk <> vNewCollectionFk THEN
|
||||||
END IF;
|
SELECT COUNT(*) > 0
|
||||||
END IF;
|
INTO vIsPackingByOther
|
||||||
|
FROM packingSite
|
||||||
|
WHERE id <> vSelf
|
||||||
|
AND collectionFk = vOldCollectionFk;
|
||||||
|
|
||||||
UPDATE packingSite SET collectionFk = vNewCollectionFk
|
IF NOT vIsPackingByOther AND NOT collection_isPacked(vOldCollectionFk) THEN
|
||||||
WHERE id = vSelf;
|
CALL util.throw('cannotChangeCollection');
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
UPDATE packingSite SET collectionFk = vNewCollectionFk
|
||||||
|
WHERE id = vSelf;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
açò donara fallo perque la taula ticketCollection pot tindre el ticket repetit, si te 2 quina collection vols?
Creat redmine per solucionar que dos tickets estiguen en una col.lecció https://redmine.verdnatura.es/issues/5845