Files
zentral/docs/functions/F_MAX_NUMERO_EVENTI_RAGGIUNTO.md
2025-11-28 10:59:10 +01:00

39 lines
1.3 KiB
Markdown

# F_MAX_NUMERO_EVENTI_RAGGIUNTO
## Codice Sorgente
```sql
FUNCTION F_MAX_NUMERO_EVENTI_RAGGIUNTO
(
P_GIORNO IN DATE
) RETURN NUMBER AS
v_max_eventi TB_CALENDAR_LOCKS.max_eventi%TYPE; -- Variable to hold the max_eventi value from TB_CALENDAR_LOCKS
v_event_count NUMBER; -- Variable to hold the count of events from EVENTI
BEGIN
-- Step 1: Check if P_GIORNO is present in TB_CALENDAR_LOCKS and get the max_eventi value for that day
BEGIN
SELECT max_eventi
INTO v_max_eventi
FROM TB_CALENDAR_LOCKS
WHERE giorno = P_GIORNO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- If the date is not found in TB_CALENDAR_LOCKS, return -1 (or some other code to indicate the absence)
RETURN -1;
END;
-- Step 2: Count how many events occurred on P_GIORNO in the EVENTI table
SELECT COUNT(*)
INTO v_event_count
FROM EVENTI
WHERE TRUNC(DATA) = TRUNC(P_GIORNO); -- Use TRUNC to compare only the date part
-- Step 3: Compare the event count with the max_eventi and return the appropriate result
IF v_event_count >= v_max_eventi THEN
RETURN 1; -- Maximum number of events has been reached or exceeded
ELSE
RETURN 0; -- Maximum number of events has not been reached
END IF;
END F_MAX_NUMERO_EVENTI_RAGGIUNTO;```