CREATE PROCEDURE "dba"."dk_reg_koond_asutus"( in a_skoopkood char(16), in id_skoop integer,in id_obj integer,in id_paring integer,in peralg date,in perlop date,in a_dk_per smallint)
BEGIN
  declare li_paring integer;
  delete from gl_dk_kanne;
  set li_paring=set_gl_1(id_paring);
  insert into gl_dk_kanne (asutnr,summa,summa2)
    select dk_kanne.asutnr,
           sum(if dk_obj.spank-dk_kanne.sisse=0 then -1*(dk_kanne.summa) else dk_kanne.summa endif),
           sum(if dk_obj.spank-dk_kanne.sisse=0 then -1*(dk_kanne.summa2) else dk_kanne.summa2 endif)
      from dk_kanne left outer join gl_1 on(dk_kanne.id = gl_1.id) and(dk_kanne.kuup = gl_1.kuup) left outer join dk_obj on dk_kanne.objnr=dk_obj.objnr left outer join skoobid on dk_obj.skoop=skoobid.skoop
      where ((dk_kanne.id = gl_1.id) and(dk_kanne.kuup = gl_1.kuup) or id_paring = 0) and
            (dk_kanne.objnr = id_obj or id_obj = 0) and
            Left(skoobid.kood,Length(a_skoopkood))=a_skoopkood and (dk_obj.skoop=id_skoop or id_skoop=0) and
            if a_dk_per=0 then dk_kanne.kuup else dk_kanne.arvekuup endif >= peralg and
            if a_dk_per=0 then dk_kanne.kuup else dk_kanne.arvekuup endif <= perlop
      group by dk_kanne.asutnr;
END