CREATE PROCEDURE "DBA"."kp_koond_inf3e"(in id_skoop integer,in peralg date,in perlop date,in a_asutnr integer default 0,in a_talnr integer default 0,in a_osaknr integer default 0, in a_valver smallint default 1,in a_kulnr integer default 0 )
begin
  delete from gl_kp_kanne;
  insert into gl_kp_kanne(summa,asutnr,saajanr)
    select sum((2*kp_kanne.sisse-1)*kp_kanne.summa),
           ls_laps.saajanr as saajanr1,
           if kp_kanne.saajanr is null then kp_kanne.asutnr else kp_kanne.saajanr endif as asutnr1
      from kp_kanne left outer join kp_obj on kp_kanne.objnr = kp_obj.objnr
                    left outer join tullist on kp_kanne.tulnr = tullist.tulnr
                    left outer join ls_maksud on kp_kanne.id_maks = ls_maksud.id
                    left outer join ls_laps on ls_maksud.lapsnr=ls_laps.lapsnr
      where (kp_obj.skoop = id_skoop or id_skoop = 0) and
            (kp_kanne.kuup>=peralg) and(kp_kanne.kuup<=perlop) and
             kp_kanne.asutnr>0 and
            (kp_kanne.asutnr=a_asutnr or a_asutnr=0) and
            (kp_kanne.kulnr=a_kulnr or a_kulnr=0) and (kp_kanne.talnr=a_talnr or a_talnr=0) and (kp_kanne.osaknr=a_osaknr or a_osaknr=0) and
             tullist.inf3 = 1
      group by saajanr1,asutnr1;
end