create or replace 
FUNCTION FN_GET_MIN_MAX_DUEDATE (AS_SALE_ORDER IN SORDDET.SALE_ORDER%TYPE, AS_MIN_OR_MAX IN CHAR)
RETURN DATE IS
LS_DUE_DATE SORDDET.DSP_DATE%TYPE;
BEGIN
  IF AS_MIN_OR_MAX = 'MIN' THEN
  SELECT MIN(DSP_DATE) INTO LS_DUE_DATE  
  FROM SORDDET  
  WHERE SALE_ORDER = AS_SALE_ORDER;
  
  RETURN LS_DUE_DATE;
  
  ELSIF AS_MIN_OR_MAX = 'MAX' THEN
  
  SELECT MAX(DSP_DATE) INTO LS_DUE_DATE  
  FROM SORDDET  
  WHERE SALE_ORDER = AS_SALE_ORDER;
  
  RETURN LS_DUE_DATE;
  
  END IF;
  
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 'Data not found' ;
END;