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 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;
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
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 ;