ALTER PROCEDURE "dba"."mt_koond_inv"(in a_skoop integer,in a_yksusnr integer, in a_yksuskood char(16),in a_asutnr integer,in a_paring integer,in perlop date, in a_id_user integer, in a_valver smallint default 1)
begin
  declare li_paring integer;
  declare li_invent integer;
  declare ldc_minhind decimal(10,3);
  declare ld_invkuup date;
  delete from gl_mt_koond;
  select tr_inv_invent,tr_inv_minhind into li_invent,ldc_minhind from t_user where t_user.id_user = a_id_user;
  set ld_invkuup=dateadd(day,-1*li_invent,perlop);
  set li_paring=set_gl_1(a_paring);
  insert into gl_mt_koond(tootnr,yksusnr,lkogus,lsumma) select mt_kanne.tootnr,mt_kanne.yksusnr,sum(if mt_kanne.sisse=1 then mt_kanne.kogus else -1*mt_kanne.kogus endif),sum(if mt_kanne.sisse=1 then mt_kanne.summa+mt_kanne.summa2 else -1*(mt_kanne.summa+mt_kanne.summa2) endif) from mt_kanne left outer join gl_1 on(mt_kanne.id = gl_1.id) and(mt_kanne.kuup = gl_1.kuup) left outer join mt_yksus on mt_kanne.yksusnr=mt_yksus.yksusnr where
      ((mt_kanne."id" = gl_1."id") and(mt_kanne.kuup = gl_1.kuup) or a_paring = 0) and(mt_kanne.yksusnr = a_yksusnr or a_yksusnr = 0) and Left(mt_yksus.kood,Length(a_yksuskood))=a_yksuskood and(mt_yksus.skoop = a_skoop or a_skoop = 0) and(mt_yksus.asutnr = a_asutnr or a_asutnr = 0) and mt_kanne.tootnr > 0 and mt_kanne.kuup <= perlop
       group by mt_kanne.tootnr, mt_kanne.yksusnr
       order by mt_kanne.tootnr, mt_kanne.yksusnr;
  delete from gl_mt_koond where lkogus = 0 and lsumma = 0;
  if ldc_minhind>0 then
    delete from gl_mt_koond where lkogus<>0 and lsumma/lkogus<ldc_minhind
  end if;
  update gl_mt_koond set akogus=lkogus, asumma=lsumma from gl_mt_koond left outer join tootlist on gl_mt_koond.tootnr=tootlist.tootnr where tootlist.invent>ld_invkuup
end