ALTER PROCEDURE "dba"."dk_koond_meelde_nimek"( in id_skoop integer,in id_obj integer,in perlop date)
BEGIN
  declare ls_dk_kontod char(7000);
  delete from gl_dk_koond;
  delete from gl_pr_koond;
  delete from gl_dk_arvetas;
  if id_obj > 0 then
    select dk_obj.skoop into id_skoop from dk_obj where dk_obj.objnr = id_obj
  end if;
  -- taituri juures jaavad valja
  if exists(select 1 from "dk_konfm" where "yld_meeldek_taitur"=1 and "id"=1) then
    insert into gl_dk_arvetas(arvekuup,arvenr,asutnr)
      select distinct arvekuup,arvenr,asutnr from dk_taitur where dk_taitur.akuup<=perlop and (dk_taitur.lkuup is null or dk_taitur.lkuup>=perlop);
  end if;
  -- arveldused
  insert into gl_pr_koond( konto,asutnr,deeb,kuup)
    select '1',dk_kanne.asutnr,sum(if dk_kanne.sisse=1 then dk_kanne.summa+dk_kanne.summa2 else -1*(dk_kanne.summa+dk_kanne.summa2) endif),max(dk_kanne.taskuup)
      from dk_kanne key left outer join dk_obj
                    left outer join gl_dk_arvetas on dk_kanne.arvekuup=gl_dk_arvetas.arvekuup and dk_kanne.arvenr=gl_dk_arvetas.arvenr and dk_kanne.asutnr=gl_dk_arvetas.asutnr
      where dk_obj.spank=0 and (dk_obj.skoop=id_skoop or id_skoop=0) and (dk_kanne.objnr=id_obj or id_obj=0) and dk_kanne.asutnr>0 and dk_kanne.taskuup<=perlop and gl_dk_arvetas.asutnr is null
      group by dk_kanne.asutnr;
  -- kassa/pank
    set ls_dk_kontod=get_dk_kontod_spank(id_skoop,0,id_obj);
  insert into gl_pr_koond( konto,asutnr,deeb)
    select '2',kp_kanne.asutnr,sum(if kp_kanne.sisse=0 then kp_kanne.summa else -1*kp_kanne.summa endif)
      from kp_kanne left outer join kp_obj on kp_kanne.objnr = kp_obj.objnr
                    left outer join gl_dk_arvetas on kp_kanne.arvekuup=gl_dk_arvetas.arvekuup and kp_kanne.arvenr=gl_dk_arvetas.arvenr and kp_kanne.asutnr=gl_dk_arvetas.asutnr
      where locate(ls_dk_kontod,';'+"Left"(kp_kanne.konto+Space(7),7)+';')>0 and (kp_obj.skoop=id_skoop or id_skoop=0) and kp_kanne.asutnr>0 and kp_kanne.kuup<=perlop and gl_dk_arvetas.asutnr is null
      group by kp_kanne.asutnr;
  -- koond
  insert into gl_dk_koond( asutnr,ldeeb,kuup) 
    select gl_pr_koond.asutnr,sum(gl_pr_koond.deeb),max(gl_pr_koond.kuup) from gl_pr_koond group by gl_pr_koond.asutnr;
  -- loppjaagid
  delete from gl_dk_koond where ldeeb<=0
END