CREATE OR REPLACE FUNCTION fifo_kezdo()
  RETURNS boolean AS
'-- Verzio: V2.02 2010.07.02.

declare

  c_cikkek cursor for

  select kod
    from tetel
   order by kod;

  v_tetel_kod integer;
  v_count     integer;

begin
  open c_cikkek;

  fetch c_cikkek
   into v_tetel_kod;

  while found loop
    
    select count(*)
      into v_count
      from raktar_mozgas
     where tetel_kod = v_tetel_kod;

    if v_count>0 then
      perform fifo_tetel(v_tetel_kod);
    end if;

    fetch c_cikkek
     into v_tetel_kod;
  end loop;

  close c_cikkek;

  -- csak_fobizonylat_tetel = 1 eset kezelese
  update raktar_mozgas
     set forras_raktar_fifo_ar =
        (select a.forras_raktar_fifo_ar
           from raktar_mozgas a
          where a.kod = raktar_mozgas.szallitos_tetel_kod),
         cel_raktar_fifo_ar =
        (select a.cel_raktar_fifo_ar
           from raktar_mozgas a
          where a.kod = raktar_mozgas.szallitos_tetel_kod)
    where raktar_mozgas.csak_fobizonylat_tetel = ''1''
      and (not(raktar_mozgas.szallitos_tetel_kod = 0));

  return true;
end;
'
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;