CREATE PROCEDURE "DBA"."pa_stat_koond3"(  in a_skoopkood char(16), in a_skoop integer, in a_yksuskood char(16), in a_yksusnr integer, in a_a_aasta numeric(4), in a_statnr integer default 0 )
BEGIN
  declare li_a_akuu numeric(2);
  delete from gl_tr_universal2;
  set li_a_akuu=1;
  while li_a_akuu<13 loop
    call pa_stat_koond2( a_skoopkood,a_skoop,a_yksuskood,a_yksusnr,li_a_akuu,a_a_aasta,a_statnr);
    insert into gl_tr_universal2("id","info",konto,sum2,sum3,sum1)
      select gl_pa_stat."id",Left(gl_pa_stat."nimi",100),Left(gl_pa_stat."kood",7),gl_pa_stat."v2",gl_pa_stat."v3",gl_pa_stat."v1"
        from gl_pa_stat;
    set li_a_akuu=li_a_akuu+1;
  end loop;
  delete from gl_pa_stat;
  insert into gl_pa_stat("id",nimi,kood,v2,v3,v1)
    select gl_tr_universal2."id",Min(gl_tr_universal2."info"),Min(gl_tr_universal2."konto"),Sum(gl_tr_universal2."sum2"),Sum(gl_tr_universal2."sum3"),Sum(gl_tr_universal2."sum1")
      from gl_tr_universal2
      group by gl_tr_universal2."id";
-- aasta keskmise jagamine
  update gl_pa_stat set v1=Round(v1/12,0),v2=Round(v2/12,0),v3=Round(v3/12,0) where "id"=2;
  update gl_pa_stat set v1=Round(v1/12,2),v2=Round(v2/12,2),v3=Round(v3/12,2) where "id"=3;
-- pa_tasu sarnased read kokku aastas
  insert into gl_pa_stat("id",nimi,kood) values (100,'4.TÖÖTATUD TUNDIDE ARV AASTAS KOKKU','x2');
  insert into gl_pa_stat("id",nimi,kood) values (120,'5.TASUSTATUD, KUID MITTETÖÖTATUD PÄEVADE ARV AASTAS KOKKU','x3');
  insert into gl_pa_stat("id",nimi,kood) values (150,'6.TÖÖTAJA TASUSTATUD AASTAS KOKKU','x1');
  insert into gl_pa_stat("id",nimi,kood) values (160,'7.TÖÖTAJATE MAKSED JA HÜVITISED','x2');
-- Yletunnid
  delete from gl_pa_tasu;
  insert into gl_pa_tasu(tasunr,a_aasta,a_akuu,a_apaev,a_lpaev,lepnr,paevi,plnr)
    select 1,pa_tasu.a_aasta,pa_tasu.a_akuu,pa_tasu.a_apaev,pa_tasu.a_lpaev,pa_tasu.lepnr,max(pa_tasu.par1),if pa_tasu.summa<0 then -1 else 1 endif as pa_koef
      from pa_tasu left outer join pa_yksus on pa_tasu.yksusnr = pa_yksus.yksusnr 
                   left outer join skoobid on pa_yksus.skoop=skoobid.skoop
                   left outer join pa_taslist on pa_tasu.tas_s=pa_taslist.tas_s
      where (pa_yksus.skoop = a_skoop or a_skoop = 0) and
            "Left"(skoobid.kood,Length(a_skoopkood))=a_skoopkood and
            "Left"(pa_yksus.kood,Length(a_yksuskood))=a_yksuskood and
            (pa_tasu.yksusnr = a_yksusnr or a_yksusnr = 0) and
            (pa_yksus.statnr = a_statnr or a_statnr = 0) and
            pa_taslist.sisse=0 and (pa_taslist.statrida=6) and
            pa_tasu.a_aasta=a_a_aasta
      group by pa_tasu.a_aasta,pa_tasu.a_akuu,pa_tasu.a_apaev,pa_tasu.a_lpaev,pa_tasu.lepnr,pa_koef;

  insert into gl_pa_stat("id",nimi,kood,v2,v3,v1)
      select 101,
             'Tasustatud ületunnid',
             '04',
             Round(sum(if pa_leping.id_koht=1 then gl_pa_tasu.plnr*gl_pa_tasu.paevi else 0 endif),0) as a_v2,
             Round(sum(if pa_leping.id_koht=4 then gl_pa_tasu.plnr*gl_pa_tasu.paevi else 0 endif),0) as a_v3,
             a_v2+a_v3
      from gl_pa_tasu left outer join pa_leping on gl_pa_tasu.lepnr=pa_leping.lepnr;
-- Puhkus
  delete from gl_pa_tasu;
  insert into gl_pa_tasu(tasunr,a_aasta,a_akuu,a_apaev,a_lpaev,lepnr,paevi,plnr,summa)
    select 1,pa_tasu.a_aasta,pa_tasu.a_akuu,pa_tasu.a_apaev,pa_tasu.a_lpaev,pa_tasu.lepnr,max(pa_tasu.par1),if pa_tasu.summa<0 then -1 else 1 endif as pa_koef,sum(pa_tasu.summa)
      from pa_tasu left outer join pa_yksus on pa_tasu.yksusnr = pa_yksus.yksusnr 
                   left outer join skoobid on pa_yksus.skoop=skoobid.skoop
                   left outer join pa_taslist on pa_tasu.tas_s=pa_taslist.tas_s
      where (pa_yksus.skoop = a_skoop or a_skoop = 0) and
            "Left"(skoobid.kood,Length(a_skoopkood))=a_skoopkood and
            "Left"(pa_yksus.kood,Length(a_yksuskood))=a_yksuskood and
            (pa_tasu.yksusnr = a_yksusnr or a_yksusnr = 0) and
            (pa_yksus.statnr = a_statnr or a_statnr = 0) and
            pa_taslist.sisse=0 and (pa_taslist.statrida=10) and
            pa_tasu.a_aasta=a_a_aasta
      group by pa_tasu.a_aasta,pa_tasu.a_akuu,pa_tasu.a_apaev,pa_tasu.a_lpaev,pa_tasu.lepnr,pa_koef;

  insert into gl_pa_stat("id",nimi,kood,v2,v3,v1)
      select 121,
             'Tööandja tasustatud puhkusepäevade arv',
             '06',
             Round(sum(if pa_leping.id_koht=1 then gl_pa_tasu.plnr*gl_pa_tasu.paevi else 0 endif),0) as a_v2,
             Round(sum(if pa_leping.id_koht=4 then gl_pa_tasu.plnr*gl_pa_tasu.paevi else 0 endif),0) as a_v3,
             a_v2+a_v3
      from gl_pa_tasu left outer join pa_leping on gl_pa_tasu.lepnr=pa_leping.lepnr;
  insert into gl_pa_stat("id",nimi,kood,v2,v3,v1)
      select 153,
             'Mittetöötatud päevade tasu, nt puhkuse ja koolituse aja eest',
             '12',
             Round(sum(if pa_leping.id_koht=1 then gl_pa_tasu.summa else 0 endif),2) as a_v2,
             Round(sum(if pa_leping.id_koht=4 then gl_pa_tasu.summa else 0 endif),2) as a_v3,
             a_v2+a_v3
      from gl_pa_tasu left outer join pa_leping on gl_pa_tasu.lepnr=pa_leping.lepnr;
-- Haigus
  delete from gl_pa_tasu;
  insert into gl_pa_tasu(tasunr,a_aasta,a_akuu,a_apaev,a_lpaev,lepnr,paevi,plnr,summa)
    select 1,pa_tasu.a_aasta,pa_tasu.a_akuu,pa_tasu.a_apaev,pa_tasu.a_lpaev,pa_tasu.lepnr,max(pa_tasu.par1),if pa_tasu.summa<0 then -1 else 1 endif as pa_koef,sum(pa_tasu.summa)
      from pa_tasu left outer join pa_yksus on pa_tasu.yksusnr = pa_yksus.yksusnr 
                   left outer join skoobid on pa_yksus.skoop=skoobid.skoop
                   left outer join pa_taslist on pa_tasu.tas_s=pa_taslist.tas_s
      where (pa_yksus.skoop = a_skoop or a_skoop = 0) and
            "Left"(skoobid.kood,Length(a_skoopkood))=a_skoopkood and
            "Left"(pa_yksus.kood,Length(a_yksuskood))=a_yksuskood and
            (pa_tasu.yksusnr = a_yksusnr or a_yksusnr = 0) and
            (pa_yksus.statnr = a_statnr or a_statnr = 0) and
            pa_taslist.sisse=0 and (pa_taslist.statrida=9) and
            pa_tasu.a_aasta=a_a_aasta
      group by pa_tasu.a_aasta,pa_tasu.a_akuu,pa_tasu.a_apaev,pa_tasu.a_lpaev,pa_tasu.lepnr,pa_koef;

  insert into gl_pa_stat("id",nimi,kood,v2,v3,v1)
      select 130,
             'Tööandja poolt tasustatud haiguspäevade arv',
             '08',
             Round(sum(if pa_leping.id_koht=1 then gl_pa_tasu.plnr*gl_pa_tasu.paevi else 0 endif),0) as a_v2,
             Round(sum(if pa_leping.id_koht=4 then gl_pa_tasu.plnr*gl_pa_tasu.paevi else 0 endif),0) as a_v3,
             a_v2+a_v3
      from gl_pa_tasu left outer join pa_leping on gl_pa_tasu.lepnr=pa_leping.lepnr;
  insert into gl_pa_stat("id",nimi,kood,v2,v3,v1)
      select 164,
             'Tööandja hüvitis haigestumise, tööõnnetuse ja kutsehaiguse puhul',
             '18',
             Round(sum(if pa_leping.id_koht=1 then gl_pa_tasu.summa else 0 endif),2) as a_v2,
             Round(sum(if pa_leping.id_koht=4 then gl_pa_tasu.summa else 0 endif),2) as a_v3,
             a_v2+a_v3
      from gl_pa_tasu left outer join pa_leping on gl_pa_tasu.lepnr=pa_leping.lepnr;
END