ALTER PROCEDURE "DBA"."dk_koond_inf14dekl"(in a_skoop integer,in a_objnr integer,in a_peralg date,in a_perlop date)
BEGIN
  delete from gl_tr_universal;
  insert into gl_tr_universal(id,info,sum5,sum6,sum1,sum2)
    select dk_kanne.asutnr,
           ls_maksud.markus,
           month(dk_kanne.kuup) as dk_kanne_kuu,
           years(dk_kanne.kuup) as dk_kanne_aasta,
           sum(if dk_kanne.sisse = 1 then -1*(dk_kanne.summa+dk_kanne.summa2) else (dk_kanne.summa+dk_kanne.summa2) endif) as dk_kanne_sum1,
           if dk_kanne_sum1>0 then 1 else 0 endif
      from dk_kanne left outer join dk_obj on dk_kanne.objnr = dk_obj.objnr
                    left outer join ls_maksud on dk_kanne.id_maks = ls_maksud.id
                    left outer join ls_makslist on ls_maksud.maksnr=ls_makslist.maksnr
      where (dk_obj.skoop = a_skoop or a_skoop = 0) and
            (dk_kanne.objnr=a_objnr or a_objnr=0) and
            (dk_kanne.kuup >= a_peralg) and (dk_kanne.kuup <= a_perlop) and
            dk_kanne.asutnr > 0 and ls_makslist.tyyp=2
      group by dk_kanne.asutnr, ls_maksud.markus, dk_kanne_kuu, dk_kanne_aasta;
  insert into gl_tr_universal(id,info,id1,sum5,sum6,sum3,sum4)
    select dk_kanne.asutnr,
           ls_maksud.markus,
           ls_maksud.taiturnr,
           month(dk_kanne.kuup) as dk_kanne_kuu,
           years(dk_kanne.kuup) as dk_kanne_aasta,
           sum(if dk_kanne.sisse = 1 then -1*(dk_kanne.summa+dk_kanne.summa2) else (dk_kanne.summa+dk_kanne.summa2) endif) as dk_kanne_sum3,
           if dk_kanne_sum3>0 then 1 else 0 endif
      from dk_kanne left outer join dk_obj on dk_kanne.objnr = dk_obj.objnr
                    left outer join ls_maksud on dk_kanne.id_maks = ls_maksud.id
                    left outer join ls_makslist on ls_maksud.maksnr=ls_makslist.maksnr
      where (dk_obj.skoop = a_skoop or a_skoop = 0) and
            (dk_kanne.objnr=a_objnr or a_objnr=0) and
            (dk_kanne.kuup>=a_peralg) and(dk_kanne.kuup<=a_perlop) and
             dk_kanne.asutnr > 0 and ls_makslist.tyyp=3
      group by dk_kanne.asutnr,ls_maksud.markus,ls_maksud.taiturnr,dk_kanne_kuu,dk_kanne_aasta;
  insert into gl_tr_universal(id,summa)
    select ls_laps.asutnr,
           sum(if dk_kanne.sisse=1 then -1*(dk_kanne.summa+dk_kanne.summa2) else (dk_kanne.summa+dk_kanne.summa2) endif)
      from dk_kanne left outer join dk_obj on dk_kanne.objnr = dk_obj.objnr
                    left outer join ls_maksud on dk_kanne.id_maks = ls_maksud.id
                    left outer join ls_makslist on ls_maksud.maksnr=ls_makslist.maksnr
                    left outer join ls_laps on ls_maksud.lapsnr=ls_laps.lapsnr
      where (dk_obj.skoop = a_skoop or a_skoop = 0) and
            (dk_kanne.objnr=a_objnr or a_objnr=0) and
            (dk_kanne.kuup>=a_peralg) and(dk_kanne.kuup<=a_perlop) and
             ls_makslist.tyyp=4
      group by ls_laps.asutnr;
END