CREATE PROCEDURE "DBA"."kp_laekumine_ettemaks"( in a_skoop integer)
begin
  declare ll_count1 integer;
  declare ll_count2 integer;
  declare ls_dk_kontod char(7000);
  declare ls_text long varchar;
  declare ld_ataskuup date;
  select kp_dk_laekuup into ld_ataskuup from skoobid where skoop=a_skoop;
  set ls_dk_kontod = get_dk_kontod_spank(a_skoop,0,0,1);
  delete from gl_dk_arvetas;
  delete from gl_logi;
  insert into gl_logi("text")
    select 'Valdkond: '+"skoobid"."nimi" from kp_obj key join skoobid where objnr=id_obj;
  -- arveldused
  insert into gl_dk_arvetas( asutnr,arvenr,arvekuup,arvesumma)
    select dk_kanne.asutnr,
           if dk_kanne.crekuup is null or dk_kanne.crenr is null then if dk_kanne.arvenr is null then '' else dk_kanne.arvenr endif else dk_kanne.crenr endif as dk_kanne_arvenr,
           if (dk_kanne.crekuup is null or dk_kanne.crenr is null) then (if dk_kanne.arvekuup is null then ymd(2000,1,1) else dk_kanne.arvekuup endif) else dk_kanne.crekuup endif as dk_kanne_arvekuup,
           sum(if dk_kanne.sisse=0 then -1*(dk_kanne.summa+dk_kanne.summa2) else (dk_kanne.summa+dk_kanne.summa2) endif)
      from dk_kanne key left outer join dk_obj
      where dk_obj.skoop=a_skoop and
            dk_kanne_arvekuup>=ld_ataskuup and
            dk_kanne.asutnr>0 and
            dk_obj.djkonto is not null and
            dk_obj.spank=0 and
            dk_obj.mke=1
      group by dk_kanne.asutnr,dk_kanne_arvekuup,dk_kanne_arvenr;
  -- kassa/pank
  insert into gl_dk_arvetas( asutnr,arvenr,arvekuup,makssumma)
    select kp_kanne.asutnr,
           if kp_kanne.arvenr is null then '' else kp_kanne.arvenr endif as kp_kanne_arvenr,
           if kp_kanne.arvekuup is null then ymd(2000,1,1) else kp_kanne.arvekuup endif as kp_kanne_arvekuup,
           sum(if kp_kanne.sisse=0 then -1*(kp_kanne.summa) else kp_kanne.summa endif)
      from kp_kanne key left outer join kp_obj
      where kp_obj.skoop=a_skoop and
            locate(ls_dk_kontod,';'+"Left"(kp_kanne.konto+Space(7),7)+';')>0 and
            kp_kanne.asutnr>0 and
            kp_kanne_arvekuup>=ld_ataskuup
      group by kp_kanne.asutnr,kp_kanne_arvekuup,kp_kanne_arvenr;
  -- muuda puuduvad vaartused
  update gl_dk_arvetas set arvenr='puudub' where arvenr is null;
  update gl_dk_arvetas set arvenr='puudub' where arvenr='';
  update gl_dk_arvetas set arvekuup=ymd(2000,1,1) where arvekuup is null;
  update gl_dk_arvetas set arvesumma=0 where arvesumma is null;
  update gl_dk_arvetas set makssumma=0 where makssumma is null;
  delete from gl_dk_arvetas where arvesumma=0 and makssumma=0;
  select count(if arvesumma<>0 then 1 else null endif),count(if makssumma<>0 then 1 else null endif) into ll_count1,ll_count2 from gl_dk_arvetas;
  insert into gl_logi("text")
    values('Arveid: '+convert(char(10),ll_count1)+'   Tasumisi: '+convert(char(10),ll_count2));
  -- summeri yks arve yheks reaks
  delete from gl_dk_arvetas2007;
  insert into gl_dk_arvetas2007( asutnr,arvekuup,arvenr,arvesumma,makssumma)
    select gl_dk_arvetas.asutnr,gl_dk_arvetas.arvekuup,gl_dk_arvetas.arvenr,sum(gl_dk_arvetas.arvesumma),sum(gl_dk_arvetas.makssumma)
     from gl_dk_arvetas
     group by gl_dk_arvetas.asutnr,gl_dk_arvetas.arvekuup,gl_dk_arvetas.arvenr;
  -- kustuta null arved
  delete gl_dk_arvetas2007 from gl_dk_arvetas2007 where gl_dk_arvetas2007.arvesumma=gl_dk_arvetas2007.makssumma;
  -- ettemaksud tabelisse gl_dk_arvetas
  delete gl_dk_arvetas;
  insert into gl_dk_arvetas(asutnr,arvenr,arvekuup,arvesumma,makssumma)
    select gl_dk_arvetas2007.asutnr,gl_dk_arvetas2007.arvenr,gl_dk_arvetas2007.arvekuup,gl_dk_arvetas2007.arvesumma,gl_dk_arvetas2007.makssumma
      from gl_dk_arvetas2007
      where gl_dk_arvetas2007.arvesumma<gl_dk_arvetas2007.makssumma;
  -- volad tabelisse gl_dk_arvetas2007
  delete gl_dk_arvetas2007 from gl_dk_arvetas2007 where gl_dk_arvetas2007.arvesumma<gl_dk_arvetas2007.makssumma;
  select count() into ll_count1 from gl_dk_arvetas2007;
  select count() into ll_count2 from gl_dk_arvetas;
  insert into gl_logi("text")
    values('Vőlas arveid: '+convert(char(10),ll_count1)+'   Ettemakstud arveid: '+convert(char(10),ll_count2));
end