CREATE OR REPLACE PROCEDURE ACORDO_PROJETO_AUTOMATICO
AS
   V_DATAEMAIL PROJETO.DTABERPROJ%TYPE;
   V_CDOPERADOR PROJETO.CDOPERABER%TYPE;

BEGIN
   FOR C_ACORDO IN (SELECT AC.CDFILIAL, AC.CDPROJETO, AC.CDOPERADOR, AC.DTEMAILPROJ  
                    FROM
                      OPERPROJETO OJ, OPERCLIE OC, OPERADOR OP, ACORDOPROJETO AC
                    WHERE (OP.CDOPERADOR = OJ.CDOPERADOR)
                      AND (OP.CDOPERADOR = OC.CDOPERADOR)
                      AND (OP.CDOPERADOR = AC.CDOPERADOR)
                      AND (AC.IDACORDOPROJ <> 'S')
                      AND (NOT EXISTS (SELECT CDFUNC
                                      FROM FUNCIONARIO
                                      WHERE CDFUNC = OP.CDFUNC))
                      AND (AC.DTEMAILPROJ = (SELECT MAX(DTEMAILPROJ)
                                            FROM ACORDOPROJETO A
                                            WHERE A.CDFILIAL     = AC.CDFILIAL
                                              AND A.CDPROJETO    = AC.CDPROJETO
                                              AND A.NRBASELINEPR = AC.NRBASELINEPR
                                              AND A.CDOPERADOR   = AC.CDOPERADOR
                                              AND A.CDGRUPOCARGO = AC.CDGRUPOCARGO))
                    GROUP BY AC.CDFILIAL, AC.CDPROJETO, AC.CDOPERADOR, AC.DTEMAILPROJ) LOOP

      IF TRUNC(SYSDATE) - TRUNC(C_ACORDO.DTEMAILPROJ) > 3 THEN
         UPDATE ACORDOPROJETO
         SET IDACORDOPROJ = 'S',
             TXACORDOPROJ = 'Acordo efetuado pelo sistema.'
         WHERE CDFILIAL    = C_ACORDO.CDFILIAL
           AND CDPROJETO   = C_ACORDO.CDPROJETO
           AND CDOPERADOR  = C_ACORDO.CDOPERADOR
           AND DTEMAILPROJ = C_ACORDO.DTEMAILPROJ;
      END IF;
   END LOOP;
   COMMIT;
END;
/
