--------------------------------------------------------
--  DDL for Procedure P_MANAGE_AUX_PROFILE
--------------------------------------------------------
set define off;

  CREATE OR REPLACE EDITIONABLE PROCEDURE "ENVX_OPER"."P_MANAGE_AUX_PROFILE" (
   pi_id_sys_profile_tree IN NUMBER,
   pi_id_sys_profile      IN NUMBER,
   pi_id_step_flow        IN NUMBER,
   po_resultado           OUT VARCHAR2
) AS
   v_insert BOOLEAN := false;
   v_aux    NUMBER;
BEGIN
   IF pi_id_sys_profile != pi_id_sys_profile_tree THEN
      SELECT COUNT(1)
        INTO v_aux
        FROM request_sw_auxiliar_profile
       WHERE id_step_flow = pi_id_step_flow
         AND id_sys_profile = pi_id_sys_profile_tree;

      IF v_aux > 0 THEN
         v_insert     := false;
         po_resultado := 'El perfil ya se encuentra como auxiliar del paso seleccionado';
      ELSE
         v_insert := true;
      END IF;

      IF v_insert THEN
         INSERT INTO request_sw_auxiliar_profile (
            id_sw_aux_profile,
            id_step_flow,
            id_sys_profile,
            status_aux_profile
         ) VALUES (
            s_request_sw_aux_profile_id.NEXTVAL,
            pi_id_step_flow,
            pi_id_sys_profile_tree,
            1
         );

         po_resultado := 'Perfil agregado como auxiliar';
      END IF;

   ELSE
      po_resultado :=
         CASE
            WHEN pi_id_sys_profile_tree > 0 THEN
               'El perfil ya se encuentra como auxiliar del paso seleccionado'
            ELSE 'No puede agregar un rol como auxiliar, seleccione un perfil'
         END;
   END IF;
END;

/
