ALTER PROCEDURE "DBA"."ea_sumsisu"( in a_skoop integer, in a_komb integer, in a_valkutu char(1), in a_colxx char(5), in a_kood1 char(16), in a_kood2 char(16), in a_kood3 char(16), in a_kood4 char(16), in a_kood5 char(16), in a_kood6 char(16), in a_kood7 char(16) )
RESULT( id_kanne integer,
        aasta integer,
        tulnud char(100),
        doknr char(20),
        kuup date,
        summa numeric(15,2),
        "info" char(300),
        asulist_regkood char(11),
        asulist_nimi char(110),
        konto char(7),
        meede char(16),
        kuluobjekt char(16),
        tegevusala char(16),
        kululiik char(16),
        tululiik char(16),
        projekt char(16),
        osakond char(16),
        subjekt char(16),
        tegevussuund char(16),
        taotlus char(16),
        allikas char(16),
        rahavoog char(16),
        kell timestamp,
        kell2 timestamp )
BEGIN
  declare li_id_lkd integer;
  declare li_id_col integer;
  declare li_colnr integer;
  declare li_i integer;
  declare li_tyyp integer;
  declare ld_peralg date;
  declare ld_perlop date;
  declare li_varaasta smallint;
  declare li_varper smallint;
  declare li_objnr smallint;
  declare li_eaobj smallint;
  declare ls_meet char(16);
  declare ls_kulu_obj char(16);
  declare ls_teg_ala char(16);
  declare ls_kulu_liik char(16);
  declare ls_tulu_liik char(16);
  declare ls_projekt char(16);
  declare ls_osakond char(16);
  declare ls_subjekt char(16);
  declare ls_teg_suund char(16);
  declare ls_taotlus char(16);
  declare ls_kood char(16);
  declare li_level smallint;
  declare li_level1 smallint;
  declare li_level2 smallint;
  declare li_level3 smallint;
  declare li_level4 smallint;
  declare li_level5 smallint;
  declare li_level6 smallint;
  declare li_level7 smallint;
  declare li_kaasa smallint;
  declare li_sum_meet integer;
  declare li_sum_kul integer;
  declare li_sum_tal integer;
  declare li_sum_art integer;
  declare li_sum_tul integer;
  declare li_sum_object integer;
  declare li_sum_osak integer;
  declare li_sum_subject integer;
  declare li_sum_suund integer;
  declare li_sum_taot integer;
  declare li_tekont smallint;
  declare err_notfound exception for sqlstate value '02000';
  declare c_col dynamic scroll cursor for
    select "id",tyyp,peralg,perlop,varaasta,varper,ea_col_def.objnr,ea_col_def.eaobj
      from ea_lkd_col left outer join ea_col_def on ea_lkd_col.id_col=ea_col_def.id
      where ea_lkd_col.id_lkd=li_id_lkd
      order by ea_col_def.jrknr;

  delete from gl_pr_kanne;
  if a_skoop is null then
    set a_skoop=0
  end if;
  if Length(a_colxx)=5 then
    set li_colnr=convert(integer,right(a_colxx,2))
  else
    set li_colnr=0
  end if;
  select tm_rmpt.k_ea_tekont into li_tekont from tm_rmpt where tm_rmpt.id=1;
  if a_komb>0 and li_colnr>0 and (a_valkutu='k' or a_valkutu='t') then
    select ea_komb.id_lkd,ea_komb.tr_level1,ea_komb.tr_level2,ea_komb.tr_level3,ea_komb.tr_level4,ea_komb.tr_level5,ea_komb.tr_level6,ea_komb.tr_level7,ea_komb.tr_sum_meet,ea_komb.tr_sum_kul,ea_komb.tr_sum_tal,ea_komb.tr_sum_art,ea_komb.tr_sum_tul,ea_komb.tr_sum_object,ea_komb.tr_sum_osak,ea_komb.tr_sum_subject,ea_komb.tr_sum_suund,ea_komb.tr_sum_taot
      into li_id_lkd,li_level1,li_level2,li_level3,li_level4,li_level5,li_level6,li_level7,li_sum_meet,li_sum_kul,li_sum_tal,li_sum_art,li_sum_tul,li_sum_object,li_sum_osak,li_sum_subject,li_sum_suund,li_sum_taot
      from ea_komb
      where ea_komb.id=a_komb;
    set ls_meet='';
    set ls_kulu_obj='';
    set ls_teg_ala='';
    set ls_kulu_liik='';
    set ls_tulu_liik='';
    set ls_projekt='';
    set ls_osakond='';
    set ls_subjekt='';
    set ls_teg_suund='';
    set ls_taotlus='';
    set li_i = 1;
    while li_i <= 7 loop
      case li_i
      when 1 then
        set ls_kood=a_kood1;
        set li_level=li_level1
      when 2 then
        set ls_kood=a_kood2;
        set li_level=li_level2
      when 3 then
        set ls_kood=a_kood3;
        set li_level=li_level3
      when 4 then
        set ls_kood=a_kood4;
        set li_level=li_level4
      when 5 then
        set ls_kood=a_kood5;
        set li_level=li_level5
      when 6 then
        set ls_kood=a_kood6;
        set li_level=li_level6
      when 7 then
        set ls_kood=a_kood7;
        set li_level=li_level7
      end case;
      if Length(ls_kood)>0 and li_level>0 then
        if li_level=15 or li_level=16 then
          set ls_meet=ls_kood;
        elseif li_level=1 or li_level=2 then
          set ls_kulu_obj=ls_kood;
        elseif li_level=3 or li_level=4 then
          set ls_teg_ala=ls_kood;
        elseif li_level=5 or li_level=6 then
          if a_valkutu='k' then
            set ls_kulu_liik=ls_kood
          else
            set ls_tulu_liik=ls_kood
          end if;
        elseif li_level=7 or li_level=8 then
          set ls_projekt=ls_kood;
        elseif li_level=9 or li_level=10 then
          set ls_osakond=ls_kood;
        elseif li_level=11 or li_level=12 then
          set ls_subjekt=ls_kood;
        elseif li_level=13 or li_level=14 then
          set ls_teg_suund=ls_kood;
        elseif li_level=17 or li_level=18 then
          set ls_taotlus=ls_kood;
        end if;
      end if;
      set li_i = li_i+1
    end loop;
    if Length(ls_meet)>0 or Length(ls_kulu_obj)>0 or Length(ls_teg_ala)>0 or Length(ls_kulu_liik)>0 or Length(ls_tulu_liik)>0 or Length(ls_projekt)>0 or Length(ls_osakond)>0 or Length(ls_subjekt)>0 or Length(ls_teg_suund)>0 or Length(ls_taotlus)>0 then
      set li_i=0;
      open c_col;
      col_loop: while li_i<li_colnr loop
        fetch next c_col into li_id_col,li_tyyp,ld_peralg,ld_perlop,li_varaasta,li_varper,li_objnr,li_eaobj;
        if sqlstate = err_notfound then -- kui eof
          leave col_loop
        end if;
        set li_i=li_i+1;
      end loop col_loop;
      close c_col;
      if li_tyyp=1 or li_tyyp=2 or li_tyyp=3 then
        if li_varper=1 then
          set ld_peralg=ymd(years(now()),1,1);
          set ld_perlop=ymd(years(now()),12,31);
        else
          if li_varaasta=1 then
            set ld_peralg=ymd(years(now()),month(ld_peralg),day(ld_peralg));
            if month(ld_perlop)=2 then
              if day(ld_perlop)>27 then
                set ld_perlop=get_perlop(ymd(years(now()),month(ld_perlop),28))
              else
                set ld_perlop=ymd(years(now()),month(ld_perlop),day(ld_perlop));
              end if;
            else
              set ld_perlop=ymd(years(now()),month(ld_perlop),day(ld_perlop))
            end if
          end if
        end if;
        case li_tyyp
        when 1 then
          -- eelarve
          if a_valkutu='k' then
            -- kulud
            insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
              select ea_kanne."id",ea_kanne.aasta,if ea_kanne.tulnud is null then '' else ea_kanne.tulnud endif,ea_kanne.kuup,ea_kanne.doknr,ea_kanne.summa,Left(Trim(ea_alus.nimi+' '+ea_kanne.info),200),'','',ea_kanne.meetnr,ea_kanne.kulnr,ea_kanne.talnr,ea_kanne.artnr,ea_kanne.tulnr,ea_kanne.objectnr,ea_kanne.osaknr,ea_kanne.subjectnr,ea_kanne.suundnr,ea_kanne.taotnr
                from ea_kanne left outer join ea_obj on ea_kanne.objnr=ea_obj.objnr
                              left outer join ea_alus on ea_kanne.alusnr=ea_alus.alusnr
                              left outer join meetlist on ea_kanne.meetnr=meetlist.meetnr
                              left outer join kullist on ea_kanne.kulnr=kullist.kulnr
                              left outer join tallist on ea_kanne.talnr=tallist.talnr
                              left outer join artlist on ea_kanne.artnr=artlist.artnr
                              left outer join objlist on ea_kanne.objectnr=objlist.objectnr
                              left outer join osaklist on ea_kanne.osaknr=osaklist.osaknr
                              left outer join sublist on ea_kanne.subjectnr=sublist.subjectnr
                              left outer join suundlist on ea_kanne.suundnr=suundlist.suundnr
                              left outer join taotlist on ea_kanne.taotnr=taotlist.taotnr
                where (ea_obj.skoop=a_skoop or a_skoop=0) and
                       ea_kanne.artnr is not null and
                      (ea_kanne.objnr=li_objnr or (li_objnr is null and ((li_eaobj=0 and ea_obj.eaobj=1) or (li_eaobj=1 and ea_obj.eaobj1=1) or (li_eaobj=2 and ea_obj.eaobj2=1) or (li_eaobj=3 and ea_obj.eaobj3=1)))) and
                       ea_kanne.kuup>=ld_peralg and ea_kanne.kuup<=ld_perlop and
                      (ea_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                      (ea_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                      (ea_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                       Left(artlist.art,Length(ls_kulu_liik))=ls_kulu_liik and
                      (ea_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                      (ea_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                      (ea_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                      (ea_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                      (ea_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
          else
            -- tulud
            insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
              select ea_kanne."id",ea_kanne.aasta,if ea_kanne.tulnud is null then '' else ea_kanne.tulnud endif,ea_kanne.kuup,ea_kanne.doknr,ea_kanne.summa,Left(Trim(ea_alus.nimi+' '+ea_kanne.info),200),'','',ea_kanne.meetnr,ea_kanne.kulnr,ea_kanne.talnr,ea_kanne.artnr,ea_kanne.tulnr,ea_kanne.objectnr,ea_kanne.osaknr,ea_kanne.subjectnr,ea_kanne.suundnr,ea_kanne.taotnr
                from ea_kanne left outer join ea_obj on ea_kanne.objnr=ea_obj.objnr
                              left outer join ea_alus on ea_kanne.alusnr=ea_alus.alusnr
                              left outer join meetlist on ea_kanne.meetnr=meetlist.meetnr
                              left outer join kullist on ea_kanne.kulnr=kullist.kulnr
                              left outer join tallist on ea_kanne.talnr=tallist.talnr
                              left outer join tullist on ea_kanne.tulnr=tullist.tulnr
                              left outer join objlist on ea_kanne.objectnr=objlist.objectnr
                              left outer join osaklist on ea_kanne.osaknr=osaklist.osaknr
                              left outer join sublist on ea_kanne.subjectnr=sublist.subjectnr
                              left outer join suundlist on ea_kanne.suundnr=suundlist.suundnr
                              left outer join taotlist on ea_kanne.taotnr=taotlist.taotnr
                where (ea_obj.skoop=a_skoop or a_skoop=0) and
                       ea_kanne.tulnr is not null and ea_kanne.artnr is null and
                      (ea_kanne.objnr=li_objnr or (li_objnr is null and ((li_eaobj=0 and ea_obj.eaobj=1) or (li_eaobj=1 and ea_obj.eaobj1=1) or (li_eaobj=2 and ea_obj.eaobj2=1) or (li_eaobj=3 and ea_obj.eaobj3=1)))) and
                       ea_kanne.kuup>=ld_peralg and ea_kanne.kuup<=ld_perlop and
                      (ea_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                      (ea_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                      (ea_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                       Left(tullist.osa,Length(ls_tulu_liik))=ls_tulu_liik and
                      (ea_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                      (ea_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                      (ea_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                      (ea_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                      (ea_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
          end if
        when 2 then
          if a_valkutu='k' then
            -- kulud
            insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,arvekuup,arvenr,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
              select kp_kanne."id",kp_kanne.aasta,if kp_kanne.tulnud is null then '' else kp_kanne.tulnud endif,kp_kanne.kuup,kp_kanne.doknr,if kp_kanne.sisse=0 then kp_kanne.summa else (-1)*kp_kanne.summa endif,kp_kanne.arvekuup,kp_kanne.arvenr,kp_kanne.asutnr,Left(Trim(kp_alus.nimi+' '+kp_kanne.info),200),'',kp_kanne.konto,kp_kanne.meetnr,kp_kanne.kulnr,kp_kanne.talnr,kp_kanne.artnr,kp_kanne.tulnr,kp_kanne.objectnr,kp_kanne.osaknr,kp_kanne.subjectnr,kp_kanne.suundnr,kp_kanne.taotnr
                from kp_kanne left outer join kp_obj on kp_kanne.objnr=kp_obj.objnr
                              left outer join kp_alus on kp_kanne.alusnr=kp_alus.alusnr
                              left outer join meetlist on kp_kanne.meetnr=meetlist.meetnr
                              left outer join kullist on kp_kanne.kulnr=kullist.kulnr
                              left outer join tallist on kp_kanne.talnr=tallist.talnr
                              left outer join artlist on kp_kanne.artnr=artlist.artnr
                              left outer join objlist on kp_kanne.objectnr=objlist.objectnr
                              left outer join osaklist on kp_kanne.osaknr=osaklist.osaknr
                              left outer join sublist on kp_kanne.subjectnr=sublist.subjectnr
                              left outer join suundlist on kp_kanne.suundnr=suundlist.suundnr
                              left outer join taotlist on kp_kanne.taotnr=taotlist.taotnr
                where kp_obj.eaobj=1 and
                      (kp_obj.skoop=a_skoop or a_skoop=0) and
                      kp_kanne.artnr is not null and
                      kp_kanne.kuup>=ld_peralg and kp_kanne.kuup<=ld_perlop and
                      (kp_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                      (kp_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                      (kp_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                      Left(artlist.art,Length(ls_kulu_liik))=ls_kulu_liik and
                      (kp_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                      (kp_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                      (kp_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                      (kp_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                      (kp_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
          else
            -- tulud
            insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,arvekuup,arvenr,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
              select kp_kanne."id",kp_kanne.aasta,if kp_kanne.tulnud is null then '' else kp_kanne.tulnud endif,kp_kanne.kuup,kp_kanne.doknr,if kp_kanne.sisse=1 then kp_kanne.summa else (-1)*kp_kanne.summa endif,kp_kanne.arvekuup,kp_kanne.arvenr,kp_kanne.asutnr,Left(Trim(kp_alus.nimi+' '+kp_kanne.info),200),'',kp_kanne.konto,kp_kanne.meetnr,kp_kanne.kulnr,kp_kanne.talnr,kp_kanne.artnr,kp_kanne.tulnr,kp_kanne.objectnr,kp_kanne.osaknr,kp_kanne.subjectnr,kp_kanne.suundnr,kp_kanne.taotnr
                from kp_kanne left outer join kp_obj on kp_kanne.objnr=kp_obj.objnr
                              left outer join kp_alus on kp_kanne.alusnr=kp_alus.alusnr
                              left outer join meetlist on kp_kanne.meetnr=meetlist.meetnr
                              left outer join kullist on kp_kanne.kulnr=kullist.kulnr
                              left outer join tallist on kp_kanne.talnr=tallist.talnr
                              left outer join tullist on kp_kanne.tulnr=tullist.tulnr
                              left outer join objlist on kp_kanne.objectnr=objlist.objectnr
                              left outer join osaklist on kp_kanne.osaknr=osaklist.osaknr
                              left outer join sublist on kp_kanne.subjectnr=sublist.subjectnr
                              left outer join suundlist on kp_kanne.suundnr=suundlist.suundnr
                              left outer join taotlist on kp_kanne.taotnr=taotlist.taotnr
                where kp_obj.eaobj=1 and
                      (kp_obj.skoop=a_skoop or a_skoop=0) and
                      kp_kanne.artnr is not null and
                      kp_kanne.kuup>=ld_peralg and kp_kanne.kuup<=ld_perlop and
                      (kp_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                      (kp_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                      (kp_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                      Left(tullist.osa,Length(ls_tulu_liik))=ls_tulu_liik and
                      (kp_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                      (kp_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                      (kp_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                      (kp_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                      (kp_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
          end if
        when 3 then
          if a_valkutu='k' then
            if li_tekont=1 then
              -- kulud
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.deeb,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.deeb=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join artlist on kontlist.artnr=artlist.artnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.deeb is not null and
                        pr_kanne.artnr is not null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(artlist.art,Length(ls_kulu_liik))=ls_kulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus);
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,(-1)*pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.kree,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.kree=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join artlist on kontlist.artnr=artlist.artnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.kree is not null and
                        pr_kanne.artnr is not null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(artlist.art,Length(ls_kulu_liik))=ls_kulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
            else
              -- kulud
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.deeb,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.deeb=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join artlist on pr_kanne.artnr=artlist.artnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.deeb is not null and
                        pr_kanne.artnr is not null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(artlist.art,Length(ls_kulu_liik))=ls_kulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus);
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,(-1)*pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.kree,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.kree=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join artlist on pr_kanne.artnr=artlist.artnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.kree is not null and
                        pr_kanne.artnr is not null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(artlist.art,Length(ls_kulu_liik))=ls_kulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
            end if;
          else
            -- tulud
            if li_tekont=1 then
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,(-1)*pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.deeb,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.deeb=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join tullist on kontlist.tulnr=tullist.tulnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.deeb is not null and
                        pr_kanne.tulnr is not null and pr_kanne.artnr is null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(tullist.osa,Length(ls_tulu_liik))=ls_tulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus);
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.kree,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.kree=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join tullist on kontlist.tulnr=tullist.tulnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.kree is not null and
                        pr_kanne.tulnr is not null and pr_kanne.artnr is null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(tullist.osa,Length(ls_tulu_liik))=ls_tulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
            else
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,(-1)*pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.deeb,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.deeb=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join tullist on pr_kanne.tulnr=tullist.tulnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.deeb is not null and
                        pr_kanne.tulnr is not null and pr_kanne.artnr is null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(tullist.osa,Length(ls_tulu_liik))=ls_tulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus);
              insert into gl_pr_kanne("id_kanne",aasta,tulnud,kuup,doknr,summa,asutnr,"info","order",konto,meetnr,kulnr,talnr,artnr,tulnr,objectnr,osaknr,subjectnr,suundnr,taotnr)
                select pr_kanne."id",pr_kanne.aasta,if pr_kanne.tulnud is null then '' else pr_kanne.tulnud endif,pr_kanne.kuup,pr_kanne.doknr,pr_kanne.summa,pr_kanne.asutnr,Left(Trim(pr_alus.nimi+' '+pr_kanne.info),200),'',pr_kanne.kree,pr_kanne.meetnr,pr_kanne.kulnr,pr_kanne.talnr,pr_kanne.artnr,pr_kanne.tulnr,pr_kanne.objectnr,pr_kanne.osaknr,pr_kanne.subjectnr,pr_kanne.suundnr,pr_kanne.taotnr
                  from pr_kanne left outer join kontlist on pr_kanne.kree=kontlist.konto
                                left outer join pr_alus on pr_kanne.alusnr=pr_alus.alusnr
                                left outer join meetlist on pr_kanne.meetnr=meetlist.meetnr
                                left outer join kullist on pr_kanne.kulnr=kullist.kulnr
                                left outer join tallist on pr_kanne.talnr=tallist.talnr
                                left outer join tullist on pr_kanne.tulnr=tullist.tulnr
                                left outer join objlist on pr_kanne.objectnr=objlist.objectnr
                                left outer join osaklist on pr_kanne.osaknr=osaklist.osaknr
                                left outer join sublist on pr_kanne.subjectnr=sublist.subjectnr
                                left outer join suundlist on pr_kanne.suundnr=suundlist.suundnr
                                left outer join taotlist on pr_kanne.taotnr=taotlist.taotnr
                  where (pr_kanne.skoop=a_skoop or a_skoop=0) and
                        pr_kanne.kree is not null and
                        pr_kanne.tulnr is not null and pr_kanne.artnr is null and
                        pr_kanne.kuup>=ld_peralg and pr_kanne.kuup<=ld_perlop and
                        kontlist.kulukonto=1 and
                        (pr_kanne.meetnr is null and ls_meet='' or Left(meetlist.meet,Length(ls_meet))=ls_meet) and
                        (pr_kanne.kulnr is null and ls_kulu_obj='' or Left(kullist.ptk,Length(ls_kulu_obj))=ls_kulu_obj) and
                        (pr_kanne.talnr is null and ls_teg_ala='' or Left(tallist.osa,Length(ls_teg_ala))=ls_teg_ala) and
                        Left(tullist.osa,Length(ls_tulu_liik))=ls_tulu_liik and
                        (pr_kanne.objectnr is null and ls_projekt='' or Left(objlist.object,Length(ls_projekt))=ls_projekt) and
                        (pr_kanne.osaknr is null and ls_osakond='' or Left(osaklist.osak,Length(ls_osakond))=ls_osakond) and
                        (pr_kanne.subjectnr is null and ls_subjekt='' or Left(sublist.subject,Length(ls_subjekt))=ls_subjekt) and
                        (pr_kanne.suundnr is null and ls_teg_suund='' or Left(suundlist.suund,Length(ls_teg_suund))=ls_teg_suund) and
                        (pr_kanne.taotnr is null and ls_taotlus='' or Left(taotlist.taot,Length(ls_taotlus))=ls_taotlus)
            end if;
          end if;
        end case;
-- summeeritakse
  if li_sum_meet > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_meet;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_meet and gl_pr_kanne.meetnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_meet;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.meetnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_meet and gl_pr_kanne.meetnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if li_sum_kul > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_kul;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_kul and gl_pr_kanne.kulnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_kul;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.kulnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_kul and gl_pr_kanne.kulnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if li_sum_tal > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_tal;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_tal and gl_pr_kanne.talnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_tal;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.talnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_tal and gl_pr_kanne.talnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if a_valkutu='k' then
    if li_sum_art > 0 then
      select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_art;
      if li_kaasa=1 then
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_art and gl_pr_kanne.artnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
      else
        select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_art;
        if li_kaasa is null then
          set li_kaasa=0
        end if;
        if li_kaasa=0 then
          delete from gl_pr_kanne where gl_pr_kanne.artnr>0
        else
          delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_art and gl_pr_kanne.artnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
        end if;
      end if;
    end if;
  else
    if li_sum_tul > 0 then
      select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_tul;
      if li_kaasa=1 then
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_tul and gl_pr_kanne.tulnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
      else
        select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_tul;
        if li_kaasa is null then
          set li_kaasa=0
        end if;
        if li_kaasa=0 then
          delete from gl_pr_kanne where gl_pr_kanne.tulnr>0
        else
          delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_tul and gl_pr_kanne.tulnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
        end if;
      end if;
    end if;
  end if;
  if li_sum_object > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_object;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_object and gl_pr_kanne.objectnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_object;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.objectnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_object and gl_pr_kanne.objectnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if li_sum_osak > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_osak;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_osak and gl_pr_kanne.osaknr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_osak;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.osaknr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_osak and gl_pr_kanne.osaknr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if li_sum_subject > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_subject;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_subject and gl_pr_kanne.subjectnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_subject;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.subjectnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_subject and gl_pr_kanne.subjectnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if li_sum_suund > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_suund;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_suund and gl_pr_kanne.suundnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_suund;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.suundnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_suund and gl_pr_kanne.suundnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
  if li_sum_taot > 0 then
    select if kaasa=1 then 1 else 0 endif into li_kaasa from kp_sksum where sksumnr=li_sum_taot;
    if li_kaasa=1 then
      delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_taot and gl_pr_kanne.taotnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is null
    else
      select count() into li_kaasa from kp_sksum_mark where sksumnr=li_sum_taot;
      if li_kaasa is null then
        set li_kaasa=0
      end if;
      if li_kaasa=0 then
        delete from gl_pr_kanne where gl_pr_kanne.taotnr>0
      else
        delete from gl_pr_kanne from gl_pr_kanne left outer join kp_sksum_mark on kp_sksum_mark.sksumnr=li_sum_taot and gl_pr_kanne.taotnr=kp_sksum_mark.xxxnr where kp_sksum_mark.xxxnr is not null
      end if;
    end if;
  end if;
      end if;
    end if;
  end if;
  select id_kanne,
         aasta,
         tulnud,
         gl_pr_kanne.doknr,
         kuup,
         summa,
         "info",
         get_asulist_reg_nr(asutnr),
         get_asulist_nimi(asutnr),
         konto,
         meetlist.meet,
         kullist.ptk,
         tallist.osa,
         artlist.art,
         tullist.osa,
         objlist."object",
         osaklist.osak,
         sublist.subject,
         suundlist.suund,
         taotlist.taot,
         alliklist.allik,
         ravolist.ravo,
         gl_pr_kanne.kell,
         gl_pr_kanne.kell2
    from gl_pr_kanne left outer join partlist on gl_pr_kanne.partnr=partlist.partnr
                     left outer join meetlist on gl_pr_kanne.meetnr=meetlist.meetnr
                     left outer join kullist on gl_pr_kanne.kulnr=kullist.kulnr
                     left outer join tallist on gl_pr_kanne.talnr=tallist.talnr
                     left outer join artlist on gl_pr_kanne.artnr=artlist.artnr
                     left outer join tullist on gl_pr_kanne.tulnr=tullist.tulnr
                     left outer join objlist on gl_pr_kanne.objectnr=objlist.objectnr
                     left outer join osaklist on gl_pr_kanne.osaknr=osaklist.osaknr
                     left outer join sublist on gl_pr_kanne.subjectnr=sublist.subjectnr
                     left outer join suundlist on gl_pr_kanne.suundnr=suundlist.suundnr
                     left outer join taotlist on gl_pr_kanne.taotnr=taotlist.taotnr
                     left outer join alliklist on gl_pr_kanne.alliknr=alliklist.alliknr
                     left outer join ravolist on gl_pr_kanne.ravonr=ravolist.ravonr;
END