CREATE OR REPLACE PACKAGE monitsin2.AABS_DG_READ_PSR is
function getParcPsrIns(atto_ammi in number) return AABSPARC_PSR_COL;
function getParcDettPsrIns(atto_ammi in number) return AABSPARC_COL;
END AABS_DG_READ_PSR;
/


CREATE OR REPLACE PACKAGE monitsin2.BODY AABS_DG_READ_PSR is
function getParcPsrIns(atto_ammi in number) return AABSPARC_PSR_COL is
outVal AABSPARC_PSR_COL;
tipoAtto varchar2(100);
codicescheda varchar2(100);
utente varchar2(100);
anno_campagna varchar2(4);
begin

tipoAtto := AABGAD_IN.getTipoAtto(atto_ammi);
ASRGAD703.getCodiScheda(atto_ammi, codicescheda);

select cuaa,to_number(to_char(data_rife_cons,'YYYY'))
into utente,anno_campagna
from AABGSCHE_VALI_TAB 
join AABGFGRA_TAB using (id_fgra)
join AABGCONS_TAB using (id_cons)
where cod_sche_vali = codicescheda
and to_char(data_rife_cons,'MMDD') = '0515';

select 
AABSPARC_PSR_REC(
CAMPAGNA,
CUAA,
ID_ATTO_AMMI,
ID_SCHEDA ,  
ID_PARC ,           
ID_INTE ,
SUPERFICIE,        
SHAPE,
COD_COLT
) 
bulk collect into outVal from
(select 
  anno_campagna CAMPAGNA,
  utente CUAA,
  ID_ATTO_AMMI,
 codicescheda id_scheda, 
 ID_PARC_AGRI ID_PARC,           
 ID_INTE ,
 SUPE_PARC SUPERFICIE, 
 SHAPE_PARC SHAPE,
 null COD_COLT
 from table(cast(AABGAD005.getParcelleTipoAtto(atto_ammi,tipoAtto,null) as AABGPARC_COL)));
 

return outVal;
end getParcPsrIns;

function getParcDettPsrIns(atto_ammi in number) return AABSPARC_COL is
outVal AABSPARC_COL;
tipoAtto varchar2(100);
begin
tipoAtto := AABGAD_IN.getTipoAtto(atto_ammi);
select 
    AABSPARC_REC(
    ID_ATTO_AMMI,
    ID_SCHEDA ,  
    ID_PARC ,           
    ID_INTE ,
    SUPERFICIE,        
    SHAPE,
    COD_COLT
    ) 
bulk collect into outVal from
    (select 
     atto_ammi id_atto_ammi,
     null id_scheda, 
     ID_PARC_AGRI ID_PARC,           
     null ID_INTE ,
     null SUPERFICIE, 
     null SHAPE,
     ID_APCG COD_COLT
     from ZAE0APAG_TAB a where a.id_parc_agri in (select id_parc_agri from
      table(cast(AABGAD005.getParcelleTipoAtto(atto_ammi,tipoAtto,null) as AABGPARC_COL))  ));
return outVal;
end getParcDettPsrIns;

end AABS_DG_READ_PSR;
/

CREATE PUBLIC SYNONYM AABS_DG_READ_PSR FOR AABS_DG_READ_PSR;
/