CREATE FUNCTION "DBA"."get_viitnr_check"( in a_viitnr char(35) )
returns integer
begin
  declare li_return integer;
  declare li_pikkus integer;
  declare li_summa integer;
  declare li_i integer;
  declare ls_char char(1);
  declare li_char integer;
  declare li_koef integer;
  set li_return = 0;
  set li_summa=0;
  set li_pikkus = Length(a_viitnr) - 1;
  if li_pikkus > 0 and li_pikkus < 35 then
    set li_i=li_pikkus;
    set li_koef=7;
    while li_i>0 loop
      set ls_char=substring(a_viitnr,li_i,1);
      set li_char=convert(integer,ls_char);
      set li_summa = li_summa + li_char*li_koef;
      case li_koef when 7 then
        set li_koef=3 when 3 then
        set li_koef=1 when 1 then
        set li_koef=7
      end case;
      set li_i=li_i-1
    end loop;
    if li_summa > 0 then
      set ls_char=right(convert(char(2),10-mod(li_summa,10)),1);
      if right(a_viitnr,1) = ls_char then
        set li_return = 1
      end if
    end if;
  end if;
  return li_return;
end