CREATE OR REPLACE FUNCTION HORAS_FATU_ATENDIMENTO (
   P_TEMPO IN NUMBER) RETURN NUMBER IS

   V_TEMPO   NUMBER;
   V_HORAS   NUMBER;
   V_MINUTOS NUMBER;

BEGIN
   V_TEMPO   := P_TEMPO;
   V_HORAS   := (V_TEMPO - TRUNC(V_TEMPO)) * 24;
   V_MINUTOS := (V_HORAS - TRUNC(V_HORAS)) * 60;

   IF TRUNC(V_MINUTOS/15) <> (V_MINUTOS/15) THEN
      V_MINUTOS := (TRUNC(V_MINUTOS/15) + 1) * 15;
      IF V_MINUTOS = 60 THEN
         V_MINUTOS := 0;
         V_HORAS := V_HORAS + 1;
      END IF;
   END IF;

   V_TEMPO := TRUNC(V_TEMPO) + (TRUNC(V_HORAS)/24) + ((V_MINUTOS/24)/60);
   V_TEMPO := V_TEMPO * 1440;
   RETURN(V_TEMPO);
END;
/

