First Commit - Source Code from Reply

This commit is contained in:
vincenzofariello
2024-05-13 12:54:14 +02:00
parent 73e32a5020
commit a15aee1f08
11184 changed files with 1065913 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
CREATE OR REPLACE FUNCTION FUN_ORE_LAVORATIVE (data_finale IN DATE, data_iniziale IN DATE)
RETURN NUMBER
-- Restituisce il numero di ore lavorative tra data_iniziale e data_finale
IS
appo_ore NUMBER;
appo_giorni NUMBER;
appo_ore_iniziali NUMBER;
appo_ore_finali NUMBER;
appo_min_finali NUMBER;
appo_min_iniziali NUMBER;
BEGIN
appo_ore := 0;
IF data_finale > data_iniziale
THEN
appo_giorni := dwh.fun_giorni_lavorativi (data_finale, data_iniziale);
IF appo_giorni > 0
THEN
appo_ore := appo_giorni * 24;
END IF;
appo_ore_iniziali := TO_NUMBER (TO_CHAR (data_iniziale, 'HH24'));
appo_ore_finali := TO_NUMBER (TO_CHAR (data_finale, 'HH24'));
appo_ore := appo_ore + appo_ore_finali - appo_ore_iniziali;
appo_min_iniziali := TO_NUMBER (TO_CHAR (data_iniziale, 'mi'));
appo_min_finali := TO_NUMBER (TO_CHAR (data_finale, 'mi'));
IF (appo_min_finali - appo_min_iniziali) < 0
THEN
appo_ore := appo_ore - 1;
END IF;
ELSE
appo_ore := 0;
END IF;
RETURN appo_ore;
END fun_ore_lavorative;
/