-- Atualizar EmColeta para setores realizados em aberto nos últimos 2 dias
EXECUTE BLOCK
RETURNS (
    CODIGOVEICULO INTEGER,
    DH_I TIMESTAMP,
    DH_F TIMESTAMP,
    NULO DM_LOGICO,
    TOTAL INTEGER)
AS
BEGIN
  FOR
    SELECT SR.CODIGOVEICULO
         , SCI.DATAHORA_INICIO
         , SCI.DATAHORA_FIM
         , 'F'
      FROM SETORES_REALIZADOS SR
      INNER JOIN SETORES_COLETA SCI ON SR.CODIGO = SCI.CODIGOSETORREALIZADO
      WHERE SR.DATA_EXECUCAO > CURRENT_DATE -3
        AND SR.DATAHORA_FIM IS NULL
      INTO :CODIGOVEICULO,
           :DH_I,
           :DH_F,
           :NULO
  DO
  BEGIN
    IF (DH_F IS NULL) THEN
      SELECT DISTINCT RH.DATAHORA
           , 'T'
        FROM LISTAGEMVEICULOS LV
        INNER JOIN RASTREAMENTO_HISTORICO RH ON RH.CODIGOVEICULO = LV.CODIGOVEICULO AND RH.DATAHORA_GMT = LV.DATAHORA_ULTIMO_HISTORICO
        WHERE LV.CODIGOVEICULO = :CODIGOVEICULO
          AND LV.RASTREADOR = 'T'
          AND LV.REMOVIDO = 'F'
        INTO :DH_F,
             :NULO;

    UPDATE RASTREAMENTO_HISTORICO RH
      SET RH.EM_COLETA = 'T'
      WHERE RH.CODIGOVEICULO = :CODIGOVEICULO
        AND RH.DATAHORA BETWEEN :DH_I AND :DH_F;

    TOTAL = ROW_COUNT;

    SUSPEND;
  END
END
