CREATE FUNCTION "dba"."get_penskar"(  in a_asutnr integer, in a_aasta integer)
RETURNS INTEGER
BEGIN
  declare li_penskar integer;
  declare ls_iskood char(7);
  declare li_aasta integer;
  declare li_akuu integer;
  set li_penskar=0;
  if a_aasta>2022 then
    select Left(trim(reg_nr),5) into ls_iskood from asulist where asutnr=a_asutnr;
    set temporary option CONVERSION_ERROR = 'OFF';
    if Length(ls_iskood)=5 and convert(integer,ls_iskood)>0 then
      if left(ls_iskood,1) in ('1','2') then
        set li_aasta=convert(integer,'18'+substring(ls_iskood,2,2));
      elseif left(ls_iskood,1) in ('3','4') then
        set li_aasta=convert(integer,'19'+substring(ls_iskood,2,2));
      elseif left(ls_iskood,1) in ('5','6') then
        set li_aasta=convert(integer,'20'+substring(ls_iskood,2,2));
      elseif left(ls_iskood,1) in ('7','8') then
        set li_aasta=convert(integer,'21'+substring(ls_iskood,2,2));
      end if;
      if li_aasta is null or li_aasta < 1800 or li_aasta > 2999 then
        set li_aasta=0
      end if;
      set li_akuu=convert(integer,substring(ls_iskood,4,2));
       if li_akuu is null or li_akuu < 1 or li_akuu > 12 then
        set li_akuu=0
      end if;
    else
      set li_akuu=0;
      set li_aasta=0;
    end if;
    if li_aasta=0 OR li_akuu=0 then
      select years(saeg),month(saeg) into li_aasta,li_akuu from pa_kaader where asutnr=a_asutnr;
    end if;
    set temporary option CONVERSION_ERROR = 'ON';
    if li_aasta>0 and li_akuu>0 then
      case a_aasta
        when 2023 then
          if li_aasta<1959 or (li_aasta=1959 and li_akuu<7) then
            set li_penskar=1
          end if;
        when 2024 then
          if li_aasta<1960 or (li_aasta=1960 and li_akuu<4) then
            set li_penskar=1
          end if;
        when 2025 then
          if li_aasta<1961 then
            set li_penskar=1
          end if;
        when 2026 then
          if li_aasta<1962 then
            set li_penskar=1
          end if;
        else
          if a_aasta-li_aasta>64 then
            set li_penskar=1
          end if
      end case;
    end if;
  end if;
  RETURN li_penskar;
END