ALTER PROCEDURE "dba"."pr_koond1"(in a_skoopkood char(16),in a_skoop integer,in id_paring integer,in peralg date,in perlop date,in a_id_user integer default 32767, in a_valver smallint default 1)
begin
  declare ldc_summa numeric(20,6);
  declare ls_konto char(7);
  declare ls_saldod_konto char(7);
  declare li_partnr integer;
  declare li_kulnr integer;
  declare li_talnr integer;
  declare li_artnr integer;
  declare li_tulnr integer;
  declare li_objectnr integer;
  declare li_osaknr integer;
  declare li_subjectnr integer;
  declare li_suundnr integer;
  declare li_meetnr integer;
  declare li_taotnr integer;
  declare li_alliknr integer;
  declare li_ravonr integer;
  declare li_00_ravonr integer;
  declare li_paring integer;
  declare li_saldod smallint;
  declare li_saldod_9 smallint;
  declare li_pikkus smallint;
  declare err_notfound exception for sqlstate value '02000';
  declare c_pr_aadeeb dynamic scroll cursor for select (if a_valver=4 then pr_kanne.summaeek else pr_kanne.summa endif),if li_saldod = 1 and Length(ls_saldod_konto)>0 and locate('345678',"left"(pr_kanne.deeb,1)) > 0 then ls_saldod_konto else trim(pr_kanne.deeb) endif,if kontlist.djuhpart is null or kontlist.djuhpart = 0 then 0 else(if kontlist.partnr is null then(if pr_kanne.partnr is null then 0 else pr_kanne.partnr endif) else kontlist.partnr endif) endif,if pr_kanne.kulnr is null or kontlist.djuhkul is null or kontlist.djuhkul = 0 then 0 else pr_kanne.kulnr endif,if pr_kanne.talnr is null or kontlist.djuhtal is null or kontlist.djuhtal = 0 then 0 else pr_kanne.talnr endif,if pr_kanne.artnr is null or kontlist.djuhart is null or kontlist.djuhart = 0 then 0 else pr_kanne.artnr endif,if pr_kanne.tulnr is null or kontlist.djuhtul is null or kontlist.djuhtul = 0 then 0 else pr_kanne.tulnr endif,if pr_kanne.objectnr is null or kontlist.djuhobject is null or kontlist.djuhobject = 0 then 0 else pr_kanne.objectnr endif,if pr_kanne.osaknr is null or kontlist.djuhosak is null or kontlist.djuhosak = 0 then 0 else pr_kanne.osaknr endif,if pr_kanne.subjectnr is null or kontlist.djuhsubject is null or kontlist.djuhsubject = 0 then 0 else pr_kanne.subjectnr endif,if pr_kanne.suundnr is null or kontlist.djuhsuund is null or kontlist.djuhsuund = 0 then 0 else pr_kanne.suundnr endif,if pr_kanne.meetnr is null then 0 else pr_kanne.meetnr endif,if pr_kanne.taotnr is null then 0 else pr_kanne.taotnr endif,if pr_kanne.alliknr is null or kontlist.djuhallik is null or kontlist.djuhallik = 0 then 0 else pr_kanne.alliknr endif,if kontlist.djuhravo is null or kontlist.djuhravo = 0 then 0 else (if kontlist.nulliravo is not null or pr_kanne.ravonr is null then get_00_ravonr(pr_kanne.deeb) else pr_kanne.ravonr endif) endif from
      pr_kanne left outer join gl_1 on(pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) left outer join skoobid on pr_kanne.skoop=skoobid.skoop left outer join kontlist on pr_kanne.deeb = kontlist.konto where((pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) or id_paring = 0) and ((a_skoop>0 and pr_kanne.skoop=a_skoop) or (a_skoop=0 and li_pikkus>0 and Left(skoobid.kood,li_pikkus)=a_skoopkood) or (a_skoop=0 and li_pikkus=0)) and pr_kanne.deeb is not null and years(pr_kanne.kuup) < years(peralg) and (Length(ls_saldod_konto)>0 or not(li_saldod = 1 and locate('345678',"left"(pr_kanne.deeb,1)) > 0)) and not(li_saldod_9 = 1 and "left"(pr_kanne.deeb,1) = '9');
  declare c_pr_adeeb dynamic scroll cursor for select (if a_valver=4 then pr_kanne.summaeek else pr_kanne.summa endif),trim(pr_kanne.deeb),if kontlist.djuhpart is null or kontlist.djuhpart = 0 then 0 else(if kontlist.partnr is null then(if pr_kanne.partnr is null then 0 else pr_kanne.partnr endif) else kontlist.partnr endif) endif,if pr_kanne.kulnr is null or kontlist.djuhkul is null or kontlist.djuhkul = 0 then 0 else pr_kanne.kulnr endif,if pr_kanne.talnr is null or kontlist.djuhtal is null or kontlist.djuhtal = 0 then 0 else pr_kanne.talnr endif,if pr_kanne.artnr is null or kontlist.djuhart is null or kontlist.djuhart = 0 then 0 else pr_kanne.artnr endif,if pr_kanne.tulnr is null or kontlist.djuhtul is null or kontlist.djuhtul = 0 then 0 else pr_kanne.tulnr endif,if pr_kanne.objectnr is null or kontlist.djuhobject is null or kontlist.djuhobject = 0 then 0 else pr_kanne.objectnr endif,if pr_kanne.osaknr is null or kontlist.djuhosak is null or kontlist.djuhosak = 0 then 0 else pr_kanne.osaknr endif,if pr_kanne.subjectnr is null or kontlist.djuhsubject is null or kontlist.djuhsubject = 0 then 0 else pr_kanne.subjectnr endif,if pr_kanne.suundnr is null or kontlist.djuhsuund is null or kontlist.djuhsuund = 0 then 0 else pr_kanne.suundnr endif,if pr_kanne.meetnr is null then 0 else pr_kanne.meetnr endif,if pr_kanne.taotnr is null then 0 else pr_kanne.taotnr endif,if pr_kanne.alliknr is null or kontlist.djuhallik is null or kontlist.djuhallik = 0 then 0 else pr_kanne.alliknr endif,if pr_kanne.ravonr is null or kontlist.djuhravo is null or kontlist.djuhravo = 0 then 0 else pr_kanne.ravonr endif from
      pr_kanne left outer join gl_1 on(pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) left outer join skoobid on pr_kanne.skoop=skoobid.skoop left outer join kontlist on pr_kanne.deeb = kontlist.konto where((pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) or id_paring = 0) and ((a_skoop>0 and pr_kanne.skoop=a_skoop) or (a_skoop=0 and li_pikkus>0 and Left(skoobid.kood,li_pikkus)=a_skoopkood) or (a_skoop=0 and li_pikkus=0)) and pr_kanne.deeb is not null and pr_kanne.kuup < peralg and years(pr_kanne.kuup) >= years(peralg);
  declare c_pr_deeb dynamic scroll cursor for select (if a_valver=4 then pr_kanne.summaeek else pr_kanne.summa endif),trim(pr_kanne.deeb),if kontlist.djuhpart is null or kontlist.djuhpart = 0 then 0 else(if kontlist.partnr is null then(if pr_kanne.partnr is null then 0 else pr_kanne.partnr endif) else kontlist.partnr endif) endif,if pr_kanne.kulnr is null or kontlist.djuhkul is null or kontlist.djuhkul = 0 then 0 else pr_kanne.kulnr endif,if pr_kanne.talnr is null or kontlist.djuhtal is null or kontlist.djuhtal = 0 then 0 else pr_kanne.talnr endif,if pr_kanne.artnr is null or kontlist.djuhart is null or kontlist.djuhart = 0 then 0 else pr_kanne.artnr endif,if pr_kanne.tulnr is null or kontlist.djuhtul is null or kontlist.djuhtul = 0 then 0 else pr_kanne.tulnr endif,if pr_kanne.objectnr is null or kontlist.djuhobject is null or kontlist.djuhobject = 0 then 0 else pr_kanne.objectnr endif,if pr_kanne.osaknr is null or kontlist.djuhosak is null or kontlist.djuhosak = 0 then 0 else pr_kanne.osaknr endif,if pr_kanne.subjectnr is null or kontlist.djuhsubject is null or kontlist.djuhsubject = 0 then 0 else pr_kanne.subjectnr endif,if pr_kanne.suundnr is null or kontlist.djuhsuund is null or kontlist.djuhsuund = 0 then 0 else pr_kanne.suundnr endif,if pr_kanne.meetnr is null then 0 else pr_kanne.meetnr endif,if pr_kanne.taotnr is null then 0 else pr_kanne.taotnr endif,if pr_kanne.alliknr is null or kontlist.djuhallik is null or kontlist.djuhallik = 0 then 0 else pr_kanne.alliknr endif,if pr_kanne.ravonr is null or kontlist.djuhravo is null or kontlist.djuhravo = 0 then 0 else pr_kanne.ravonr endif from
      pr_kanne left outer join gl_1 on(pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) left outer join skoobid on pr_kanne.skoop=skoobid.skoop left outer join kontlist on pr_kanne.deeb = kontlist.konto where((pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) or id_paring = 0) and ((a_skoop>0 and pr_kanne.skoop=a_skoop) or (a_skoop=0 and li_pikkus>0 and Left(skoobid.kood,li_pikkus)=a_skoopkood) or (a_skoop=0 and li_pikkus=0)) and pr_kanne.deeb is not null and pr_kanne.kuup >= peralg and pr_kanne.kuup <= perlop;
  declare c_pr_aakree dynamic scroll cursor for select (if a_valver=4 then pr_kanne.summaeek else pr_kanne.summa endif),if li_saldod = 1 and Length(ls_saldod_konto)>0 and locate('345678',"left"(pr_kanne.kree,1)) > 0 then ls_saldod_konto else trim(pr_kanne.kree) endif,if kontlist.kjuhpart is null or kontlist.kjuhpart = 0 then 0 else(if kontlist.partnr is null then(if pr_kanne.partnr2 is null then 0 else pr_kanne.partnr2 endif) else kontlist.partnr endif) endif,if pr_kanne.kulnr is null or kontlist.kjuhkul is null or kontlist.kjuhkul = 0 then 0 else pr_kanne.kulnr endif,if pr_kanne.talnr is null or kontlist.kjuhtal is null or kontlist.kjuhtal = 0 then 0 else pr_kanne.talnr endif,if pr_kanne.artnr is null or kontlist.kjuhart is null or kontlist.kjuhart = 0 then 0 else pr_kanne.artnr endif,if pr_kanne.tulnr is null or kontlist.kjuhtul is null or kontlist.kjuhtul = 0 then 0 else pr_kanne.tulnr endif,if pr_kanne.objectnr is null or kontlist.kjuhobject is null or kontlist.kjuhobject = 0 then 0 else pr_kanne.objectnr endif,if pr_kanne.osaknr is null or kontlist.kjuhosak is null or kontlist.kjuhosak = 0 then 0 else pr_kanne.osaknr endif,if pr_kanne.subjectnr is null or kontlist.kjuhsubject is null or kontlist.kjuhsubject = 0 then 0 else pr_kanne.subjectnr endif,if pr_kanne.suundnr is null or kontlist.kjuhsuund is null or kontlist.kjuhsuund = 0 then 0 else pr_kanne.suundnr endif,if pr_kanne.meetnr is null then 0 else pr_kanne.meetnr endif,if pr_kanne.taotnr is null then 0 else pr_kanne.taotnr endif,if pr_kanne.alliknr is null or kontlist.kjuhallik is null or kontlist.kjuhallik = 0 then 0 else pr_kanne.alliknr endif,if kontlist.kjuhravo is null or kontlist.kjuhravo = 0 then 0 else (if kontlist.nulliravo is not null or pr_kanne.ravonr is null then get_00_ravonr(pr_kanne.kree) else pr_kanne.ravonr endif) endif from
      pr_kanne left outer join gl_1 on(pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) left outer join skoobid on pr_kanne.skoop=skoobid.skoop left outer join kontlist on pr_kanne.kree = kontlist.konto where((pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) or id_paring = 0) and ((a_skoop>0 and pr_kanne.skoop=a_skoop) or (a_skoop=0 and li_pikkus>0 and Left(skoobid.kood,li_pikkus)=a_skoopkood) or (a_skoop=0 and li_pikkus=0)) and pr_kanne.kree is not null and years(pr_kanne.kuup) < years(peralg) and (Length(ls_saldod_konto)>0 or not(li_saldod = 1 and locate('345678',"left"(pr_kanne.kree,1)) > 0)) and not(li_saldod_9 = 1 and "left"(pr_kanne.kree,1) = '9');
  declare c_pr_akree dynamic scroll cursor for select (if a_valver=4 then pr_kanne.summaeek else pr_kanne.summa endif),trim(pr_kanne.kree),if kontlist.kjuhpart is null or kontlist.kjuhpart = 0 then 0 else(if kontlist.partnr is null then(if pr_kanne.partnr2 is null then 0 else pr_kanne.partnr2 endif) else kontlist.partnr endif) endif,if pr_kanne.kulnr is null or kontlist.kjuhkul is null or kontlist.kjuhkul = 0 then 0 else pr_kanne.kulnr endif,if pr_kanne.talnr is null or kontlist.kjuhtal is null or kontlist.kjuhtal = 0 then 0 else pr_kanne.talnr endif,if pr_kanne.artnr is null or kontlist.kjuhart is null or kontlist.kjuhart = 0 then 0 else pr_kanne.artnr endif,if pr_kanne.tulnr is null or kontlist.kjuhtul is null or kontlist.kjuhtul = 0 then 0 else pr_kanne.tulnr endif,if pr_kanne.objectnr is null or kontlist.kjuhobject is null or kontlist.kjuhobject = 0 then 0 else pr_kanne.objectnr endif,if pr_kanne.osaknr is null or kontlist.kjuhosak is null or kontlist.kjuhosak = 0 then 0 else pr_kanne.osaknr endif,if pr_kanne.subjectnr is null or kontlist.kjuhsubject is null or kontlist.kjuhsubject = 0 then 0 else pr_kanne.subjectnr endif,if pr_kanne.suundnr is null or kontlist.kjuhsuund is null or kontlist.kjuhsuund = 0 then 0 else pr_kanne.suundnr endif,if pr_kanne.meetnr is null then 0 else pr_kanne.meetnr endif,if pr_kanne.taotnr is null then 0 else pr_kanne.taotnr endif,if pr_kanne.alliknr is null or kontlist.kjuhallik is null or kontlist.kjuhallik = 0 then 0 else pr_kanne.alliknr endif,if pr_kanne.ravonr is null or kontlist.kjuhravo is null or kontlist.kjuhravo = 0 then 0 else pr_kanne.ravonr endif from
      pr_kanne left outer join gl_1 on(pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) left outer join skoobid on pr_kanne.skoop=skoobid.skoop left outer join kontlist on pr_kanne.kree = kontlist.konto where((pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) or id_paring = 0) and ((a_skoop>0 and pr_kanne.skoop=a_skoop) or (a_skoop=0 and li_pikkus>0 and Left(skoobid.kood,li_pikkus)=a_skoopkood) or (a_skoop=0 and li_pikkus=0)) and pr_kanne.kree is not null and pr_kanne.kuup < peralg and years(pr_kanne.kuup) >= years(peralg);
  declare c_pr_kree dynamic scroll cursor for select (if a_valver=4 then pr_kanne.summaeek else pr_kanne.summa endif),trim(pr_kanne.kree),if kontlist.kjuhpart is null or kontlist.kjuhpart = 0 then 0 else(if kontlist.partnr is null then(if pr_kanne.partnr2 is null then 0 else pr_kanne.partnr2 endif) else kontlist.partnr endif) endif,if pr_kanne.kulnr is null or kontlist.kjuhkul is null or kontlist.kjuhkul = 0 then 0 else pr_kanne.kulnr endif,if pr_kanne.talnr is null or kontlist.kjuhtal is null or kontlist.kjuhtal = 0 then 0 else pr_kanne.talnr endif,if pr_kanne.artnr is null or kontlist.kjuhart is null or kontlist.kjuhart = 0 then 0 else pr_kanne.artnr endif,if pr_kanne.tulnr is null or kontlist.kjuhtul is null or kontlist.kjuhtul = 0 then 0 else pr_kanne.tulnr endif,if pr_kanne.objectnr is null or kontlist.kjuhobject is null or kontlist.kjuhobject = 0 then 0 else pr_kanne.objectnr endif,if pr_kanne.osaknr is null or kontlist.kjuhosak is null or kontlist.kjuhosak = 0 then 0 else pr_kanne.osaknr endif,if pr_kanne.subjectnr is null or kontlist.kjuhsubject is null or kontlist.kjuhsubject = 0 then 0 else pr_kanne.subjectnr endif,if pr_kanne.suundnr is null or kontlist.kjuhsuund is null or kontlist.kjuhsuund = 0 then 0 else pr_kanne.suundnr endif,if pr_kanne.meetnr is null then 0 else pr_kanne.meetnr endif,if pr_kanne.taotnr is null then 0 else pr_kanne.taotnr endif,if pr_kanne.alliknr is null or kontlist.kjuhallik is null or kontlist.kjuhallik = 0 then 0 else pr_kanne.alliknr endif,if pr_kanne.ravonr is null or kontlist.kjuhravo is null or kontlist.kjuhravo = 0 then 0 else pr_kanne.ravonr endif from
      pr_kanne left outer join gl_1 on(pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) left outer join skoobid on pr_kanne.skoop=skoobid.skoop left outer join kontlist on pr_kanne.kree = kontlist.konto where((pr_kanne.id = gl_1.id) and(pr_kanne.kuup = gl_1.kuup) or id_paring = 0) and ((a_skoop>0 and pr_kanne.skoop=a_skoop) or (a_skoop=0 and li_pikkus>0 and Left(skoobid.kood,li_pikkus)=a_skoopkood) or (a_skoop=0 and li_pikkus=0)) and pr_kanne.kree is not null and pr_kanne.kuup >= peralg and pr_kanne.kuup <= perlop;
  delete from gl_pr_koond;
  delete from gl_dk_koond;
  set li_pikkus=Length(a_skoopkood);
  if li_pikkus is null then
    set li_pikkus=0
  end if;
  set li_paring=set_gl_1(id_paring);
  set li_00_ravonr=get_00_ravonr('');
  set ls_saldod_konto=get_pr_saldod_konto(a_skoop);
  select pr_konfm.yld_saldod,pr_konfm.yld_saldod_9 into li_saldod,li_saldod_9 from pr_konfm where pr_konfm.id = 1;
  open c_pr_aadeeb;
  pr_aadeeb_loop: loop
    --  loe pearaamatu deebet aasta algjaagi kanne
    fetch next c_pr_aadeeb into ldc_summa,ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr;
    if sqlstate = err_notfound then -- kui eof
      leave pr_aadeeb_loop
    end if;
    if ls_konto = ls_saldod_konto then
      set li_partnr = 0;
      set li_kulnr = 0;
      set li_talnr = 0;
      set li_artnr = 0;
      set li_tulnr = 0;
      set li_objectnr = 0;
      set li_osaknr = 0;
      set li_subjectnr = 0;
      set li_suundnr = 0;
      set li_meetnr = 0;
      set li_taotnr = 0;
      set li_alliknr = 0;
      set li_ravonr = li_00_ravonr;
    else
      if li_ravonr > 0 and li_partnr > 0 then
        set li_partnr=if_part_ravo(ls_konto,li_partnr,li_ravonr)
      end if;
      if li_ravonr > 0 and li_talnr > 0 then
        set li_talnr=if_tal_ravo(ls_konto,li_talnr,li_ravonr)
      end if
    end if;
    -- kas kanne ei eksisteeri koondis
    if exists(select 1 from gl_pr_koond where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr) then
      update gl_pr_koond set adeeb = adeeb+ldc_summa where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr
    else
      insert into gl_pr_koond( konto,partnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,meetnr,taotnr,alliknr,ravonr,adeeb,akree,deeb,kree,sdeeb,skree,ldeeb,lkree) values( ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr,ldc_summa,0,0,0,0,0,0,0) 
    end if
  end loop pr_aadeeb_loop;
  close c_pr_aadeeb;
  open c_pr_adeeb;
  pr_adeeb_loop: loop
    --  loe pearaamatu deebet algjaagi kanne
    fetch next c_pr_adeeb into ldc_summa,ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr;
    if sqlstate = err_notfound then -- kui eof
      leave pr_adeeb_loop
    end if;
    if li_ravonr > 0 and li_partnr > 0 then
      set li_partnr=if_part_ravo(ls_konto,li_partnr,li_ravonr)
    end if;
    if li_ravonr > 0 and li_talnr > 0 then
      set li_talnr=if_tal_ravo(ls_konto,li_talnr,li_ravonr)
    end if;
    -- kas kanne ei eksisteeri koondis
    if exists(select 1 from gl_pr_koond where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr) then
      update gl_pr_koond set adeeb = adeeb+ldc_summa where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr
    else
      insert into gl_pr_koond( konto,partnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,meetnr,taotnr,alliknr,ravonr,adeeb,akree,deeb,kree,sdeeb,skree,ldeeb,lkree) values( ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr,ldc_summa,0,0,0,0,0,0,0) 
    end if
  end loop pr_adeeb_loop;
  close c_pr_adeeb;
  open c_pr_aakree;
  pr_aakree_loop: loop
    --  loe pearaamatu kreedit aasta algjaagi kanne
    fetch next c_pr_aakree into ldc_summa,ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr;
    if sqlstate = err_notfound then -- kui eof
      leave pr_aakree_loop
    end if;
    if ls_konto = ls_saldod_konto then
      set li_partnr = 0;
      set li_kulnr = 0;
      set li_talnr = 0;
      set li_artnr = 0;
      set li_tulnr = 0;
      set li_objectnr = 0;
      set li_osaknr = 0;
      set li_subjectnr = 0;
      set li_suundnr = 0;
      set li_meetnr = 0;
      set li_taotnr = 0;
      set li_alliknr = 0;
      set li_ravonr = li_00_ravonr;
    else
      if li_ravonr > 0 and li_partnr > 0 then
        set li_partnr=if_part_ravo(ls_konto,li_partnr,li_ravonr)
      end if;
      if li_ravonr > 0 and li_talnr > 0 then
        set li_talnr=if_tal_ravo(ls_konto,li_talnr,li_ravonr)
      end if
    end if;
    -- kas kanne ei eksisteeri koondis
    if exists(select 1 from gl_pr_koond where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr) then
      update gl_pr_koond set akree = akree+ldc_summa where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr
    else
      insert into gl_pr_koond( konto,partnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,meetnr,taotnr,alliknr,ravonr,adeeb,akree,deeb,kree,sdeeb,skree,ldeeb,lkree) values( ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr,0,ldc_summa,0,0,0,0,0,0) 
    end if
  end loop pr_aakree_loop;
  close c_pr_aakree;
  open c_pr_akree;
  pr_akree_loop: loop
    --  loe pearaamatu kreedit algjaagi kanne
    fetch next c_pr_akree into ldc_summa,ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr;
    if sqlstate = err_notfound then -- kui eof
      leave pr_akree_loop
    end if;
    if li_ravonr > 0 and li_partnr > 0 then
      set li_partnr=if_part_ravo(ls_konto,li_partnr,li_ravonr)
    end if;
    if li_ravonr > 0 and li_talnr > 0 then
      set li_talnr=if_tal_ravo(ls_konto,li_talnr,li_ravonr)
    end if;
    -- kas kanne ei eksisteeri koondis
    if exists(select 1 from gl_pr_koond where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr) then
      update gl_pr_koond set akree = akree+ldc_summa where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr
    else
      insert into gl_pr_koond( konto,partnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,meetnr,taotnr,alliknr,ravonr,adeeb,akree,deeb,kree,sdeeb,skree,ldeeb,lkree) values( ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr,0,ldc_summa,0,0,0,0,0,0) 
    end if
  end loop pr_akree_loop;
  close c_pr_akree;
  open c_pr_deeb;
  pr_deeb_loop: loop
    --  loe pearaamatu deebet kaibe kanne
    fetch next c_pr_deeb into ldc_summa,ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr;
    if sqlstate = err_notfound then -- kui eof
      leave pr_deeb_loop
    end if;
    if li_ravonr > 0 and li_partnr > 0 then
      set li_partnr=if_part_ravo(ls_konto,li_partnr,li_ravonr)
    end if;
    if li_ravonr > 0 and li_talnr > 0 then
      set li_talnr=if_tal_ravo(ls_konto,li_talnr,li_ravonr)
    end if;
    -- kas kanne ei eksisteeri koondis
    if exists(select 1 from gl_pr_koond where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr) then
      update gl_pr_koond set deeb = deeb+ldc_summa where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr
    else
      insert into gl_pr_koond( konto,partnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,meetnr,taotnr,alliknr,ravonr,adeeb,akree,deeb,kree,sdeeb,skree,ldeeb,lkree) values( ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr,0,0,ldc_summa,0,0,0,0,0) 
    end if
  end loop pr_deeb_loop;
  close c_pr_deeb;
  open c_pr_kree;
  pr_kree_loop: loop
    --  loe pearaamatu kreedit kaibe kanne
    fetch next c_pr_kree into ldc_summa,ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr;
    if sqlstate = err_notfound then -- kui eof
      leave pr_kree_loop
    end if;
    if li_ravonr > 0 and li_partnr > 0 then
      set li_partnr=if_part_ravo(ls_konto,li_partnr,li_ravonr)
    end if;
    if li_ravonr > 0 and li_talnr > 0 then
      set li_talnr=if_tal_ravo(ls_konto,li_talnr,li_ravonr)
    end if;
    -- kas kanne ei eksisteeri koondis
    if exists(select 1 from gl_pr_koond where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr) then
      update gl_pr_koond set kree = kree+ldc_summa where gl_pr_koond.konto = ls_konto and gl_pr_koond.partnr = li_partnr and gl_pr_koond.kulnr = li_kulnr and gl_pr_koond.talnr = li_talnr and gl_pr_koond.artnr = li_artnr and gl_pr_koond.tulnr = li_tulnr and gl_pr_koond.objectnr = li_objectnr and gl_pr_koond.osaknr = li_osaknr and gl_pr_koond.subjectnr = li_subjectnr and gl_pr_koond.suundnr = li_suundnr and gl_pr_koond.meetnr = li_meetnr and gl_pr_koond.taotnr = li_taotnr and gl_pr_koond.alliknr = li_alliknr and gl_pr_koond.ravonr = li_ravonr
    else
      insert into gl_pr_koond( konto,partnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,meetnr,taotnr,alliknr,ravonr,adeeb,akree,deeb,kree,sdeeb,skree,ldeeb,lkree) values( ls_konto,li_partnr,li_kulnr,li_talnr,li_artnr,li_tulnr,li_objectnr,li_osaknr,li_subjectnr,li_suundnr,li_meetnr,li_taotnr,li_alliknr,li_ravonr,0,0,0,ldc_summa,0,0,0,0) 
    end if
  end loop pr_kree_loop;
  close c_pr_kree;
  -- loppjaagid
  update gl_pr_koond set ldeeb = adeeb-akree+deeb-kree,lkree = akree-adeeb+kree-deeb,adeeb = adeeb-akree,akree = akree-adeeb,sdeeb = deeb-kree,skree = kree-deeb;
  update gl_pr_koond set adeeb = 0 where gl_pr_koond.adeeb < 0;
  update gl_pr_koond set akree = 0 where gl_pr_koond.akree < 0;
  update gl_pr_koond set ldeeb = 0 where gl_pr_koond.ldeeb < 0;
  update gl_pr_koond set lkree = 0 where gl_pr_koond.lkree < 0;
  update gl_pr_koond set sdeeb = 0 where gl_pr_koond.sdeeb < 0;
  update gl_pr_koond set skree = 0 where gl_pr_koond.skree < 0;
  delete from gl_pr_koond where adeeb = 0 and akree = 0 and deeb = 0 and kree = 0
end