fix: business overlapping
gitea/salix/pipeline/pr-master This commit looks good Details

This commit is contained in:
Pablo Natek 2024-06-24 08:08:39 +02:00
parent a303d22a18
commit ea0b0dc779
1 changed files with 11 additions and 13 deletions

View File

@ -12,23 +12,21 @@ BEGIN
END IF;
IF !(OLD.started <=> NEW.started AND OLD.ended <=> NEW.ended) THEN
SELECT COUNT(*) > 0 INTO isOverlapping
FROM business b
WHERE (util.hasDateOverlapped(
NEW.started,
IFNULL(NEW.ended, b.started),
b.started,
IFNULL(b.ended, NEW.started))
OR (NEW.ended <=> NULL AND b.ended <=> NULL))
AND b.id <> OLD.id
AND workerFk = OLD.workerFk;
SELECT util.hasDateOverlapped(
started,
ended,
NEW.started,
IFNULL(NEW.ended, b.started)
) isOverlapped INTO isOverlapping
FROM vn.business b
WHERE workerFk = NEW.workerFK
AND b.id <> NEW.id
ORDER BY isOverlapped DESC
LIMIT 1;
IF isOverlapping THEN
CALL util.throw ('IS_OVERLAPPING');
END IF;
END IF;
END$$
DELIMITER ;