TEXT
PACKAGE CONSULTES AS 
/**	
    NOM DEL PAQUET: CONSULTES
    FUNCIONALITAT: Proporciona les operaciones necessàries per fer les consultes.
**/


  /** NOM DEL REGISTRE: reg_consulta_a
      FUNCIONALITAT: Permet emmagatzemar les dades del cursor de la consulta, totes les dades del jugador i la data del final del seu últim contracte
  **/
  TYPE reg_consulta_a IS RECORD
  (
    JUGADOR_ID JUGADOR.JUGADOR_ID%type,
    NACIONALITAT_ID JUGADOR.NACIONALITAT_ID%type, 
    FEDERACIO_ID JUGADOR.FEDERACIO_ID%type, 
    NUMERO_FEDERAT JUGADOR.NUMERO_FEDERAT%type, 
    NOM JUGADOR.NOM%type, 
    DATA_NAIXEMENT JUGADOR.DATA_NAIXEMENT%type, 
    ALÇADA JUGADOR.ALÇADA%type, 
    PES JUGADOR.PES%type, 
    POSICIO_ID JUGADOR.POSICIO_ID%type, 
    REPRESENTANT_ID JUGADOR.REPRESENTANT_ID%type, 
    URL_WEB JUGADOR.URL_WEB%type, 
    URL_VIDEO_PROMOCIO JUGADOR.URL_VIDEO_PROMOCIO%type, 
    ACTIVITAT_ID JUGADOR.ACTIVITAT_ID%type, 
    ESTAT_ID JUGADOR.ESTAT_ID%type, 
    SUB_ESTAT_ID JUGADOR.SUB_ESTAT_ID%type, 
    DIAGNOSTIC JUGADOR.DIAGNOSTIC%type, 
    DATA_DISPONIBILITAT JUGADOR.DATA_DISPONIBILITAT%type, 
    GENERE_ID JUGADOR.GENERE_ID%type,
    MODALITAT_ID JUGADOR.MODALITAT_ID%type,
    DATA_FINAL_CONTRACTE contracte.data_final_contracte%TYPE
  );


  /** NOM DEL REGISTRE: reg_consulta_b
      FUNCIONALITAT: Permet emmagatzemar les dades del cursor de la consulta
  **/  
  TYPE reg_consulta_b IS RECORD
  (
    competicio_nom competicio.competicio%type,
    equip_nom EQUIP.EQUIP%type,
    punts_a_favor number
  );


  /** NOM DEL REGISTRE: reg_consulta_c
      FUNCIONALITAT: Permet emmagatzemar les dades del cursor de la consulta
  **/ 
  TYPE reg_consulta_c IS RECORD
  (
    pos_id JUGADOR.POSICIO_ID%type,
    pos POSICIO.POSICIO%type,
    nom JUGADOR.NOM%type,
    valoracio ESTADISTIQUES_P_J.V%type
  );


  /** NOM DEL REGISTRE: reg_consulta_d
      FUNCIONALITAT: Permet emmagatzemar les dades del cursor de la consulta
  **/ 
  TYPE reg_consulta_d IS RECORD
  (
    representant_id CONTRACTE.REPRESENTANT_ID%type,
    rep REPRESENTANT.REPRESENTANT%type,
    contracte_id CONTRACTE.CONTRACTE_ID%type,
    valor_operacio CONTRACTE.VALOR_OPERACIO%type
  );


  /** NOM DEL REGISTRE: reg_consulta_e
      FUNCIONALITAT: Permet emmagatzemar les dades del cursor de la consulta
  **/ 
  TYPE reg_consulta_e IS RECORD
  (
    equip_nom EQUIP.EQUIP%type,
    quantitat number
  );


  /** NOM DEL REGISTRE: reg_consulta_f
      FUNCIONALITAT: Permet emmagatzemar les dades del cursor de la consulta
  **/ 
  TYPE reg_consulta_f IS RECORD
  (
    jugador_id JUGADOR.JUGADOR_ID%type,
    nom JUGADOR.NOM%type
  );


  /** NOM DEL PROCEDIMENT: jugadors_competicio
      FUNCIONALITAT: Retorna el llistat de tots els jugadors d’una competició donada amb totes les seves dades, incloent la data de finalització de contracte actual.
      PARÀMETRES D'ENTRADA: competicio_id
      PARÀMETRES DE SORTIDA: cursor que conté el llistat demanat per la funcionalitat.
                             RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/
  --(Consulta a) El llistat de tots els jugadors d’una competició donada amb totes les seves dades, incloent la data de finalització de contracte actual.
  procedure jugadors_competicio(
    p_competicio_id IN COMPETICIO.COMPETICIO_ID%type, 
    p_cursor OUT SYS_REFCURSOR, 
    RSP OUT varchar2);


  /** NOM DEL PROCEDIMENT: equips_competicio
      FUNCIONALITAT: Retorna el llistat de tots els equips d'una competició ordenats pel nombre de punts totals a favor en la temporada actual.
      PARÀMETRES D'ENTRADA: competicio_id
      PARÀMETRES DE SORTIDA: cursor que conté el llistat demanat per la funcionalitat.
                             RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/  
  --(Consulta b) El llistat de tots els equips d'una competició ordenats pel nombre de punts totals a favor en la temporada actual.
  procedure equips_competicio(
    p_competicio_id IN COMPETICIO.COMPETICIO_ID%type, 
    p_cursor OUT SYS_REFCURSOR, 
    RSP OUT varchar2);


  /** NOM DEL PROCEDIMENT: ll_5_millors_jugadors
      FUNCIONALITAT: Retorna el llistat dels 5 millors jugadors per posició en funció de la seva valoració.
      PARÀMETRES D'ENTRADA: ambit_id, genere_id i modalitat_id
      PARÀMETRES DE SORTIDA: cursor_base, conté el llistat dels 5 millors jugadors de la posició base.
                             cursor_escorta, conté el llistat dels 5 millors jugadors de la posició escorta.
                             cursor_aler, conté el llistat dels 5 millors jugadors de la posició aler.
                             cursor_aler_pivot, conté el llistat dels 5 millors jugadors de la posició aler_pivot.
                             cursor_pivot, conté el llistat dels 5 millors jugadors de la posició pivot.
                             RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/ 
  --(Consulta c) Donats un àmbit, un gènere i una modalitat de competició, el llistat dels 5 millors jugadors per posició en funció de la seva valoració.
  procedure ll_5_millors_jugadors(
    p_ambit_id IN AMBIT.AMBIT_ID%type, 
    p_genere_id IN GENERE.GENERE_ID%type, 
    p_modalitat_id IN MODALITAT.MODALITAT_ID%type, 
    p_cursor_base OUT SYS_REFCURSOR, 
    p_cursor_escorta OUT SYS_REFCURSOR, 
    p_cursor_aler OUT SYS_REFCURSOR, 
    p_cursor_aler_pivot OUT SYS_REFCURSOR, 
    p_cursor_pivot OUT SYS_REFCURSOR, 
    RSP OUT varchar2);


  /** NOM DEL PROCEDIMENT: contractes_any
      FUNCIONALITAT: Retorna el número de contractes de jugadors signats i el valor econòmic total de cadascun d'ells.
      PARÀMETRES D'ENTRADA: any i representant_id
      PARÀMETRES DE SORTIDA: n, número de contractes de jugadors signats
                             cursor que conté el llistat demanat per la funcionalitat.
                             RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/   
  --(Consulta d) Donat un any i un representant de jugadors, el número de contractes de jugadors signats i el valor econòmic total de cadascun d'ells.
  procedure contractes_any(
    p_any IN number, 
    p_representant_id IN REPRESENTANT.REPRESENTANT_ID%type, 
    p_n OUT number, 
    p_cursor OUT SYS_REFCURSOR, 
    RSP OUT varchar2);


  /** NOM DEL PROCEDIMENT: ll_10_equips_major_gast
      FUNCIONALITAT: Retorna el llistat dels 10 equips que més diners s’han gastat en adquisició de jugadors, ordenat de més a menys.
      PARÀMETRES D'ENTRADA: any
      PARÀMETRES DE SORTIDA: cursor que conté el llistat demanat per la funcionalitat.
                             RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/   
  --(Consulta e) Donat un any concret el llistat dels 10 equips que més diners s’han gastat en adquisició de jugadors, ordenat de més a menys.
  procedure ll_10_equips_major_gast(
    p_any IN number, 
    p_cursor OUT SYS_REFCURSOR, 
    RSP OUT varchar2);


  /** NOM DEL PROCEDIMENT: ll_jugadors_estaran_lliures
      FUNCIONALITAT: Retorna el llistat de jugadors que acaben contracte a final de la present temporada o que estan en actiu però sense equip.
      PARÀMETRES D'ENTRADA: pais_id, genere_id i modalitat_id
      PARÀMETRES DE SORTIDA: cursor que conté el llistat demanat per la funcionalitat.
                             RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/   
  --(Consulta f) Donat un país, un gènere i una modalitat, el llistat de jugadors que acaben contracte a final de la present temporada o que estan en actiu però sense equip.
  procedure LL_JUGADORS_ESTARAN_LLIURES(
    p_pais_id in PAIS.PAIS_ID%type, 
    p_genere_id in GENERE.GENERE_ID%type, 
    p_modalitat_id IN MODALITAT.MODALITAT_ID%type, 
    p_cursor OUT SYS_REFCURSOR, 
    RSP OUT varchar2);

  
  /** NOM DEL PROCEDIMENT: inserta_log
      FUNCIONALITAT: Permet fer un registre dels procediments cridats, els paràmetres d'entrada i els de sortida
      PARÀMETRES D'ENTRADA: paquet del procediment que crida al log
                            procediment que crida al log
                            entrada: paràmetres d'entrada al procediment que crida al log
                            sortida: RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
                            inici: moment en que comença el procediment que crida al log
                            final: moment en que acaba el procediment que crida al log
      PARÀMETRES DE SORTIDA: RSP, indica si l'execució ha finalitzat amb èxit (valor 'OK') o no (valor 'ERROR + TIPUS D'ERROR')
  **/ 
  procedure inserta_log(
    p_paquet IN varchar2, 
    p_procediment IN varchar2, 
    p_entrada IN varchar2, 
    p_sortida IN varchar2, 
    p_inici IN timestamp, 
    p_final IN timestamp);
  
END CONSULTES;