ALTER PROCEDURE "dba"."pa_isikukaart"(in a_asutnr integer,in a_a_aasta numeric(4),in a_yksusnr integer,in a_skoop integer, in a_id_user integer, in a_valver smallint default 1)
begin
  declare li_a_akuu numeric(2);
  declare li_a_aasta numeric(4);
  declare li_t_akuu numeric(2);
  declare li_t_aasta numeric(4);
  declare li_v_akuu numeric(2);
  declare li_v_aasta numeric(4);
  declare ll_asutnr integer;
  declare ll_lepnr integer;
  declare ll_tas_s integer;
  declare ll_tgraafnr unsigned int;
  declare ll_paryldnr unsigned int;
  declare li_akuu smallint;
  declare li_isikukaart_paevad smallint;
  declare ldc_summa decimal(15,2);
  declare ldc_tulumaks decimal(15,2);
  declare ldc_tvtkmaks decimal(15,2);
  declare ldc_pensmaks decimal(15,2);
  declare ldc_tatkmaks decimal(15,2);
  declare ldc_sotsmaks decimal(15,2);
  declare ldc_maksuvaba decimal(15,2);
  declare li_sisse smallint;
  declare ls_taslist_nimi char(50);
  declare ls_ametlist_nimi char(50);
  declare li_i smallint;
  declare ld_kuup1 date;
  declare ld_kuup2 date;
  declare ld_perlop date;
  declare err_notfound exception for sqlstate value '02000';
  declare c_pa_leping dynamic scroll cursor for select distinct pa_leping.asutnr,pa_leping.lepnr,pa_leping.kuup1,if pa_leping.kuup2 is null then ymd(2999,1,1) else pa_leping.kuup2 endif, get_pa_leping_tun_amet(pa_leping.lepnr,ld_perlop) from pa_leping left outer join pa_isik on pa_leping.lepnr=pa_isik.lepnr left outer join pa_yksus on pa_isik.yksusnr=pa_yksus.yksusnr left outer join ametlist on pa_leping.person=ametlist.person where (pa_leping.asutnr = a_asutnr or a_asutnr = 0) and (pa_yksus.yksusnr=a_yksusnr or a_yksusnr=0) and (pa_yksus.skoop=a_skoop or a_skoop=0) and (Years(pa_leping.kuup1)<=a_a_aasta and (Years(pa_leping.kuup2)>=a_a_aasta or pa_leping.kuup2 is null)) ;
  declare c_pa_tgraaf dynamic scroll cursor for select pa_tgraaf.tgraafnr from pa_tgraaf where pa_tgraaf.lepnr=ll_lepnr and Years(pa_tgraaf.akuup)<=a_a_aasta and Years(pa_tgraaf.lkuup)>= a_a_aasta;
  declare c_pa_paryld dynamic scroll cursor for select pa_paryld.paryldnr from pa_paryld left outer join pa_yksus on pa_paryld.yksusnr=pa_yksus.yksusnr where pa_paryld.lepnr=ll_lepnr and (pa_yksus.yksusnr=a_yksusnr or a_yksusnr=0) and (pa_yksus.skoop=a_skoop or a_skoop=0) and Years(pa_paryld.akuup)<=a_a_aasta and (Years(pa_paryld.lkuup)>= a_a_aasta or pa_paryld.lkuup is null);
  declare c_pa_tasu dynamic scroll cursor for select pa_tasu.tas_s, if a_valver=4 then pa_tasu.summaeek else pa_tasu.summa endif,(if pa_taslist.sisse = 0 then if a_valver=4 then pa_tasu.tulumakseek else pa_tasu.tulumaks endif else if a_valver=4 then 0-pa_tasu.tulumakseek else 0-pa_tasu.tulumaks endif endif),(if pa_taslist.sisse = 0 then if a_valver=4 then pa_tasu.tvtkmakseek else pa_tasu.tvtkmaks endif else if a_valver=4 then 0-pa_tasu.tvtkmakseek else 0-pa_tasu.tvtkmaks endif endif),(if pa_taslist.sisse = 0 then if a_valver=4 then pa_tasu.pensmakseek else pa_tasu.pensmaks endif else if a_valver=4 then 0-pa_tasu.pensmakseek else 0-pa_tasu.pensmaks endif endif), if pa_taslist.sisse=0 then if a_valver=4 then pa_tasu.tatkmakseek else pa_tasu.tatkmaks endif else -1*(if a_valver=4 then pa_tasu.tatkmakseek else pa_tasu.tatkmaks endif) endif, if pa_taslist.sisse=0 then if a_valver=4 then pa_tasu.sotsmakseek else pa_tasu.sotsmaks endif else -1*(if a_valver=4 then pa_tasu.sotsmakseek else pa_tasu.sotsmaks endif) endif, if pa_taslist.sisse=0 then pa_tasu.maksuvaba else -1*(pa_tasu.maksuvaba) endif, pa_tasu.a_akuu,if pa_taslist.sisse=0 then 1 else 5 endif,pa_taslist.nimi from pa_tasu left outer join pa_taslist on pa_tasu.tas_s=pa_taslist.tas_s left outer join pa_yksus on pa_tasu.yksusnr=pa_yksus.yksusnr where pa_tasu.lepnr=ll_lepnr and pa_tasu.a_aasta=a_a_aasta and (pa_yksus.yksusnr=a_yksusnr or a_yksusnr=0) and (pa_yksus.skoop=a_skoop or a_skoop=0);
  delete from gl_tr_isikukaart;
  delete from gl_tr_isikukaart_par;
  delete from gl_tr_isikukaart_tas;
  select t_user.tr_pa_isikukaart_paevad into li_isikukaart_paevad from t_user where t_user.id_user=a_id_user;
  set ld_perlop=ymd(a_a_aasta,12,31);
  open c_pa_leping;
  pa_leping_loop: loop
    fetch next c_pa_leping into ll_asutnr,ll_lepnr,ld_kuup1,ld_kuup2,ls_ametlist_nimi;
    if sqlstate = err_notfound then -- kui eof
      leave pa_leping_loop
    end if;
    set li_i=0;
    open c_pa_tgraaf;
    pa_tgraaf_loop: loop
      fetch next c_pa_tgraaf into ll_tgraafnr;
      if sqlstate = err_notfound then -- kui eof
        leave pa_tgraaf_loop
      end if;
      set li_i = li_i + 1;
      insert into gl_tr_isikukaart(lepnr, asutnr, tgraafnr, skoop) values (ll_lepnr,ll_asutnr,ll_tgraafnr,a_skoop)
    end loop pa_tgraaf_loop;
    close c_pa_tgraaf;
    if li_i=0 then
      insert into gl_tr_isikukaart(lepnr, asutnr, skoop) values (ll_lepnr,ll_asutnr,a_skoop)
    end if;
    set li_i=0;
    open c_pa_paryld;
    pa_paryld_loop: loop
      fetch next c_pa_paryld into ll_paryldnr;
      if sqlstate = err_notfound then -- kui eof
        leave pa_paryld_loop
      end if;
      set li_i = li_i + 1;
      insert into gl_tr_isikukaart_par(lepnr, asutnr, paryldnr, skoop) values (ll_lepnr,ll_asutnr,ll_paryldnr,a_skoop)
    end loop pa_paryld_loop;
    close c_pa_paryld;
    if li_i=0 then
      insert into gl_tr_isikukaart_par(lepnr, asutnr, paryldnr, skoop) values (ll_lepnr,ll_asutnr,0,a_skoop)
    end if;
    set li_i=0;
    open c_pa_tasu;
    pa_tasu_loop: loop
      fetch next c_pa_tasu into ll_tas_s, ldc_summa, ldc_tulumaks, ldc_tvtkmaks, ldc_pensmaks, ldc_tatkmaks, ldc_sotsmaks, ldc_maksuvaba, li_akuu, li_sisse, ls_taslist_nimi;
      if sqlstate = err_notfound then -- kui eof
        leave pa_tasu_loop
      end if;
      if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s) then
        set li_i = li_i + 1;
        insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,ll_tas_s,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,li_sisse,ls_taslist_nimi)
      end if;
      if li_akuu=1 then
        update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=2 then
        update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=3 then
        update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=4 then
        update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=5 then
        update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=6 then
        update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=7 then
        update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=8 then
        update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=9 then
        update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=10 then
        update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=11 then
        update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      elseif li_akuu=12 then
        update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
      end if;
      if li_sisse=1 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -5) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-5,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,3,'Kokku arvestatud')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-5
        end if;
      end if;
      -- tulumaks
      if ldc_tulumaks <> 0 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -1) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-1,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,6,'Tulumaks')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_tulumaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-1
        end if;
      end if;
      -- tvtk
      if ldc_tvtkmaks <> 0 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -2) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-2,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,7,'Töövõtja töötuskindlustus')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_tvtkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-2
        end if;
      end if;
      -- pensmaks
      if ldc_pensmaks <> 0 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -3) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-3,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,8,'Kogumispension')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_pensmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-3
        end if;
      end if;
      -- tatk
      if ldc_tatkmaks <> 0 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -9) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-9,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,12,'Tööandja töötuskindlustus')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_tatkmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-9
        end if;
      end if;
      -- sotsmaks
      if ldc_sotsmaks <> 0 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -10) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-10,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,13,'Sotsiaalmaks')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_sotsmaks where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-10
        end if;
      end if;
      -- maksuvaba
      if ldc_maksuvaba <> 0 then
        if not exists(select 1 from gl_tr_isikukaart_tas where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s = -11) then
          insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi) values (ll_asutnr,-11,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,14,'Maksuvaba')
        end if;
        if li_akuu=1 then
          update gl_tr_isikukaart_tas set kuu_1=kuu_1+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=2 then
          update gl_tr_isikukaart_tas set kuu_2=kuu_2+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=3 then
          update gl_tr_isikukaart_tas set kuu_3=kuu_3+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=4 then
          update gl_tr_isikukaart_tas set kuu_4=kuu_4+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=5 then
          update gl_tr_isikukaart_tas set kuu_5=kuu_5+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=6 then
          update gl_tr_isikukaart_tas set kuu_6=kuu_6+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=7 then
          update gl_tr_isikukaart_tas set kuu_7=kuu_7+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=8 then
          update gl_tr_isikukaart_tas set kuu_8=kuu_8+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=9 then
          update gl_tr_isikukaart_tas set kuu_9=kuu_9+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=10 then
          update gl_tr_isikukaart_tas set kuu_10=kuu_10+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=11 then
          update gl_tr_isikukaart_tas set kuu_11=kuu_11+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        elseif li_akuu=12 then
          update gl_tr_isikukaart_tas set kuu_12=kuu_12+ldc_maksuvaba where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=-11
        end if;
      end if;
    end loop pa_tasu_loop;
    close c_pa_tasu;
    if li_isikukaart_paevad=1 then
      set ll_tas_s=-20-ll_lepnr;
      insert into gl_tr_isikukaart_tas(asutnr, tas_s, kuu_1, kuu_2, kuu_3, kuu_4, kuu_5, kuu_6, kuu_7, kuu_8, kuu_9, kuu_10, kuu_11, kuu_12, skoop, sisse, taslist_nimi)
        values (ll_asutnr,ll_tas_s,0,0,0,0,0,0,0,0,0,0,0,0,a_skoop,15,'Päevad - '+ls_ametlist_nimi);
      if years(ld_kuup1) <= a_a_aasta or years(ld_kuup2) >= a_a_aasta then
        if years(ld_kuup1) < a_a_aasta then
          set ld_kuup1 = ymd(a_a_aasta,1,1)
        end if;
        if years(ld_kuup2) > a_a_aasta then
          set ld_kuup2 = ymd(a_a_aasta,12,31)
        end if;
        pa_per_loop: loop
          if ld_kuup1 > ld_kuup2 then -- kui eof
            leave pa_per_loop
          end if;
          set ld_perlop = get_perlop(ld_kuup1);
          if ld_perlop>ld_kuup2 then
            set ld_perlop=ld_kuup2
          end if;
          set ldc_summa = get_tp_arv_tool(ld_kuup1,ld_perlop,ll_lepnr);
          set li_akuu=month(ld_kuup1);
          if li_akuu=1 then
            update gl_tr_isikukaart_tas set kuu_1=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=2 then
            update gl_tr_isikukaart_tas set kuu_2=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=3 then
            update gl_tr_isikukaart_tas set kuu_3=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=4 then
            update gl_tr_isikukaart_tas set kuu_4=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=5 then
            update gl_tr_isikukaart_tas set kuu_5=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=6 then
            update gl_tr_isikukaart_tas set kuu_6=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=7 then
            update gl_tr_isikukaart_tas set kuu_7=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=8 then
            update gl_tr_isikukaart_tas set kuu_8=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=9 then
            update gl_tr_isikukaart_tas set kuu_9=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=10 then
            update gl_tr_isikukaart_tas set kuu_10=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=11 then
            update gl_tr_isikukaart_tas set kuu_11=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          elseif li_akuu=12 then
            update gl_tr_isikukaart_tas set kuu_12=ldc_summa where gl_tr_isikukaart_tas.asutnr=ll_asutnr and gl_tr_isikukaart_tas.tas_s=ll_tas_s
          end if;
          set ld_kuup1=dateadd(day,1,ld_perlop)
        end loop pa_per_loop;
      end if
    end if
  end loop pa_leping_loop;
  close c_pa_leping
end