refs #5651 packingSiteAdvanced #1615

Merged
sergiodt merged 4 commits from 5651-packingSiteAdvanced into dev 2023-06-15 11:40:43 +00:00
1 changed files with 36 additions and 28 deletions
Showing only changes of commit 927c0fddc6 - Show all commits

View File

@ -12,7 +12,7 @@ INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `pri
VALUES
('PackingSiteAdvanced', '*', '*', 'ALLOW', 'ROLE', 'production');
DROP PROCEDURE IF EXISTS `vn`.`packingSite_startCollection`;
DROP PROCEDURE IF EXISTS `vn`.`packingSite_startCollection`;
DELIMITER $$
$$
@ -22,40 +22,48 @@ proc: BEGIN
* @param vSelf packingSite id
* @param vTicketFk A ticket id from the collection to start
*/
DECLARE vNewCollectionFk INT;
DECLARE vIsAdvanced BOOL;
DECLARE vOldCollectionFk INT;
DECLARE vIsPackingByOther BOOL;
DECLARE vExists BOOL;
DECLARE vIsAdvanced BOOL;
DECLARE vNewCollectionFk INT;
DECLARE vOldCollectionFk INT;
DECLARE vIsPackingByOther BOOL;
SELECT COUNT(*) > 0
INTO vIsAdvanced
FROM packingSiteAdvanced
WHERE ticketFk = vTicketFk;
SELECT id, collectionFk
INTO vExists, vOldCollectionFk
FROM packingSite
WHERE id = vSelf;
IF vIsAdvanced THEN
LEAVE proc;
END IF;
IF NOT vExists THEN
CALL util.throw('packingSiteNotExists');
END IF;
SELECT collectionFk INTO vNewCollectionFk
FROM ticketCollection WHERE ticketFk = vTicketFk;
SELECT COUNT(*) > 0
INTO vIsAdvanced
FROM packingSiteAdvanced
WHERE ticketFk = vTicketFk;
SELECT collectionFk INTO vOldCollectionFk
FROM packingSite WHERE id = vSelf;
IF vIsAdvanced THEN
LEAVE proc;
END IF;
IF NOT (vOldCollectionFk <=> vNewCollectionFk) THEN
SELECT COUNT(*) > 0
INTO vIsPackingByOther
FROM packingSite
WHERE id <> vSelf
AND collectionFk = vOldCollectionFk;
SELECT collectionFk INTO vNewCollectionFk
FROM ticketCollection WHERE ticketFk = vTicketFk;
Review

açò donara fallo perque la taula ticketCollection pot tindre el ticket repetit, si te 2 quina collection vols?

açò donara fallo perque la taula ticketCollection pot tindre el ticket repetit, si te 2 quina collection vols?
Review

Creat redmine per solucionar que dos tickets estiguen en una col.lecció https://redmine.verdnatura.es/issues/5845

Creat redmine per solucionar que dos tickets estiguen en una col.lecció https://redmine.verdnatura.es/issues/5845
IF NOT vIsPackingByOther AND NOT collection_isPacked(vOldCollectionFk) AND vSelf IS NOT NULL THEN
CALL util.throw('cannotChangeCollection');
END IF;
END IF;
IF vOldCollectionFk IS NOT NULL
AND vOldCollectionFk <> vNewCollectionFk THEN
SELECT COUNT(*) > 0
INTO vIsPackingByOther
FROM packingSite
WHERE id <> vSelf
AND collectionFk = vOldCollectionFk;
UPDATE packingSite SET collectionFk = vNewCollectionFk
WHERE id = vSelf;
IF NOT vIsPackingByOther AND NOT collection_isPacked(vOldCollectionFk) THEN
CALL util.throw('cannotChangeCollection');
END IF;
END IF;
UPDATE packingSite SET collectionFk = vNewCollectionFk
WHERE id = vSelf;
END$$
DELIMITER ;