ALTER FUNCTION "DBA"."ea_trykkel"(in a_komb_id smallint, in a_level smallint, in a_tr_level smallint, in a_tabel char(13), in a_join char(500), in a_where char(500), in a_meet char(16), in a_kulu_obj char(16), in a_teg_ala char(16), in a_kulu_liik char(16), in a_tulu_liik char(16), in a_projekt char(16), in a_osakond char(16), in a_subjekt char(16), in a_teg_suund char(16), in a_taot char(16), in a_nimi char(100))
returns integer
begin
  declare ll_rows integer;
  declare ldc_col01 numeric(20,6);
  declare ldc_col02 numeric(20,6);
  declare ldc_col03 numeric(20,6);
  declare ldc_col04 numeric(20,6);
  declare ldc_col05 numeric(20,6);
  declare ldc_col06 numeric(20,6);
  declare ldc_col07 numeric(20,6);
  declare ldc_col08 numeric(20,6);
  declare ldc_col09 numeric(20,6);
  declare ldc_col10 numeric(20,6);
  declare ldc_col11 numeric(20,6);
  declare ldc_col12 numeric(20,6);
  declare ldc_col13 numeric(20,6);
  declare ldc_col14 numeric(20,6);
  declare ldc_col15 numeric(20,6);
  declare ldc_col16 numeric(20,6);
  declare ldc_col17 numeric(20,6);
  declare ldc_col18 numeric(20,6);
  declare ldc_col19 numeric(20,6);
  declare ldc_col20 numeric(20,6);
  declare ls_select char(2000);
  set ls_select='select count(*),sum('+a_tabel+'.col01),sum('+a_tabel+'.col02),sum('+a_tabel+'.col03),sum('+a_tabel+'.col04),sum('+a_tabel+'.col05),sum('+a_tabel+'.col06),sum('+a_tabel+'.col07),sum('+a_tabel+'.col08),sum('+a_tabel+'.col09),sum('+a_tabel+'.col10),sum('+a_tabel+'.col11),sum('+a_tabel+'.col12),sum('+a_tabel+'.col13),sum('+a_tabel+'.col14),sum('+a_tabel+'.col15),sum('+a_tabel+'.col16),sum('+a_tabel+'.col17),sum('+a_tabel+'.col18),sum('+a_tabel+'.col19),sum('+a_tabel+'.col20) into ll_rows,ldc_col01,ldc_col02,ldc_col03,ldc_col04,ldc_col05,ldc_col06,ldc_col07,ldc_col08,ldc_col09,ldc_col10,ldc_col11,ldc_col12,ldc_col13,ldc_col14,ldc_col15,ldc_col16,ldc_col17,ldc_col18,ldc_col19,ldc_col20 from '+a_tabel+' '+a_join+' where '+a_where;
  execute immediate ls_select;
  if ll_rows>0 then
    case a_level
    when 1 then
      set a_nimi=Left(' '+a_nimi,100)
    when 2 then
      set a_nimi=Left('    '+a_nimi,100)
    when 3 then
      set a_nimi=Left('       '+a_nimi,100)
    when 4 then
      set a_nimi=Left('          '+a_nimi,100)
    when 5 then
      set a_nimi=Left('             '+a_nimi,100)
    when 6 then
      set a_nimi=Left('                '+a_nimi,100)
    when 7 then
      if a_where='1=1' then
        set a_nimi=Left(' '+a_nimi,100)
      else
        set a_nimi=Left('                   '+a_nimi,100)
      end if
    end case
    ;
    insert into gl_ea_rida(meet,kulu_obj,teg_ala,kulu_liik,tulu_liik,projekt,osakond,subjekt,teg_suund,taot,nimi,col01,col02,col03,col04,col05,col06,col07,col08,col09,col10,col11,col12,col13,col14,col15,col16,col17,col18,col19,col20) values(a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot,Left(a_nimi,100),ldc_col01,ldc_col02,ldc_col03,ldc_col04,ldc_col05,ldc_col06,ldc_col07,ldc_col08,ldc_col09,ldc_col10,ldc_col11,ldc_col12,ldc_col13,ldc_col14,ldc_col15,ldc_col16,ldc_col17,ldc_col18,ldc_col19,ldc_col20);
    case a_tr_level
    when 15 then
      if a_meet is null then
        call ea_meetjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 1 then
      if a_kulu_obj is null then
        call ea_kuljaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 3 then
      if a_teg_ala is null then
        call ea_taljaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 5 then
      if a_tabel='gl_ea_kulkond' then
        if a_kulu_liik is null then
          call ea_artjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
        end if
      else
        if a_tulu_liik is null then
          call ea_tuljaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
        end if
      end if
    when 7 then
      if a_projekt is null then
        call ea_objectjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 9 then
      if a_osakond is null then
        call ea_osakjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 11 then
      if a_subjekt is null then
        call ea_subjectjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 13 then
      if a_teg_suund is null then
        call ea_suundjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    when 17 then
      if a_taot is null then
        call ea_taotjaot(a_komb_id,a_level+1,a_tabel,a_join,a_where,a_meet,a_kulu_obj,a_teg_ala,a_kulu_liik,a_tulu_liik,a_projekt,a_osakond,a_subjekt,a_teg_suund,a_taot)
      end if
    end case
    ;
  end if;
  return(ll_rows)
end