ALTER PROCEDURE "DBA"."pv_koond1_nimekiri"( in a_skoop integer,in a_yksusnr integer,in a_yksuskood char(16),in a_paring integer,in a_perlop date)
BEGIN
  declare li_max integer;
  select max(id) into li_max from pv_kanne_muuinfo; 
  delete from gl_pv_kanne;
  insert into gl_pv_kanne(yksusnr,"id",toot_nr,nimi,yldnimnr,yldnimi,kuup,kulu_p,alg_m,epk,jpk2,"info")
    select pv_kanne.yksusnr,
           pv_kanne."id",
           if pv_kanne.toot_nr is null then '' else pv_kanne.toot_nr endif,
           pv_kanne.nimi,
           if pv_kanne.yldnimnr is null then li_max+pv_kanne."id" else pv_kanne.yldnimnr endif,
           if pv_kanne.yldnimnr is null then pv_kanne.nimi else Trim(pv_kanne_muuinfo.yldnimi) endif,
           pv_kanne.kuup,
           get_pv_protsent(pv_kanne."id",years(a_perlop),month(a_perlop)),
           pv_kanne.alg_m,
           pv_epk(pv_kanne."id",years(a_perlop)) as c_epk,
           pv_jpk(pv_kanne."id",years(a_perlop),month(a_perlop),c_epk)+(if years(pv_kanne.kuup)=years(a_perlop) and pv_kanne.kuup<ymd(Years(a_perlop),Month(a_perlop)+1,1) then pv_kanne.ytk else 0 endif) as c_jpk2,
           pv_kanne."info"
      from pv_kanne left outer join gl_1 on(pv_kanne.id = gl_1.id) and(pv_kanne.kuup = gl_1.kuup)
                    left outer join pv_yksus on pv_kanne.yksusnr = pv_yksus.yksusnr
                    left outer join pv_kanne_muuinfo on pv_kanne.yldnimnr=pv_kanne_muuinfo."id"
      where ((pv_kanne.id = gl_1.id) and(pv_kanne.kuup = gl_1.kuup) or a_paring = 0) and
            (pv_yksus.skoop = a_skoop or a_skoop = 0) and
            (pv_kanne.yksusnr = a_yksusnr or a_yksusnr = 0) and
            Left(pv_yksus.kood,Length(a_yksuskood))=a_yksuskood and
            (pv_kanne.kuup<=a_perlop) and
            (pv_kanne.objnr2 is null or(pv_kanne.objnr2 is not null and pv_kanne.kuup2 > a_perlop));
END