CREATE OR REPLACE FUNCTION SMS_FACILITA(P_MSG IN VARCHAR2, P_FONE IN VARCHAR2, P_TP_RETORNO IN CHAR, P_ID_ENVIO IN NUMBER, P_CONTA_ENVIO IN VARCHAR2, P_SENHA_ENVIO IN VARCHAR2) RETURN VARCHAR2 IS

USUARIO          VARCHAR2(500):= P_CONTA_ENVIO;
PASSWORD         VARCHAR2(500):= P_SENHA_ENVIO;
FONE             VARCHAR2(500):=P_FONE;
MSG              VARCHAR2(500):=REPLACE(P_MSG,' ', '%20');
V_RETORNO_ENVIO  VARCHAR(32267);
V_RETORNO_STATUS VARCHAR(32267);
V_URL_ENVIO      VARCHAR2(1000):='http://www.facilitamovel.com/api/simpleSend.ft?user='||USUARIO||'&password='||PASSWORD||'&destinatario='||FONE||'&msg='||MSG;
V_URL_RETORNO    VARCHAR2(1000):='http://www.facilitamovel.com.br/api/dlrStatus.ft?user='||USUARIO||'&password='||PASSWORD||'&id=';


  CURSOR C_ENVIAR(P_URL IN VARCHAR2) IS
    SELECT utl_http.request(P_URL) AS CHAMADA FROM DUAL;
  
  CURSOR C_STATUS(P_URL IN VARCHAR2) IS
    SELECT utl_http.request(P_URL) AS CHAMADA FROM DUAL;

BEGIN

IF P_TP_RETORNO = 'E' THEN  
  OPEN C_ENVIAR(V_URL_ENVIO);
  FETCH C_ENVIAR INTO V_RETORNO_ENVIO;
  CLOSE C_ENVIAR;
 
  OPEN C_STATUS(V_URL_RETORNO|| SUBSTR(V_RETORNO_ENVIO,3,99));
  FETCH C_STATUS INTO V_RETORNO_STATUS;
  CLOSE C_STATUS;
ELSIF P_TP_RETORNO = 'S' THEN
  OPEN C_STATUS(V_URL_RETORNO|| P_ID_ENVIO);
  FETCH C_STATUS INTO V_RETORNO_STATUS;
  CLOSE C_STATUS;
END IF;
  
RETURN 'RETORNO ENVIO: ' || V_RETORNO_ENVIO || ' - RETORNO STATUS: ' || V_RETORNO_STATUS;

END;
/
